{"version":3,"file":"main.d6a1d593ee314493.js","mappings":"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AO0/D,OAAS,KAE5F1/D,GAAO2tX,KAAOgjT,EAAShjT,MAAQ3tX,GAAO2tX,KACtC3tX,GAAOkzyB,QAAUlzyB,GAAOkzyB,SAAWviI,EAASuiI,QAC5ClzyB,GAAOg0C,KAAOh0C,GAAOk4D,SACdl4D,EACT,EAEAizyB,EAAI9o4B,UAAU8q4B,UAAY,WACxB,IAAItutB,EAAO/jL,KAAK+jL,KACZM,GAAOostB,EAAYrp4B,KAAK28K,GACxBM,KAEW,OADbA,GAAOA,GAAK,MAEVrkL,KAAKqkL,KAAOA,GAAKz4K,OAAO,IAE1Bm4K,EAAOA,EAAKn4K,OAAO,EAAGm4K,EAAK3gL,OAASihL,GAAKjhL,SAEvC2gL,IAAQ/jL,KAAKuw4B,SAAWxstB,EAC9B,EAEAuwlB,MAAgBm9H,sBClwBhB,IAAAvyzB,EAAA,CACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,mBACA,gBACA,WACA,cACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,gBACA,mBACA,eACA,YACA,eACA,YACA,eACA,YACA,eACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,YACA,gBACA,mBACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,sBACA,kBACA,qBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,iBACA,oBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,gBACA,mBACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,gBACA,mBACA,eACA,aACA,gBACA,iBACA,oBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,mBACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,YACA,eACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,cACA,iBACA,aACA,gBACA,aACA,gBACA,aACA,gBACA,gBACA,mBACA,cACA,iBACA,aACA,gBACA,cACA,iBACA,cACA,mBACA,sBACA,iBACA,gBACA,mBACA,aACA,gBACA,aACA,gBACA,aACA,kBACA,qBACA,gBACA,aACA,gBACA,mBACA,sBACA,aACA,gBACA,gBACA,mBACA,eACA,kBACA,gBACA,mBACA,gBACA,oBAIA,SAAA40zB,EAAAjtqB,GACA,IAAAv5J,EAAAym0B,EAAAltqB,GACA,OAAA8W,EAAArwK,EACA,CACA,SAAAym0B,EAAAltqB,GACA,IAAA8W,EAAAx5N,EAAA+6D,EAAA2nJ,GAAA,CACA,IAAAxnO,EAAA,IAAA2H,MAAA,uBAAA6/N,EAAA,KACA,MAAAxnO,EAAAyxE,KAAA,mBACAzxE,CAAA,CAEA,OAAA6/E,EAAA2nJ,EACA,CACAitqB,EAAAl13B,KAAA,WACA,OAAAjY,OAAAiY,KAAAsgE,EACA,EACA40zB,EAAA3xxB,QAAA4xxB,EACA1/a,GAAAigT,QAAAw/H,EACAA,EAAAxm0B,GAAA,8KCnPA,MAAM81Y,GASN,MAAMQ,G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ljkB,MAAOx4U,KAAKq84B,wBACf,EACJ,EAITr84B,KAAKs84B,WAAc764B,KACfzB,KAAKu74B,iBAAiB954B,GAAK,EAG/BzB,KAAKu84B,iBAAoB964B,KACrB,GAAIzB,KAAKq54B,SAASj24B,OAAQ,CACtB,MAAMu34B,GAAe364B,KAAK464B,iBAAiBn54B,IACvCk54B,KAAiB364B,KAAKi64B,iBAAiBlzjB,IAAI4zjB,MAAkB364B,KAAKigF,UAClEx+E,GAAMnC,gBAAe,MAGnBU,KAAKigF,UAGXx+E,GAAMnC,gBAAe,EAG7BU,KAAKw84B,gBAAgBx64B,IAASy64B,WAAW5vrB,GAAQ6vrB,eAAiB,MAClE184B,KAAK284B,iBAAmB,IAAIpE,GAAsBh1tB,IAClDg2tB,GAAkBqD,iBAAiB584B,KACvC,CAKA684B,wBACI,OAAO784B,KAAK884B,YAChB,CAEAC,iBACI,OAAO/84B,KAAK864B,YAChB,CAKAkC,oBACI,OAAOh94B,KAAK+xkB,aAAe/xkB,KAAK684B,wBAA0B784B,KAAK+84B,gBACnE,CAEAE,YAAYC,IACRl94B,KAAKq54B,SAAW6D,GAAQh+zB,IAAIguW,OAAUqod,MAAcrod,KACpDltb,KAAKq54B,SAAS55zB,QAAQytW,IAAUsqd,GAA6Btqd,GAAQltb,KAAKigF,WAC1EjgF,KAAKo54B,gCAKL,MAAM+D,GAAkB,IAAI1xyB,IAC5B,OAAAzrG,KAAKi64B,iBAAiBx6zB,QAAQytW,KACtBltb,KAAKq54B,SAAS334B,QAAQwrb,KAAU,GAChCiwd,GAAgB9t4B,IAAI69a,GAAM,GAGlCltb,KAAKi64B,iBAAmBkD,GACjBn94B,IACX,CAKAo94B,oBAAoBrg5B,IAChB,OAAAiD,KAAKq94B,iBAAmBtg5B,GACjBiD,IACX,CAKAs94B,wBAAwBvg5B,IACpB,OAAAiD,KAAKu94B,qBAAuBxg5B,GACrBiD,IACX,CAMAw84B,gBAAgBt0c,IACZ,MAAMlmc,MAAUuz4B,MAAcrtc,IAC9B,OAAIlmc,KAAYhC,KAAK864B,eACb964B,KAAK864B,cACL964B,KAAKw94B,4BAA4Bx94B,KAAK864B,cAE1C964B,KAAK4mtB,QAAQxwY,kBAAkB,KAC3Bp0U,GAAQwU,iBAAiB,YAAaxW,KAAK064B,aAAc3B,IACzD/24B,GAAQwU,iBAAiB,aAAcxW,KAAK064B,aAAc7B,IAC1D724B,GAAQwU,iBAAiB,YAAaxW,KAAKu84B,iBAAkBxD,GAA0B,GAE3F/44B,KAAKy94B,uBAAoBh34B,EACzBzG,KAAK864B,aAAe944B,WAEb8pwB,WAAe,KAAe9rwB,KAAK864B,wBAAwBhvI,aAClE9rwB,KAAK094B,iBAAmB194B,KAAK864B,aAAa6C,iBAEvC394B,IACX,CAIA494B,oBAAoBC,IAChB,OAAA794B,KAAK+54B,iBAAmB8D,MAAkBtI,MAAcsI,IAAmB,KAC3E794B,KAAK854B,oBAAoBr5zB,cACrBo9zB,KACA794B,KAAK854B,oBAAsB954B,KAAKs54B,eAC3B1xzB,OAAO,IACPr7D,UAAU,IAAMvsB,KAAK894B,mCAEvB994B,IACX,CAEAy84B,WAAWx54B,IACP,OAAAjD,KAAK+94B,eAAiB964B,GACfjD,IACX,CAEA++E,UACI/+E,KAAKw94B,4BAA4Bx94B,KAAK864B,cAGlC964B,KAAK+xkB,cAGL/xkB,KAAK864B,cAAc1/sB,SAEvBp7L,KAAKg+4B,SAAS5itB,SACdp7L,KAAKi+4B,kBACLj+4B,KAAKk+4B,sBACLl+4B,KAAKu54B,kBAAkB4E,eAAen+4B,MACtCA,KAAKo+4B,uBACLp+4B,KAAKo64B,cAAc75zB,WACnBvgF,KAAKmwsB,QAAQ5vnB,WACbvgF,KAAKq64B,SAAS95zB,WACdvgF,KAAKs64B,MAAM/5zB,WACXvgF,KAAKu64B,QAAQh6zB,WACbvgF,KAAKw64B,OAAOj6zB,WACZvgF,KAAKy64B,QAAQl6zB,WACbvgF,KAAK254B,YAAYp5zB,WACjBvgF,KAAKq54B,SAAW,GAChBr54B,KAAKi64B,iBAAiBvkjB,QACtB11V,KAAKm54B,oBAAiB1y4B,EACtBzG,KAAK854B,oBAAoBr5zB,cACzBzgF,KAAK284B,iBAAiBjnjB,QACtB11V,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QA,EACb596B,KAAKu9lB,SAAWA,EAChBv9lB,KAAKslG,OAAQ,EACbtlG,KAAK896B,UAAYJ,GACjB196B,KAAK+96B,kBAAqBD,IACtB996B,KAAK896B,UAAYA,GAErB996B,KAAKo96B,0BAA4BS,CACrC,CACA9sI,SACS/wyB,KAAKslG,OACNtlG,KAAKu9lB,SAASv9lB,MAElBA,KAAKslG,OAAQ,CACjB,CACA030B,qCACIh96B,KAAK+wyB,QACT,CACAusI,+BACI,CAQJpjvB,MAEI,GADAl6L,KAAKslG,OAAQ,EACgB,IAAzBtlG,KAAKo86B,kBAA0Bp86B,KAAKs86B,iCACpC,OAEJ,MAAMmB,EAAe3B,GAAkB976B,MACvCA,KAAKo86B,kBACL,IACIp86B,KAAK896B,YACL996B,KAAK896B,UAAYJ,GACjB196B,KAAK496B,MAAM596B,KAAK+96B,kBACpB,SAEIjC,GAAkB2B,EACtB,CACJ,CACA/7L,UACI1hvB,KAAK896B,WACT,EAYJ,MAAME,GACF5h7B,YAAYy+c,EAAe8qC,EAAckna,GACrC7s5B,KAAK66c,cAAgBA,EACrB76c,KAAK2lf,aAAeA,EACpB3lf,KAAK6s5B,YAAcA,CACvB,CAIAoxB,gBACI,OAAOj+6B,KAAK6s5B,WAChB,EAyBJ,SAASqxB,KACL,OAAOC,EACX,CACA,SAASA,GAAuBpF,GAC5B,OAAIA,EAAW725B,KAAK3a,UAAUypH,cAC1B+nzB,EAAWH,SAAWwF,IAEnBC,EACX,CAgBA,SAASA,KACL,MAAMC,EAAqBC,GAAsBv+6B,MAC3C2D,EAAU266B,GAAoB366B,QACpC,GAAIA,EAAS,CACT,MAAMqyU,EAAWsomB,EAAmBtomB,SACpC,GAAIA,IAAau8lB,GACb+L,EAAmBtomB,SAAWryU,OAK9B,QAAShC,KAAOgC,EACZqyU,EAASr0U,GAAOgC,EAAQhC,GAGhC286B,EAAmB366B,QAAU,KAC7B3D,KAAKgxH,YAAYrtH,EAAO,CAEhC,CACA,SAASy66B,GAAoBl7rB,EAAUnjP,EAAO836B,EAAY2G,GACtD,MAAM1G,EAAe936B,KAAKw46B,eAAeX,G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OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,OAAU,KACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,KACV,SAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,OAAU,IACV,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ACA,gBACA,gBACA,UACA,kBACA,iBACA,YACA,mBACA,oBACA,YACA,qBACA,gBACA,sBACA,UACA,0BACA,WACA,eACA,YACA,mBACA,YACA,sBACA,2BACA,gBACA,WACA,kBACA,wBACA,OACA,WACA,WACA,iBACA,iBACA,0BACA,cACA,iBACA,aACA,gBACA,eACA,gBACA,WACA,iBACA,iBACA,eACA,mBACA,WACA,QACA,gBACA,cACA,uBACA,uBACA,mBACA,aACA,iBACA,gBACA,oBACA,oBACA,4BACA,iBACA,mBACA,kCACA,yBACA,wBACA,iBACA,gBACA,aACA,aACA,YACA,eACA,gBACA,aACA,gBACA,eACA,kBACA,kBACA,eACA,kBACA,WACA,WACA,aACA,cACA,cACA,gBACA,gBACA,SACA,WACF,IACIC,GAA2B,MAAjC,MAAMA,GACFC,4BACI91oC,KAAK+1oC,yBAA2B9+hC,SAAS9zG,uBAAuB,+BAA+B,GAC/F,MAAM2/H,GAAY9iI,KAAK+1oC,yBACvB,GAAKjzgC,GAGL,SAASn9H,GAAI,EAAGA,GAAIm9H,GAAUovD,SAAS9uL,OAAQuC,KAAK,CAChD,MAAM02a,GAAQv5S,GAAUojK,WACpBm2I,IACAv5S,GAAU08G,YAAY68L,GAAK,CAWnC,GARAu5tB,GAAYn2jC,QAASnS,KACjB,GAAIttE,KAAKg2oC,iBAAiB1okC,IAAK,CAC3B,MAAM2okC,GAAQh/hC,SAAS6sE,cAAc,QACrCmy9B,GAAM3okC,GAAKA,GACX2okC,GAAM17oC,UAAY,4BAClByF,KAAK+1oC,yBAAyBx25B,YAAY025B,GAAK,IAGnDj2oC,KAAKg2oC,iBAAiB,eAAgB,CACtC,MAAMC,GAAQh/hC,SAAS6sE,cAAc,UACrCmy9B,GAAM3okC,GAAK,cACX2okC,GAAM17oC,UAAY,4BAClByF,KAAK+1oC,yBAAyBx25B,YAAY025B,GAAK,EAEvD,CACAD,iBAAiB1okC,IAEb,OADe2pC,SAASioB,eAAe5xD,GAK3C,EAEJuokC,UAA4BnxoC,UAAI,SAAApI,IAAA,WAAAA,IAAwFu5oC,GAA2B,EACnJA,GAA4B35jC,UADkF7hF,MAAE,CAAA6nB,KACJ2znC,GAA2Bp5oC,UAAA,2BAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,gDAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,IADzB3C,MAAE,WACmJ,EAAAkiF,cAAA,IArC7Ps5jC,EAA2B,KA2CjC,MAAMK,GACF7y5B,sBACSpsI,aAGAj3G,KAAKm2oC,MAAQn2oC,KAAKsB,MACnBtB,KAAKm2oC,IAAMl/hC,SAAS6sE,cAAc,OAClC9jL,KAAKsB,GAAK21G,SAAS6sE,cAAc,QAErC9jL,KAAKm2oC,IAAIn/5B,MAAMpzO,SAAW,WAC1B5D,KAAKm2oC,IAAIn/5B,MAAM7uN,MAAQ,IACvBnoB,KAAKm2oC,IAAIn/5B,MAAMl+H,OAAS,IACxB94G,KAAKm2oC,IAAIn/5B,MAAMsI,WAAa,SAC5Bt/O,KAAKm2oC,IAAIn/5B,MAAMqjF,SAAW,SAC1Br6T,KAAKm2oC,IAAI525B,YAAYv/O,KAAKsB,IAC9B,CACA+hP,iBAAiB26M,IACb,IAAKh+b,KAAKo2oC,eAAep4sB,IAAO,CAI5B,KAHKh+b,KAAKm2oC,MAAQn2oC,KAAKsB,KACnBtB,KAAKq2oC,gBAEJr2oC,KAAKm2oC,MAAQn2oC,KAAKsB,GAEnB,OAAO,EAEXtB,KAAKsB,GAAG01O,MAAM7uN,MAAQnoB,KAAK8jzB,OAAS9lX,GACpC/mV,SAASi8B,KAAKqsG,YAAYv/O,KAAKm2oC,KAC/B,MAAMj9hC,GAAYl5G,KAAKsB,GAAGy0T,wBAC1B/1T,KAAKm2oC,IAAIjzoC,WAAWs8O,YAAYx/O,KAAKm2oC,KACrCn2oC,KAAKo2oC,eAAep4sB,IAAQ9kV,GAAU/wF,MAAQnoB,KAAK8jzB,OAEvD,OAAO9jzB,KAAKo2oC,eAAep4sB,GAC/B,CACA36M,YAAYjgP,IAER,MAAMjC,GADS,iCACMiG,KAAKhE,IAC1B,GAAa,MAATjC,IAAiBA,GAAMiC,OAAS,EAAG,CAEnC,MAAM0mB,GADoB,KAAb3oB,GAAM,GACA,EAAIwtE,OAAOxtE,GAAM,IAC9B68b,GAAO78b,GAAM,GAEnB,IADeq6K,MAAM1xJ,KAAQk0a,GAEzB,MAAgB,OAATA,GAAgBl0a,GAAM9pB,KAAKs2oC,UAAUt4sB,IAAQl0a,GAG5D,MAAM,IAAIzD,UAAU,uBACxB,EAGJ6vnC,GAASC,SAAM1voC,EACfyvoC,GAAS50oC,QAAKmF,EAEdyvoC,GAASpyV,OAAS,IAClBoyV,GAASE,eAAiB,CAAC,EAE3B,MAAMG,GACFn6oC,cAEI4D,KAAKw2oC,sBAAwB,CAAC,EAC9Bx2oC,KAAKy2oC,cAAgB,CAAC,EACtBz2oC,KAAK02oC,aAAe,CAAC,EACrB12oC,KAAK+jJ,SAAW,CAAC,EACjB/jJ,KAAK22oC,eAAiB,IAAI1njC,KAC9B,CACA4c,QACI7rG,KAAK+jJ,SAAW,CAAC,EACjB/jJ,KAAKw2oC,sBAAwB,CAAC,CAClC,CACAI,6BAA6B/xjC,IACzB7kF,KAAK6kF,OAASA,GACd0mE,WAAWsr/B,wBAA2Bl1oC,IAAQ3B,KAAK62oC,wBAAwBl1oC,IAC3E4pJ,WAAWur/B,uBAAyB,CAACn1oC,GAAK5B,KAAUC,KAAK+2oC,oCAAoCp1oC,GAAK5B,IAClGwrJ,WAAWyr/B,sBAAwB,CAAC1pkC,GAAItrE,GAASjC,GAAOk3oC,KAAyBj3oC,KAAKg3oC,sBAAsB1pkC,GAAItrE,GAASjC,GAAOk3oC,IAChI1r/B,WAAW2r/B,iBAAmB,CAACl1oC,GAASjC,KAAUC,KAAKk3oC,iBAAiBl1oC,GAASjC,GACrF,CACAi3oC,sBAAsB1pkC,GAAItrE,GAASjC,GAAOk3oC,IACtC,MAAM5lkC,GAAYrvE,GAAQ2X,KAG1B,GAFA3Z,KAAKy2oC,cAAcnpkC,IAAMtrE,GACzBhC,KAAKw2oC,sBAAsBlpkC,IAAM+D,GAC7BrvE,cAAmBkpsB,kBAAqC,UAAjBlpsB,GAAQkgB,KAAkB,CACjE,MAAMi1nC,GAAY9lkC,GAClBrxE,KAAKw2oC,sBAAsBlpkC,IAAM6pkC,GAC7Bp3oC,KACAC,KAAK+jJ,SAASoz/B,IAAaF,IAE/Bj1oC,GAAQg6O,aAAa,cAAei75B,IAC/Bj3oC,KAAK02oC,aAAaS,MACnBn3oC,KAAK02oC,aAAaS,IAAa,IAEnCn3oC,KAAK02oC,aAAaS,IAAWp4nC,KAAK/c,GAAO,MAGzChC,KAAK+jJ,SAAS1yE,IADTrvE,cAAmBipsB,kBACGjrsB,KAAKo3oC,uBAAuBp1oC,IAG5BjC,EAEnC,CACAm3oC,iBAAiBl1oC,GAASjC,IACtB,MAAMs3oC,GAAgBr3oC,KAAKs3oC,gBAAgBt1oC,IAC3C,GAAIA,cAAmBkpsB,kBAAqC,UAAjBlpsB,GAAQkgB,KAAkB,CACjE,MAAMorD,GAAKtrE,GAAQsB,aAAa,YAAc,GAGxC6zoC,GAAYE,GAActxoC,UAAU,EAAGsxoC,GAActt7B,YAAY,MACvE/pN,KAAKw2oC,sBAAsBlpkC,IAAM6pkC,GACjCn3oC,KAAK+jJ,SAASoz/B,IAAap3oC,GAAMA,MAC5BC,KAAK02oC,aAAaS,MACnBn3oC,KAAK02oC,aAAaS,IAAa,IAEnCn3oC,KAAK02oC,aAAaS,IAAWp4nC,KAAK/c,GAAO,SAEpCA,cAAmBkpsB,iBAAkB,CAC1C,MAAM59nB,GAAKtrE,GAAQsB,aAAa,YAAc,GAC9CtD,KAAKy2oC,cAAcnpkC,IAAMtrE,GACzBhC,KAAKw2oC,sBAAsBlpkC,IAAM+pkC,GACjCr3oC,KAAK+jJ,SAASsz/B,IAAiBt3oC,GAAMA,cAEhCiC,cAAmBipsB,kBAAmB,CAC3C,MAAM39nB,GAAKtrE,GAAQsB,aAAa,YAAc,GAC9CtD,KAAKy2oC,cAAcnpkC,IAAMtrE,GACzBhC,KAAKw2oC,sBAAsBlpkC,IAAM+pkC,GACjCr3oC,KAAK+jJ,SAASsz/B,IAAiBt3oC,GAAMA,cAEhCiC,cAAmBu1oC,oBAAqB,CAC7C,MAAMjqkC,GAAKtrE,GAAQsB,aAAa,YAAc,GAC9CtD,KAAKy2oC,cAAcnpkC,IAAMtrE,GACzBhC,KAAKw2oC,sBAAsBlpkC,IAAM+pkC,GACjCr3oC,KAAK+jJ,SAASsz/B,IAAiBt3oC,GAAMA,WAGrC0X,QAAQC,MAAM,sCAAuC1V,GAE7D,CACAo1oC,uBAAuBI,IACnB,MAAQ7vnC,WAASg9D,aAAa6yjC,GAC9B,OAAK7yjC,GAGE5hE,MAAMxb,UAAU2jB,OAAOhM,KAAKyI,GAAU+3D,IAAWA,GAAOze,UAAUie,IAAKQ,IAAWA,GAAO3/E,QAF3D,IAA1B4nB,GAAQ49D,cAAuB,KAAO59D,GAAQA,GAAQ49D,eAAexlF,KAGpF,CACA82oC,wBAAwB70oC,IACpB,IAAIL,GACJ,GAAIK,cAAmB64T,YAAa,CAChC,MAAMxpP,GAAYrxE,KAAKy3oC,YAAYz1oC,IACnC,IAAIqvE,GASA55D,eAAQC,MAAM,6DAA8D1V,IACrE,CAAEjC,MAAO,MARZ4B,GADA3B,KAAK+jJ,SAAS3pI,eAAei3D,IACvBA,GAGArxE,KAAKs3oC,gBAAgBt1oC,GAKV,MAIzBL,GAAMK,GAEV,MAAO,CAAEjC,MAAOC,KAAK+jJ,SAASpiJ,IAClC,CACA81oC,YAAYz1oC,IACR,IAAIo4T,GAAgBp4T,GACpB,MAAQo4T,GAAc92T,aAAa,YAAc82T,GAAcA,eAC3DA,GAAgBA,GAAcA,cAElC,GAAIp4T,cAAmBkpsB,kBAAqC,UAAjBlpsB,GAAQkgB,KAC/C,GACIk4S,GAAgBA,IAAeA,qBACzBA,IAAe92T,aAAa,YAAc82T,IAExD,IAAI/oP,GAAY+oP,IAAe92T,aAAa,WAC5C,IAAK+tE,GACD,MAAM,IAAIrqE,MAAM,0CAEpB,OAAOqqE,EACX,CACAimkC,gBAAgBt1oC,IACZ,IAAIo4T,GAAgBp4T,GAChBqvE,GAAY,GAChB,KAAO+oP,cAAyBS,aAAeT,GAAcA,eAAe,CACxE,MAAMs90B,GAAUt90B,GAAc92T,aAAa,WACvCo0oC,KACArmkC,GAAYqmkC,GAAU,IAAMrmkC,IAEhC+oP,GAAgBA,GAAcA,cAElC,IAAK/oP,GACD,MAAM,IAAIrqE,MAAM,0CAGpB,OADAqqE,GAAYA,GAAUtrE,UAAU,EAAGsrE,GAAUjuE,OAAS,GAClDpB,cAAmBkpsB,kBAAqC,UAAjBlpsB,GAAQkgB,KAExCmvD,GAAUtrE,UAAU,EAAGsrE,GAAU04I,YAAY,MAEjD14I,EACX,CACA0lkC,oCAAoCp1oC,GAAK5B,IAIrC,GAHKC,KAAK+jJ,WACN/jJ,KAAK+jJ,SAAW,CAAC,GAEF,iBAARpiJ,GAAkB,CAEzB,MAAMyk/B,GADcpm/B,KAAKw2oC,sBAAsB70oC,KAChBgF,OAAO+kB,OAAO1rB,KAAKw2oC,uBAAuB/mjC,KAAMvpF,IAAMA,KAAMvE,IAAOuE,GAAE04G,SAAS,IAAMj9G,KAC/Gyk/B,GAEapm/B,KAAK23oC,yBADJ33oC,KAAKy2oC,cAAc90oC,IACiB5B,GAAOqm/B,KAErDpm/B,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAK22oC,eAAej6iC,KAAK18F,KAAK+jJ,WAIxDtsI,QAAQC,MAAM,yCAA2C/V,GAAG,KAG/D,CACD,IAAIimF,IAAS,EACb,MAAMgwjC,GAAiB53oC,KAAKy3oC,YAAY91oC,IACpC3B,KAAK+jJ,SAAS3pI,eAAew9nC,MAC7BhwjC,GAAS5nF,KAAK23oC,yBAAyBh2oC,GAAK5B,GAAO63oC,KAEvD,MAAMP,GAAgBr3oC,KAAKs3oC,gBAAgB31oC,IACvC01oC,KAAkBO,KAClBhwjC,KAAWA,GAAS5nF,KAAK23oC,yBAAyBh2oC,GAAK5B,GAAOs3oC,MAE9DzvjC,IACA5nF,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAK22oC,eAAej6iC,KAAK18F,KAAK+jJ,UAAS,CAGzE,CACA4z/B,yBAAyB/7jC,GAAO77E,GAAOqm/B,IACnC,IAAIx+5B,IAAS,EACb,GAAIhM,cAAiBsvnB,kBAAmC,aAAftvnB,GAAM15D,KAAqB,CAChE,MAAM21nC,GAAcj8jC,GAAMt4E,aAAa,eACnCu0oC,GACI93oC,GAAMA,MACFC,KAAK+jJ,SAASqi2B,MAAayxJ,KAC3B73oC,KAAK+jJ,SAASqi2B,IAAWyxJ,GACzBjwjC,IAAS,IAIkB,IAA3B5nF,KAAK+jJ,SAASqi2B,MACdpm/B,KAAK+jJ,SAASqi2B,KAAW,EACzBx+5B,IAAS,GAKb5nF,KAAK+jJ,SAASqi2B,MAAarm/B,GAAMA,QACjCC,KAAK+jJ,SAASqi2B,IAAWrm/B,GAAMA,MAC/B6nF,IAAS,WAIZhM,cAAiBsvnB,kBAAmC,UAAftvnB,GAAM15D,KAAkB,CAClE,MAAM21nC,GAAcj8jC,GAAMt4E,aAAa,gBAAkBs4E,GAAMt4E,aAAa,SACxEvD,GAAMA,OACFC,KAAK+jJ,SAASqi2B,MAAayxJ,KAC3B73oC,KAAK+jJ,SAASqi2B,IAAWyxJ,GACzBjwjC,IAAS,QAKb5nF,KAAK+jJ,SAASqi2B,MAAarm/B,GAAMA,QACjCC,KAAK+jJ,SAASqi2B,IAAWrm/B,GAAMA,MAC/B6nF,IAAS,GAGjB,OAAOA,EACX,CACAkwjC,yCAAyCC,IACrC,MAAMC,GAAuBjioC,OAAOiioC,qBACpC,GAAKA,IAAyBA,GAAqBC,aAAgBD,GAAqBC,YAAYC,kBAIpG,WAAWv2oC,MAAO3B,KAAK+jJ,SACnB,GAAI/jJ,KAAK+jJ,SAAS3pI,eAAezY,IAAM,CACnC,MAAMysJ,GAAWpuJ,KAAK+jJ,SAASpiJ,IAC3BysJ,KAAa2p/B,GAAiBp2oC,KAC9B3B,KAAKm4oC,wCAAwCx2oC,GAAKysJ,GAAQ,CAItE,UAAWzsJ,MAAOo2oC,GACd,GAAIA,GAAiB39nC,eAAezY,KAAQo2oC,GAAiBp2oC,IAAM,CAC/D,IAAIy2oC,GAAmBp4oC,KAAK+jJ,SAAS3pI,eAAezY,IACpD,IAAKy2oC,GAAkB,CACnB,MAAMhyJ,GAAUz/+B,OAAOiY,KAAK5e,KAAK+jJ,UAAUt0D,KAAMvpF,IAAMA,KAAMvE,IAAOuE,GAAE04G,SAAS,IAAMj9G,KACjFyk/B,KACAgyJ,GAAmBp4oC,KAAK+jJ,SAAS3pI,eAAegs+B,IAAO,CAG1DgyJ,IACDp4oC,KAAKm4oC,wCAAwCx2oC,GAAK,KAAI,EAItE,CACAw2oC,wCAAwCx2oC,GAAKysJ,IACzC,MAAM8yuB,GAASlh4B,KAAKq4oC,qBAAqB12oC,IACzC,GAAIu/3B,GAAQ,CACRA,GAAOzhzB,QAASn6E,KACZ,MAAMgzoC,GAAchzoC,GAAEhC,aAAa,gBAAkBgC,GAAEhC,aAAa,SACpEgC,GAAEm9E,QAAU61jC,KAAgBlq/B,KAEhC,MAAMmq/B,GAAoB,IAAIjq8B,YAAY,oBAAqB,CAC3D3lC,OAAQva,KAEZ8yuB,GAAO,GAAGv+rB,cAAc418B,GAAiB,KAExC,CACD,MAAMC,GAAUx4oC,KAAKy4oC,wBAAwB92oC,IAC7C,GAAI62oC,GAAS,CACT,MAAME,GAAY14oC,KAAKy2oC,cAAc+B,IACrC,GAAIE,GAAW,CACX,GAAIA,cAAqBxtc,kBAAuC,aAAnBwtc,GAAUx2nC,KAAqB,CACxE,IAAIo2nC,GAAcI,GAAUp1oC,aAAa,UAAYo1oC,GAAUp1oC,aAAa,iBAAkB,IAC7E,IAAb8qJ,KAAkC,IAAbA,MACrBkq/B,IAAc,GAElBI,GAAUj2jC,QAAU61jC,KAAgBlq/B,QAE/Bsq/B,cAAqBztc,kBAC1BjrsB,KAAK24oC,oBAAoBD,GAAWtq/B,IAIpCsq/B,GAAU34oC,MAAQquJ,GAEtB,MAAMmq/B,GAAoB,IAAIjq8B,YAAY,oBAAqB,CAC3D3lC,OAAQva,KAEZsq/B,GAAU/18B,cAAc418B,GAAiB,MAGzC9goC,QAAQC,MAAM,sCAAuC/V,GAAG,EAIxE,CACAg3oC,oBAAoBD,GAAWtq/B,IAC3B,GAAIsq/B,GAAU/zjC,SAAU,CACpB,MAAQh9D,YAAY+wnC,GACdE,GAAgBxq/B,GACtB,QAASzoJ,GAAI,EAAGA,GAAIgiB,GAAQvkB,OAAQuC,KAAK,CACrC,MAAM+5E,GAAS/3D,GAAQ2D,KAAK3lB,IACxB+5E,KACAA,GAAOze,SAAW23kC,GAAcptnC,KAAMrH,IAAMA,KAAMu7D,GAAO3/E,OAAK,OAKtE24oC,GAAU34oC,MAAQquJ,EAE1B,CACAqq/B,wBAAwBpnkC,IACpB,GAA0D,IAAtD1qE,OAAOk+N,QAAQ7kO,KAAKw2oC,uBAAuBpzoC,OAE3C,OAEJ,MAAMy1oC,GAAkBlyoC,OAAOk+N,QAAQ7kO,KAAKw2oC,uBAAuBtrnC,OAAQizJ,IAAUA,GAAM,KAAO9sG,IAAa8sG,GAAM,GAAGv/D,SAAS,IAAMvtC,KACvI,GAAIwnkC,GAAgBz1oC,OAAS,EACzBqU,QAAQrE,IAAK,mDAAkDi+D,yDAAiEwnkC,GAAgB35jC,IAAKxrE,IAAMA,GAAE,KAC7J+D,QAAQrE,IAAI,uHAAyHyloC,GAAgB,GAAG,SAAE,GAE1H,IAA3BA,GAAgBz1oC,OAErB,YADAqU,QAAQrE,IAAI,2BAA6Bi+D,IAG7C,OAAOwnkC,GAAgB,GAAG,EAC9B,CACAR,qBAAqBhnkC,IACjB,MAAMwnkC,GAAkBlyoC,OAAOk+N,QAAQ7kO,KAAK02oC,cAAcxrnC,OAAQizJ,IAAUA,GAAM,GAAGv/D,SAAS,IAAMvtC,KAAc8sG,GAAM,KAAO9sG,IAC/H,OAA+B,IAA3BwnkC,GAAgBz1oC,OACT,MAEPy1oC,GAAgBz1oC,OAAS,IACzBqU,QAAQrE,IAAI,+FAAgGyloC,GAAgB35jC,IAAKuuvB,IAAUA,GAAM,KACjJh2zB,QAAQrE,IAAI,gHAAkHyloC,GAAgB,GAAG,KAE9IA,GAAgB,GAAG,GAC9B,EAGJ,IAAIC,GAAc,OAAdA,OAAc,IAECA,GAAeC,SAAa,GAAM,UACjDD,GAAeA,GAAe9gN,KAAU,GAAK,OAC7C8gN,GAAeA,GAAeE,OAAY,GAAK,SAC/CF,GAAeA,GAAeG,QAAa,GAAK,UAChDH,GAAeA,GAAeI,YAAiB,GAAK,cACpDJ,GAAeA,GAAeK,OAAY,GAAK,SAP/CL,IAAc,GAAC,IAUbM,GAAsB,MAA5B,MAAMA,GACFh9oC,cAEI4D,KAAKq5oC,YAAc,IAAI985B,IACvBv8O,KAAKs5oC,aAAehI,GAAiBI,GAAkBoC,aAC3D,EAEJsF,UAAuB10oC,UAAI,SAAApI,IAAA,WAAAA,IAAwF88oC,GAAsB,EACzIA,GAAuBx02B,WA9ZuFvqS,MAAE,CAAAsiJ,MA8ZOy8/B,GAAsB30oC,QAAtB20oC,GAAsB10oC,UAAAk1I,WAAc,SARrJw//B,EAAsB,KAgB5B,MAAMG,GACFn9oC,cACI4D,KAAKw5oC,iBAAmB,IAAIj95B,GAChC,CACAk95B,aAAa7hoC,GAAM+P,GAAU,CAAC,GAC1BA,GAAU,IACHA,GACH+xnC,yBAAyB,GAE7B,MAAM9w9B,GAAehxK,GAAK7T,KAAK,MAAQ,KACvC,OAAO/D,KAAKyvF,KAAKm5F,GAAcjhK,GACnC,CACA8nE,KAAK73E,GAAM+P,GAAU,CAAC,GAClB,GAAKgynC,GAA8BC,gCAK9B,CACD,MAAMC,GAAuB5iiC,SAASioB,eAAe,oBACjD26gC,KACAA,GAAqBp3jC,QAAU96D,GAAQmynC,eAAgB,GAE3D,MAAMC,GAAgB9iiC,SAASioB,eAAe,aAC1C66gC,KACAA,GAAch6oC,MAAQ4nB,GAAQqynC,WAAa,IAE/C,MAAMC,GAA0BhjiC,SAASioB,eAAe,mBACpD+6gC,KACAA,GAAwBx3jC,QAAU96D,GAAQ0hmB,cAAe,GAE7D,MAAM6whB,GAAoBjjiC,SAASioB,eAAe,iBAC9Cg7gC,KACAA,GAAkBz3jC,QAAU96D,GAAQwynC,YAAa,GAErD,MAAMC,GAAqBnjiC,SAASioB,eAAe,kBAC/Ck7gC,KACAA,GAAmB33jC,QAAU96D,GAAQ0ynC,aAAc,GAEvD,MAAMC,GAA4BrjiC,SAASioB,eAAe,qBACtDo7gC,KACAA,GAA0B73jC,QAAU96D,GAAQ4ynC,gBAAiB,GAEjE,MAAMC,GAAsB7ynC,GAAQ+xnC,yBAA2B9hoC,GAAKskF,SAAS,QAAS,EAChFu+iC,GAAkCxjiC,SAASioB,eAAe,2BAC5Du7gC,KACAA,GAAgCh4jC,QAAU+3jC,IAE9C,MAAME,GAA8BzjiC,SAASioB,eAAe,uBACxDw7gC,KACAA,GAA4Bj4jC,SAAU,GAE1C,MAAMk4jC,GAAsB1jiC,SAASioB,eAAe,aAChDy7gC,KACAA,GAAoBl4jC,QAAU96D,GAAQiznC,cAAe,GAEzD,MAAMC,GAAaL,GAAsBvjiC,SAASioB,eAAe,sBAAwBjoB,SAASioB,eAAe,aACjH,OAAI27gC,IACIA,cAAsBtD,qBACtBsD,GAAW96oC,MAAQ6X,GAEnBijoC,GAAW5+5B,UAAU7gD,OAAO,UAC5BnkF,SAASioB,eAAe,cAAc+8G,UAAU5sO,IAAI,UACpD4nG,SAASioB,eAAe,6BAA6B+8G,UAAU7gD,OAAO,UACtEnkF,SAASioB,eAAe,wBAAwB+8G,UAAU7gD,OAAO,WAG5Dy/8B,cAAsB3vc,mBAC3B2vc,GAAW96oC,MAAQ6X,GAEnBijoC,GAAW5+5B,UAAU7gD,OAAO,UAC5BnkF,SAASioB,eAAe,uBAAuB+8G,UAAU5sO,IAAI,UAC7D4nG,SAASioB,eAAe,6BAA6B+8G,UAAU5sO,IAAI,UACnE4nG,SAASioB,eAAe,wBAAwB+8G,UAAU5sO,IAAI,WAGlEwroC,GAAWl48B,cAAc,IAAI/nB,MAAM,WAC5B,IAIPnjK,QAAQC,MAAM,4EACP,GAnEXD,eAAQC,MAAM,2EACP,CAqEf,CACAojoC,WACI,GAAKnB,GAA8BC,gCAK9B,CACD,MAAMjr0B,GAAS13N,SAASioB,eAAe,YACvC,QAAIyvM,KACAA,GAAOp/N,SACA,EAEJ,CATP93F,eAAQC,MAAM,+EACP,CAUf,CACAqjoC,eACI,GAAKpB,GAA8BC,gCAK9B,CACD,MAAMjr0B,GAAS13N,SAASioB,eAAe,gBACvC,QAAIyvM,KACAA,GAAOp/N,SACA,EAEJ,CATP93F,eAAQC,MAAM,mFACP,CAUf,CACAwilB,MAAM8gjB,IACF,MAAMhD,GAAuBjioC,OAAOiioC,qBAC9BiD,KAAiBlloC,OAAOmloC,oBAAyBF,GAClDC,KACID,KACDA,GAAa,CAAC,GAElBh7oC,KAAKm7oC,cAAcH,KAEvBjloC,OAAOqloC,WACFH,IACDjD,GAAqBqD,SAAS1n5B,GAAG,aAAc,KAC3C3zP,KAAKs7oC,kBAAiB,EAGlC,CACAA,mBACIvloC,OAAOmloC,uBAAuBz0oC,EAC9BsP,OAAOwloC,uBAAuB90oC,CAClC,CACA00oC,cAAcH,IACV,MAAMhD,GAAuBjioC,OAAOiioC,qBACpCjioC,OAAOmloC,kBAAwBtzgC,IAAS5nI,KAAKk7oC,kBAAkBtzgC,GAAMozgC,IACrEjloC,OAAOwloC,kBAAuBv7oC,KAAKu7oC,kBAAkBvD,GAAqBwD,WAAYR,GAC1F,CACAO,kBAAkBE,GAAW/qwB,IACzB,IAAItzS,GAAS,EACb,QAASwqC,GAAO,EAAGA,IAAQ6zgC,GAAW7zgC,KAC9B5nI,KAAKk7oC,kBAAkBtzgC,GAAM8oQ,KAC7BtzS,KAGR,OAAOA,EACX,CACA89iC,kBAAkBQ,GAAWV,IACzB,MAAMpzgC,GAAO8zgC,GAAY,EAiBzB,QAhBIV,GAAW3k/B,MACPzuB,GAAOozgC,GAAW3k/B,MAItB2k/B,GAAW37jC,IACPuoD,GAAOozgC,GAAW37jC,IAItB27jC,GAAWt30B,UACDs30B,GAAWt30B,SACfl4S,KAAM/e,IAAMA,KAAMm7H,KAIxBozgC,GAAWW,WACNX,GAAWW,SAASnwnC,KAAM/e,IAAMA,KAAMm7H,IAKnD,CACMg0gC,eAAe3ymC,IAAY,SAAA04M,KAAA,YAM7B,MAAMk65B,gBALuB9loC,OAAOiioC,qBACKC,YACV6D,QAAQ7ymC,KACN8ymC,kBAAkB9wnC,MAC9CC,OAAQo6N,KAAUA,GAAKpjO,MAE5B,IAAIy+sB,GAAOhypB,OAAOkkc,iBACd0uN,GAAO5ypB,OAAOkkc,iBACd+9J,GAAOjimB,OAAOwivB,iBACd3vF,GAAO7ypB,OAAOwivB,iBACd6qV,GAAW,EACXC,GAAW,EACXrkoC,GAAO,GACPsmK,GAAQ,IAAIn7J,MAChB,QAASpd,GAAI,EAAGA,GAAIk2oC,GAASz4oC,OAAQuC,KAAK,CACtC,MAAMu2oC,GAAiBL,GAASl2oC,IAChC,IAAKu2oC,GAAeC,OAAQ,CACxB,MAAMn3oC,GAAIk3oC,GAAerynC,UAAU,GAC7B5kB,IAAKi3oC,GAAerynC,UAAU,GAC9B1B,GAAQ+znC,GAAe/znC,MACvB2wF,GAASojiC,GAAepjiC,OAC9B6nnB,GAAO11tB,KAAKnL,IAAI6guB,GAAM37tB,IACtBu8tB,GAAOt2tB,KAAKnL,IAAIyhuB,GAAMt8tB,IACtB2rqB,GAAO3lqB,KAAKnK,IAAI8vqB,GAAM5rqB,GAAImjB,IAC1Bq5sB,GAAOv2tB,KAAKnK,IAAI0guB,GAAMv8tB,GAAI6zG,IAC1BlhG,IAAQskoC,GAAe9zoC,IACI,QAAvB8zoC,GAAevguB,KACfsguB,KAEuB,QAAvBC,GAAevguB,KACfqguB,KAIR,GADYr2oC,KAAMk2oC,GAASz4oC,OAAS,GAAK84oC,GAAeC,OAC7C,CAEP,MAAMv89B,GAAO,CACTk6P,UAFckiuB,GAAW,EAAKC,GAAW,EAAI,OAAS,MAASA,GAAW,EAAI,WAAQx1oC,EAGtFzB,EAAG27tB,GACH17tB,EAAGs8tB,GACHp5sB,MAAOyopB,GAAO+vD,GACd7nnB,OAAQ0onB,GAAOD,GACf3ptB,KAAMA,GAAKqxE,QAEfi1F,GAAMn/J,KAAK6gK,IACX+gjB,GAAOhypB,OAAOkkc,iBACd0uN,GAAO5ypB,OAAOkkc,iBACd+9J,GAAOjimB,OAAOwivB,iBACd3vF,GAAO7ypB,OAAOwivB,iBACd6qV,GAAW,EACXC,GAAW,EACXrkoC,GAAO,IAGf,OAAOsmK,EAAM,EAvDgB,EAwDjC,CACMk+9B,cAAcnzmC,IAAY,IAAAxiB,GAAAzmB,KAAA,SAAA2hP,KAAA,YAI5B,MAAM065B,gBAHuBtmoC,OAAOiioC,qBACKC,YACV6D,QAAQ7ymC,KACN8ymC,kBAAkB9wnC,MACnD,OAAOxE,GAAK61nC,sBAAsBD,GAAc,EALpB,EAMhC,CACAC,sBAAsBC,IAClB,OAAKA,GAGEA,GACFrxnC,OAAQo6N,KAAUA,GAAKpjO,MACvBg9D,IAAKomK,IAAUA,GAAK625B,OAAS725B,GAAKl9O,IAAM,KAAOk9O,GAAKl9O,KACpDrE,KAAK,IALC,EAMf,CACAy4oC,eAAevzmC,GAAYqle,GAAO01N,GAAYy4a,GAA2B,WAKrE,OAJ6B1moC,OAAOiioC,qBACKC,YACT6D,QAAQ7ymC,IAErBw4E,KADGi7hC,IAAYx6hC,QAAQC,QAAQniH,KAAKqnwB,KAAKq1Y,GAASpuoB,GAAO01N,GAAYy4a,KAE5F,CACAp1Y,KAAKq1Y,GAASpuoB,GAAO01N,GAAYy4a,GAA2B,WACxD,IAAIE,GAAa,EACbruoB,GAAMA,MACNquoB,GAAaruoB,GAAMA,MAEdA,GAAMnmf,MACXw0nC,GAAaruoB,GAAMnmf,MAAQu0nC,GAAQp/c,YAAY,CAAEhvL,MAAO,IAAKnmf,MAExDmmf,GAAMx1Z,SACX6jiC,GAAaruoB,GAAMx1Z,OAAS4jiC,GAAQp/c,YAAY,CAAEhvL,MAAO,IAAKx1Z,QAElE,MAAMmyY,GAAWyxpB,GAAQp/c,YAAY,CACjChvL,MAAOquoB,MAEH1/oC,OAAKi3X,WAAWl0X,KAAK48oC,mBAAmB3xpB,GAAS9ie,MAAO8ie,GAASnyY,QACnE+jiC,GAAe5xpB,GAASv9e,QAS9B,OAFmBgvoC,GAAQrm1B,OANL,CAClBym1B,cAAe7/oC,GACfguf,SAAU4xpB,GACV74a,cACAy4a,8BAIcpu5B,QAAQ5sI,KADHs7hC,IAAM76hC,QAAQC,QAAQ+xQ,GAAO2R,aAExD,CACA+2wB,mBAAmBz0nC,GAAO2wF,IACtB,MAAMo7Q,GAASj9Q,SAAS6sE,cAAc,UAChC7mL,GAAMi3X,GAAOp5C,WAAW,KAAM,CAAEsxc,OAAO,IAC7C,IAAKnvxB,GAED,MAAM,IAAI+J,MAAM,kCAEpBktX,UAAO/rW,MAAQA,GACf+rW,GAAOp7Q,OAASA,GAChBo7Q,GAAOl9I,MAAM7uN,MAAS,GAAEA,OACxB+rW,GAAOl9I,MAAMl+H,OAAU,GAAEA,OAClB,CAAE77G,OAAKi3X,UAClB,CACM8oxB,2BAA2B,SAAAr75B,KAAA,YAE7B,aAD6B5rO,OAAOiioC,qBACFr4b,QAAS,EAFd,EAGjC,CACMs9b,YAAYC,IAAoB,GAAM,SAAAv75B,KAAA,YACxC,MAAMq25B,GAAuBjioC,OAAOiioC,qBAC9BmF,GAAMnF,GAAqBC,YAG3B76iC,GAAS,GACf,QAASz3F,GAAI,EAAGA,IAAKw3oC,IAAKC,SAAUz3oC,KAAK,CAErC,MAAM0jnB,SAAyC8zhB,GAAIrB,QAAQn2oC,WACjC0jnB,GAAYg0hB,kBAEjCnynC,OAAQ1kB,IAAoB,WAAdA,GAAE82oC,SAChBp+jC,IAAK14E,SAAYA,MACjBi5E,QAASj5E,KAGV,MAAM+2oC,GAAYl0hB,GAAYi0E,YAAY,CAAEhvL,MAZnC,qBAYsDkvoB,2BAA2Bh3oC,GAAEwlU,MAE5F,GAAIkx0B,IAAqB12oC,GAAE6qE,UACvB,IACI,GAAI7qE,GAAEqxoC,YAAa,CACf,MAAMlypB,GAAeqypB,GAAqBC,YAAYC,kBAAkBrsnC,SAASrlB,GAAE8mE,GAAI9mE,GAAE6qE,UAAY,IAAM7qE,GAAEqxoC,YAAa,IAC1HrxoC,GAAEzG,MAAQ4lf,IAAc5lf,cAEnByG,GAAEi3oC,YAAa,CACpB,MAAM93pB,GAAeqypB,GAAqBC,YAAYC,kBAAkBrsnC,SAASrlB,GAAE8mE,GAAI9mE,GAAE6qE,UAAY,IAAM7qE,GAAEqqE,WAAY,IACzHrqE,GAAEzG,MAAQ4lf,IAAc5lf,UAEvB,CACD,MAAM4lf,GAAeqypB,GAAqBC,YAAYC,kBAAkBrsnC,SAASrlB,GAAE8mE,GAAI9mE,GAAE6qE,UAAW,IACpG7qE,GAAEzG,MAAQ4lf,IAAc5lf,MAEhC,OAEI,CAGRq9F,GAAOr+E,KAAK,CAAE2+nC,gBAAiBl3oC,GAAG+2oC,aAAWt0mC,WAAYtjC,IAAG,EAC/D,CAEL,OAAOy3F,EAAO,EAxC0B,EAyC5C,CAOAugjC,qBAAqBjC,IAEjB,OAD6B3loC,OAAOiioC,qBACR4F,UAAUD,qBAAqBjC,GAC/D,CACAmC,qBAGI,MAAM7F,GAAuBjioC,OAAOiioC,qBAEpC,OADiBA,GAAqB4F,UAAUE,eAAeC,mBAAmB/F,GAAqB4F,UAAUI,mBAAoBhG,GAAqB4F,UAAUK,QAAQC,GAAcC,EAE9L,CACAC,oBAAoB1C,IAEhB,MAAM2C,GADuBtooC,OAAOiioC,qBACD4F,UAAUK,OAC7C,OAAII,GAAMj7oC,OAASs4oC,IAAaA,IAAa,KAEK,IAD7B2C,GAAM3C,IACI4C,eAInC,CACAC,yBAGI,OAF6BxooC,OAAOiioC,qBACD4F,UAAUK,OAChC/ynC,OAAQ08G,IAAiC,IAAxBA,GAAK02gC,gBAAsBp/jC,IAAK0oD,IAASA,GAAKt6D,GAChF,CACAkxkC,gBAGI,OAF6BzooC,OAAOiioC,qBACD4F,UAAUK,OAChC76oC,MACjB,CACAq7oC,iCAGI,OAFY1ooC,OAAOiioC,qBACD4F,UAAUI,mBAAmBU,OACjCx/jC,IAAK0oD,IAASA,GAAKt6D,GACrC,CACAqxkC,kBACI3+oC,KAAKw5oC,iBAAiB53oC,MAC1B,CACMg9oC,aAAa,SAAAj95B,KAAA,YAEf,MAAMk95B,SADuB9ooC,OAAOiioC,qBACqB4F,UAAUkB,6BACnE,GAAID,GAGA,OAFkBA,GAAsBE,WACb7znC,OAAQ88c,IAA+B,iBAAZA,IACtC9oZ,IAAK8/jC,KACjB,MAAMnv+B,GAASgv+B,GAAsBI,SAASD,IAC9C,MAAO,CACHA,QAASA,GACTrloC,KAAMk2J,GAAOl2J,KACbs2X,QAASpgO,GAAOogO,QACpB,EAGS,EAfF,EAgBnB,CACMivwB,YAAYF,IAAS,IAAAj25B,GAAA/oP,KAAA,SAAA2hP,KAAA,YACvB,MAAMq25B,GAAuBjioC,OAAOiioC,qBAC9B6G,SAA8B7G,GAAqB4F,UAAUkB,6BACnE,GAAID,GAAuB,CACvB,IAAIzmkC,GAAYymkC,GAAsBI,SAASD,IAAS/uwB,QACxD,MAAMi1L,GAAWjud,SAASC,cAAe,aAAY8niC,QACjD95kB,KACA9sf,GAAY8sf,GAASzif,QACrByif,GAASzif,SAAWrK,IAExBymkC,GAAsBM,cAAcH,IAAU5mkC,IAC9C4/jC,GAAqBqD,SAASps0B,SAAS,wBAAyB,CAC5D3xK,OAAQyrF,GACRsF,QAASnsI,QAAQC,QAAQ08hC,KAC5B,CACJ,EAfsB,EAgB3B,CACAO,mBAAmBn2mC,GAAYo2mC,IACEtpoC,OAAOiioC,qBACA4F,UAC7B0B,sBAAsBr2mC,GAAYo2mC,GAC7C,CACAE,2BAEI,OAD6BxpoC,OAAOiioC,qBACR4F,UAAU2B,0BAC1C,CACAC,oBAAoBC,IACa1poC,OAAOiioC,qBACf4F,UAAU4B,oBAAoBC,GACvD,CACAC,wBAAwBx0nC,IACSnV,OAAOiioC,qBACf4F,UAAU8B,wBAAwBx0nC,GAC3D,EAGJ,SAASy0nC,GAAej5jC,GAAQqpT,IAC5B,UAAWh6X,OAAW,IAElB,OAEJ,MAAM6poC,GAAW7poC,OACjB,GAAI6poC,GAASrsN,aAAc,CAGvB,MAAMvn6B,GAAY4znC,GAASrsN,aAAaC,aAAa,MAAO,CACxDC,WAAaz45B,IAAUA,KAE3B0rD,GAAOrjF,UAAY2oB,GAAUyn6B,WAAW1jjB,GAAG,MAG3CrpT,GAAOrjF,UAAY0sY,EAE3B,CAEsphF,IAEhphF8vwB,GAAqB,MAA3B,MAAMA,GACFzjpC,YAAY4G,GAAUi0G,IAClBj3G,KAAKgD,SAAWA,GAChBhD,KAAKi3G,SAAWA,EACpB,CACA56G,WACI2D,KAAK8/oC,aACT,CACAA,cACI,MAAMp5jC,GAAS1mF,KAAKi3G,SAAS6sE,cAAc,SAC3Cp9F,GAAOpZ,GAAK,gBACZqykC,GAAej5jC,GAbR,yphFAcP1mF,KAAKgD,SAASu8O,YAAYv/O,KAAKi3G,SAASkpI,KAAMz5J,GAClD,CACAtH,cACI,MAAMsH,GAAS1mF,KAAKi3G,SAASioB,eAAe,iBACxCx4C,IAAUA,GAAO0zO,eACjB1zO,GAAO0zO,cAAc56E,YAAY94J,GAEzC,EAEJm5jC,UAAsBn7oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFujpC,IAt4BJxlpC,MAs4B2CA,OAt4B3CA,MAs4BoE0gU,MAAQ,EAC1L8k1B,GAAsB3jkC,UAv4BwF7hF,MAAE,CAAA6nB,KAu4BV29nC,GAAqBpjpC,UAAA,qBAAAG,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAC,GAAAC,IAAA,EAAAs/E,cAAA,IAtBrHsjkC,EAAqB,KAiCrBE,GAAsB,MAA5B,MAAMA,GACF3jpC,YAAY4G,GAAUi0G,IAClBj3G,KAAKgD,SAAWA,GAChBhD,KAAKi3G,SAAWA,EACpB,CACA56G,WACI2D,KAAK8/oC,aACT,CACAA,cACI,MAAMp5jC,GAAS1mF,KAAKi3G,SAAS6sE,cAAc,SAC3Cp9F,GAAOpZ,GAAK,gBACZqykC,GAAej5jC,GAbR,skhFAcP1mF,KAAKgD,SAASu8O,YAAYv/O,KAAKi3G,SAASkpI,KAAMz5J,GAClD,CACAtH,cACI,MAAMsH,GAAS1mF,KAAKi3G,SAASioB,eAAe,iBACxCx4C,IAAUA,GAAO0zO,eACjB1zO,GAAO0zO,cAAc56E,YAAY94J,GAEzC,EAEJq5jC,UAAuBr7oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFyjpC,IAv6BL1lpC,MAu6B6CA,OAv6B7CA,MAu6BsE0gU,MAAQ,EAC5Lgl1B,GAAuB7jkC,UAx6BuF7hF,MAAE,CAAA6nB,KAw6BT69nC,GAAsBtjpC,UAAA,sBAAAG,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAC,GAAAC,IAAA,EAAAs/E,cAAA,IAtBvHwjkC,EAAsB,KAiCtBC,EAAgC,MAAtC,MAAMA,GACF5jpC,YAAY4G,GAAUi0G,IAClBj3G,KAAKgD,SAAWA,GAChBhD,KAAKi3G,SAAWA,EACpB,CACA56G,WACI2D,KAAK8/oC,aACT,CACAA,cACI,MAAMp5jC,GAAS1mF,KAAKi3G,SAAS6sE,cAAc,SAC3Cp9F,GAAOpZ,GAAK,mBACZqykC,GAAej5jC,GAbV,6nfAcL1mF,KAAKgD,SAASu8O,YAAYv/O,KAAKi3G,SAASkpI,KAAMz5J,GAClD,CACAtH,cACI,MAAMsH,GAAS1mF,KAAKi3G,SAASioB,eAAe,oBACxCx4C,IAAUA,GAAO0zO,eACjB1zO,GAAO0zO,cAAc56E,YAAY94J,GAEzC,EAEJs5jC,UAAiCt7oC,UAAI,SAAApI,IAAA,WAAAA,IAAwF0jpC,IAx8Bf3lpC,MAw8BiEA,OAx8BjEA,MAw8B0F0gU,MAAQ,EAChNil1B,GAAiC9jkC,UAz8B6E7hF,MAAE,CAAA6nB,KAy8BC89nC,GAAgCvjpC,UAAA,iCAAAG,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAC,GAAAC,IAAA,EAAAs/E,cAAA,IAtB3IyjkC,EAAgC,KA+BhCC,EAAc,MAApB,MAAMA,IAENA,UAAepiS,GAAK,IACpBoiS,GAAeC,GAAK,IACpBD,GAAeE,GAAK,IACpBF,GAAeG,GAAK,IACpBH,GAAe7qoC,GAAK,IACpB6qoC,GAAeI,IAAM,IAPfJ,EAAc,KAQdK,GAAsB,MAA5B,MAAMA,GACFz2nC,UAAUomX,GAASswwB,IACf,OAAQtwwB,IACJ,UAAKxpY,EACD,OAAO85oC,GACX,KAAK,EACD,MAAO,YACX,KAAK,EACD,OAAOA,GACX,IAAK,iBACD,MAAO,GACX,IAAK,KACD,MAAO,iBACX,IAAK,KACD,MAAO,kBACX,IAAK,KACD,MAAO,mBACX,IAAK,KACD,MAAO,kBACX,IAAK,KACD,MAAO,eACX,IAAK,MACD,MAAO,gBAEnB,EAEJD,UAAuB57oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFgkpC,GAAsB,EACzIA,GAAuBv/jC,WAr/BuF1mF,MAAE,CAAAsf,KAAA,qBAAAuI,KAq/BCo+nC,GAAsBt2nC,MAAA,IA3BjIs2nC,EAAsB,KAgCtBE,GAA8B,MAApC,MAAMA,GACF32nC,UAAUomX,GAASswwB,IACf,OAAQtwwB,IACJ,UAAKxpY,EAEL,KAAK,EACD,MAAO,YACX,KAAK,EACD,OAAO85oC,GACX,IAAK,iBACD,MAAO,YACX,IAAK,KACD,MAAO,kBACX,IAAK,KACD,MAAO,mBACX,IAAK,KACD,MAAO,oBACX,IAAK,KACD,MAAO,mBACX,IAAK,KACD,MAAO,gBACX,IAAK,MACD,MAAO,iBAEnB,EAEJC,UAA+B97oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFkkpC,GAA8B,EACzJA,GAA+Bz/jC,WArhC+E1mF,MAAE,CAAAsf,KAAA,6BAAAuI,KAqhCSs+nC,GAA8Bx2nC,MAAA,IA3BjJw2nC,EAA8B,KAiC9BC,GAAmB,MAAzB,MAAMA,GACFrkpC,YAAY4G,GAAUi0G,GAAU+hN,IAC5Bh5T,KAAKgD,SAAWA,GAChBhD,KAAKi3G,SAAWA,GAChBj3G,KAAKg5T,WAAaA,GAClBh5T,KAAKgrY,KAAO,EACZhrY,KAAKmoB,MAAQ,cACbnoB,KAAK0gpC,IAAM,IACX1gpC,KAAK692B,GAAK,IACV792B,KAAKkgpC,GAAK,IACVlgpC,KAAKmgpC,GAAK,IACVngpC,KAAKogpC,GAAK,IACVpgpC,KAAKoV,GAAK,IACVpV,KAAKqgpC,IAAM,OACPnn1B,MAAkBl5T,KAAKg5T,cACvBh5T,KAAKmoB,MAAQ8uF,GAASi8B,KAAKyvL,YAEnC,CACI3rF,YACA,MAAQ,gCACah3O,KAAKoV,kLAULpV,KAAKqgpC,wgBAsBLrgpC,KAAKogpC,iOAaLpgpC,KAAKmgpC,mOAYLngpC,KAAKkgpC,4WAmBLlgpC,KAAKkgpC,wTAiBLlgpC,KAAKoV,uWAkBLpV,KAAKqgpC,2KASLrgpC,KAAKmgpC,uJAOLngpC,KAAK692B,kNAUL792B,KAAK0gpC,oLAU9B,CACArkpC,WACI2D,KAAK8/oC,aACT,CACA9uhC,cAGI,MAAM2vhC,GAFW3gpC,KAAKi3G,SAASi8B,KAAKyvL,YACA3iU,KAAKmoB,OACDnoB,KAAKgrY,KAAOhrY,KAAKgrY,KAAO,GAChEhrY,KAAK692B,GAAK8iS,GAAcV,EAAepiS,GACvC792B,KAAKkgpC,GAAKS,GAAcV,EAAeC,GACvClgpC,KAAKmgpC,GAAKQ,GAAcV,EAAeE,GACvCngpC,KAAKogpC,GAAKO,GAAcV,EAAeG,GACvCpgpC,KAAKoV,GAAKuroC,GAAcV,EAAe7qoC,GACvCpV,KAAKqgpC,IAAMM,GAAcV,EAAeI,IACxC,IAAI35jC,GAAS1mF,KAAKi3G,SAASioB,eAAe,mBACrCx4C,KACDA,GAAS1mF,KAAKi3G,SAAS6sE,cAAc,SACrCp9F,GAAOpZ,GAAK,kBACZqykC,GAAej5jC,GAAQ1mF,KAAKg3O,OAC5Bh3O,KAAKgD,SAASu8O,YAAYv/O,KAAKi3G,SAASkpI,KAAMz5J,KAElDi5jC,GAAej5jC,GAAQ1mF,KAAKg3O,MAChC,CACA8o6B,cACuB,gBAAf9/oC,KAAKmoB,OACLhU,WAAW,IAAMnU,KAAKgxH,cAAe,EAE7C,CACA5xC,cACI,MAAMsH,GAAS1mF,KAAKi3G,SAASioB,eAAe,mBACxCx4C,IAAUA,GAAO0zO,eACjB1zO,GAAO0zO,cAAc56E,YAAY94J,GAEzC,EAEJ+5jC,UAAoB/7oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFmkpC,IAruCFpmpC,MAquCuCA,OAruCvCA,MAquCgE0gU,MAruChE1gU,MAquCqF2gU,OAAW,EAC9Myl1B,GAAoBvkkC,UAtuC0F7hF,MAAE,CAAA6nB,KAsuCZu+nC,GAAmBhkpC,UAAA,sBAAAC,OAAA,CAAAsuY,KAAA,OAAA7iX,MAAA,SAAA5nB,SAAA,CAtuCTlG,OAAEuC,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAC,GAAAC,IAAA,IA2hC1GwjpC,EAAmB,KA2NnBG,GAA0B,MAAhC,MAAMA,GACFxkpC,cACI4D,KAAKqroC,wBAA0B,CACnC,CACIvyhC,aAEA,OADU,GAAK94G,KAAKqroC,wBACZ,IACZ,EAEJuV,UAA2Bl8oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFskpC,GAA0B,EACjJA,GAA2B1kkC,UAhwCmF7hF,MAAE,CAAA6nB,KAgwCL0+nC,GAA0BnkpC,UAAA,0BAAAC,OAAA,CAAA2uoC,wBAAA,2BAAAzuoC,MAAA,GAAAC,KAAA,GAAAC,OAAA,ujGAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAhwCvB3C,MAAE,UAAFA,CAgwCwM,UAhwCxMA,CAgwCwM,aAhwCxMA,CAgwCwM,YAhwCxMA,MAAE,gBAAFA,sBAAE,WAAFA,MAAE,YAAFA,wBAAE,aAAFA,CAgwC+gC,YAhwC/gCA,MAAE,sBAAFA,sBAAE,YAAFA,MAAE,aAAFA,wBAAE,cAAFA,CAgwCkiD,cAhwCliDA,MAAE,kBAAFA,sBAAE,YAAFA,MAAE,cAAFA,wBAAE,eAAFA,CAgwCkxE,cAhwClxEA,MAAE,aAAFA,sBAAE,aAAFA,MAAE,cAAFA,0BAAE,YAAFA,CAgwC+pG,aAhwC/pGA,MAAE,aAAFA,MAAE,eAAFA,CAgwC8gH,cAhwC9gHA,MAAE,2BAAFA,sBAAE,aAAFA,MAAE,aAAFA,CAgwCkqI,cAhwClqIA,iBAgwC8wI,EAAA2C,KAhwC9wI3C,MAAE,SAAA4C,GAAA67G,QAAFz+G,MAAE,GAAFA,MAAE,OAAA4C,GAAAouoC,yBAAFhxoC,MAAE,GAAFA,MAAE,OAAA4C,GAAAouoC,yBAAFhxoC,MAAE,GAAFA,MAAE,OAAA4C,GAAAouoC,yBAAFhxoC,MAAE,GAAFA,MAAE,OAAA4C,GAAAouoC,yBAAFhxoC,MAAE,GAAFA,MAAE,OAAA4C,GAAAouoC,yBAgwC2gH,EAAA3kjC,OAAA,yMAVrnHk6jC,EAA0B,KAmB1BC,GAA0B,MAAhC,MAAMA,GACFzkpC,cACI4D,KAAKoroC,oBAAqB,EAC1BproC,KAAKqroC,wBAA0B,EAC/BrroC,KAAK8gpC,aAAexP,GAAiBI,GAAkBoC,cACvD9zoC,KAAKkroC,eAAiB,IAAIj8iC,aACfl5E,OAAW,MAClBA,OAAOgroC,2BAA6B,IAAM/gpC,KAAK+gpC,6BAC/ChroC,OAAOiroC,sBAAwB,CAACC,GAAkBC,GAAa5zkC,GAAIw1D,GAAWq+gC,KAA0BnhpC,KAAKohpC,gBAAgBH,GAAkBC,GAAa5zkC,GAAIw1D,GAAWq+gC,IAEnL,CACIE,4BACA,OAAIrhpC,KAAK8gpC,aAAe,MACb9gpC,KAAKshpC,wBAETthpC,KAAKuhpC,uBAChB,CACIvr1B,UACA,IAAIA,GAAM,EACV,OAAKh2T,KAAKoroC,qBACNp10B,GAAM,GAAKh2T,KAAKqroC,wBACJ,KAARr10B,KACAA,GAAM,KAGN,GAAEA,MACd,CACA52O,cACIp/E,KAAKkhpC,iBAAcz6oC,CACvB,CACAs6oC,6BACI,IAAK/gpC,KAAKqhpC,sBACN,OAAO,EAEX,MAAM/kpC,GAAI0D,KAAKqhpC,sBAAsBx/oC,cACrC,QAASvF,MAAOA,GAAE+G,WAAa/G,GAAE+G,UAAUD,OAAS,CACxD,CACAg+oC,gBAAgBH,GAAkBC,GAAa5zkC,GAAIw1D,GAAWq+gC,IAC1DnhpC,KAAKkhpC,YAAcA,GAGnB,MAAMhyzB,GAFWlvV,KAAKqhpC,sBAECx/oC,cAAcwB,UAChCgd,MAAM,sBACNtc,KAAK,IACLsc,MAAM,eACNtc,KAAK,IACLsc,MAAM,oBACNtc,KAAK,IAEJy9oC,GAAe,GAAEP,GAAiBQ,YADf,MAEnBC,GAAgB,GAAET,GAAiBU,aAFhB,MAGnBC,GAAU1yzB,GAAM7uU,MAAM,iBAAiBtc,KAAKy9oC,IAAanhoC,MAAM,kBAAkBtc,KAAK29oC,IAAcrhoC,MAAM,eAAetc,KAAKupE,IAC9Hu0kC,GAAa7hpC,KAAK8hpC,sBAAsBF,IAC9CC,GAAW5l6B,UAAU7gD,OAAO,uBAC5B,MAAM+vqB,GAAS02S,GAUf,IAAIhpiC,GACJ,GAVAsyvB,GAAO/5tB,KAAO8vgC,GAAYa,aAAc,SAAQz0kC,MAChD6zkC,GAAsB1/hC,KAAMiwD,KACxBy5rB,GAAO7w0B,MAAQo3I,KAEnBy5rB,GAAOw5B,QAAU,KACbu8Q,GAAYt5gC,KAAOt6D,IACZ,GAEX2zkC,GAAiB91S,OAASA,GAEtBnr2B,KAAK8gpC,aAAe,MAAO,CAC3B,MAAMkB,GAAOH,GAAW1+oC,uBAAuB,mBAAmB,GAClE89oC,GAAiBe,KAAOA,QAGxBnpiC,GAAMgpiC,GAAW72tB,qBAAqB,OAAO,GASjD,OAPAi2tB,GAAiBv8wB,IAAMm9wB,GAAW1+oC,uBAAuB,aAAa,GACtE2/H,GAAUy8G,YAAYsi6B,IAMtB7hpC,KAAKkroC,eAAexuiC,KALQ,CACxBuljC,UAAWJ,GACX/+gC,UAAWA,GACXo/gC,OAAQ50kC,KAGLurC,EACX,CACAspiC,eAAej51B,IACX,UAAWnzS,OAAW,IAElB,OAAOmzS,GAEX,MAAM021B,GAAW7poC,OACjB,OAAI6poC,GAASrsN,aAGSqsN,GAASrsN,aAAaC,aAAa,MAAO,CACxDC,WAAaz45B,IAAUA,KAEVy45B,WAAWvqoB,IAGrBA,EAEf,CACA441B,sBAAsBM,IAClB,MAAM19wB,GAAMztR,SAAS6sE,cAAc,OAC7B8wwB,GAAc507B,KAAKmipC,eAAeC,GAAWn5jC,QACnDy7S,UAAIrhY,UAAYux7B,GAETlwjB,GAAIx+F,UACf,CACA1kS,UAAUC,IACa,cAAfA,GAAMqvE,KACF9wE,KAAKkhpC,cACDz/oC,GAAM8sU,SAAW9sU,GAAMitU,QACvB1uU,KAAKkhpC,YAAYt5gC,KAAO5nI,KAAKkhpC,YAAY1F,WAEpCx7oC,KAAKkhpC,YAAYt5gC,KAAO5nI,KAAKkhpC,YAAY1F,aAC9Cx7oC,KAAKkhpC,YAAYt5gC,KAAO5nI,KAAKkhpC,YAAYt5gC,KAAO,GAEpDnmI,GAAMnC,kBAGU,YAAfmC,GAAMqvE,MACP9wE,KAAKkhpC,cACDz/oC,GAAM8sU,SAAW9sU,GAAMitU,QACvB1uU,KAAKkhpC,YAAYt5gC,KAAO,EAEnB5nI,KAAKkhpC,YAAYt5gC,KAAO,IAC7B5nI,KAAKkhpC,YAAYt5gC,KAAO5nI,KAAKkhpC,YAAYt5gC,KAAO,GAEpDnmI,GAAMnC,iBAGlB,EAEJuhpC,UAA2Bn8oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFukpC,GAA0B,EACjJA,GAA2B3kkC,UA94CmF7hF,MAAE,CAAA6nB,KA84CL2+nC,GAA0BpkpC,UAAA,0BAAA6gF,UAAA,SAAAtgF,GAAAC,IA94CrB,GA84CqB,EAAAD,KA94CvB3C,KAAEyhF,EAAA,GAAFzhF,KAAEyyF,EAAA,MAAA9vF,GAAA,KAAAugF,GAAFljF,MAAEkjF,GAAFljF,WAAE4C,GAAAqkpC,wBAAA/jkC,GAAAC,OAAFnjF,MAAEkjF,GAAFljF,WAAE4C,GAAAskpC,wBAAAhkkC,GAAAC,OAAA,EAAA9gF,OAAA,CAAAiuoC,gBAAA,kBAAAS,mBAAA,qBAAAC,wBAAA,2BAAA5tiC,QAAA,CAAAytiC,eAAA,kBAAAzutB,mBAAAl9U,GAAA3iG,MAAA,GAAAC,KAAA,EAAAC,OAAA,mfAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAAF3C,MAAEklG,IAAFllG,MAAE,WAAFA,MAAE,EAAAqwoC,GAAA,aAAFrwoC,MAAE,EAAAwwoC,GAAA,aAAFxwoC,MAAE,WAAFA,MAAE,mBAAAuF,IAAA,OA84C08B3C,GAAAuE,UAAA5B,GAAiB,GA94C79BvF,cAAE,UAAFA,CA84CyhC,UA94CzhCA,CA84CyhC,WA94CzhCA,cAAE,EAAAywoC,GAAA,yBAAFzwoC,aAAE,EAAA0woC,GAAA,yBAAF1woC,QA84C8xD,EAAA2C,KA94C9xD3C,MAAE,MAAA4C,GAAA+4T,KAAF37T,MAAE,GAAFA,MAAE,OAAA4C,GAAA6jpC,aAAA,OAAFzmpC,MAAE,GAAFA,MAAE,OAAA4C,GAAA6jpC,aAAA,OA84CqyB,EAAAzkkC,aAAA,CAA+hCC,KAAiFA,QArI//DukkC,EAA0B,KAyJ1BwB,GAAmB,MAAzB,MAAMA,GACFjmpC,YAAY+0U,GAAYxsK,IACpB3kK,KAAKmxU,WAAaA,GAClBnxU,KAAK2kK,IAAMA,GACX3kK,KAAK0voC,gBAAiB,EACtB1voC,KAAKqroC,wBAA0B,EAC/BrroC,KAAKssoC,mBAAoB,EACzBtsoC,KAAKkroC,eAAiB,IAAIj8iC,MAC1BjvF,KAAKoroC,oBAAqB,CAC9B,CACAkX,2BAEI,MAAM1z0B,GADU5uU,KAAKmxU,WAAWtvU,cACR44U,iBAAiB,UACzC,IAAIw1D,GAAU,EACd,QAAS5uT,GAAQ,EAAGA,GAAQutP,GAAQxrU,OAAQi+E,KAC9ButP,GAAQtjT,KAAK+1D,IAChBs1b,QACH1mI,KAGRjwY,KAAKoroC,mBAAqBn7vB,IAAW,EACrCjwY,KAAK2kK,IAAIktL,cACb,EAEJwwzB,UAAoB39oC,UAAI,SAAApI,IAAA,WAAAA,IAAwF+lpC,IA17CFhopC,MA07CuCA,OA17CvCA,MA07CiEA,OAAoB,EACnMgopC,GAAoBnmkC,UA37C0F7hF,MAAE,CAAA6nB,KA27CZmgoC,GAAmB5lpC,UAAA,kBAAAC,OAAA,CAAAyuoC,mBAAA,qBAAAuE,eAAA,iBAAArE,wBAAA,0BAAAiB,kBAAA,oBAAAqD,cAAA,gBAAAhF,gBAAA,mBAAAltiC,QAAA,CAAAytiC,eAAA,kBAAAzutB,mBAAAj2T,GAAA5pH,MAAA,EAAAC,KAAA,EAAAC,OAAA,oQAAAC,SAAA,SAAAC,GAAAC,IAAomC,GAApmC,EAAAD,KA37CT3C,cAAE,SAAFA,MAAE,EAAA2woC,GAAA,oBAAF3woC,cAAE,EAAA4woC,GAAA,yBAAF5woC,QA27C6mC,EAAA2C,GAAA,OAAAkzW,GA37C7mC71W,MAAE,GAAFA,MAAE,GAAFA,MAAE,mBAAA4C,GAAA0yoC,cAAA1yoC,GAAA0yoC,cAAAz/xB,GA27Cwb,CAAC,EAAA7zR,aAAA,CAA0tBukkC,GAA4GC,GAAgMvkkC,QAzBziD+lkC,EAAmB,KA6CnBE,GAAyB,MAA/B,MAAMA,GACFnmpC,cACI4D,KAAKssoC,mBAAoB,CAC7B,EAEJiW,UAA0B79oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFimpC,GAAyB,EAC/IA,GAA0BrmkC,UAr9CoF7hF,MAAE,CAAA6nB,KAq9CNqgoC,GAAyB9lpC,UAAA,yBAAAC,OAAA,CAAA4voC,kBAAA,qBAAA1voC,MAAA,EAAAC,KAAA,EAAAC,OAAA,qVAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAr9CrB3C,MAAE,cAAFA,MAAE,wBAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,oBAAFA,WAq9C8lB,EAAA2C,IAr9C9lB3C,YAAE,IAAA4C,GAAAqvoC,kBAAA,IAq9CgN,EAAAjwjC,aAAA,CAA2mBikkC,IAAsB55jC,OAAA,gQAN37B67jC,EAAyB,KAczBC,GAAsB,MAA5B,MAAMA,GACFpmpC,cACI4D,KAAKusoC,oBAAiB9loC,EACtBzG,KAAKwsoC,eAAY/loC,CACrB,EAEJ+7oC,UAAuB99oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFkmpC,GAAsB,EACzIA,GAAuBtmkC,UAp+CuF7hF,MAAE,CAAA6nB,KAo+CTsgoC,GAAsB/lpC,UAAA,sBAAAC,OAAA,CAAA6voC,eAAA,iBAAAC,UAAA,aAAA5voC,MAAA,EAAAC,KAAA,EAAAC,OAAA,oeAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAp+Cf3C,MAAE,cAAFA,MAAE,wBAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,UAAFA,WAo+CsyB,EAAA2C,IAp+CtyB3C,YAAE,IAAA4C,GAAAsvoC,eAAAtvoC,GAAAuvoC,UAAA,gBAo+CyP,EAAAnwjC,aAAA,CAAqsBikkC,IAAsB55jC,OAAA,sKAP9jC87jC,EAAsB,KAiBtBC,GAAqB,MAA3B,MAAMA,GACFrmpC,YAAYq6O,IACRz2O,KAAKy2O,oBAAsBA,GAC3Bz2O,KAAK0ipC,kBAAmB,EACxB,MAAM7ljC,GAAe78F,KAAKy2O,oBAAoB4i6B,YAAY9snC,UAAU,KAChEvsB,KAAK2ipC,cACL9ljC,GAAapc,aAAY,EAEjC,CACAmikC,YACiC7soC,OAAOiioC,qBACfqD,SAASps0B,SAAS,YAC3C,CACA0z0B,cACiC5soC,OAAOiioC,qBACfqD,SAAS1n5B,GAAG,gBAAkBlyP,IAAUzB,KAAK6ipC,cAAcphpC,IACpF,CACAohpC,cAAcphpC,IACVzB,KAAK0ipC,iBAAmBjhpC,GAAMwnC,YAAc,EAC5CjpC,KAAK2uU,OAAO9sU,cAAco+E,SAAWjgF,KAAK0ipC,gBAC9C,EAEJD,UAAsB/9oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFmmpC,IApgDJpopC,MAogD2C++oC,IAAsB,EAC/KqJ,GAAsBvmkC,UArgDwF7hF,MAAE,CAAA6nB,KAqgDVugoC,GAAqBhmpC,UAAA,qBAAA6gF,UAAA,SAAAtgF,GAAAC,IArgDX,GAqgDW,EAAAD,IArgDb3C,KAAEgtH,GAAA,KAAArqH,GAAA,KAAAugF,GAAFljF,MAAEkjF,GAAFljF,WAAE4C,GAAA0xU,OAAApxP,GAAAC,OAAA,EAAA5gF,MAAA,EAAAC,KAAA,EAAAC,OAAA,2WAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAAF3C,MAAE,gBAAFA,MAAE,0BAqgDsU4C,GAAA2lpC,WAAW,GArgDnVvopC,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,gBAAFA,WAqgDqoB,EAAA2C,IArgDroB3C,MAAE,WAAA4C,GAAAylpC,iBAqgDsX,EAAAh8jC,OAAA,wEAvBhe+7jC,EAAqB,KAgCrBK,GAAwB,MAA9B,MAAMA,IAENA,UAAyBp+oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFwmpC,GAAwB,EAC7IA,GAAyB5mkC,UAjhDqF7hF,MAAE,CAAA6nB,KAihDP4goC,GAAwBrmpC,UAAA,wBAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,+RAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAjhDnB3C,MAAE,cAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,cAAFA,UAihD4b,EAAAqsF,OAAA,CAAAihC,MAHpiBm7hC,EAAwB,KASxBC,GAAsB,MAA5B,MAAMA,GACF3mpC,cACI4D,KAAKysoC,mBAAoB,CAC7B,EAEJsW,UAAuBr+oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFympC,GAAsB,EACzIA,GAAuB7mkC,UA7hDuF7hF,MAAE,CAAA6nB,KA6hDT6goC,GAAsBtmpC,UAAA,sBAAAC,OAAA,CAAA+voC,kBAAA,qBAAA7voC,MAAA,EAAAC,KAAA,EAAAC,OAAA,kMAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KA7hDf3C,MAAE,aAAFA,MAAE,YAAFA,MAAE,wBAAFA,SA6hD6Z,EAAA2C,KA7hD7Z3C,MAAE,GAAFA,YAAE,IAAA4C,GAAAwvoC,kBAAA,iBA6hD4W,EAAApwjC,aAAA,CAAoHikkC,IAAsB55jC,OAAA,2CANhmBq8jC,EAAsB,KActBC,GAAoB,MAA1B,MAAMA,IAENA,UAAqBt+oC,UAAI,SAAApI,IAAA,WAAAA,IAAwF0mpC,GAAoB,EACrIA,GAAqB9mkC,UAxiDyF7hF,MAAE,CAAA6nB,KAwiDX8goC,GAAoBvmpC,UAAA,oBAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,6QAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAxiDX3C,MAAE,cAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,UAAFA,UAwiDwZ,EAAAqsF,OAAA,CAAAihC,MAHhgBq7hC,EAAoB,KASpBC,GAAoB,MAA1B,MAAMA,GACF7mpC,YAAYq6O,IACRz2O,KAAKy2O,oBAAsBA,GAC3Bz2O,KAAKkjpC,iBAAkB,EACvB,MAAMrmjC,GAAe78F,KAAKy2O,oBAAoB4i6B,YAAY9snC,UAAU,KAChEvsB,KAAK2ipC,cACL9ljC,GAAapc,aAAY,EAEjC,CACAmikC,YACiC7soC,OAAOiioC,qBACfqD,SAASps0B,SAAS,YAC3C,CACA0z0B,cACiC5soC,OAAOiioC,qBACfqD,SAAS1n5B,GAAG,gBAAiBlyP,IAASzB,KAAK6ipC,cAAcphpC,IAClF,CACAohpC,cAAcphpC,IACVzB,KAAKkjpC,gBAAkBzhpC,GAAMwnC,aAAexnC,GAAM+5oC,WAClDx7oC,KAAK2uU,OAAO9sU,cAAco+E,SAAWjgF,KAAKkjpC,eAC9C,CACAt7f,WACiC7xoB,OAAOiioC,qBACfqD,SAASps0B,SAAS,WAC3C,EAEJg00B,UAAqBv+oC,UAAI,SAAApI,IAAA,WAAAA,IAAwF2mpC,IAxkDH5opC,MAwkDyC++oC,IAAsB,EAC7K6J,GAAqB/mkC,UAzkDyF7hF,MAAE,CAAA6nB,KAykDX+goC,GAAoBxmpC,UAAA,oBAAA6gF,UAAA,SAAAtgF,GAAAC,IAzkDT,GAykDS,EAAAD,IAzkDX3C,KAAEgtH,GAAA,KAAArqH,GAAA,KAAAugF,GAAFljF,MAAEkjF,GAAFljF,WAAE4C,GAAA0xU,OAAApxP,GAAAC,OAAA,EAAA5gF,MAAA,EAAAC,KAAA,EAAAC,OAAA,oWAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAAF3C,MAAE,gBAAFA,MAAE,0BAykDgU4C,GAAA2qpB,UAAU,GAzkD5UvtpB,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,eAAFA,WAykDwnB,EAAA2C,IAzkDxnB3C,MAAE,WAAA4C,GAAAimpC,gBAykD8W,EAAAx8jC,OAAA,CAAAihC,MA3Bxds7hC,EAAoB,KAoCpBE,GAAsB,MAA5B,MAAMA,GACF/mpC,cACI4D,KAAKysoC,mBAAoB,CAC7B,EAEJ0W,UAAuBz+oC,UAAI,SAAApI,IAAA,WAAAA,IAAwF6mpC,GAAsB,EACzIA,GAAuBjnkC,UAxlDuF7hF,MAAE,CAAA6nB,KAwlDTihoC,GAAsB1mpC,UAAA,sBAAAC,OAAA,CAAA+voC,kBAAA,qBAAA7voC,MAAA,GAAAC,KAAA,GAAAC,OAAA,yIAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAxlDf3C,MAAE,WAAFA,MAAE,wBAAFA,MAAE,qBAAFA,CAwlD8R,yBAxlD9RA,cAAE,qBAAFA,MAAE,wBAAFA,cAAE,WAAFA,MAAE,wBAAFA,MAAE,oBAAFA,CAwlD8oB,qBAxlD9oBA,SAwlDqtB,EAAA2C,KAxlDrtB3C,YAAE,IAAA4C,GAAAwvoC,kBAAA,mBAAFpyoC,MAAE,GAAFA,YAAE,IAAA4C,GAAAwvoC,kBAAA,kBAAFpyoC,MAAE,GAAFA,YAAE,KAAA4C,GAAAwvoC,kBAAA,mBAwlDiiB,EAAApwjC,aAAA,CAA0SomkC,GAA6DK,GAAmEC,GAA8FC,GAA2DC,GAAmF3C,IAAsB55jC,OAAA,2HANvzCy8jC,EAAsB,KActBC,GAAmB,MAAzB,MAAMA,IAENA,UAAoB1+oC,UAAI,SAAApI,IAAA,WAAAA,IAAwF8mpC,GAAmB,EACnIA,GAAoBlnkC,UAnmD0F7hF,MAAE,CAAA6nB,KAmmDZkhoC,GAAmB3mpC,UAAA,mBAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,wPAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAnmDT3C,MAAE,cAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,cAAFA,UAmmD8X,EAAAqsF,OAAA,4HAHte08jC,EAAmB,KASnBC,GAAkB,MAAxB,MAAMA,IAENA,UAAmB3+oC,UAAI,SAAApI,IAAA,WAAAA,IAAwF+mpC,GAAkB,EACjIA,GAAmBnnkC,UA5mD2F7hF,MAAE,CAAA6nB,KA4mDbmhoC,GAAkB5mpC,UAAA,kBAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,0QAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KA5mDP3C,MAAE,cAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,aAAFA,UA4mD4Y,EAAAqsF,OAAA,CAjL0c,2HA8K97B28jC,EAAkB,KASlBC,GAAwB,MAA9B,MAAMA,GACFlnpC,YAAY4F,IACRhC,KAAKgC,QAAUA,GACfhC,KAAKujpC,YAAc,EACvB,CACI5W,eAAW6W,IACXxjpC,KAAKujpC,YAAcC,GAAOtkkC,IAAKx3E,IAAM1H,KAAKyjpC,iBAAiB/7oC,IAC/D,CACA+7oC,iBAAiB1jpC,IACTA,GAAM8H,WAAW+2G,SAAS,OAC1B7+G,GAAQA,GAAM8H,WAAWwS,QAAQ,IAAK,IACtCta,GAAQ4uE,OAAO5uE,IAAS,KAE5B,MAAM2jpC,GAAiB/0kC,OAAO5uE,IAC9B,IAAK2jpC,GAAgB,CACjB,MAAMt9oC,GAAIlF,OAAOnB,IACjB,MAAO,CACHutE,GAAIttE,KAAK2jpC,aAAa5jpC,GAAQ,UAC9BA,MAAOqG,GACPoloC,WAAY,cAAgBploC,GAAEiU,QAAQ,QAAS,IAC/CoxnC,kBAAchloC,EACdujiB,aAAc5jiB,GAClB,CAEJ,MAAM+xT,GAAaltT,KAAK2wK,MAAuB,IAAjB8n+B,IAC9B,MAAO,CACHp2kC,GAAK,SAAQ6qP,KACbp4T,MAAOmB,OAAOwipC,IACdlY,WAAY,qBACZC,aAAe,cAAatz0B,OAC5B6xO,aAAc9oiB,OAAOi3T,IAAc,IAE3C,CACAwr1B,aAAav7oC,IAET,OAAOA,GAAIiS,QAAQ,eAAiBulE,IAAUA,GAAMg9E,cAAcviJ,QAAQ,IAAK,IAAIA,QAAQ,IAAK,IACpG,EAEJipoC,UAAyB5+oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFgnpC,IAxpDPjppC,MAwpDiDA,OAAa,EAC5KippC,GAAyBpnkC,UAzpDqF7hF,MAAE,CAAA6nB,KAypDPohoC,GAAwB7mpC,UAAA,wBAAA6gF,UAAA,SAAAtgF,GAAAC,IAzpDjB,GAypDiB,EAAAD,IAzpDnB3C,KAAE0xH,GAAA,KAAA/uH,GAAA,KAAAugF,GAAFljF,MAAEkjF,GAAFljF,WAAE4C,GAAA2mpC,aAAArmkC,GAAAC,OAAA,EAAA9gF,OAAA,CAAAiwoC,WAAA,cAAA/voC,MAAA,EAAAC,KAAA,EAAAC,OAAA,iPAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAAF3C,MAAE,WAAFA,CAypDmQ,gBAzpDnQA,MAAE,EAAAixoC,EAAA,gBAAFjxoC,MAAE,cAAFA,WAypD2wB,EAAA2C,KAzpD3wB3C,MAAE,GAAFA,MAAE,UAAA4C,GAAAsmpC,aAypD0Z,EAAAlnkC,aAAA,CAAwkBC,KAA0GqjhC,KAAiFA,MAA4Bj5gC,OAAA,mNAvCnyC48jC,EAAwB,KAkDxBO,GAAuB,MAA7B,MAAMA,GACFznpC,cACI4D,KAAK0soC,iBAAkB,EACvB1soC,KAAK2soC,WAAa,CAAC,OAAQ,cAAe,WAAY,aAAc,GAAK,IAAM,EAAG,KAAM,IAAK,EAAG,EAAG,EACvG,EAEJkX,UAAwBn/oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFunpC,GAAuB,EAC3IA,GAAwB3nkC,UA3qDsF7hF,MAAE,CAAA6nB,KA2qDR2hoC,GAAuBpnpC,UAAA,uBAAAC,OAAA,CAAAgwoC,gBAAA,kBAAAC,WAAA,cAAA/voC,MAAA,EAAAC,KAAA,EAAAC,OAAA,0GAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KA3qDjB3C,MAAE,WAAFA,MAAE,wBAAFA,MAAE,iBAAFA,CA2qD0Q,gBA3qD1QA,CA2qD0Q,yBA3qD1QA,SA2qDqb,EAAA2C,KA3qDrb3C,YAAE,IAAA4C,GAAAyvoC,gBAAA,KAAFryoC,MAAE,GAAFA,MAAE,aAAA4C,GAAA0voC,YA2qDkZ,EAAAtwjC,aAAA,CAAuE+mkC,GAAyDC,GAAuDC,GAAmHhD,MAPtyBuD,EAAuB,KAiBvBC,GAAoB,MAA1B,MAAMA,GACF1npC,YAAYq6O,IACRz2O,KAAKy2O,oBAAsBA,GAC3Bz2O,KAAK4soC,oBAAqB,EAC1B5soC,KAAK4tW,YAAa,EAClB,MAAM/wQ,GAAe78F,KAAKy2O,oBAAoB4i6B,YAAY9snC,UAAU,KAChEvsB,KAAK2ipC,cACL9ljC,GAAapc,aAAY,EAEjC,CACAkikC,cACiC5soC,OAAOiioC,qBACfqD,SAAS1n5B,GAAG,oBAAqB,EAAGow5B,WAAY/jpC,KAAK4tW,WAAam2yB,KAASnT,GAAeE,KACnH,CACA7qjC,UACiClwE,OAAOiioC,qBACfqD,SAASps0B,SAAS,mBAAoB,CAAE800B,KAAMnT,GAAeE,MACtF,EAEJgT,UAAqBp/oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFwnpC,IAxsDHzppC,MAwsDyC++oC,IAAsB,EAC7K0K,GAAqB5nkC,UAzsDyF7hF,MAAE,CAAA6nB,KAysDX4hoC,GAAoBrnpC,UAAA,oBAAAC,OAAA,CAAAkwoC,mBAAA,sBAAAhwoC,MAAA,EAAAC,KAAA,EAAAC,OAAA,4YAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAzsDX3C,MAAE,cAAFA,MAAE,0BAysDuI4C,GAAAgpF,SAAS,GAzsDlJ5rF,MAAE,wBAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,eAAFA,WAysD+rB,EAAA2C,KAzsD/rB3C,YAAE,IAAA4C,GAAA2voC,mBAAA,kBAAFvyoC,MAAE,UAAA4C,GAAA2wW,YAysDiM,EAAAvxR,aAAA,CAA60BikkC,IAAsB55jC,OAAA,6XApB9oCo9jC,EAAoB,KA4BpBE,EAAsB,MAA5B,MAAMA,GACF5npC,YAAYq6O,IACRz2O,KAAKy2O,oBAAsBA,GAC3Bz2O,KAAKikpC,sBAAuB,EAC5BjkpC,KAAK4tW,YAAa,EAClB,MAAM/wQ,GAAe78F,KAAKy2O,oBAAoB4i6B,YAAY9snC,UAAU,KAChEvsB,KAAK2ipC,cACL9ljC,GAAapc,aAAY,EAEjC,CACAkikC,cACiC5soC,OAAOiioC,qBACfqD,SAAS1n5B,GAAG,oBAAqB,EAAGow5B,WAAY/jpC,KAAK4tW,WAAam2yB,KAASnT,GAAeC,OACnH,CACA5qjC,UACiClwE,OAAOiioC,qBACfqD,SAASps0B,SAAS,mBAAoB,CAAE800B,KAAMnT,GAAeC,QACtF,EAEJmT,UAAuBt/oC,UAAI,SAAApI,IAAA,WAAAA,IAAwF0npC,IApuDL3ppC,MAouD6C++oC,IAAsB,EACjL4K,GAAuB9nkC,UAruDuF7hF,MAAE,CAAA6nB,KAquDT8hoC,GAAsBvnpC,UAAA,sBAAAC,OAAA,CAAAunpC,qBAAA,wBAAArnpC,MAAA,EAAAC,KAAA,EAAAC,OAAA,muBAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAruDf3C,MAAE,cAAFA,MAAE,0BAquDiJ4C,GAAAgpF,SAAS,GAruD5J5rF,MAAE,wBAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,yBAAFA,WAquD4iC,EAAA2C,KAruD5iC3C,YAAE,IAAA4C,GAAAgnpC,qBAAA,kBAAF5ppC,MAAE,UAAA4C,GAAA2wW,YAquD2M,EAAAvxR,aAAA,CAA+rCikkC,IAAsB55jC,OAAA,4YApB1gDs9jC,EAAsB,KA4BtBE,EAAsB,MAA5B,MAAMA,GACF9npC,YAAYq6O,IACRz2O,KAAKy2O,oBAAsBA,GAC3Bz2O,KAAK4roC,kBAAmB,EACxB5roC,KAAK6roC,eAAgB,EACrB7roC,KAAKmkpC,WAAY,EACjBnkpC,KAAKokpC,kBAAmB,EACxB,MAAMvnjC,GAAe78F,KAAKy2O,oBAAoB4i6B,YAAY9snC,UAAU,KAChEvsB,KAAK2ipC,cACL9ljC,GAAapc,aAAY,EAEjC,CACAkrjC,WACiC51nC,OAAOiioC,qBACfqD,SAASps0B,SAAS,WAC3C,CACA88zB,YACiCh2nC,OAAOiioC,qBACfqD,SAASps0B,SAAS,YAC3C,CACA0z0B,cACiC5soC,OAAOiioC,qBACfqD,SAAS1n5B,GAAG,gBAAkBlyP,IAAUzB,KAAK6ipC,cAAcphpC,IACpF,CACAohpC,cAAcphpC,IACVzB,KAAK6roC,cAAqC,IAArBpqoC,GAAM+5oC,WACvBx7oC,KAAKqkpC,UACLrkpC,KAAKqkpC,QAAQxipC,cAAco+E,SAAWjgF,KAAK6roC,eAE3C7roC,KAAKskpC,UACLtkpC,KAAKskpC,QAAQzipC,cAAco+E,SAAWjgF,KAAK6roC,cAEnD,EAEJqY,UAAuBx/oC,UAAI,SAAApI,IAAA,WAAAA,IAAwF4npC,IA/wDL7ppC,MA+wD6C++oC,IAAsB,EACjL8K,GAAuBhokC,UAhxDuF7hF,MAAE,CAAA6nB,KAgxDTgioC,GAAsBznpC,UAAA,sBAAA6gF,UAAA,SAAAtgF,GAAAC,IAhxDb,GAgxDa,EAAAD,KAhxDf3C,KAAE4xH,GAAA,GAAF5xH,KAAEuwV,GAAA,MAAA5tV,GAAA,KAAAugF,GAAFljF,MAAEkjF,GAAFljF,WAAE4C,GAAAonpC,QAAA9mkC,GAAAC,OAAFnjF,MAAEkjF,GAAFljF,WAAE4C,GAAAqnpC,QAAA/mkC,GAAAC,OAAA,EAAA9gF,OAAA,CAAAkvoC,iBAAA,mBAAAuY,UAAA,YAAAC,iBAAA,oBAAAxnpC,MAAA,EAAAC,KAAA,EAAAC,OAAA,srCAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAAF3C,MAAE,EAAAqxoC,GAAA,gBAAFrxoC,MAAE,EAAAyxoC,GAAA,iBAgxD6qD,EAAA9uoC,KAhxD/qD3C,MAAE,OAAA4C,GAAAknpC,WAAF9ppC,MAAE,GAAFA,MAAE,OAAA4C,GAAAmnpC,kBAgxD2iC,EAAA/nkC,aAAA,CAAoyBC,KAAyGgkkC,IAAsB55jC,OAAA,mMAnCxjEw9jC,EAAsB,KAqDtBK,EAA4B,MAAlC,MAAMA,GACFnopC,cACI4D,KAAK6soC,4BAA6B,CACtC,EAEJ0X,UAA6B7/oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFiopC,GAA4B,EACrJA,GAA6BrokC,UAxyDiF7hF,MAAE,CAAA6nB,KAwyDHqioC,GAA4B9npC,UAAA,4BAAAC,OAAA,CAAAmwoC,2BAAA,8BAAAjwoC,MAAA,EAAAC,KAAA,EAAAC,OAAA,gWAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAxyD3B3C,MAAE,cAAFA,MAAE,wBAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,uBAAFA,WAwyDkqB,EAAA2C,IAxyDlqB3C,YAAE,IAAA4C,GAAA4voC,2BAAA,mBAwyDsT,EAAAxwjC,aAAA,CAA0iBikkC,IAAsB55jC,OAAA,8OANh+B69jC,EAA4B,KAc5BC,EAAoB,MAA1B,MAAMA,GACFpopC,cACI4D,KAAK8soC,oBAAqB,CAC9B,EAEJ0X,UAAqB9/oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFkopC,GAAoB,EACrIA,GAAqBtokC,UAtzDyF7hF,MAAE,CAAA6nB,KAszDXsioC,GAAoB/npC,UAAA,oBAAAC,OAAA,CAAAowoC,mBAAA,sBAAAlwoC,MAAA,EAAAC,KAAA,EAAAC,OAAA,8WAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAtzDX3C,MAAE,cAAFA,MAAE,wBAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,UAAFA,WAszD+mB,EAAA2C,IAtzD/mB3C,YAAE,IAAA4C,GAAA6voC,mBAAA,oBAszDoN,EAAAzwjC,aAAA,CAAokBikkC,IAAsB55jC,OAAA,oMANx5B89jC,EAAoB,KAcpBC,EAAiB,MAAvB,MAAMA,GACFropC,cACI4D,KAAK+soC,iBAAkB,CAC3B,EAEJ0X,UAAkB//oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFmopC,GAAiB,EAC/HA,GAAkBvokC,UAp0D4F7hF,MAAE,CAAA6nB,KAo0DduioC,GAAiBhopC,UAAA,gBAAAC,OAAA,CAAAqwoC,gBAAA,mBAAAnwoC,MAAA,EAAAC,KAAA,EAAAC,OAAA,2WAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAp0DL3C,MAAE,cAAFA,MAAE,wBAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,WAAFA,WAo0D2lB,EAAA2C,IAp0D3lB3C,YAAE,IAAA4C,GAAA8voC,gBAAA,mBAo0DqO,EAAA1wjC,aAAA,CAAyiBikkC,IAAsB55jC,OAAA,CApD0iB,kMA8Cx7C+9jC,EAAiB,KAcjBC,EAAoB,MAA1B,MAAMA,GACFtopC,cACI4D,KAAKgtoC,oBAAqB,CAC9B,EAEJ0X,UAAqBhgpC,UAAI,SAAApI,IAAA,WAAAA,IAAwFoopC,GAAoB,EACrIA,GAAqBxokC,UAl1DyF7hF,MAAE,CAAA6nB,KAk1DXwioC,GAAoBjopC,UAAA,mBAAAC,OAAA,CAAAswoC,mBAAA,sBAAApwoC,MAAA,EAAAC,KAAA,EAAAC,OAAA,wVAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAl1DX3C,MAAE,cAAFA,MAAE,wBAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,cAAFA,WAk1D6lB,EAAA2C,IAl1D7lB3C,YAAE,IAAA4C,GAAA+voC,mBAAA,mBAk1DkO,EAAA3wjC,aAAA,CAAoiBikkC,IAAsB55jC,OAAA,CAlEkjB,mMA4Dx7Cg+jC,EAAoB,KAcpBC,EAAkB,MAAxB,MAAMA,GACFvopC,cACI4D,KAAKksoC,gBAAiB,EACtBlsoC,KAAKisoC,gBAAiB,CAC1B,EAEJ0Y,UAAmBjgpC,UAAI,SAAApI,IAAA,WAAAA,IAAwFqopC,GAAkB,EACjIA,GAAmBzokC,UAj2D2F7hF,MAAE,CAAA6nB,KAi2DbyioC,GAAkBlopC,UAAA,iBAAAC,OAAA,CAAAwvoC,eAAA,iBAAAD,eAAA,kBAAArvoC,MAAA,EAAAC,KAAA,EAAAC,OAAA,4xDAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAj2DP3C,MAAE,EAAA2xoC,GAAA,eAAF3xoC,MAAE,EAAA8xoC,GAAA,cAi2D64E,EAAAnvoC,KAj2D/4E3C,MAAE,SAAA4C,GAAAivoC,kBAAAjvoC,GAAAgvoC,gBAAF5xoC,MAAE,GAAFA,MAAE,SAAA4C,GAAAivoC,kBAAAjvoC,GAAAgvoC,gBAi2Do4E,EAAA5vjC,aAAA,CAAoEC,KAAyGgkkC,IAAsB55jC,OAAA,2CAPjrFi+jC,EAAkB,KAiBlBC,GAAkC,MAAxC,MAAMA,GACFxopC,cACI4D,KAAKitoC,4BAA6B,CACtC,CACAhnjC,QAAQxkF,IACJA,UAAMnC,kBACC,CACX,EAEJslpC,UAAmClgpC,UAAI,SAAApI,IAAA,WAAAA,IAAwFsopC,GAAkC,EACjKA,GAAmC1okC,UAr3D2E7hF,MAAE,CAAA6nB,KAq3DG0ioC,GAAkCnopC,UAAA,mCAAAC,OAAA,CAAAuwoC,2BAAA,8BAAArwoC,MAAA,EAAAC,KAAA,EAAAC,OAAA,0RAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAr3DvC3C,MAAE,cAAFA,MAAE,wBAAFA,cAAE,WAAFA,MAAE,iBAAAuF,IAAA,OAq3Dkb3C,GAAAgpF,QAAArmF,GAAe,GAr3DncvF,MAAE,YAAFA,sBAAE,YAAFA,MAAE,WAAFA,WAq3D4lB,EAAA2C,IAr3D5lB3C,YAAE,IAAA4C,GAAAgwoC,2BAAA,IAq3DuQ,EAAA5wjC,aAAA,CAAsgBikkC,IAAsB55jC,OAAA,yOAV74Bk+jC,EAAkC,KAkBlCC,GAAmB,MAAzB,MAAMA,GACFzopC,YAAY+0U,IACRnxU,KAAKmxU,WAAaA,GAClBnxU,KAAKqroC,wBAA0B,EAC/BrroC,KAAK4voC,oBAAqB,EAC1B5voC,KAAK8kpC,oBAAqB,EAC1B9kpC,KAAKgtoC,oBAAqB,EAC1BhtoC,KAAKksoC,gBAAiB,EACtBlsoC,KAAKisoC,gBAAiB,EACtBjsoC,KAAKusoC,oBAAiB9loC,EACtBzG,KAAK4soC,oBAAqB,EAC1B5soC,KAAK8soC,oBAAqB,EAC1B9soC,KAAK+soC,iBAAkB,EACvB/soC,KAAKysoC,mBAAoB,EACzBzsoC,KAAK6soC,4BAA6B,EAClC7soC,KAAK4roC,kBAAmB,EACxB5roC,KAAKitoC,4BAA6B,EAClCjtoC,KAAKssoC,mBAAoB,EACzBtsoC,KAAK0soC,iBAAkB,EACvB1soC,KAAKwsoC,eAAY/loC,EACjBzG,KAAKkwoC,iBAAmB,MACxBlwoC,KAAKmwoC,aAAe,OACpBnwoC,KAAK2soC,WAAa,CAAC,OAAQ,cAAe,WAAY,aAAc,GAAK,IAAM,EAAG,KAAM,IAAK,EAAG,EAAG,GACnG3soC,KAAKqvoC,gBAAkB,IAAIpgjC,KAC/B,CACA7E,kBACIpqF,KAAKqvoC,gBAAgB3yiC,KAAK18F,KAAKmxU,WAAWtvU,cAAcsB,uBAAuB,WAAW,GAC9F,EAEJ0hpC,UAAoBngpC,UAAI,SAAApI,IAAA,WAAAA,IAAwFuopC,IA15DFxqpC,MA05DuCA,OAAa,EAClKwqpC,GAAoB3okC,UA35D0F7hF,MAAE,CAAA6nB,KA25DZ2ioC,GAAmBpopC,UAAA,kBAAAC,OAAA,CAAAozoC,cAAA,gBAAAzE,wBAAA,0BAAAuE,mBAAA,qBAAAkV,mBAAA,qBAAA9X,mBAAA,qBAAAd,eAAA,iBAAAD,eAAA,iBAAAM,eAAA,iBAAAK,mBAAA,qBAAAE,mBAAA,qBAAAC,gBAAA,kBAAAN,kBAAA,oBAAAI,2BAAA,6BAAAjB,iBAAA,mBAAAqB,2BAAA,6BAAAX,kBAAA,oBAAAI,gBAAA,kBAAAF,UAAA,YAAA0D,iBAAA,mBAAAC,aAAA,eAAAxD,WAAA,cAAAlviC,QAAA,CAAA4xiC,gBAAA,mBAAA5ytB,mBAAAj2T,GAAA5pH,MAAA,EAAAC,KAAA,GAAAC,OAAA,omBAAAC,SAAA,SAAAC,GAAAC,IAA+/F,GAA//F,EAAAD,KA35DT3C,cAAE,UAAFA,CA25DkrC,WA35DlrCA,MAAE,EAAA+xoC,GAAA,oBAAF/xoC,MAAE,UAAFA,CA25Do1C,WA35Dp1CA,MAAE,WAAFA,oBAAE,EAAAgyoC,GAAA,2BAAFhyoC,QA25DwgG,EAAA2C,GAAA,OAAAkzW,GA35DxgG71W,MAAE,GAAFA,MAAE,qBAAA4C,GAAAouoC,wBAAA,IAAFhxoC,CA25DsjC,iCA35DtjCA,CA25DsjC,QAAA4C,GAAAkzoC,aA35DtjC91oC,CA25DsjC,aAAA4C,GAAAizoC,kBA35DtjC71oC,MAAE,aAAA4C,GAAA2yoC,oBAAFv1oC,MAAE,GAAFA,MAAE,mBAAA4C,GAAA6yoC,cAAA7yoC,GAAA6yoC,cAAA5/xB,GA25DoyC,CAAC,EAAA7zR,aAAA,CAAywDkmkC,GAAoGC,GAAwGW,GAA8FU,GAA4GC,GAA2FE,EAAiGE,EAA8HK,EAAmHC,EAA2FC,EAAiFC,EAA0FC,EAAoGC,GAA8ItokC,QA9Bn9IuokC,EAAmB,KAgFnBE,GAA4B,MAAlC,MAAMA,GACF3opC,YAAY4F,GAASy0O,GAAqBuiF,IACtCh5T,KAAKgC,QAAUA,GACfhC,KAAKy2O,oBAAsBA,GAC3Bz2O,KAAKg5T,WAAaA,GAClBh5T,KAAK6soC,4BAA6B,EAClC7soC,KAAK8soC,oBAAqB,EAC1B9soC,KAAK+soC,iBAAkB,EACvB/soC,KAAKgtoC,oBAAqB,EAC1BhtoC,KAAKysoC,mBAAoB,EACzBzsoC,KAAK4roC,kBAAmB,EACxB5roC,KAAK4soC,oBAAqB,EAC1B5soC,KAAKytoC,qBAAsB,EAC3BztoC,KAAK0toC,kBAAmB,EACxB1toC,KAAK2toC,sBAAuB,EAC5B3toC,KAAKglpC,aAAe,IAAI/1jC,MACxBjvF,KAAKilpC,qBAAuB,IAAIh2jC,MAChCjvF,KAAKutoC,qBAAsB,EAC3BvtoC,KAAKwtoC,iBAAkB,EACvBxtoC,KAAKy2O,oBAAoB4i6B,YAAYp6jC,QAAKoG,KAAK,IAAI94D,UAAU,KACzDvsB,KAAK2ipC,aAAY,EAEzB,CACAA,cACI,MAAM3K,GAAuBjioC,OAAOiioC,qBACpCA,GAAqBqD,SAAS1n5B,GAAG,eAAgB,KAC7C3zP,KAAK6ipC,eAAc,GAEvB7K,GAAqBqD,SAAS1n5B,GAAG,eAAgB,KAC7C3zP,KAAK6ipC,eAAc,EAE3B,CACAA,gBACI1uoC,WAAW,KACP,MAAM6joC,GAAuBjioC,OAAOiioC,qBAC9B3uhB,GAAc2uhB,GAAqB4F,UAAUsH,kBAC7CC,GAAiBluiC,SAASioB,eAAe,gBAC3CimhC,KACAnlpC,KAAKutoC,oBAAsB5+jC,OAAO06iB,KAAgB,EAClD87hB,GAAellkC,SAAWjgF,KAAKutoC,qBAEnC,MAAM6X,GAAanuiC,SAASioB,eAAe,YACvCkmhC,KACAplpC,KAAKwtoC,gBAAkBnkhB,KAAgB2uhB,GAAqBwD,WAC5D4J,GAAWnlkC,SAAWjgF,KAAKwtoC,kBAGvC,CACAH,eAAegY,IACXrlpC,KAAKglpC,aAAatojC,KAAK2ojC,GAC3B,CACAr0hC,YAAYC,IACR98G,WAAW,IAAMnU,KAAKwzmB,kBAC1B,CACAliR,WACIn9U,WAAW,IAAMnU,KAAKwzmB,kBAC1B,CACApphB,kBACI,MAAI8uO,MAAkBl5T,KAAKg5T,YAAa,CACpC,MAAMK,GAAar5T,KAAKgC,QAAQH,cAC1BguK,GAAS,CAAEnnF,YAAY,EAAMixV,WAAW,EAAMC,SAAS,GAC7D55a,KAAKy0a,iBAAmB,IAAIiF,iBAAiB,CAAC4ruB,GAAczg6B,MACxD,UAAWirmB,MAAYw1T,GACG,eAAlBx1T,GAAS5t0B,MACsB,UAA3B4t0B,GAAS33X,eACTn4d,KAAKwzmB,iBAAgB,GAKrCxzmB,KAAKy0a,iBAAiBgF,QAAQpgH,GAAYxpJ,GAAM,CAExD,CACAzwF,cACQp/E,KAAKy0a,mBACLz0a,KAAKy0a,iBAAiBsH,aACtB/7a,KAAKy0a,sBAAmBhua,EAEhC,CACA+smB,kBACI,IAAI+xiB,GAAiB,EAErB,MAAM7xoC,GADI1T,KAAKgC,QAAQH,cACXqwL,SAAS5mK,KAAK,GAC1B,GAAI5X,GAAG,CACH,MAAMzD,GAAIyD,GAAEw+K,SAAS5mK,KAAK,GACtBrb,IAAKA,cAAa4qT,cAClB0q1B,GAAiBvlpC,KAAKwlpC,2BAA2Bv1oC,IAAC,CAG1DjQ,KAAKilpC,qBAAqBvojC,KAAwB,IAAnB6ojC,GACnC,CACAC,2BAA2BnmpC,IAevB,UAdW0W,OAAW,KAIE,SAApB1W,GAAE23O,MAAMC,SAGR53O,GAAE48O,UAAUkhM,SAAS,WAGrB99a,GAAE48O,UAAUkhM,SAAS,cAIH,SADRpna,OAAOmkT,iBAAiB76T,IAC5B43O,QACN,OAAO,EAEX,GAAI53O,cAAa2rsB,mBAAqB3rsB,cAAa8g0B,kBAC/C,OAAO,EAEX,IAAIhqzB,GAAQ,EACZ,MAAM+7K,GAAW7yL,GAAE6yL,SACnB,GAAIA,IAAYA,GAAS9uL,OACrB,QAASuC,GAAI,EAAGA,GAAIusL,GAAS9uL,QAAoB,IAAV+S,GAAaxQ,KAAK,CACrD,MAAM02a,GAAQnqP,GAAS5mK,KAAK3lB,IACxB02a,IAASA,cAAiBxhH,cAC1B1kT,IAASnW,KAAKwlpC,2BAA2BnpuB,IAAK,CAI1D,OAAOlma,EACX,CACAg3nC,eACiCp3nC,OAAOiioC,qBACfqD,SAASps0B,SAAS,eAC3C,CACAm+zB,WACiCr3nC,OAAOiioC,qBACfqD,SAASps0B,SAAS,WAC3C,EAEJ810B,UAA6BrgpC,UAAI,SAAApI,IAAA,WAAAA,IAAwFyopC,IAllEX1qpC,MAklEyDA,OAllEzDA,MAklEmF++oC,IAllEnF/+oC,MAklEsH2gU,OAAW,EAC/O+p1B,GAA6B7okC,UAnlEiF7hF,MAAE,CAAA6nB,KAmlEH6ioC,GAA4BtopC,UAAA,4BAAAkD,aAAA,SAAA3C,GAAAC,IAAA,EAAAD,IAnlE3B3C,MAAE,2BAmlEH4C,GAAAq0V,UAAU,KAnlETj3V,MAAE,EAAAqC,OAAA,CAAA0zoC,uBAAA,yBAAA9C,oBAAA,sBAAAjC,wBAAA,0BAAAwB,2BAAA,6BAAAC,mBAAA,qBAAAC,gBAAA,kBAAAC,mBAAA,qBAAAP,kBAAA,oBAAAb,iBAAA,mBAAAgB,mBAAA,qBAAAa,oBAAA,sBAAAC,iBAAA,mBAAAC,qBAAA,wBAAAlwiC,QAAA,CAAAunjC,aAAA,eAAAC,qBAAA,wBAAA1kpC,SAAA,CAAFlG,OAAEuC,MAAA,EAAAC,KAAA,EAAAC,OAAA,i2RAAAC,SAAA,SAAAC,GAAAC,IAmlEwxhB,GAnlExxhB,EAAAD,KAAF3C,MAAE,KAAFA,MAAE,EAAA6yoC,GAAA,6BAAF7yoC,QAmlE0xhB,EAAA2C,GAAA,OAAAw+E,GAnlE1xhBnhF,MAAE,GAAFA,MAAE,mBAAA4C,GAAAmzoC,uBAAAnzoC,GAAAmzoC,uBAAA50jC,GAmlEk7B,CAAC,EAAAa,aAAA,CAAu8fC,KAAwJkkkC,IAA8B95jC,OAAA,kFAtI1piBq+jC,EAA4B,KAgL5BU,GAAiB,MAAvB,MAAMA,GACFrppC,cACI4D,KAAK0lpC,qBAAsB,EAC3B1lpC,KAAK2lpC,sBAAuB,CAChC,CACIC,0BACA,OAAO5lpC,KAAK2lpC,oBAChB,CACIC,wBAAoB7lpC,IACpB,GAAIC,KAAK2lpC,sBAAwB5lpC,GAAO,CACpC,MAAM8lpC,GAAiB5uiC,SAASC,cAAc,+CACxC4uiC,GAAa7uiC,SAASC,cAAc,sCAC1C,GAAIn3G,GAAO,CACP,MAAM6hH,GAAQikiC,GAAe9lpC,MACzB6hH,KACAkkiC,GAAW/lpC,MAAQ6hH,GAAMvnG,QAAQ,KAAM,KAAG,KAG7C,CACD,MAAMunG,GAAQkkiC,GAAW/lpC,MACrB6hH,KACAikiC,GAAe9lpC,MAAQ6hH,KAInC5hH,KAAK2lpC,qBAAuB5lpC,GAC5BoU,WAAW,KACsB4B,OAAOiioC,qBACf+N,QAAQpj9B,cAAc,GAAE,EAErD,EAEJ8i9B,UAAkB/gpC,UAAI,SAAApI,IAAA,WAAAA,IAAwFmppC,GAAiB,EAC/HA,GAAkB7g3B,WA9pE4FvqS,MAAE,CAAAsiJ,MA8pEE8ogC,GAAiBhhpC,QAAjBghpC,GAAiB/gpC,UAAAk1I,WAAc,SAjC3I6rgC,EAAiB,KAyCjBO,GAA4B,MAAlC,MAAMA,GACF5ppC,YAAY6ppC,IACRjmpC,KAAKimpC,kBAAoBA,EAC7B,EAEJD,UAA6BthpC,UAAI,SAAApI,IAAA,WAAAA,IAAwF0ppC,IA3qEX3rpC,MA2qEyDorpC,IAAiB,EACxLO,GAA6B9pkC,UA5qEiF7hF,MAAE,CAAA6nB,KA4qEH8joC,GAA4BvppC,UAAA,6BAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,yUAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,IA5qE3B3C,MAAE,YAAFA,CA4qEkW,kBAAA2C,KA5qElW3C,MAAE,UAAA4C,GAAAgppC,kBAAAL,qBAAFvrpC,MAAE,wCAAFA,MAAE,GAAFA,MAAE,SAAA4C,GAAAgppC,kBAAAL,qBA4qEua,EAAAl/jC,OAAA,uHANjhBs/jC,EAA4B,KAY5BE,GAAwB,MAA9B,MAAMA,IAENA,UAAyBxhpC,UAAI,SAAApI,IAAA,WAAAA,IAAwF4ppC,GAAwB,EAC7IA,GAAyBhqkC,UArrEqF7hF,MAAE,CAAA6nB,KAqrEPgkoC,GAAwBzppC,UAAA,wBAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,0UAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KArrEnB3C,MAAE,cAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,cAAFA,UAqrEqe,EAAAqsF,OAAA,8GAH7kBw/jC,EAAwB,KASxBC,GAAoB,MAA1B,MAAMA,IAENA,UAAqBzhpC,UAAI,SAAApI,IAAA,WAAAA,IAAwF6ppC,GAAoB,EACrIA,GAAqBjqkC,UA9rEyF7hF,MAAE,CAAA6nB,KA8rEXikoC,GAAoB1ppC,UAAA,oBAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,wTAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KA9rEX3C,MAAE,cAAFA,cAAE,WAAFA,MAAE,YAAFA,sBAAE,YAAFA,MAAE,UAAFA,UA8rE+b,EAAAqsF,OAAA,sIAHviBy/jC,EAAoB,KASpBC,GAAyB,MAA/B,MAAMA,IAENA,UAA0B1hpC,UAAI,SAAApI,IAAA,WAAAA,IAAwF8ppC,GAAyB,EAC/IA,GAA0BlqkC,UAvsEoF7hF,MAAE,CAAA6nB,KAusENkkoC,GAAyB3ppC,UAAA,0BAAAC,OAAA,CAAAwxoC,uBAAA,0BAAAtxoC,MAAA,EAAAC,KAAA,EAAAC,OAAA,gGAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAvsErB3C,MAAE,EAAAuzoC,GAAA,aAAFvzoC,MAAE,MAusEob,EAAA2C,KAvsEtb3C,MAAE,QAAA4C,GAAAixoC,wBAAF7zoC,MAAE,GAAFA,MAAE,mBAAA4C,GAAAixoC,wBAAA,MAusEma,EAAA7xjC,aAAA,CAAyD2pkC,GAA4EE,GAAmEC,GAAyE7pkC,KAAiFA,QAH/2B8pkC,EAAyB,KAWzBC,GAA4B,MAAlC,MAAMA,IAENA,UAA6B3hpC,UAAI,SAAApI,IAAA,WAAAA,IAAwF+ppC,GAA4B,EACrJA,GAA6BnqkC,UAltEiF7hF,MAAE,CAAA6nB,KAktEHmkoC,GAA4B5ppC,UAAA,6BAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,2IAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAltE3B3C,MAAE,aAAFA,MAAE,aAAFA,MAAE,sBAAFA,QAktE2S,IAHnZgspC,EAA4B,KAS5BC,GAAyB,MAA/B,MAAMA,IAENA,UAA0B5hpC,UAAI,SAAApI,IAAA,WAAAA,IAAwFgqpC,GAAyB,EAC/IA,GAA0BpqkC,UA3tEoF7hF,MAAE,CAAA6nB,KA2tENokoC,GAAyB7ppC,UAAA,0BAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,4IAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KA3tErB3C,MAAE,aAAFA,MAAE,aAAFA,MAAE,mBAAFA,QA2tEkS,IAH1YispC,EAAyB,KASzBC,GAA+B,MAArC,MAAMA,IAENA,UAAgC7hpC,UAAI,SAAApI,IAAA,WAAAA,IAAwFiqpC,GAA+B,EAC3JA,GAAgCrqkC,UApuE8E7hF,MAAE,CAAA6nB,KAouEAqkoC,GAA+B9ppC,UAAA,iCAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,4IAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KApuEjC3C,MAAE,aAAFA,MAAE,aAAFA,MAAE,0BAAFA,QAouE0T,EAAAqsF,OAAA,uDAHla6/jC,EAA+B,KAS/BC,GAAqB,MAA3B,MAAMA,IAENA,UAAsB9hpC,UAAI,SAAApI,IAAA,WAAAA,IAAwFkqpC,GAAqB,EACvIA,GAAsBtqkC,UA7uEwF7hF,MAAE,CAAA6nB,KA6uEVskoC,GAAqB/ppC,UAAA,qBAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,6JAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,IA7uEb3C,MAAE,aA6uEsR,EAAA2C,IA7uExR3C,MAAE,kCA6uEoN,EAAAqsF,OAAA,uDAH9T8/jC,EAAqB,KASrBC,GAA0B,MAAhC,MAAMA,IAENA,UAA2B/hpC,UAAI,SAAApI,IAAA,WAAAA,IAAwFmqpC,GAA0B,EACjJA,GAA2BvqkC,UAtvEmF7hF,MAAE,CAAA6nB,KAsvELukoC,GAA0BhqpC,UAAA,2BAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,+IAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAtvEvB3C,MAAE,aAAFA,MAAE,aAAFA,MAAE,oBAAFA,QAsvEuS,IAH/YospC,EAA0B,KAS1BC,GAAmC,MAAzC,MAAMA,GACFtqpC,YAAY6ppC,IACRjmpC,KAAKimpC,kBAAoBA,EAC7B,EAEJS,UAAoChipC,UAAI,SAAApI,IAAA,WAAAA,IAAwFoqpC,IAjwElBrspC,MAiwEuEorpC,IAAiB,EACtMiB,GAAoCxqkC,UAlwE0E7hF,MAAE,CAAA6nB,KAkwEIwkoC,GAAmCjqpC,UAAA,6BAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,wZAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAlwEzC3C,MAAE,aAAFA,MAAE,yBAAAuF,IAAA,OAAA3C,GAAAgppC,kBAAAP,oBAAA9lpC,EAAA,GAAFvF,cAAE,aAAFA,MAAE,8BAAFA,cAAE,aAAFA,MAAE,yBAAAuF,IAAA,OAAA3C,GAAAgppC,kBAAAL,oBAAAhmpC,EAAA,GAAFvF,cAAE,aAAFA,MAAE,qCAAFA,SAkwE81B,EAAA2C,KAlwE91B3C,MAAE,UAAA4C,GAAAgppC,kBAAAP,qBAAFrrpC,MAAE,GAAFA,MAAE,UAAA4C,GAAAgppC,kBAAAP,qBAAFrrpC,MAAE,UAAA4C,GAAAgppC,kBAAAL,qBAAFvrpC,MAAE,GAAFA,MAAE,UAAA4C,GAAAgppC,kBAAAP,qBAkwEqqB,EAAArpkC,aAAA,CAA+NsjhC,KAAgKA,KAAuFA,QANruC+mD,EAAmC,KAYnCC,GAA6B,MAAnC,MAAMA,IAENA,UAA8BjipC,UAAI,SAAApI,IAAA,WAAAA,IAAwFqqpC,GAA6B,EACvJA,GAA8BzqkC,UA3wEgF7hF,MAAE,CAAA6nB,KA2wEFykoC,GAA6BlqpC,UAAA,8BAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,kJAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KA3wE7B3C,MAAE,aAAFA,MAAE,aAAFA,MAAE,sCAAFA,QA2wEuU,IAH/asspC,EAA6B,KAS7BC,GAAuB,MAA7B,MAAMA,IAENA,UAAwBlipC,UAAI,SAAApI,IAAA,WAAAA,IAAwFsqpC,GAAuB,EAC3IA,GAAwB1qkC,UApxEsF7hF,MAAE,CAAA6nB,KAoxER0koC,GAAuBnqpC,UAAA,uBAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,yHAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KApxEjB3C,MAAE,aAAFA,MAAE,aAAFA,MAAE,qBAAFA,QAoxE0Q,IAHlXuspC,EAAuB,KASvBC,GAA4B,MAAlC,MAAMA,IAENA,UAA6BnipC,UAAI,SAAApI,IAAA,WAAAA,IAAwFuqpC,GAA4B,EACrJA,GAA6B3qkC,UA7xEiF7hF,MAAE,CAAA6nB,KA6xEH2koC,GAA4BpqpC,UAAA,6BAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,qIAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KA7xE3B3C,MAAE,WAAFA,MAAE,WAAFA,CA6xEmN,YA7xEnNA,QA6xEkR,IAH1XwspC,EAA4B,KAS5BC,GAAmC,MAAzC,MAAMA,IAENA,UAAoCpipC,UAAI,SAAApI,IAAA,WAAAA,IAAwFwqpC,GAAmC,EACnKA,GAAoC5qkC,UAtyE0E7hF,MAAE,CAAA6nB,KAsyEI4koC,GAAmCrqpC,UAAA,oCAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,qEAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAtyEzC3C,MAAE,WAAFA,MAAE,YAAFA,QAsyEkN,IAH1TyspC,EAAmC,KASnCC,EAAmB,MAAzB,MAAMA,GACF3qpC,cACI4D,KAAKusoC,gBAAiB,EACtBvsoC,KAAKmuoC,sBAAuB,EAC5BnuoC,KAAKouoC,mBAAoB,EACzBpuoC,KAAKquoC,yBAA0B,EAC/BruoC,KAAKsuoC,mBAAoB,EACzBtuoC,KAAKuuoC,oBAAqB,EAC1BvuoC,KAAKwuoC,sBAAuB,EAC5BxuoC,KAAKyuoC,uBAAwB,EAC7BzuoC,KAAK0uoC,qBAAsB,EAC3B1uoC,KAAK2uoC,sBAAuB,EAC5B3uoC,KAAK4uoC,kBAAmB,EACxB5uoC,KAAK8gpC,aAAexP,GAAiBI,GAAkBoC,aAC3D,EAEJiT,UAAoBripC,UAAI,SAAApI,IAAA,WAAAA,IAAwFyqpC,GAAmB,EACnIA,GAAoB7qkC,UA7zE0F7hF,MAAE,CAAA6nB,KA6zEZ6koC,GAAmBtqpC,UAAA,kBAAAC,OAAA,CAAA6voC,eAAA,iBAAAlB,wBAAA,0BAAAyC,YAAA,cAAAC,WAAA,aAAAG,uBAAA,yBAAA8Y,cAAA,gBAAAhZ,qBAAA,uBAAAG,qBAAA,uBAAAC,kBAAA,oBAAAC,wBAAA,0BAAAC,kBAAA,oBAAAC,mBAAA,qBAAAC,qBAAA,uBAAAC,sBAAA,wBAAAC,oBAAA,sBAAAC,qBAAA,uBAAAC,iBAAA,oBAAAhyoC,MAAA,EAAAC,KAAA,EAAAC,OAAA,4JAAAC,SAAA,SAAAC,GAAAC,IAA04E,GAA14E,EAAAD,KA7zET3C,MAAE,KAAFA,MAAE,EAAAwzoC,GAAA,0BAAFxzoC,aAAE,EAAA4zoC,GAAA,2BAAF5zoC,QA6zEm5E,EAAA2C,GAAA,OAAAw+E,GA7zEn5EnhF,MAAE,GAAFA,MAAE,mBAAA4C,GAAA+ppC,cAAA/ppC,GAAA+ppC,cAAAxrkC,GA6zE+1B,CAAC,EAAAa,aAAA,CAAylD+pkC,GAA0GC,GAA4EC,GAAsEC,GAAmFC,GAA6DC,GAAwEC,GAAmFC,GAA8EC,GAAiEC,GAA4EC,GAAwGxqkC,KAAgJgkkC,MAjB7hHyG,EAAmB,KAyDnBE,EAAuB,MAA7B,MAAMA,IAENA,UAAwBvipC,UAAI,SAAApI,IAAA,WAAAA,IAAwF2qpC,GAAuB,EAC3IA,GAAwB/qkC,UAx2EsF7hF,MAAE,CAAA6nB,KAw2ER+koC,GAAuBxqpC,UAAA,uBAAAG,MAAA,EAAAC,KAAA,EAAAC,OAAA,2PAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAx2EjB3C,MAAE,WAAFA,MAAE,UAAFA,CAw2EyR,UAx2EzRA,CAw2EyR,UAx2EzRA,CAw2EyR,WAx2EzRA,QAw2Eie,EAAAqsF,OAAA,uCAHzkBugkC,EAAuB,KASvBC,GAAwB,MAA9B,MAAMA,IAENA,UAAyBxipC,UAAI,SAAApI,IAAA,WAAAA,IAAwF4qpC,GAAwB,EAC7IA,GAAyBhrkC,UAj3EqF7hF,MAAE,CAAA6nB,KAi3EPgloC,GAAwBzqpC,UAAA,wBAAAG,MAAA,GAAAC,KAAA,EAAAC,OAAA,iaAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAj3EnB3C,MAAE,UAAFA,CAi3EsH,WAj3EtHA,MAAE,YAAFA,MAAE,cAAFA,MAAE,sBAAFA,cAAE,cAAFA,MAAE,sBAAFA,gBAAE,UAAFA,CAi3Eod,cAj3EpdA,MAAE,WAAFA,gBAAE,WAAFA,CAi3E4lB,iBAj3E5lBA,QAi3EwrB,EAAAkiF,cAAA,IAHhyB2qkC,EAAwB,KASxBC,GAA0B,MAAhC,MAAMA,IAENA,UAA2BzipC,UAAI,SAAApI,IAAA,WAAAA,IAAwF6qpC,GAA0B,EACjJA,GAA2BjrkC,UA13EmF7hF,MAAE,CAAA6nB,KA03ELiloC,GAA0B1qpC,UAAA,0BAAAG,MAAA,GAAAC,KAAA,EAAAC,OAAA,kUAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KA13EvB3C,MAAE,aAAFA,CA03EiH,UA13EjHA,CA03EiH,aA13EjHA,MAAE,+CAAFA,gBAAE,WAAFA,MAAE,aAAFA,cAAE,UAAFA,CA03Ega,aA13EhaA,CA03Ega,YA13EhaA,MAAE,YAAFA,gBAAE,cAAFA,CA03EmlB,aA13EnlBA,MAAE,SAAFA,cA03E+nB,EAAAkiF,cAAA,IAHvuB4qkC,EAA0B,KAS1BC,GAAoC,MAA1C,MAAMA,IAENA,UAAqC1ipC,UAAI,SAAApI,IAAA,WAAAA,IAAwF8qpC,GAAoC,EACrKA,GAAqClrkC,UAn4EyE7hF,MAAE,CAAA6nB,KAm4EKkloC,GAAoC3qpC,UAAA,qCAAAG,MAAA,GAAAC,KAAA,EAAAC,OAAA,m8DAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAn4E3C3C,MAAE,aAAFA,CAm4E0J,UAn4E1JA,CAm4E0J,YAn4E1JA,MAAE,gBAAFA,cAAE,SAAFA,MAAE,OAAFA,gBAAE,UAAFA,CAm4EwX,YAn4ExXA,MAAE,gBAAFA,cAAE,SAAFA,MAAE,QAAFA,gBAAE,YAAFA,MAAE,WAAFA,CAm4EkmB,aAn4ElmBA,MAAE,aAAFA,cAAE,UAAFA,MAAE,QAAFA,gBAAE,WAAFA,CAm4EwxB,aAn4ExxBA,MAAE,cAAFA,cAAE,WAAFA,MAAE,QAAFA,gBAAE,WAAFA,CAm4Em9B,cAn4En9BA,MAAE,eAAFA,cAAE,WAAFA,MAAE,QAAFA,gBAAE,WAAFA,CAm4EmpC,cAn4EnpCA,MAAE,gBAAFA,cAAE,WAAFA,MAAE,QAAFA,gBAAE,WAAFA,CAm4Ew1C,cAn4Ex1CA,MAAE,qBAAFA,cAAE,WAAFA,MAAE,QAAFA,gBAAE,WAAFA,CAm4EmjD,cAn4EnjDA,MAAE,yBAAFA,cAAE,WAAFA,MAAE,QAAFA,gBAAE,WAAFA,CAm4EkyD,cAn4ElyDA,MAAE,eAAFA,cAAE,WAAFA,MAAE,QAAFA,gBAAE,YAAFA,MAAE,WAAFA,CAm4EqgE,cAn4ErgEA,MAAE,oBAAFA,cAAE,WAAFA,MAAE,QAAFA,gBAAE,WAAFA,CAm4E8sE,cAn4E9sEA,MAAE,mBAAFA,cAAE,WAAFA,MAAE,QAAFA,gBAAE,WAAFA,CAm4Ek5E,cAn4El5EA,MAAE,kBAAFA,cAAE,WAAFA,MAAE,QAAFA,gBAAE,WAAFA,CAm4E8lF,cAn4E9lFA,MAAE,iBAAFA,cAAE,WAAFA,MAAE,QAAFA,gBAAE,YAAFA,MAAE,WAAFA,CAm4Ew0F,cAn4Ex0FA,MAAE,qBAAFA,cAAE,WAAFA,MAAE,QAAFA,gBAAE,YAAFA,CAm4EgiG,eAn4EhiGA,CAm4EgiG,cAn4EhiGA,MAAE,YAAFA,cAm4EirG,EAAAkiF,cAAA,IAHzxG6qkC,EAAoC,KASpCC,GAAiC,MAAvC,MAAMA,IAENA,UAAkC3ipC,UAAI,SAAApI,IAAA,WAAAA,IAAwF+qpC,GAAiC,EAC/JA,GAAkCnrkC,UA54E4E7hF,MAAE,CAAA6nB,KA44EEmloC,GAAiC5qpC,UAAA,kCAAAG,MAAA,GAAAC,KAAA,EAAAC,OAAA,qVAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KA54ErC3C,MAAE,aAAFA,CA44EsK,UA54EtKA,CA44EsK,YA54EtKA,MAAE,2CAAFA,gBAAE,WAAFA,MAAE,gBAAFA,MAAE,YAAFA,MAAE,QAAFA,gBAAE,UAAFA,CA44EshB,aA54EthBA,CA44EshB,aA54EthBA,MAAE,aAAFA,cA44E+pB,EAAAkiF,cAAA,IAHvwB8qkC,EAAiC,KASjCj/C,GAAa,MAAnB,MAAMA,GACFv+kC,UAAUloB,GAAKoiK,IACX,OAAO/jK,KAAKszF,UAAU3xF,GAAKoiK,GAC/B,CACMzwE,UAAU3xF,GAAK2lpC,IAAa,SAAA3l6B,KAAA,YAE9B,OAD6B5rO,OAAOiioC,qBACRhiB,KAAKrtnC,IAAIhH,GAAK,KAAM2lpC,GAAa,EAF/B,EAGlC,EAEJl/C,UAAc1jmC,UAAI,SAAApI,IAAA,WAAAA,IAAwF8rmC,GAAa,EACvHA,GAAcrnhC,WA55EgG1mF,MAAE,CAAAsf,KAAA,YAAAuI,KA45ERkmlC,GAAap+kC,MAAA,IAV/Go+kC,EAAa,KAkBnB,SAAS5vlB,KACL,eAAWzigB,OAAW,OAId,CAAC,iBAAkB,mBAAoB,iBAAkB,OAAQ,SAAU,QAAQmmF,SAAShnF,UAAUgY,WAEzGhY,UAAUuG,UAAUygF,SAAS,QAAU,eAAgB+a,SAChE,CACA,MAAM0iiC,GACFv9oC,YAAYyoF,GAAQm0O,GAAYviF,GAAqBtqI,GAAUglO,GAAYo20B,GAAkB95jC,GAAKiu2B,GAAS147B,IACvGhD,KAAK6kF,OAASA,GACd7kF,KAAKg5T,WAAaA,GAClBh5T,KAAKy2O,oBAAsBA,GAC3Bz2O,KAAKmsG,SAAWA,GAChBnsG,KAAKmxU,WAAaA,GAClBnxU,KAAKunpC,iBAAmBA,GACxBvnpC,KAAKytF,IAAMA,GACXztF,KAAK077B,QAAUA,GACf177B,KAAKgD,SAAWA,GAChBhD,KAAKwnpC,6CAA8C,EACnDxnpC,KAAKynpC,YAAc,IAAIlR,GACvBv2oC,KAAKyvoC,qBAAsB,EAC3BzvoC,KAAK0npC,mBAAoB,EACzB1npC,KAAK2npC,cAAe,EACpB3npC,KAAK4npC,cAAgB,WAErB5npC,KAAK6npC,0BAA2B,EAChC7npC,KAAK8npC,mBAAqB,IAAI74jC,MAC9BjvF,KAAK4y0B,SAAW,IAAI3jvB,MACpBjvF,KAAK+npC,UAAY,IAAI94jC,MACrBjvF,KAAKgopC,iBAAcvhpC,EACnBzG,KAAKiopC,iBAAmB,IAAIh5jC,MAC5BjvF,KAAKkopC,mBAAgBzhpC,EACrBzG,KAAKk+I,iBAAcz3I,EACnBzG,KAAKmopC,oBAAqB,EAC1BnopC,KAAKoopC,WAAa,IAAIn5jC,MACtBjvF,KAAKqopC,YAAc,IAAIp5jC,MACvBjvF,KAAKsopC,kBAAoB,IAAIr5jC,MAC7BjvF,KAAK+voC,aAAc,EAOnB/voC,KAAKuopC,eAAiB,EACtBvopC,KAAKisoC,gBAAiB,EACtBjsoC,KAAKksoC,gBAAiB,EAGtBlsoC,KAAKqlP,SAAWmw5B,GAAeE,SAC/B11oC,KAAKwopC,sBAAwB,CAAC,EAE9BxopC,KAAKyopC,qBAAsB,EAC3BzopC,KAAK4voC,oBAAqB,EAG1B5voC,KAAKgzoC,gBAAkB,KACvBhzoC,KAAK0opC,eAAiB,IAAIz5jC,MAC1BjvF,KAAK2opC,wBAA0B,IAAI15jC,MACnCjvF,KAAK4opC,8BAAgC,IAAI35jC,MACzCjvF,KAAK6opC,iBAAmB,IAAI55jC,MAC5BjvF,KAAK8opC,cAAgB,IAAI75jC,MACzBjvF,KAAK+opC,kBAAoB,IAAI95jC,MAC7BjvF,KAAKgppC,aAAe,IAAI/5jC,MAKxBjvF,KAAKuuX,YAAa,EAClBvuX,KAAK4xX,eAAYnrX,EACjBzG,KAAKippC,QAAU,OACfjppC,KAAKkppC,uBAAoBzipC,EACzBzG,KAAKmppC,qBAAsB,EAC3BnppC,KAAKqiT,gBAAkB,UAEvBriT,KAAKoppC,yBAAsB3ipC,EAE3BzG,KAAKqppC,gBAAiB,EAEtBrppC,KAAKsppC,WAAa,GAElBtppC,KAAKuppC,WAAa,GAElBvppC,KAAK0yoC,mBAAqBlB,GAAUE,GAAkBoC,cAAgB,WAEtE9zoC,KAAKwppC,iBAAmBhY,GAAUE,GAAkBoC,cAAgB,UAGpE9zoC,KAAKwqQ,cAAW/jQ,EAEhBzG,KAAKyppC,aAAc,EAEnBzppC,KAAK0ppC,eAAYjjpC,EAEjBzG,KAAKo1Y,cAAW3uY,EAChBzG,KAAK2ppC,qBAAsB,EAC3B3ppC,KAAK4ppC,oBAAqB,EAC1B5ppC,KAAKqwoC,kBAAoB,OAIzBrwoC,KAAKuwoC,0BAA2B,EAChCvwoC,KAAK0voC,oBAAiBjpoC,EACtBzG,KAAK6ppC,qBAAuB,IAAI56jC,MAChCjvF,KAAK8ppC,kBAAoBhR,GAAeG,QACxCj5oC,KAAK+ppC,wBAA0B,IAAI96jC,MACnCjvF,KAAKgqpC,gBAAiB,EACtBhqpC,KAAKiqpC,qBAAuB,IAAIh7jC,MAChCjvF,KAAKkqpC,yBAA0B,EAC/BlqpC,KAAKmqpC,8BAAgC,IAAIl7jC,MACzCjvF,KAAKusoC,oBAAiB9loC,EACtBzG,KAAKmuoC,sBAAuB,EAC5BnuoC,KAAKouoC,mBAAoB,EACzBpuoC,KAAKquoC,yBAA0B,EAC/BruoC,KAAKsuoC,mBAAoB,EACzBtuoC,KAAKuuoC,oBAAqB,EAC1BvuoC,KAAKwuoC,sBAAuB,EAC5BxuoC,KAAKyuoC,uBAAwB,EAC7BzuoC,KAAK0uoC,qBAAsB,EAC3B1uoC,KAAK2uoC,sBAAuB,EAC5B3uoC,KAAK4uoC,kBAAmB,EACxB5uoC,KAAKysoC,mBAAoB,EACzBzsoC,KAAK0soC,iBAAkB,EACvB1soC,KAAK6soC,4BAA6B,EAClC7soC,KAAK8soC,oBAAqB,EAC1B9soC,KAAK+soC,iBAAkB,EACvB/soC,KAAKgtoC,oBAAqB,EAC1BhtoC,KAAK08jB,MAAQ,QACb18jB,KAAKoqpC,aAAc,EACnBpqpC,KAAKitoC,4BAA6B,EAElCjtoC,KAAKiwoC,kCAAmC,EACxCjwoC,KAAK4roC,kBAAmB,EACxB5roC,KAAKqqpC,WAAa7xoB,KAClBx4gB,KAAKsqpC,eAAiB,IAAIr7jC,MAC1BjvF,KAAK4soC,oBAAqB,EAC1B5soC,KAAKuqpC,sBAAuB,EAC5BvqpC,KAAKwqpC,mBAAoB,EACzBxqpC,KAAK2toC,sBAAuB,EAC5B3toC,KAAKyqpC,aAAc,EACnBzqpC,KAAKglpC,aAAe,IAAI/1jC,MACxBjvF,KAAKkroC,eAAiB,IAAIj8iC,MAC1BjvF,KAAK0qpC,WAAQjkpC,EACbzG,KAAK2qpC,WAAa,IAAI17jC,MACtBjvF,KAAK4qpC,eAAYnkpC,EACjBzG,KAAK6qpC,gBAAkB,IAAI57jC,MAC3BjvF,KAAK8qpC,YAAc,IAAI77jC,MACvBjvF,KAAK+qpC,WAAa,IAAI97jC,MACtBjvF,KAAKgrpC,aAAe,IAAI/7jC,MACxBjvF,KAAKirpC,cAAgB,IAAIh8jC,MACzBjvF,KAAKkrpC,UAAY,IAAIj8jC,MACrBjvF,KAAKmrpC,iBAAmB,IAAIl8jC,MAC5BjvF,KAAKorpC,iBAAmB,IAAIn8jC,MAC5BjvF,KAAKwsoC,eAAY/loC,EACjBzG,KAAKqrpC,kBAAoB,IAAIp8jC,MAC7BjvF,KAAKsrpC,4BAA8B,IAAIr8jC,MACvCjvF,KAAKurpC,uBAAyB,IAAIt8jC,MAClCjvF,KAAKwrpC,gBAAkB,IAAIv8jC,MAE3BjvF,KAAKgrY,UAAOvkY,EACZzG,KAAKyrpC,WAAa,IAAIx8jC,MACtBjvF,KAAK2soC,WAAa,CAAC,OAAQ,cAAe,WAAY,aAAc,GAAK,EAAG,KAAM,IAAK,EAAG,EAAG,GAC7F3soC,KAAK0rpC,QAAU,GACf1rpC,KAAK2rpC,QAAU,GAIf3rpC,KAAK4rpC,oBAAsB,OAC3B5rpC,KAAKqroC,wBAA0B,EAC/BrroC,KAAKkwoC,iBAAmB,MACxBlwoC,KAAKmwoC,aAAe,OACpBnwoC,KAAK8luB,aAAUr/tB,EACfzG,KAAK6rpC,qBAAuB,cAC5B7rpC,KAAKstoC,yBAAsB7moC,EAC3BzG,KAAKmroC,wBAAqB1koC,EAE1BzG,KAAK+toC,gBAAatnoC,EAElBzG,KAAK8toC,iBAAcrnoC,EACnBzG,KAAK8rpC,cAAe,EACpB9rpC,KAAK6voC,qBAAsB,EAC3B7voC,KAAK6x5B,SAAW7x5B,KAAKunpC,iBAAiBj3P,qBACtCtw5B,KAAK077B,QAAQ89M,iBAAiBjtnC,UAAU,IAAMvsB,KAAKsxV,aAAU,EACzDp4B,MAAkBl5T,KAAKg5T,cACvBh5T,KAAK6voC,qBAAsB,EAC3B7voC,KAAKmwoC,aAAejvoC,OAAO+1G,SAASi8B,KAAKyvL,aAEjD,CACI5+K,aAASA,IACT/jJ,KAAKynpC,YAAY1jgC,SAAWA,EAChC,CACI4y/B,qBACA,OAAO32oC,KAAKynpC,YAAY9Q,cAC5B,CACI3G,mBACA,OAAOhwoC,KAAK4npC,aAChB,CACI5X,iBAAa+b,IAEb,GADmB/rpC,KAAK4npC,gBAAkBmE,GAC1B,CACZ,MAAMC,IAAchspC,KAAKwnpC,8CAAuE,SAAvBxnpC,KAAK4npC,eAAyC,SAAbmE,IAC1G/rpC,KAAK4npC,cAAgBmE,GACeh2oC,OAAOk2oC,6BACd99/B,IAAI,eAAgBnuJ,KAAKgwoC,cACtD,MAAMgI,GAAuBjioC,OAAOiioC,qBA6BpC,GA5BIA,KACAA,GAAqB4F,UAAU5N,aAAehwoC,KAAK4npC,cACnD5P,GAAqBkU,eAAelc,aAAehwoC,KAAK4npC,eAE3C,oBAAbmE,IACI/rpC,KAAKmspC,aAAe7W,GAAe1tgC,MAAQ5nI,KAAKmspC,aAAe7W,GAAej8tB,cAC9Er5a,KAAKmspC,WAAa7W,GAAeh8tB,WAGnB,aAAbyyuB,IAID/rpC,KAAKmspC,aAAe7W,GAAe1tgC,QAHvC5nI,KAAKmspC,WAAa7W,GAAeh8tB,UAOpB,WAAbyyuB,KAEA/rpC,KAAKmspC,WAAa7W,GAAe1tgC,KACjC5nI,KAAK4npC,cAAgBmE,IAER,SAAbA,KACA/rpC,KAAKyqpC,aAAc,EACfzqpC,KAAKmspC,aAAe7W,GAAeh8tB,WACnCt5a,KAAKmspC,WAAa7W,GAAeh8tB,WAGrC0yuB,GAAY,CACZ,GAAiB,SAAbD,GAAqB,CACrB,MAAMK,GAAMpspC,KAAKmxU,WAAWtvU,cACtBwqpC,GAAkBD,GAAIl1iC,cAAc,oBAC1Cm1iC,GAAgBr16B,MAAM7uN,MAAQ,GAC9BkkoC,GAAgBr16B,MAAMqjF,SAAW,GACjCgy1B,GAAgBr16B,MAAMorF,YAAc,GACpCiq1B,GAAgBr16B,MAAMmrF,WAAa,GACnC,MAAMmq1B,GAASF,GAAIl1iC,cAAc,WACjCo1iC,GAAOt16B,MAAM/1G,SAAW,GACxBqrhC,GAAOt16B,MAAMv7G,SAAW,GAE5Bz7H,KAAKuspC,UAAS,EAG1B,CACIJ,iBACA,OAAOnspC,KAAKgopC,WAChB,CACImE,eAAWpspC,IACPC,KAAKgopC,cAAgBjopC,KACrBC,KAAKgopC,YAAcjopC,GACfC,KAAKgopC,cAAgB1S,GAAe1tgC,KACV,WAAtB5nI,KAAKgwoC,eACLhwoC,KAAK4npC,cAAgB,SACrB5npC,KAAK8npC,mBAAmBprjC,KAAK18F,KAAKgwoC,gBAGX,WAAtBhwoC,KAAKgwoC,cAA6BhwoC,KAAKgopC,cAAgB1S,GAAej8tB,cAC3Er5a,KAAK4npC,cAAgB,WACrB5npC,KAAK8npC,mBAAmBprjC,KAAK18F,KAAKgwoC,eAG9C,CACIh3hC,QAAIkiC,IAAK,IAAA+tG,GAAAjpP,KACT,GAAIk7I,cAAe4oG,WACf9jP,KAAKwspC,KAAOtxgC,GAAI2lE,eAEX3lE,cAAemrD,IACpBrmM,KAAKwspC,KAAOtxgC,GAAIrzI,gBAAS,UAEb6/M,KAAS,KAAexsE,cAAewsE,KAAM,CAEzD,MAAMrpG,GAAS,IAAI3F,WACnB2F,GAAOkitB,UAAY,KACfpszB,WAAW,KACPnU,KAAKg5G,IAAM,IAAI8qI,WAAWzlI,GAAOjhB,QAC7Bu8iC,GAA8BC,kCAC1B55oC,KAAKwnpC,4CACLxnpC,KAAKyspC,WAAQ,EAGb9q6B,KAAC,mBAAYsH,GAAKsj6B,UAAU,EAHf,GAGiB,EAIzC,EAELluiC,GAAOquiC,kBAAkBxxgC,GAAG,KAER,iBAARA,IACZl7I,KAAKwspC,KAAOtxgC,GACRA,GAAI93I,OAAS,KAET83I,GAAI93I,OAAS,GAAM,GACf,yBAAyBoY,KAAK0/H,KAC9BzjI,QAAQC,MAAM,6GAM1B1X,KAAKwspC,KAAOtxgC,EAEpB,CACIyxgC,cAAUljD,IACV,GAAIA,GAAQ,CACR,UAAW1zlC,OAAW,IAElB,OAEJ,MAAM62oC,GAAgBtoxB,KAAKmluB,IACrBphmC,GAAMukpC,GAAcxppC,OACpBm9O,GAAQ,IAAIuD,WAAWz7O,IAC7B,QAAS1C,GAAI,EAAGA,GAAI0C,GAAK1C,KACrB46O,GAAM56O,IAAKinpC,GAAchkpC,WAAWjD,IAExC3F,KAAKg5G,IAAMunI,GAAM1/B,YAGjB7gN,KAAKwspC,UAAO/lpC,CAEpB,CACIqyG,WAAOpzG,IACP1F,KAAK4xX,eAAYnrX,EACjBzG,KAAKuuX,YAAa,EACd7oX,GACU,SAANA,IACA1F,KAAKuuX,YAAa,EAClBvuX,KAAKippC,aAAUxipC,GAGfzG,KAAKippC,QAAUvjpC,GAInB1F,KAAK84G,OAAS,OAElB3kG,WAAW,KACPnU,KAAK6spC,aAAY,EAEzB,CACI/ziC,aACA,OAAO94G,KAAKippC,OAChB,CACI6D,uBACA,QAAS9spC,KAAKkppC,iBAClB,CAMI4D,qBAAiB/spC,IACjBC,KAAKkppC,kBAAoBnppC,EAC7B,CACIusoC,wBACA,OAAOtsoC,KAAK4ppC,kBAChB,CACItd,sBAAkBvttB,IAClB,UAAWhpa,OAAW,IAElB/V,KAAK4ppC,oBAAqB,MAF9B,CAMA,GADA5ppC,KAAK4ppC,mBAAqB7quB,GACtB/+a,KAAK4ppC,mBAAoB,CAEzB,IAAIviW,GAAS,EAKb,MANa,oBAAoB7ryB,KAAKzF,OAAOb,UAAUuG,aAGnD4ryB,GAAS14uB,QAAQ3uE,KAAK4rpC,qBAAuB,OAAOvxoC,QAAQ,IAAK,KAAO,UAE5Era,KAAK8toC,aAAe,GAAKzmV,IAAQx/yB,WAAa,KAC9C,CAEJ7H,KAAK8toC,YAAc,KAZf,CAaR,CACIif,aAASA,IACLv0oB,MAAWu0oB,GACXt1oC,QAAQrE,IAAI,+MAGhBpT,KAAKqqpC,UAAY0C,EACrB,CACIA,eACA,OAAO/spC,KAAKqqpC,SAChB,CACI5c,0BACA,MAA0B,aAAtBztoC,KAAKgwoC,cACEhwoC,KAAKuqpC,oBAGpB,CACI9c,wBAAoB3jnC,IACpB9pB,KAAKuqpC,qBAAuBzgoC,EAChC,CACI4jnC,uBACA,MAA0B,oBAAtB1toC,KAAKgwoC,cACEhwoC,KAAKwqpC,iBAGpB,CACI9c,qBAAiB5jnC,IACjB9pB,KAAKwqpC,kBAAoB1goC,EAC7B,CACI89G,WACA,OAAO5nI,KAAK0qpC,KAChB,CACI9ihC,SAAKn7H,IAGDzM,KAAK0qpC,MAFLj+oC,GAEakiE,OAAOliE,SAGPhG,CAErB,CACA4ooC,gBAAgB2d,IACZhtpC,KAAK8luB,QAAUknb,EACnB,CACIC,yBACA,OAAOjtpC,KAAK4rpC,mBAChB,CACI9K,mBACA,OAAOxP,GAAiBI,GAAkBoC,aAC9C,CACItE,6BACA,MAAM0d,GAAcltpC,KAAK8gpC,aACnBr4oC,GAAMykpC,GAAYnj8B,YAAY,KACpC,OAAOmj8B,GAAYnnpC,UAAU,EAAG0C,IAAK4R,QAAQ,IAAK,IACtD,CAKI4yoC,uBAAmBjixB,IAEP,QAARA,GACAA,GAAO,QAGM,SAARA,IAHE,MAGiBA,MACxBA,GAAO,QAEXhrY,KAAK4rpC,oBAAsB5gxB,GAC3B,IAAIq8a,GAAS,EACRnmzB,OAAO8pY,IAAM9uS,SAAS,OACvB8uS,GAAO,IAAMr8T,OAAOq8T,IAAQ,KAEhCq8a,GAAS14uB,QAAQq8T,IAAQ,OAAO3wX,QAAQ,IAAK,KAAO,IACpDra,KAAKqroC,wBAA0BhkV,GAC/BrnzB,KAAKmwoC,cAAgB,IAAM9oV,IAAQx/yB,WAAa,IAChD7H,KAAKkwoC,iBAAkC,IAAd7oV,GAAS,GAAU,KAC5ClzyB,WAAW,IAAMnU,KAAKmtpC,wBAC1B,CACAA,wBACI,QAAqB1mpC,IAAjBzG,KAAK8luB,QAEL,YADA9luB,KAAKmroC,mBAAqB,KAG9B,IAAIn10B,GAAMh2T,KAAK8luB,QAAQ/va,wBAAwBj9M,OAE3C94G,KAAKqwoC,kBADLr60B,GAAM,GACmB,OAGAA,GAAM,KAEnC,MAAMqxf,GAASrxf,GAAM,GAEjBh2T,KAAKmroC,mBADLnroC,KAAK4voC,oBACsB,GAAK,IAAMvoV,GAAS,IAAIx/yB,WAAa,KAGtC,IAE9B7H,KAAKstoC,qBAAuB,GAAK,IAAMjmV,GAAS,IAAIx/yB,WAAa,KACjE7H,KAAK+toC,YAAc,GAAK,IAAM1mV,GAAS,IAAIx/yB,WAAa,KACxD,MAAMulpC,GAAan2iC,SAASioB,eAAe,YAC3C,GAAIkuhC,GAAY,CACZ,MAAMC,GAAwBrtpC,KAAK8luB,QAAQ/va,wBAAwBr1I,KAE7DA,GADqB0s+B,GAAWr31B,wBACNr1I,KAAO2s+B,GACvCrtpC,KAAK8toC,YAAcpt9B,GAAO,UAG1B1gL,KAAK8toC,YADA9toC,KAAKssoC,kBACS,IAAM,GAAKjlV,IAAQx/yB,WAAa,KAGhC,GAE3B,CACAylpC,wBACI,UAAWv3oC,OAAW,IAElB,OAAO,EAEX,MAAM5U,GAAQ+T,UAAUiY,WAAWhsB,MAAM,0BACzC,OAAqC,MAAVA,IAChB2E,SAAS3E,GAAM,GAAI,IAAM,EAGxC,CACMgwoC,WAAW,IAAAjo5B,GAAAlpP,KAAA,SAAA2hP,KAAA,YACb,UAAW5rO,OAAW,IAElB,OAAO,EAEX,MAAM0qJ,KAAS1qJ,OAAOk7nC,wBAA0Bh6hC,SAASgjuB,aACnDi3T,GAAS,aAAa11nC,KAAKtG,UAAUuG,WACrC8xoC,GAAiBrk6B,GAAKok6B,wBAE5B,gBADsBlc,eAAmB,YAAsBlvhC,QAAQmvhC,WAAkB,KACzE5w+B,IAAQyw+B,IAAUqc,IAAkBrk6B,GAAKig6B,8BAG1Cjg6B,GAAKsk6B,2BAA4B,EAZnC,EAajB,CACAA,2BACI,OAAO,IAAItriC,QAASC,KAChB,MAAMujtB,GAAU3vzB,OAAOy3oC,yBACCrriC,QAAZ17G,IAAZi/zB,GAAgCA,GAAmB1l0B,KAAKytpC,6BAAjB,EAE/C,CACAA,6BACI,OAAO,IAAIvriC,QAASC,KAChB,MAAMsxS,GAASzzZ,KAAK0tpC,oBAAoBhc,GAAkBoC,aAAe,2BACzErgvB,GAAO76S,OAAS,KACZ66S,GAAOr4N,SACPj5E,GAAQpsG,OAAOy3oC,yBAAwB,EAE3C/5vB,GAAO3jN,QAAU,KACb2jN,GAAOr4N,SACPrlL,OAAOy3oC,0BAA2B,EAClCrriC,IAAQ,EAAK,EAEjBlL,SAASi8B,KAAKqsG,YAAYk0K,GAAM,EAExC,CACAi6vB,oBAAoBC,IAChB,MAAMl6vB,GAASx8S,SAAS6sE,cAAc,UACtC2vO,GAAO1nM,OAAQ,EACf0nM,GAAOvxY,KAAO,kBACd,MAAM09nC,GAAW7poC,OACjB,GAAI6poC,GAASrsN,aAAc,CACvB,MAAMvn6B,GAAY4znC,GAASrsN,aAAaC,aAAa,MAAO,CACxDG,gBAAkB345B,IAAUA,KAEhCy4X,GAAOz6S,IAAMhtF,GAAU2n6B,gBAAgB3z7B,KAAKmsG,SAAS8+U,UAAU0iuB,IAAW,MAG1El6vB,GAAOz6S,IAAMh5G,KAAKmsG,SAAS8+U,UAAU0iuB,IAEzC,OAAOl6vB,EACX,CACAm6vB,aAAaC,GAAU1c,IACnB,MAAM780B,GAASt0T,KAAKyopC,oBAAsB,UAAY,MAChDqF,GAASpc,GAAkBoC,aAIjC,OAAOga,GAFe,IAAGD,MADHvc,GAAiBwc,KAE3B3c,GAAW,OAAS,IACqB780B,EACzD,CACAy51B,aACIh4oC,OAAOi4oC,QAAahupC,KAAK6kF,OACzB7kF,KAAK6kF,OAAOuxP,kBAAkB,KACrBrgU,OAAO,wBAIR/V,KAAKmxoC,WAAW1vhC,KAAM0vhC,KAClB,MAAM8c,GAAajupC,KAAK4tpC,aAAa,SAAUzc,IACzC19uB,GAASzzZ,KAAK0tpC,oBAAoBO,IACxCh3iC,SAAS+zU,qBAAqB,QAAQ,GAAGzrM,YAAYk0K,GAAM,GAN/Dt/Y,WAAW,IAAMnU,KAAK+tpC,aAAc,GAAE,EAUlD,CACAn5iB,cACI,OAAO,IAAI1yf,QAASC,KAChB,MAAMsxS,GAASzzZ,KAAK0tpC,oBAAoBhc,GAAkBoC,aAAe,2BACzErgvB,GAAO76S,OAAS,KACZ66S,GAAOr4N,QAAO,EAElBq4N,GAAO3jN,QAAU,KACb2jN,GAAOr4N,SACPj5E,IAAQ,EAEZlL,SAASi8B,KAAKqsG,YAAYk0K,GAAM,EAExC,CACAp3Z,YACI,EAAI68T,MAAkBl5T,KAAKg5T,cACvBztK,WAAW2igC,8BAAoChzgC,KAC3Cl7I,KAAKwspC,KAAOtxgC,GACZl7I,KAAK6npC,0BAA2B,EAChC7npC,KAAK+npC,UAAUrrjC,KAAKw+C,GAAG,EAE3Bl7I,KAAKmupC,yCACLnupC,KAAKynpC,YAAY7Q,6BAA6B52oC,KAAK6kF,QACnD7kF,KAAKoupC,YACLpupC,KAAKqupC,yBAEb,CACAD,YACI7igC,WAAWyigC,QAAahupC,KAAK6kF,OAC7B7kF,KAAK6kF,OAAOuxP,kBAAkB,KACrBrgU,OAAO,yBACR/V,KAAKmxoC,WAAW1vhC,KAAM0vhC,KASlB,GARIA,KACKO,GAAkBP,UACnB15nC,QAAQrE,IAAI,uRAEhBs+nC,GAAkBP,UAAW,EAC7B15nC,QAAQrE,IAAI,oGAEhB2C,OAAOi4oC,QAAahupC,KAAK6kF,OACrB7kF,KAAKyopC,sBACA/W,GAAkBiD,YAAY/1hC,SAAS,WAAY,CACpD,MAAM5F,GAAM04hC,GAAkBiD,YAC9BjD,GAAkBiD,UAAY,IAAM37hC,GAAI3+F,QAAQ,MAAO,UAAS,CAGxE,MAAMi0oC,GAAYtupC,KAAK4tpC,aAAa,MAAOzc,IACrC19uB,GAASzzZ,KAAK0tpC,oBAAoBY,IACxCr3iC,SAAS+zU,qBAAqB,QAAQ,GAAGzrM,YAAYk0K,GAAM,GAG9D19Y,OAAOw4oC,eACRvupC,KAAK+tpC,YAAW,EAG5B,CACA3jkC,yBACer0E,OAAW,MACb/V,KAAK8rpC,eAEF/1oC,OAAOw4oC,cACPvupC,KAAK6kF,OAAOuxP,kBAAkB,IAAMp2U,KAAKwupC,mBAGzCr6oC,WAAW,IAAMnU,KAAKoqF,kBAAmB,KAIzD,CACAqkkC,mBACI,GAAIzupC,KAAK0upC,cAAe,CACpB,MAAMpppC,GAAItF,KAAKiva,KAAKpta,cAAc4yU,WAAU,GAC5CnvU,GAAE22O,UAAU5sO,IAAI,aAChBrP,KAAK2upC,wBAAwBrppC,IAC7B2xG,SAASi8B,KAAKqsG,YAAYj6O,IAC1B,MAAM6lU,GAAWnrU,KAAK4upC,wBAAwBtppC,GAAGtF,KAAKiva,KAAKpta,cAAe,IAC1Eo1G,SAASi8B,KAAKssG,YAAYl6O,IAC1B,MAAMiipB,GAASp8U,GAASzlT,KAAK,CAAClf,GAAGiB,KACzBjB,GAAEvB,EAAIwC,GAAExC,EAAI,GACL,EAEPwC,GAAExC,EAAIuB,GAAEvB,EAAI,IACL,EAEJuB,GAAExB,EAAIyC,GAAEzC,GAEnB,QAASW,GAAI,EAAGA,GAAI4hpB,GAAOnkpB,OAAQuC,KAC/B4hpB,GAAO5hpB,IAAG3D,QAAQw3gB,SAAWx5gB,KAAK0upC,cAAgB/opC,GAG9D,CACAgppC,wBAAwB1/uB,IAepB,GAdAA,GAAKhzL,UAAU7gD,OAAO,UACtB6zO,GAAKhzL,UAAU7gD,OAAO,aACtB6zO,GAAKhzL,UAAU7gD,OAAO,iBACtB6zO,GAAKhzL,UAAU7gD,OAAO,gBACtB6zO,GAAKhzL,UAAU7gD,OAAO,mBACtB6zO,GAAKhzL,UAAU7gD,OAAO,oBACtB6zO,GAAKhzL,UAAU7gD,OAAO,mBACtB6zO,GAAKhzL,UAAU7gD,OAAO,kBACtB6zO,GAAKhzL,UAAU7gD,OAAO,kBACtB6zO,GAAKhzL,UAAU7gD,OAAO,iBACtB6zO,GAAKhzL,UAAU7gD,OAAO,oBACtB6zO,GAAKhzL,UAAU7gD,OAAO,qBACtB6zO,GAAKhzL,UAAU7gD,OAAO,oBACtB6zO,GAAKhzL,UAAU7gD,OAAO,qBAClB6zO,cAAgB+7R,mBAAqB/7R,cAAgBkxZ,mBAAqBlxZ,cAAgBi8R,kBAAoBj8R,cAAgBg8R,oBAGzHh8R,GAAKsnC,kBAAoB,EAC9B,QAAS5wc,GAAI,EAAGA,GAAIspa,GAAKsnC,kBAAmB5wc,KAAK,CAC7C,MAAMC,GAAIqpa,GAAK/8O,SAAS5mK,KAAK3lB,IACzBC,IACA5F,KAAK2upC,wBAAwB/opC,GAAC,CAI9C,CACAgppC,wBAAwBzk9B,GAAMw1P,GAAUx0H,IACpC,GAAIhhI,cAAgB6ggB,mBAAqB7ggB,cAAgBg2nB,mBAAqBh2nB,cAAgB+ggB,kBAAoB/ggB,cAAgB8ggB,kBAAmB,CACjJ,MAAMj/X,GAAO7hI,GAAK4rH,wBACZ841B,GAAgB,CAClB7spC,QAAS29b,GACT36b,EAAGiG,KAAK2wK,MAAMowJ,GAAKtrJ,MACnBz7K,EAAGgG,KAAK2wK,MAAMowJ,GAAKhW,MAEvBmV,GAASpsT,KAAK8voC,GAAa,SAEtB1k9B,GAAKosQ,kBAAoB,EAC9B,QAAS5wc,GAAI,EAAGA,GAAIwkM,GAAKosQ,kBAAmB5wc,KAAK,CAC7C,MAAMC,GAAIukM,GAAKjY,SAAS5mK,KAAK3lB,IACvBwe,GAAIw7a,GAASztQ,SAAS5mK,KAAK3lB,IAC7BC,IAAKue,KACLgnT,GAAWnrU,KAAK4upC,wBAAwBhppC,GAAGue,GAAGgnT,IAAQ,CAIlE,OAAOA,EACX,CACAqj1B,kBACI,UAAWz4oC,OAAW,IAElB,OAEJ,MAAM9B,GAAWA,KACbgjG,SAAS3gG,oBAAoB,YAAarC,IAC1CjU,KAAK8upC,YAAc36oC,WAAW,KACrBnU,KAAK8rpC,eAEN9rpC,KAAKmtpC,wBACLntpC,KAAK+upC,mBACL/upC,KAAKyspC,UACLzspC,KAAKyupC,mBACDzupC,KAAK2ppC,sBACL5zoC,OAAOmklB,MAAQnklB,OAAOqloC,YAG/Bp7oC,KAAKuopC,eAAc,EAE1BxyoC,OAAOS,iBAAiB,aAAc,KAClCxW,KAAKoopC,WAAW1rjC,MAAK,GAEzB3mF,OAAOS,iBAAiB,cAAe,KACnCxW,KAAKqopC,YAAY3rjC,MAAK,GAE1Bua,SAASzgG,iBAAiB,YAAavC,IACnC0loC,GAA8BC,iCAE9BnioC,QAAQC,MAAM,mGAElB,MAAMiwc,GAAWA,KACb3nd,KAAKgvpC,0BACL/3iC,SAAS3gG,oBAAoB,kBAAmBqxc,GAAQ,EAE5D1wW,SAASzgG,iBAAiB,kBAAmBmxc,IAC7C3nd,KAAKivpC,6BAA6B,MAClC96oC,WAAW,KACP,IAAKnU,KAAK8rpC,aAAc,CAGpB9rpC,KAAKsxV,WACLtxV,KAAKqupC,yBACLrupC,KAAKkvpC,gBAAgBpZ,4BACrB91oC,KAAK6kF,OAAOuxP,kBAAkB,IAAMrgU,OAAOw4oC,iBAC3C,MAAMvW,GAAuBjioC,OAAOiioC,qBACpCA,GAAqBmX,UAAUpd,WAAa,GACxC/xoC,KAAKoppC,sBACLpR,GAAqBmX,UAAU/F,oBAAsBpppC,KAAKoppC,qBAE9D,MAAM6C,GAA8Bl2oC,OAAOk2oC,4BAC3CA,GAA4B99/B,IAAI,oBAAqBnuJ,KAAK0npC,mBAC1D,IAAIl94B,GAA6B,KAAlBxqQ,KAAKwqQ,cAAkB/jQ,EAAYzG,KAAKwqQ,SAClDA,KAGGA,UAFOz0P,OAAW,IAEP,KAGAb,UAAUs1P,UAG7Byh5B,GAA4B99/B,IAAI,SAAUq8G,IAC1Cyh5B,GAA4B99/B,IAAI,qBAAsBnuJ,KAAK0yoC,oBAC3DuZ,GAA4B99/B,IAAI,UAAWnuJ,KAAK2rpC,SAChDM,GAA4B99/B,IAAI,UAAWnuJ,KAAK0rpC,SAChDO,GAA4B99/B,IAAI,eAAgBnuJ,KAAKgwoC,cACrDic,GAA4B99/B,IAAI,YAAanuJ,KAAKqlP,UAClD4m6B,GAA4B99/B,IAAI,cAAenuJ,KAAKgrY,MACpDgtwB,GAAqBoX,kBAAmB,EACpCpX,GAAqBqX,sBACrBt5oC,OAAOS,iBAAiB,UAAWwhoC,GAAqBqX,sBAAsB,GAElF,MAAMn8gC,GAAOj8B,SAAS+zU,qBAAqB,QAC3C,GAAI93S,GAAK,GAAI,CACT,MAAMo8gC,GAAmBp8gC,GAAK,GAAGg/C,SACjC,QAASvsL,GAAI2ppC,GAAiBlspC,OAAS,EAAGuC,IAAK,EAAGA,KAAK,CACnD,MAAMtG,GAAIiwpC,GAAiBhkoC,KAAK3lB,IAC5BtG,IAAc,mBAATA,GAAEiuE,IACP4lE,GAAK,GAAGssG,YAAYngP,GAAC,EAIjC,MAAMkwpC,GAAKt4iC,SAASioB,eAAe,kBAC/BqwhC,IACAt4iC,SAAS+zU,qBAAqB,QAAQ,GAAGzrM,YAAYgw6B,GAAE,GAGhE,EACP,CACApB,yCACI,MAAMqB,GAAYv4iC,SAASwjO,iBAAiB,iCACtCg10B,GAAYD,GAAUpspC,OACtBsspC,GAAOz4iC,SAASC,cAAc,mCAC9By4iC,GAA2BF,GAAY,KAAOC,GAIpD,QAH+BjppC,IAA3BzG,KAAKkppC,oBACLlppC,KAAK8spC,kBAAoB6C,IAExBA,IAaA,GAAI3vpC,KAAK8spC,kBAAoB2C,GAAY,EAAG,CAC7C,MAAMtroC,GAAIqroC,GAAU,GAAG9mkC,WAAWo9C,OAC9B3hH,IAAiB,4BAAZA,GAAEpkB,OACP0X,QAAQC,MAAM,yHAAwH,MAhB/G,CACtB1X,KAAK8spC,mBACNr1oC,QAAQC,MAAM,6HACdD,QAAQC,MAAM,gEACdD,QAAQC,MAAM,4EAElB,MAAMynO,GAAOn/O,KAAKgD,SAAS8gL,cAAc,QACzCq7D,GAAK4lf,IAAM,WACX5lf,GAAKj9N,KAAO,mBACZi9N,GAAK/tG,KAAOpxI,KAAKwppC,iBAAmB,qBACpCrq6B,GAAKnD,aAAa,SAAU,2BAC5Bh8O,KAAKgD,SAASu8O,YAAYv/O,KAAKmxU,WAAWtvU,cAAes9O,GAAI,CAQrE,CACAkv6B,yBACIrupC,KAAK4voC,mBAAqB5voC,KAAKoqpC,cAC1BpqpC,KAAKitoC,4BAA8BjtoC,KAAKiwoC,oCACpCjwoC,KAAK4vpC,yBACN5vpC,KAAK4voC,oBAAqB,GAGtC,CAEAmf,mBACI/upC,KAAKy2O,oBAAoB4i6B,YAAYz3oC,MACzC,CACAirpC,cACI,KAAI7spC,KAAKippC,UACDzt+B,MAAM7sG,OAAO3uE,KAAKippC,QAAQ5uoC,QAAQ,IAAK,SAM3C48F,SAASC,cAAc,gCAMhBD,SAAa,IAAa,CACjC,MAAM6rB,GAAY7rB,SAAS9zG,uBAAuB,QAAQ,GAC1D,GAAI2/H,KAC+B,IAA3BA,GAAU2/L,eACNziU,KAAKqlP,UAAYmw5B,GAAeE,WAAa11oC,KAAKuuX,YAClD92W,QAAQqR,KAAK,qOAEjB9oB,KAAKuuX,YAAa,GAElBvuX,KAAKuuX,YAAY,CAIjB,IAAIshyB,GAHc95oC,OAAO8/S,YACZ/yL,GAAUizL,wBACNC,IAIjB651B,IADgB7vpC,KAAK8vpC,sBAAsBhthC,IAGvC9iI,KAAK4xX,UADLi+xB,GAAgB,IACE,GAAEA,OAGH,QAErB7vpC,KAAKytF,IAAIokQ,cAAa,EAItC,CACAi+zB,sBAAsBhthC,IAClB,GAAIA,GAAW,CACX,MAAMy8Z,GAAgBxphB,OAAOmkT,iBAAiBp3L,IACxCsmL,GAAU8s1B,GAAS6Z,KAAKxwnB,GAAc/kH,eACtCntG,GAAS6o0B,GAAS6Z,KAAKxwnB,GAAcr9N,cAC3C,OAAIp/L,GAAUk0G,MAAM42X,OACTxkT,GAAUikB,GAEdjkB,GAAUikB,GAASrtU,KAAK8vpC,sBAAsBhthC,GAAUs3L,cAAa,CAEhF,OAAO,CACX,CACAiz0B,eAAegY,IACXrlpC,KAAKglpC,aAAatojC,KAAK2ojC,GAC3B,CACA4J,6BAA6BtnoC,SACFlhB,IAAnBzG,KAAKwsoC,UACAxsoC,KAAK+spC,UAqBFploC,IACAA,GAAQwmI,IAAI,gBAAiBnuJ,KAAK4soC,mBAAqB8E,GAAkB+B,cAAgB,GAExFzzoC,KAAK4soC,sBACF5soC,KAAKusoC,qBAA0C9loC,IAAxBzG,KAAKusoC,kBAC5BvsoC,KAAK6kF,OAAOq1G,IAAI,KACZl6L,KAAKusoC,gBAAiB,IAEtBvsoC,KAAKqlP,UAAYmw5B,GAAeE,UAChCj+nC,QAAQqR,KAER,uIAGJ9oB,KAAK4soC,oBACD5soC,KAAKqlP,UAAYmw5B,GAAeE,WAChCj+nC,QAAQqR,KAER,6JACA9oB,KAAK4soC,oBAAqB,MAvClCjlnC,IACAA,GAAQwmI,IAAI,gBAAiBuj/B,GAAkB+B,eAEnDzzoC,KAAKwsoC,WAAY,OACW/loC,IAAxBzG,KAAKusoC,iBACLvsoC,KAAKusoC,gBAAiB,EACtBp4nC,WAAW,KAEP,MAAM67oC,GAAW/4iC,SAASioB,eAAe,YACrC8whC,IACAA,GAAS/z6B,UAAU7gD,OAAO,aAE9B,MAAM609B,GAAUh5iC,SAASioB,eAAe,WACpC+whC,IACAA,GAAQh06B,UAAU7gD,OAAO,YAAW,KAgChDp7L,KAAKwsoC,WAED7knC,IACAA,GAAQwmI,IAAI,gBAAiBuj/B,GAAkB+B,eAEnDzzoC,KAAKwsoC,WAAY,OACW/loC,IAAxBzG,KAAKusoC,iBACLvsoC,KAAKusoC,gBAAiB,EACtBp4nC,WAAW,KAEP,MAAM67oC,GAAW/4iC,SAASioB,eAAe,YACrC8whC,IACAA,GAAS/z6B,UAAU7gD,OAAO,aAE9B,MAAM609B,GAAUh5iC,SAASioB,eAAe,WACpC+whC,IACAA,GAAQh06B,UAAU7gD,OAAO,YAAW,MAO5CzzK,IACAA,GAAQwmI,IAAI,gBAAiB,GAEjCnuJ,KAAKwsoC,WAAY,EACbxsoC,KAAKusoC,gBACDvsoC,KAAKqlP,UAAYmw5B,GAAeE,WAEhCj+nC,QAAQqR,KAAK,sIACb9oB,KAAK6kF,OAAOq1G,IAAI,KACZl6L,KAAKusoC,gBAAiB,KAI9BvsoC,KAAK4soC,oBACD5soC,KAAKqlP,UAAYmw5B,GAAeE,WAChCj+nC,QAAQqR,KAER,6JACA9oB,KAAK4soC,oBAAqB,GAK9C,CACMoiB,0BAA0B,IAAA1i6B,GAAAtsP,KAAA,SAAA2hP,KAAA,YAC5B,MAAMh6N,GAAU5R,OAAOk2oC,4BAEvB,UAAWtqpC,MAAO+voC,GACd/pnC,GAAQwmI,IAAIxsJ,GAAK+voC,GAAkB/voC,KAEvCgmB,GAAQwmI,IAAI,sBAAsB,SAC5Bm+F,GAAKwvvB,UACXn09B,GAAQwmI,IAAI,iBAAkBm+F,GAAK+85B,gBACnC1hoC,GAAQwmI,IAAI,aAAcm+F,GAAKg95B,YAC/B3hoC,GAAQwmI,IAAI,aAAcm+F,GAAKi95B,YAC/Bj95B,GAAK2i6B,6BAA6BtnoC,KAC9B2kO,GAAK6/5B,YAAc7/5B,GAAK6/5B,aAAe7W,GAAeh8tB,WACtD3xZ,GAAQwmI,IAAI,mBAAoBm+F,GAAK6/5B,YAEzC,MAAMzc,GAAiBpj5B,GAAKoj5B,eACtBsI,GAAuBjioC,OAAOiioC,0BACbvxoC,IAAnBipoC,KACAsI,GAAqB1E,kBAAoB5D,GAAiB,EAAI,EAC1DsI,GAAqBmX,YACrBnX,GAAqBmX,UAAU7b,kBAAoB5D,GAAiBpj5B,GAAKw95B,kBAAoBhR,GAAe9gN,MAEhHrw6B,GAAQwmI,IAAI,oBAAqBm+F,GAAKoj5B,eAAiBpj5B,GAAKw95B,kBAAoB,IAEhE,SAAhBx95B,GAAK4j6B,QACLvooC,GAAQwmI,IAAI,mBAAoB,GAC5B6p/B,GAAqB4F,YACrB5F,GAAqB4F,UAAUuS,WAAa,GAEhD7j6B,GAAK+g5B,eAAe,SAEC,QAAhB/g5B,GAAK4j6B,QACVvooC,GAAQwmI,IAAI,mBAAoB,GAC5B6p/B,GAAqB4F,YACrB5F,GAAqB4F,UAAUuS,WAAa,GAEhD7j6B,GAAK+g5B,eAAe,SAGpB1lnC,GAAQwmI,IAAI,mBAAoB,GAC5B6p/B,GAAqB4F,YACrB5F,GAAqB4F,UAAUuS,WAAa,GAEhD7j6B,GAAK+g5B,eAAe,QAEpB/g5B,GAAK0m5B,iBACLrrnC,GAAQwmI,IAAI,kBAAmBm+F,GAAK0m5B,kBAEf,IAArB1m5B,GAAKm+5B,aACL9ioC,GAAQwmI,IAAI,qBAAsBm+F,GAAKm+5B,YAC1C,EAlD2B,EAmDhC,CACAgC,UAAU,IAAA1/5B,GAAA/sP,KACNowpC,qBAAqB7f,yBAA2BvwoC,KAAKuwoC,yBACrD,MAAMyH,GAAuBjioC,OAAOiioC,qBAGpC,GAFAA,GAAqBjI,YAAc/voC,KAAK+voC,YACxC4J,GAA8BC,iCAAkC,EAC5D55oC,KAAKwspC,KAAM,CACXxspC,KAAKwnpC,6CAA8C,EAC9CxnpC,KAAKyppC,cACNzR,GAAqBqY,eAAeC,QAAU,WAAc,GAEhEtwpC,KAAK8upC,YAAc,KACnB9upC,KAAKuwpC,mBACLvY,GAAqBqD,SAAS1n5B,GAAG,oBAAsB3uP,KACnDhF,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAKqrpC,kBAAkB3ujC,KAAK13F,IAAE,GAExDgzoC,GAAqBqD,SAAS1n5B,GAAG,8BAAgC3uP,KAG7DmP,WAAW,IAAMnU,KAAKsrpC,4BAA4B5ujC,KAAK13F,KACxC,IAAXA,GAAEgsB,KACFimF,SAASi8B,KAAK+oG,UAAU7gD,OAAO,8CAG/BnkF,SAASi8B,KAAK+oG,UAAU5sO,IAAI,6CAA4C,GAGhF2ooC,GAAqBqD,SAAS1n5B,GAAG,oBAAsB3uP,KACnDhF,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAKiopC,iBAAiBvrjC,KAAK13F,GAAEgsB,MAAK,GAE5DgnnC,GAAqBqD,SAAS1n5B,GAAG,WAAa3uP,KAC1ChF,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAK4y0B,SAASl2uB,KAAK13F,IAAE,GAE/CgzoC,GAAqBqD,SAAS1n5B,GAAG,eAAgB,KAC7C3zP,KAAKgqpC,gBAAiB,EACtBhqpC,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAKiqpC,qBAAqBvtjC,MAAK,GAAM,GAE/Ds7iC,GAAqBqD,SAAS1n5B,GAAG,cAAe,KAC5C3zP,KAAKgqpC,gBAAiB,EACtBhqpC,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAKiqpC,qBAAqBvtjC,MAAK,GAAK,GAE9Ds7iC,GAAqBqD,SAAS1n5B,GAAG,wBAAyB,KACtD3zP,KAAKkqpC,yBAA0B,EAC/BlqpC,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAKmqpC,8BAA8BztjC,MAAK,GAAM,GAExEs7iC,GAAqBqD,SAAS1n5B,GAAG,uBAAwB,KACrD3zP,KAAKkqpC,yBAA0B,EAC/BlqpC,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAKmqpC,8BAA8BztjC,MAAK,GAAK,GAEvEs7iC,GAAqBqD,SAAS1n5B,GAAG,cAAa,eAAA490B,MAAA5v1B,KAAE,UAAO38O,IAGnD,GAFA+nP,GAAKloK,OAAOq1G,IAAI,IAAM6yD,GAAK+95B,YAAYpujC,KAAK13F,KAC5C+nP,GAAKyj6B,qCAAoC,GACrCzj6B,SAAKikhB,SAAkD,CACvD,MAAM1rwB,GAAIqpE,OAAOo+K,GAAKikhB,WACZ,IAAN1rwB,IAAiB,KAANA,IAAkB,MAANA,IAAmB,MAANA,MACpC0yoC,GAAqB4F,UAAU6S,cAAgBnrpC,IAGvD6O,WAAW,KACF44O,GAAK++5B,eAEF/+5B,GAAK285B,UACL1R,GAAqBqY,eAAeK,gBAAgB3j6B,GAAK285B,WAEpD385B,GAAKnlH,KACVowgC,GAAqBpwgC,KAAOj5D,OAAOo+K,GAAKnlH,MAEnCmlH,GAAK695B,YACV5S,GAAqB4F,UAAU+S,iBAAmB5j6B,GAAK695B,oBAI7D795B,GAAK+uvB,SACf,GAAC,gBAAA93vB,IAAA,OAAAut1B,GAAA996B,MAAAzzJ,KAAA0+E,UAAA,EAxB6C,IAyB9Cs5jC,GAAqBqD,SAAS1n5B,GAAG,eAAiB3uP,KAC9ChF,KAAK6kF,OAAOq1G,IAAI,KACZl6L,KAAKgrpC,aAAatujC,KAAK13F,IACvBhF,KAAKwwpC,qCAAoC,EAAK,EACjD,GAELxY,GAAqBqD,SAAS1n5B,GAAG,aAAe3uP,KAC5ChF,KAAK6kF,OAAOq1G,IAAI,KACZl6L,KAAK+qpC,WAAWrujC,KAAK13F,GAAC,EACzB,GAELgzoC,GAAqBqD,SAAS1n5B,GAAG,WAAa3uP,KAC1ChF,KAAK6kF,OAAOq1G,IAAI,KACZl6L,KAAKirpC,cAAcvujC,KAAK13F,GAAC,EAC5B,GAELgzoC,GAAqBqD,SAAS1n5B,GAAG,gBAAkB3uP,KAC/CmP,WAAW,KACPnU,KAAKsopC,kBAAkB5rjC,KAAK13F,GAAEspgB,OAC9BtugB,KAAKytF,IAAIokQ,cAAa,GAEJ,SAAlB7sV,GAAE4rpC,aAA4C,aAAlB5rpC,GAAE4rpC,aAAgD,gBAAlB5rpC,GAAE4rpC,aAAmD,eAAlB5rpC,GAAE4rpC,YAE7F3lpC,KAAKC,IAAIlG,GAAE6rpC,cAAgB7rpC,GAAEspgB,OAAS,OACtCtugB,KAAKgrY,KAAiB,IAAVhmY,GAAEspgB,MACdtugB,KAAKyrpC,WAAW/ujC,KAAe,IAAV13F,GAAEspgB,QAGtBtpgB,GAAE8rpC,sBAAwB9rpC,GAAE4rpC,aAEjC5wpC,KAAKyrpC,WAAW/ujC,KAAK13F,GAAE4rpC,YAAW,GAG1C5Y,GAAqBqD,SAAS1n5B,GAAG,mBAAqB3uP,KAClDhF,KAAK6kF,OAAOq1G,IAAI,KACZl6L,KAAK0opC,eAAehsjC,KAAK13F,GAAEyrpC,cAAa,EAC3C,GAELzY,GAAqBqD,SAAS1n5B,GAAG,kBAAoB3uP,KACjDhF,KAAK6kF,OAAOq1G,IAAI,KACZ,GAAIl1L,GAAEi9X,UAAU3/X,OAAS0C,GAAEi9X,UAAU3/X,MAAMc,QAAU,EAEjDpD,KAAK+npC,UAAUrrjC,KAAK13F,GAAEi9X,UAAU3/X,MAAM,GAAGqX,UAExC,CAED,MAAM81H,GAAOzqI,GAAEi9X,WAAWliY,OAAOsa,QAAQ,iBAAkB,IAC3Dra,KAAK+npC,UAAUrrjC,KAAK+yC,GAAI,GAE/B,GAELuogC,GAAqBqD,SAAS1n5B,GAAG,oBAAsB3uP,KACnDhF,KAAK6kF,OAAOq1G,IAAI,KACZl6L,KAAK+spC,SAAW/npC,GAAE++oC,OAASnT,GAAeE,KAC1C9woC,KAAKsqpC,eAAe5tjC,KAAK13F,GAAE++oC,OAASnT,GAAeE,KAAI,EAC1D,GAELkH,GAAqBqD,SAAS1n5B,GAAG,qBAAuB3uP,KACpDhF,KAAK6kF,OAAOq1G,IAAI,KACZl6L,KAAK6ppC,qBAAqBntjC,KAAK13F,GAAE6+O,KAAO,GACpC7+O,GAAE6+O,KAAO,GACT7jP,KAAK+ppC,wBAAwBrtjC,KAAK13F,GAAE6+O,MAEpC7jP,KAAK+wpC,kBACL/wpC,KAAK+wpC,iBAAiBzO,0BAAyB,EAEtD,GAELtK,GAAqBqD,SAAS1n5B,GAAG,iBAAmBq95B,KAChDhxpC,KAAK6kF,OAAOq1G,IAAI,KACZ,MAAMmk9B,GAAQ2S,GAAe1z/B,OAAOk++B,WACpCx7oC,KAAK4qpC,eAAYnkpC,EACbzG,KAAK4nI,MAAQ5nI,KAAK4nI,MAAQy2gC,KAC1Br+oC,KAAK4nI,KAAOy2gC,IAEhBr+oC,KAAKixpC,+BAA+BD,GAAe1z/B,OAAO26+B,aACtDj4oC,KAAKgqpC,gBACLhS,GAAqB+N,QAAQr28B,OAE7B1vM,KAAKkqpC,yBACLlS,GAAqBkZ,sBAAsBxh9B,MAAK,EAEvD,GAEL,MAAM077B,GAAqBA,KACvBproC,KAAK6kF,OAAOq1G,IAAI,KACRl6L,KAAK+wpC,kBACL/wpC,KAAK+wpC,iBAAiBzO,0BAAyB,EAEtD,EA2DL,GAzDAtK,GAAqBqD,SAAS1n5B,GAAG,gBAAiBy34B,IAClD4M,GAAqBqD,SAAS1n5B,GAAG,oBAAqBy34B,IACtD4M,GAAqBqD,SAAS1n5B,GAAG,eAAgBy34B,IACjD4M,GAAqBqD,SAAS1n5B,GAAG,0BAA4BlyP,KACzDzB,KAAK6kF,OAAOq1G,IAAI,KACZl6L,KAAK2opC,wBAAwBjsjC,KAAKj7F,IAClCzB,KAAKmxpC,qBAAqB1vpC,GAAM67J,OAAOonO,KAAK,EAAI,EACnD,GAELszwB,GAAqBqD,SAAS1n5B,GAAG,gCAAkClyP,IAAUzB,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAK4opC,8BAA8BlsjC,KAAKj7F,MAC3Iu2oC,GAAqBqD,SAAS1n5B,GAAG,mBAAqBlyP,IAAUzB,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAK6opC,iBAAiBnsjC,KAAKj7F,MACjHu2oC,GAAqBqD,SAAS1n5B,GAAG,gBAAkBlyP,IAAUzB,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAK8opC,cAAcpsjC,KAAKj7F,MAC3Gu2oC,GAAqBqD,SAAS1n5B,GAAG,oBAAsBlyP,IAAUzB,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAK+opC,kBAAkBrsjC,KAAKj7F,MACnHu2oC,GAAqBqD,SAAS1n5B,GAAG,eAAiBlyP,IAAUzB,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAKgppC,aAAatsjC,KAAKj7F,MACzGu2oC,GAAqBqD,SAAS1n5B,GAAG,0BAA4BlyP,KAC5BsU,OAAOiioC,sBACd4F,WAAWwT,iBAAgB,GAErDpZ,GAAqBqD,SAAS1n5B,GAAG,yBAA2B3uP,KACxDhF,KAAK6kF,OAAOq1G,IAAI,KACRl1L,GAAEijK,QAAUwo+B,GAAU/pN,UACtB1m7B,KAAKurpC,uBAAuB7ujC,KAAK,CAAE/4F,QAAS,EAAGs9L,MAAO,IAEjDj8L,GAAEqspC,aAAapw9B,QACpBj8L,GAAEqspC,aAAalw+B,QAAU629B,GAAqBkU,eAAeoF,aAC7DtspC,GAAEqspC,aAAa50C,cAAgBu7B,GAAqBkU,eAAeqF,mBACnEvspC,GAAEqspC,aAAaG,aAAexZ,GAAqBkU,eAAeuF,kBAClEzxpC,KAAKurpC,uBAAuB7ujC,KAAK13F,GAAEqspC,eAEnCrxpC,KAAKwrpC,iBACLxrpC,KAAKwrpC,gBAAgB9ujC,KAAK13F,GAAEijK,MAAK,EAExC,GAEL+v+B,GAAqBqD,SAAS1n5B,GAAG,yBAA2B3uP,KACxDA,GAAEqspC,aAAalw+B,QAAU629B,GAAqBkU,eAAeoF,aAC7DtspC,GAAEqspC,aAAa50C,cAAgBu7B,GAAqBkU,eAAeqF,mBACnEvspC,GAAEqspC,aAAaG,aAAexZ,GAAqBkU,eAAeuF,kBAClEzxpC,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAKurpC,uBAAuB7ujC,KAAK13F,GAAEqspC,cAAa,GAE1ErZ,GAAqBqD,SAAS1n5B,GAAG,eAAiB3uP,KACzChF,KAAK8rpC,cAEN9rpC,KAAK6kF,OAAOq1G,IAAI,KACZ,MAAMmvb,GAAc2uhB,GAAqB4F,UAAUsH,kBAC7CyL,GAAmB3Y,GAAqB4F,UAAU+S,iBACpDtniB,KAAgBrpnB,KAAK4nI,MACrB5nI,KAAK2qpC,WAAWjujC,KAAK2shB,IAErBsniB,KAAqB3wpC,KAAK4qpC,WAC1B5qpC,KAAK6qpC,gBAAgBnujC,KAAKi0jC,GAAgB,EAEjD,GAGTx8oC,YAAUwtO,OAAC,mBAAYoL,GAAK8/5B,aAAa,GAAE,KAErC7spC,KAAKwspC,KAAM,CACb,MAAM7koC,GAAU,CACZytX,SAAUp1Y,KAAKo1Y,SACfo/vB,UAAWx0oC,KAAKqlP,UAEhBrlP,KAAKwspC,KAAK97wB,QACV/oX,GAAQ+oX,MAAQ1wY,KAAKwspC,KAAK97wB,OAE1B1wY,KAAKk+I,cACLv2H,GAAQu2H,YAAcl+I,KAAKk+I,aAE3Bl+I,KAAKkopC,gBACLvgoC,GAAQ+8N,iBAAkB,EACO,kBAAtB1kP,KAAKkopC,gBACPvgoC,GAAQu2H,cACTv2H,GAAQu2H,YAAc,CAAC,GAC3Bv2H,GAAQu2H,YAAYtwH,cAAgB5tB,KAAKkopC,gBAGjDvgoC,GAAQkq4B,SAAW7x5B,KAAK6x5B,SACxBmmP,GAAqBxiwB,QAAW99X,IAAU1X,KAAKorpC,iBAAiB1ujC,KAAKhlF,IACrE1X,KAAK6kF,OAAOuxP,mBAAiBz0F,OAAC,YACD,iBAAdoL,GAAKy/5B,KACZ7koC,GAAQuzH,IAAM6xG,GAAKy/5B,MAEdz/5B,GAAKy/5B,gBAAgBzo6B,aAGrBgJ,GAAKy/5B,gBAAgB1o6B,cAC1Bn8N,GAAQ8pD,KAAOs7K,GAAKy/5B,MAExB7koC,GAAQsrnC,eAAiBvB,GAAkBuB,qBACrC+E,GAAqBto8B,KAAK/nL,IAChColO,GAAKo+5B,iBAAiBzujC,KAAK,CAAC,GAE5BvoF,YAAUwtO,OAAC,mBAAYoL,GAAK+uvB,SAAS,GACzC,GAAC,CAEL3n+B,WAAW,KACFnU,KAAK8rpC,cAEF9rpC,KAAK4nI,OACLowgC,GAAqBpwgC,KAAOj5D,OAAO3uE,KAAK4nI,MAAI,EAGrD,IAAG,CAEd,CACA4ohC,oCAAoCkB,IAChC,GAA0B,oBAAtB1xpC,KAAKgwoC,cAAsC0hB,GAAe,CAC1D,MAAMpF,GAASr1iC,SAASioB,eAAe,UACjC8rQ,GAAO/zR,SAAS9zG,uBAAuB,QAAQ,GACjDmppC,IACAn4oC,WAAW,KACP,GAA0B,oBAAtBnU,KAAKgwoC,aAAoC,CACzC,MAAMl3hC,GAASwziC,GAAO7p1B,aAAe,GACjCziU,KAAK4voC,mBACL5voC,KAAK84G,OAASA,GAAS,GAAK,KAEvBA,GAAS,GACd94G,KAAK84G,OAASA,GAAS,UAEFryG,IAAhBzG,KAAK84G,SACV94G,KAAK84G,OAAS,QAEdkyR,KACAA,GAAKh0J,MAAMl+H,OAAS94G,KAAK84G,aAGxB44iC,KACL1xpC,KAAKuuX,YAAa,EAClBvuX,KAAKippC,aAAUxipC,EACfzG,KAAK6spC,cAAY,EAExB,CAGb,CACMN,WAAW,IAAAj+5B,GAAAtuP,KAAA,SAAA2hP,KAAA,YACb2M,GAAK0g6B,0BACL,MAAMhX,GAAuBjioC,OAAOiioC,qBACpCA,GAAqB4F,UAAUwT,kBAC/BpZ,GAAqB4F,UAAU+T,gBAC/B3Z,GAAqB4Z,mBAAmBD,gBAExC3Z,GAAqBC,aAAaC,mBAAmB2Z,sBAC/C7Z,GAAqB7/hC,QAC3Bm2I,GAAKm55B,YAAY57iC,QACjB,MAAMlkF,GAAU,CACZytX,SAAU9mJ,GAAK8mJ,SACfo/vB,UAAWlm5B,GAAKjJ,UAEhBiJ,GAAKk+5B,MAAQl+5B,GAAKk+5B,KAAK97wB,QACvB/oX,GAAQ+oX,MAAQpiJ,GAAKk+5B,KAAK97wB,OAE1BpiJ,GAAKpwG,cACLv2H,GAAQu2H,YAAcowG,GAAKpwG,aAE3BowG,GAAK455B,gBACLvgoC,GAAQ+8N,iBAAkB,EACO,kBAAtB4J,GAAK455B,gBACPvgoC,GAAQu2H,cACTv2H,GAAQu2H,YAAc,CAAC,GAC3Bv2H,GAAQu2H,YAAYtwH,cAAgB0gO,GAAK455B,gBAGjDvgoC,GAAQkq4B,SAAWvjqB,GAAKujqB,SACxB,IACI,GAAyB,iBAAdvjqB,GAAKk+5B,KACZ7koC,GAAQuzH,IAAMozG,GAAKk+5B,aAEdl+5B,GAAKk+5B,gBAAgBzo6B,aAE1B,GADAp8N,GAAQ8pD,KAAO68K,GAAKk+5B,KACS,IAAzBl+5B,GAAKk+5B,KAAK7o6B,WAGV,eAGC2K,GAAKk+5B,gBAAgB1o6B,aAC1Bn8N,GAAQ8pD,KAAO68K,GAAKk+5B,KACK,IAArBl+5B,GAAKk+5B,KAAKpppC,QAGV,OAGRukB,GAAQsrnC,eAAiBvB,GAAkBuB,qBACrC+E,GAAqBto8B,KAAK/nL,IAChC2mO,GAAK485B,UAAUxujC,KAAK,CAAE8+iC,WAAYxD,GAAqBwD,YAC3D,OACO9joC,IACH42O,GAAK885B,iBAAiB1ujC,KAAKhlF,GAC/B,CAAC,EAvDY,EAwDjB,CACA64oC,mBACiCx6oC,OAAOiioC,qBACfqD,SAASps0B,SAAS,mBAAoB,CAAE800B,KAAM/jpC,KAAK+spC,SAAW,EAAI,GAC3F,CACM3tkC,cAAc,IAAAs59B,GAAA14iC,KAAA,SAAA2hP,KAAA,YAChB,UAAW5rO,OAAW,IAClB,OAEJ,MAAMiioC,GAAuBjioC,OAAOiioC,qBACpCA,IAAsB4F,WAAWwT,kBACjCpZ,IAAsB4F,WAAW+T,gBACjC3Z,IAAsB4Z,oBAAoBD,gBAC1C,MAAMG,GAAgBnY,GAA8BmY,cAChD/7oC,QAAU+7oC,KAAkBA,GAAcjqpC,WAAWq0F,SAAS,cAC9DnmF,OAAOmklB,MAAQ43jB,IAEnB,MAAMC,GAAiB96iC,SAASC,cAAc,mBAY9C,GAXI66iC,IACAA,GAAe331B,eAAe56E,YAAYuy6B,IAE9Ch8oC,OAAO8goC,6BAA0BpwoC,EACjCsP,OAAOi8oC,iCAA8BvrpC,EACrCiyiC,GAAKozG,cAAe,EACpBnS,GAA8BC,iCAAkC,EAC5DlhG,GAAKo2G,cACL3j/B,aAAaut4B,GAAKo2G,aAClBp2G,GAAKo2G,iBAAcropC,GAEnBuxoC,GAAsB,CAEtBA,GAAqBC,aAAaC,mBAAmB2Z,gBACrDn5G,GAAK+uG,YAAY57iC,QACjBmsiC,GAAqBia,WACrB,UACUja,GAAqB7/hC,OAC/B,OAII,CAEA6/hC,GAAqBqX,sBACrB/4oC,oBAAoB,UAAW0hoC,GAAqBqX,sBAAsB,GAE9El7oC,WAAW,KACH6joC,GAAqBka,cACrBla,GAAqBma,qBAEzB,MAAMC,GAAMpa,GAAqBqD,SACjC,GAAI+W,GAAK,CACLpa,GAAqBj6V,eACrB,UAAWp8yB,MAAOywpC,GAAIhh8B,WAClB,GAAIgh8B,GAAIhh8B,WAAWzvN,IAAM,CACrB,MAAM8pe,GAAO2mrB,GAAIhh8B,WAAWzvN,IAI5B,QAASgE,GAAI,EAAGA,GAAI8le,GAAKroe,OAAQuC,KAC7B8le,GAAK9le,SAAKc,EAEd2rpC,GAAIhh8B,WAAWzvN,SAAO8E,GAIlCuxoC,GAAqBqD,SAAW,MACnC,CACJ,EA9De,EA+DpB,CACAuU,uBACI,SAAI5vpC,KAAKoqpC,eACWpqpC,KAAKgtoC,oBACjBhtoC,KAAKksoC,gBACLlsoC,KAAKisoC,gBACLjsoC,KAAKusoC,gBACLvsoC,KAAK8soC,oBACL9soC,KAAKysoC,mBACLzsoC,KAAK6soC,4BACL7soC,KAAK+soC,iBACL/soC,KAAK2toC,sBACL3toC,KAAK4roC,kBACL5roC,KAAK4soC,oBACL5soC,KAAKytoC,qBACLztoC,KAAK0toC,kBACL1toC,KAAKssoC,mBACLtsoC,KAAK0soC,iBAMjB,CACM17gC,YAAYC,IAAS,IAAAi37B,GAAAlojC,KAAA,SAAA2hP,KAAA,YACvB,UAAW5rO,OAAW,IAClB,OAEJ,MAAMiioC,GAAuBjioC,OAAOiioC,qBAC9BiU,GAA8Bl2oC,OAAOk2oC,4BAC3C,GAAItS,GAA8BC,gCAAiC,CAC/D,GAAI,QAAS3ohC,IAAW,cAAeA,GACnC,GAAIi37B,GAAK2/F,yBACL3/F,GAAK2/F,0BAA2B,MAE/B,CACD,GAA0B,SAAtB3/F,GAAK8nF,aAAyB,CAC9B,MAAMgI,GAAuBjioC,OAAOiioC,qBACpCA,IAAsB4F,WAAWwT,kBACjCpZ,IAAsB4F,WAAW+T,gBACjC3Z,IAAsB4Z,oBAAoBD,eAAc,CAE5D,GAAMzpG,GAAKskG,KACHtkG,GAAKs/F,4CACLt/F,GAAKukG,gBAGCvkG,GAAKqkG,eAGd,CAEDvU,GAAqBC,aAAaC,mBAAmB2Z,gBACrD3pG,GAAKu/F,YAAY57iC,QACjB,IAAIgviC,GAAa7C,GAAqBmX,WAAWkD,cAC5CxX,KACDA,GAAa5jiC,SAASC,cAAc,eAEpC2jiC,KACAA,GAAW96oC,MAAQ,UAEjBi4oC,GAAqB7/hC,OAAM,EAkD7C,GA9CI,sBAAuB8Y,IACvBg7hC,GAA4B99/B,IAAI,oBAAqB+55B,GAAKw/F,mBAE1D,mBAAoBz2hC,KAChBi37B,GAAK8hG,eACLhS,GAAqB+N,QAAQr28B,OAG7Bso8B,GAAqB+N,QAAQ5tiC,SAGjC,4BAA6B8Y,KACzBi37B,GAAKgiG,wBACLlS,GAAqBkZ,sBAAsBxh9B,OAG3Cso8B,GAAqBkZ,sBAAsB/4iC,SAG/C,SAAU8Y,WACJi37B,GAAKpsE,WAEX,YAAa7q3B,IACbg7hC,GAA4B99/B,IAAI,UAAW+55B,GAAKwjG,SAEhD,YAAaz6hC,IACbg7hC,GAA4B99/B,IAAI,UAAW+55B,GAAKyjG,SAEhD,aAAc16hC,IACdi37B,GAAKqoG,mBAEL,SAAUt/hC,IACNi37B,GAAKtg7B,MAEDsg7B,GAAKtg7B,MAAQowgC,GAAqBpwgC,OAClCowgC,GAAqBpwgC,KAAOsg7B,GAAKtg7B,MAIzC,cAAe3W,IACXi37B,GAAK0iG,WACD1iG,GAAK0iG,YAAc5S,GAAqB4F,UAAU+S,mBAClD3Y,GAAqB4F,UAAU+S,iBAAmBzoG,GAAK0iG,WAI/D,aAAc35hC,GACd,GAAIi37B,GAAKl3S,SAAU,CACf,MAAM1rwB,GAAIqpE,OAAOu5+B,GAAKl3S,WACZ,IAAN1rwB,IAAiB,KAANA,IAAkB,MAANA,IAAmB,MAANA,MACpC0yoC,GAAqB4F,UAAU6S,cAAgBnrpC,SAInD0yoC,GAAqB4F,UAAU6S,cAAgB,EAUvD,GAPI,eAAgBx/hC,KACZi37B,GAAKikG,YAAcjkG,GAAKikG,aAAe7W,GAAeh8tB,WAClD0+tB,GAAqB4F,UAAUuO,aAAex9kC,OAAOu5+B,GAAKikG,aAC1DnU,GAAqBqD,SAASps0B,SAAS,mBAAoB,CAAEj+S,KAAM29C,OAAOu5+B,GAAKikG,cAIvF,mBAAoBl7hC,IAAW,sBAAuBA,GACtD,GAAIi37B,GAAKwnF,eAAgB,CACrB,MAAM7r5B,GAAOl1K,OAAOu5+B,GAAK4hG,mBACZ,IAATjm6B,IAAuB,IAATA,IAAuB,IAATA,IAAuB,IAATA,GAC1Cm05B,GAAqBsa,WAAWC,WAAW1u6B,IAAM,GAGjDpsO,QAAQC,MAAM,+DAA8D,MAIhFsgoC,GAAqBsa,WAAWn6iC,QAGpC,wBAAyB8Y,KACzB+mhC,GAAqBmX,UAAU/F,oBAAsBlhG,GAAKkhG,qBAE1D,cAAen4hC,IACXi37B,GAAKwhG,WACL1R,GAAqBqY,eAAeK,gBAAgBxoG,GAAKwhG,WAG7D,WAAYz4hC,KACQ,SAAhBi37B,GAAKgoG,QACLlY,GAAqBxE,iBAAmB,EACxCwE,GAAqB4F,UAAUuS,WAAa,EAC5CjoG,GAAKmlF,eAAe,SAEC,QAAhBnlF,GAAKgoG,QACVlY,GAAqBxE,iBAAmB,EACxCwE,GAAqB4F,UAAUuS,WAAa,EAC5CjoG,GAAKmlF,eAAe,SAGpB2K,GAAqBxE,iBAAmB,EACxCwE,GAAqB4F,UAAUuS,WAAa,EAC5CjoG,GAAKmlF,eAAe,SAG5BnlF,GAAKmmG,yBACLl6oC,WAAW,IAAM+ziC,GAAKilG,wBAAuB,CA0BjD,GAxBI,oBAAqBl8hC,IACLg7hC,OAEJ99/B,IAAI,kBAAmB+55B,GAAK8qF,iBAGxC,mBAAoB/hhC,IACJg7hC,IAEZ/jG,GAAK8mG,0BAGT,eAAgB/9hC,IACAg7hC,IAEZ/jG,GAAK8mG,0BAGT,eAAgB/9hC,IACAg7hC,IAEZ/jG,GAAK8mG,0BAGT,gBAAiB/9hC,KACZA,GAAQw5hC,YAAexsO,iBACRguO,GACH,CACT/jG,GAAK8mG,0BACL,MAAM1C,GAASr1iC,SAASioB,eAAe,UACnCgp7B,GAAKuiG,YACL6B,GAAOrw6B,UAAU7gD,OAAO,qBAGxBkx9B,GAAOrw6B,UAAU5sO,IAAI,qBAErB2ooC,GAAqB4F,YACrB5F,GAAqB4F,UAAU1K,mBAAqBhrF,GAAKuiG,aAE7D,MAAM+H,GAAY,CACdl1/B,OAAQgv/B,GAERh+oB,OAA4B,IAApB3/b,OAAOu5+B,GAAKl9qB,OAAe,IACnC4lxB,YAAa1oG,GAAKl9qB,MAEtBgtwB,GAAqBqD,SAASps0B,SAAS,gBAAiBuj1B,GAAS,CA2B7E,GAvBI,6BAA8BvhiC,IAC1B+mhC,IAAwBA,GAAqBC,aAC7CD,GAAqBC,YAAYpq5B,WAAW4k6B,eAAezi9B,KAAK,2BAA4Bk42B,GAAKqoF,0BAGrG,aAAct/gC,KACTA,GAAQ8yB,SAAYk6xB,iBACrBiqI,GAAKu/F,YAAY3P,yCAAyC7mhC,GAAQ8yB,SAAY82T,gBAGlF,gBAAiB5pV,KACZA,GAAQ8+gC,YAAe9xN,kBACxB+5N,GAAqBjI,YAAc7nF,GAAK6nF,eAG3C,kBAAmB9+gC,KAAYA,GAAQ+1hC,cAAiB/oO,iBACxD,yBAA0BhtzB,KAAYA,GAAQ+8gC,qBAAwB/vN,iBACtE,2BAA4BhtzB,KAAYA,GAAQi9gC,uBAA0BjwN,iBAC1E,kBAAmBhtzB,KAAYA,GAAQ6+gC,cAAiB7xN,kBACrDiqI,GAAKgnG,iBACLhnG,GAAKgnG,gBAAgBpZ,4BAGzB,iBAAkB7khC,KAAYA,GAAQ++gC,aAAgB/xN,gBAAiB,CACvE,MAAMyzO,GAA0D,oBAA1CzgiC,GAAQ++gC,aAAgBn1rB,cAG9C1mc,WAAW,KACP+ziC,GAAK0/F,cAAgB32hC,GAAQ++gC,aAAgBrqpB,aAC7CuikB,GAAKsoG,oCAAoCkB,IACzC1Z,GAAqBqD,SAASps0B,SAAS,mBAAoB,CAAEj+S,KAAM29C,OAAOu5+B,GAAKikG,aAAa,EAC/F,CAEL,GAAI,wBAAyBl7hC,WAAkBl7G,OAAW,IACtD,GAAImyiC,GAAKyhG,oBACD5zoC,OAAOqloC,WACPrloC,OAAOmklB,MAAQnklB,OAAOqloC,cAGzB,CACD,MAAM0W,GAAgBnY,GAA8BmY,cAChDA,KAAkBA,GAAcjqpC,WAAWq0F,SAAS,cACpDnmF,OAAOmklB,MAAQ43jB,IAIvB,iBAAkB7giC,IAClBi37B,GAAKipG,qBAAqBjpG,GAAK/2uB,WAAWtvU,eAAe,GAE7DsS,WAAW,IAAM+ziC,GAAKilG,wBAAyB,EArPxB,EAsP3B,CACMrxK,UAAU,IAAAusE,GAAArojC,KAAA,SAAA2hP,KAAA,YAGZ,GAAI0m0B,GAAKp5oB,KAAM,CACX,MAAM+ouB,GAAuBjioC,OAAOiioC,qBACpC,IAAI0a,GAAerqG,GAAKr9qB,KAOxB,GANI9pY,OAAOwxpC,IAAc9ziC,SAAS,KAC9B8ziC,GAAe/jlC,OAAOztE,OAAOwxpC,IAAcr4oC,QAAQ,IAAK,KAAO,IAEzDmhK,MAAM7sG,OAAO+jlC,OACnBA,GAAe/jlC,OAAO+jlC,IAAgB,MAErCA,IACI1a,GAAqBt5N,MAKrB,CACD,MAAMi0O,SAAoB3a,GAAqBt5N,MAAM/16B,IAAI,QAMjD+ppC,GALJC,GACKn3+B,MAAM7sG,OAAOgklC,KAICA,GAHAhklC,OAAOgklC,IAAe,IAO1B,OAIvB3a,IACoCjioC,OAAOk2oC,4BACf99/B,IAAI,mBAAoBukgC,IAExD,MAAME,GAAqBvqG,GAAKp5oB,KAAKpta,cAAcq1G,cAAc,gBACjE,GAAI07iC,GACA,GAAkB,SAAdvqG,GAAKr9qB,MAAiC,aAAdq9qB,GAAKr9qB,MAAqC,gBAAdq9qB,GAAKr9qB,MAAwC,eAAdq9qB,GAAKr9qB,KACxF4nxB,GAAmB7ypC,MAAQsojC,GAAKr9qB,aAGhC4nxB,GAAmB7ypC,MAAQ,SACvB6ypC,GAAmBjroC,QACnB,UAAW+3D,MAAUkzkC,GAAmBjroC,QACf,WAAjB+3D,GAAO3/E,QACP2/E,GAAO42O,YAAiBrrT,KAAK2wK,MAA6B,IAAvBjtG,OAAO+jlC,KAA0B,IAA9C,KAMtC1a,GAAqB4F,YACrB5F,GAAqB4F,UAAUiV,kBAAoBH,IAAgB,QAE1E,EAxDW,EAyDhB,CACAph0B,WACI,MAAMsszB,GAAY3miC,SAAS9zG,uBAAuB,QAClD,GAAIy6oC,IAAaA,GAAUx6oC,OAAS,EAAG,CACnC,MAAM0/H,GAAY7rB,SAASioB,eAAe,kBACtC4D,KAEA9iI,KAAK6rpC,qBADS/ohC,GAAU6/L,YAEpB3iU,KAAK8ypC,2BACL9ypC,KAAK8ypC,0BAA0Bt/iB,mBAGvCxzmB,KAAK6spC,aAAY,CAErB,IACI,MAAMho6B,GAAW,IAAI00L,eAAe,IAAMv5a,KAAKwwpC,qCAAoC,IAC7ElE,GAASr1iC,SAASioB,eAAe,UACnCothC,IACAzn6B,GAAS40L,QAAQ6yuB,GAEzB,OAEI70oC,QAAQrE,IAAI,kDAChB,CACJ,CACAo1lB,gBACI,OAAOxomB,KAAKmopC,kBAChB,CACA7Y,uBAAuByjB,IACnB/ypC,KAAKiwoC,iCAAmC8iB,GACpCA,KACK/ypC,KAAK4vpC,yBACN5vpC,KAAK4voC,oBAAqB,GAGtC,CACMqhB,+BAA+B9T,IAAK,IAAA70F,GAAAtojC,KAAA,SAAA2hP,KAAA,YAEtC2m0B,GAAKgoF,cAAe,EACpB,QAAS3qoC,GAAI,EAAGA,IAAKw3oC,IAAKC,SAAUz3oC,kBAEbw3oC,GAAIrB,QAAQn2oC,KACA03oC,kBACnB59jC,QAASj5E,KACG,QAAhBA,GAAE+qE,WACF+2+B,GAAKzj+B,OAAOq1G,IAAI,KACZou3B,GAAKgoF,cAAe,EACpBn8nC,WAAW,KACiB8iG,SAASC,cAAc,oBAC/Boxf,SAAS,GAAG,GAAG,EAClC,EACJ,GAIbggd,GAAK4iG,UAAUxujC,KAAK,CAAE8+iC,WAAY2B,IAAKC,UAAY,EAnBb,EAoB1C,CACM7N,gBAAgB9toC,IAAO,IAAA8mjC,GAAAvojC,KAAA,SAAA2hP,KAAA,YACzB,GAAI4m0B,GAAKwkG,UACL,IAAKrb,GAAkBoD,yBACnB,gBAICpD,GAAkBqD,kCACnB,OAGR,MAAMiD,GAAuBjioC,OAAOiioC,qBAC9Bgb,GAAiBvxpC,GAAMqsU,QACvB+i1B,GAAgB7Y,GAAqB4F,UAAUqV,aACrD,GAAI1qG,GAAKv9qB,OAAS0mwB,GAAkBmD,qBAAuBtsF,GAAKv9qB,KAAO,MAAQ0mwB,GAAkBmD,oBAC7FtsF,GAAK2qG,aAAe3qG,GAAKv9qB,KACzBu9qB,GAAKv9qB,KAAO0mwB,GAAkBmD,0BACxBtsF,GAAKzsE,cAAQ,KAEd41J,GAAkBsD,qCAUvB,OARIzsF,GAAKv9qB,KADLu9qB,GAAK2qG,aACO3qG,GAAK2qG,aAGL,mBAEV3qG,GAAKzsE,SAGX,CAGJ,MAAMq3K,GADenb,GAAqB4F,UAAUqV,aACPpC,GAAgB,EACvD7k1B,GAAOgs0B,GAAqB4F,UAAU96gC,UAAUizL,wBAEtDii1B,GAAqB4F,UAAU96gC,UAAU3rB,YAD9B67iC,GAAiBhn1B,GAAKhW,KAC0Bm91B,EAAsB,EAnCxD,EAoC7B,CACAhC,qBAAqBzsxB,GAAK0uxB,IACtB,IAAKpzpC,KAAK2npC,cAAgByL,GACtB,OAEJ,MAAMC,GAAYtwoC,MAAMszI,KAAKquO,GAAIjqD,iBAAiB,cAC5C640B,GAAiBvwoC,MAAMszI,KAAKquO,GAAIjqD,iBAAiB,qBACjD0ie,GAASk2W,GAAUvxpC,UAAUwxpC,IACnCn2W,GAAO19tB,QAAS8zkC,IAAUA,GAAM940B,iBAAiB,SAASh7P,QAASz6E,IAAOA,GAAEi7E,SAAWjgF,KAAK2npC,eAC5FxqW,GAAO19tB,QAAS8zkC,IAAUA,GAAM940B,iBAAiB,UAAUh7P,QAASz6E,IAAOA,GAAEi7E,SAAWjgF,KAAK2npC,eAC7FxqW,GAAO19tB,QAAS8zkC,IAAUA,GAAM940B,iBAAiB,YAAYh7P,QAASz6E,IAAOA,GAAEi7E,SAAWjgF,KAAK2npC,cACnG,EAEJhO,GAA8BmY,qBAAuB/7oC,OAAW,IAAcA,OAAOmklB,WAAQzzlB,EAC7FkzoC,GAA8BC,iCAAkC,EAChED,GAA8Bj1oC,UAAI,SAAApI,IAAA,WAAAA,IAAwFq9oC,IA5xIZt/oC,MA4xI2DA,OA5xI3DA,MA4xIiF2gU,OA5xIjF3gU,MA4xIyG++oC,IA5xIzG/+oC,MA4xI4IiiF,MA5xI5IjiF,MA4xIoKA,OA5xIpKA,MA4xI8LiiF,MA5xI9LjiF,MA4xI8NA,OA5xI9NA,MA4xI+Pk/oC,IA5xI/Pl/oC,MA4xIuSA,OAAY,EACjas/oC,GAA8Bz9jC,UA7xIgF7hF,MAAE,CAAA6nB,KA6xIFy3nC,GAA6Bl9oC,UAAA,8BAAA6gF,UAAA,SAAAtgF,GAAAC,IA7xI3B,GA6xI2B,EAAAD,KA7xI7B3C,KA6xIuiJw7oC,GAA2B,GA7xIlkJx7oC,KAAEqja,GAAA,GAAFrja,KAAEsja,GAAA,GAAFtja,KAAEika,GAAA,MAAAtha,GAAA,KAAAugF,GAAFljF,MAAEkjF,GAAFljF,WAAE4C,GAAAiypC,gBAAA3xkC,GAAAC,OAAFnjF,MAAEkjF,GAAFljF,WAAE4C,GAAAgya,KAAA1xV,GAAAC,OAAFnjF,MAAEkjF,GAAFljF,WAAE4C,GAAA61pC,0BAAAv1kC,GAAAC,OAAFnjF,MAAEkjF,GAAFljF,WAAE4C,GAAA8zpC,iBAAAxzkC,GAAAC,OAAA,EAAA79E,aAAA,SAAA3C,GAAAC,IAAA,EAAAD,IAAF3C,MAAE,gCA6xIF4C,GAAAurmB,eAAe,IAAA9rmB,OAAA,CAAAwxoC,uBAAA,yBAAA4B,cAAA,gBAAAkX,cAAA,gBAAAhZ,qBAAA,uBAAAwlB,gBAAA,kBAAApjB,uBAAA,yBAAAT,cAAA,gBAAAhF,gBAAA,kBAAAuE,sBAAA,wBAAAO,oBAAA,sBAAAiY,kBAAA,oBAAA3jgC,SAAA,WAAA4jgC,aAAA,eAAA3X,aAAA,eAAAmc,WAAA,aAAAjE,cAAA,gBAAAhqgC,YAAA,cAAAiqgC,mBAAA,qBAAApY,YAAA,cAAAwY,eAAA,iBAAAtc,eAAA,iBAAAC,eAAA,iBAAA7m5B,SAAA,WAAAmj6B,sBAAA,wBAAAC,oBAAA,sBAAAzV,gBAAA,kBAAAhiY,SAAA,WAAAh4pB,IAAA,MAAA2ziC,UAAA,YAAA/6xB,UAAA,YAAA94Q,OAAA,SAAAg0iC,iBAAA,mBAAA3D,oBAAA,sBAAA9m2B,gBAAA,kBAAA+m2B,oBAAA,sBAAAC,eAAA,iBAAAC,WAAA,aAAAC,WAAA,aAAA7W,mBAAA,qBAAA8W,iBAAA,mBAAAh/4B,SAAA,WAAAi/4B,YAAA,cAAAC,UAAA,YAAAt0wB,SAAA,WAAAu0wB,oBAAA,sBAAApZ,yBAAA,2BAAAme,cAAA,gBAAApiB,kBAAA,oBAAAoD,eAAA,iBAAAoa,kBAAA,oBAAAE,eAAA,iBAAAE,wBAAA,0BAAA3d,eAAA,iBAAA4B,qBAAA,uBAAAC,kBAAA,oBAAAC,wBAAA,0BAAAC,kBAAA,oBAAAC,mBAAA,qBAAAC,qBAAA,uBAAAC,sBAAA,wBAAAC,oBAAA,sBAAAC,qBAAA,uBAAAC,iBAAA,mBAAAnC,kBAAA,oBAAAC,gBAAA,kBAAAG,2BAAA,6BAAAC,mBAAA,qBAAAC,gBAAA,kBAAAC,mBAAA,qBAAAtwkB,MAAA,QAAA0tlB,YAAA,cAAAnd,2BAAA,6BAAArB,iBAAA,mBAAAmhB,SAAA,WAAAngB,mBAAA,qBAAAa,oBAAA,sBAAAC,iBAAA,mBAAAC,qBAAA,uBAAA8c,YAAA,cAAAyF,OAAA,SAAAtohC,KAAA,OAAAgjhC,UAAA,YAAApe,UAAA,YAAAxhwB,KAAA,OAAA2hwB,WAAA,aAAA+e,QAAA,UAAAC,QAAA,UAAAsB,mBAAA,sBAAAxvjC,QAAA,CAAAk5iC,eAAA,iBAAAmR,mBAAA,qBAAAl1U,SAAA,WAAAm1U,UAAA,YAAAE,iBAAA,mBAAAG,WAAA,aAAAC,YAAA,cAAAC,kBAAA,oBAAAI,eAAA,iBAAAC,wBAAA,0BAAAC,8BAAA,gCAAAC,iBAAA,mBAAAC,cAAA,gBAAAC,kBAAA,oBAAAC,aAAA,eAAAa,qBAAA,uBAAAE,wBAAA,0BAAAE,qBAAA,uBAAAE,8BAAA,gCAAAG,eAAA,iBAAAtF,aAAA,eAAA9Z,eAAA,iBAAAyf,WAAA,aAAAE,gBAAA,kBAAAC,YAAA,cAAAC,WAAA,aAAAC,aAAA,eAAAC,cAAA,gBAAAC,UAAA,YAAAC,iBAAA,mBAAAC,iBAAA,mBAAAC,kBAAA,oBAAAC,4BAAA,8BAAAC,uBAAA,yBAAAC,gBAAA,kBAAAC,WAAA,cAAAlrpC,SAAA,CA7xIflG,OAAEoib,mBAAAl9U,GAAA3iG,MAAA,EAAAC,KAAA,EAAAC,OAAA,68FAAAC,SAAA,SAAAC,GAAAC,IA6xIs0b,GA7xIt0b,EAAAD,KAAF3C,MAAEklG,IAAFllG,MAAE,EAAAw0oC,GAAA,wBAAFx0oC,MAAE,EAAAy0oC,GAAA,yBAAFz0oC,MAAE,+BAAFA,CA6xI4mK,uBA7xI5mKA,MAAE,EAAA00oC,GAAA,oBAAF10oC,MAAE,EAAA+0oC,GAAA,2BAAF/0oC,aAAE,EAAAm2oC,GAAA,yBAAFn2oC,QA6xIw0b,EAAA2C,GAAA,OAAA6gF,GA7xIx0bxjF,MAAE,GAAFA,MAAE,gBAAA4C,GAAAy/jB,OAAFrikB,MAAE,GAAFA,MAAE,iBAAA4C,GAAAy/jB,OAAFrikB,MAAE,GAAFA,MAAE,OAAA4C,GAAAouoC,wBAAFhxoC,CA6xImqK,QAAA4C,GAAA4upC,sBA7xInqKxxpC,MAAE,GAAFA,MAAE,mBAAA4C,GAAAu2pC,gBAAAv2pC,GAAAu2pC,gBAAA31kC,GA6xI0yK,CAAC,EAAAxB,aAAA,CAAgqRwjkC,GAA6DE,GAA+DC,EAAoFS,GAAuF4B,GAA2NxM,GAAyEgP,GAA+gBE,GAAmbgC,EAAsbE,EAAiEC,GAAmEC,GAAuEC,GAA4FC,GAAoG/qkC,KAAiFA,KAAmIA,KAA2B8rhC,IAAa1hhC,OAAA,0JAAAzI,gBAAA,IA8QjnhB,IAuCdw1kC,GAAgC,MAAtC,MAAMA,IAENA,UAAiC/upC,UAAI,SAAApI,IAAA,WAAAA,IAAwFm3pC,GAAgC,EAC7JA,GAAiCh3kC,UArlJ6EpiF,MAAE,CAAA6nB,KAqlJcuxoC,KAkH9HA,GAAiC/2kC,UAvsJ6EriF,MAAE,CAAA8gU,UAusJ2D,CAACi+0B,GAAwBlkmC,MAASynC,QAAA,CAAY,CAACC,KAAcgvD,SArHlO6nhC,EAAgC,KAqPtClogC,WAAWmogC,iBAAsB,CAACC,GAAQ1w6B,MAC/B,EAEX,MAAM2w6B,GACFxgpC,IAAImnB,IACIgxH,WAAWmogC,iBAAoB,MAAOn5nC,KACtC9iB,QAAQrE,IAAImnB,GAEpB,CACA7iB,MAAM6iB,IACEgxH,WAAWmogC,iBAAoB,QAASn5nC,KACxC9iB,QAAQC,MAAM6iB,GAEtB,CACAzR,KAAKyR,IACGgxH,WAAWmogC,iBAAoB,OAAQn5nC,KACvC9iB,QAAQqR,KAAKyR,GAErB,EAiDJ,SAASs5nC,GAAYnn1B,GAAUokrB,GAAKpK,IAChC,OAAKh6qB,IAGEA,GAASlhT,KAAMsooC,IAE1B,SAASC,GAAMD,GAAQhjK,GAAKpK,IACxB,IAAIstK,GAAS,EACTrypC,GAAM,EAuEV,OAtEAmypC,GAASA,GAAO9uoC,eAELk3E,SAAS,WAChB83jC,IAAU,EACVF,GAASA,GAAOz5oC,QAAQ,QAAS,KAEjCy5oC,GAAO53jC,SAAS,UAChB83jC,IAAU,EACVF,GAASA,GAAOz5oC,QAAQ,OAAQ,KAEhCy5oC,GAAO53jC,SAAS,UAChB83jC,IAAU,EACVF,GAASA,GAAOz5oC,QAAQ,OAAQ,KAEhCy5oC,GAAO53jC,SAAS,YAChB83jC,IAAU,EACVF,GAASA,GAAOz5oC,QAAQ,SAAU,KAElCy5oC,GAAO53jC,SAAS,WAChB83jC,IAAU,EACVF,GAASA,GAAOz5oC,QAAQ,QAAS,KAGjC1Y,GADW,OAAXmypC,GACM,GAEU,SAAXA,GACC,GAEU,MAAXA,IAA6B,QAAXA,GACjB,IAEU,MAAXA,IAA6B,QAAXA,GACjB,IAEU,QAAXA,GACC,GAEU,UAAXA,GACC,GAEU,UAAXA,GACC,GAEU,OAAXA,GACC,IAEU,cAAXA,GACC,EAEU,SAAXA,GACC,GAEU,QAAXA,GACC,GAEU,SAAXA,GACC,GAEU,UAAXA,GACC,GAEU,aAAXA,GACC,GAEU,WAAXA,GACC,GAGAA,GAAOl3/B,cAAch0J,WAAW,GAE1B,UAAZ89+B,GACkB,UAAXotK,IAAsBhjK,KAAQkjK,GAElCrypC,KAAQ+k/B,IAAWoK,KAAQkjK,EACtC,CA/EqCD,CAAMD,GAAQhjK,GAAKpK,IACxD,CApDAn71B,WAAW0ogC,WAAgB,IAAIL,GAGF,KAHa,IAGlC7xoC,MAAOF,YACX,IAAI+xoC,IAAaxgpC,IAAI,IAEpB8uG,QAAQmvhC,YACHt7nC,OAAOyy7B,OAAYzy7B,OAAO,sCAC5B0B,QAAQC,MAAM,uLA2HX3B,OAAW,MAClBA,OAAOm+oC,aAzHX,SAASA,GAAapjK,GAAKpK,IACvB,MAAMulK,GAA8Bl2oC,OAAOk2oC,4BACrC3C,GAAa2C,GAA4BtjpC,IAAI,cAC7C4gpC,GAAa0C,GAA4BtjpC,IAAI,cACnD,MAAgB,UAAZ+9+B,KACImtK,GAAYvK,GAAYx4J,GAAK,aAG3By4J,IAAcA,GAAWnmpC,OAAS,KAC5BywpC,GAAYtK,GAAYz4J,GAAK,YAI7B,KAAZpK,IAA8B,KAAZA,IAA8B,KAAZA,IAA8B,MAAZA,IASnCulK,GAA4BtjpC,IAAI,mBAIjD2gpC,IAAcA,GAAWlmpC,OAAS,GAChCywpC,GAAYvK,GAAYx4J,GAAKpK,SAI/B6iK,IAAcA,GAAWnmpC,OAAS,KAC5BywpC,GAAYtK,GAAYz4J,GAAKpK,GAG7C,GAuFC,IACK1npB,GAA0B,MAAhC,MAAMA,IAENA,UAA2Bt6V,UAAI,SAAApI,IAAA,WAAAA,IAAwF0iW,GAA0B,EACjJA,GAA2BviR,UAp+JmFpiF,MAAE,CAAA6nB,KAo+JQ88U,KAkDxHA,GAA2BtiR,UAthKmFriF,MAAE,CAAA8gU,UAshK+C,CAACo+0B,IAA4B58jC,QAAA,CAAY,CAAC82kC,GAAkC72kC,KAAcgvD,SArDnPozN,EAA0B,mFChwK5Bm1zB,GAAe,OAAfA,OAAe,IAECA,GAAgB79lB,GAAQ,GAAK,KAC7C69lB,GAAgBA,GAAgB59lB,KAAU,GAAK,OAC/C49lB,GAAgBA,GAAgBz9lB,MAAW,GAAK,QAChDy9lB,GAAgBA,GAAgB19lB,KAAU,GAAK,OAC/C09lB,GAAgBA,GAAgBC,WAAgB,GAAK,aACrDD,GAAgBA,GAAgBE,aAAkB,GAAK,eACvDF,GAAgBA,GAAgBG,aAAkB,GAAK,eACvDH,GAAgBA,GAAgBI,cAAmB,GAAK,gBACxDJ,GAAgBA,GAAgBn0lC,QAAa,GAAK,UAClDm0lC,GAAgBA,GAAgBK,SAAa,GAAM,UACnDL,GAAgBA,GAAgBM,YAAgB,GAAM,aAZtDN,IAAe,GAgBnB,MAAMO,IAGNA,GAAcC,eAAkBtypC,IAAS,IAAI6/G,QAAQ,CAACC,GAASC,MAC3D,IACI,MAAM/D,GAAS,IAAI3F,WACnB2F,GAAOzF,OAAS,KACZ,MAAMirI,GAAO,IAAI8+kB,SAAStktB,GAAOjhB,QAIjC,IAHKymJ,GAAKF,YAGuB,QAA7BE,GAAK+w6B,UAAU,GAAG,GAClB,OAAOzyiC,GAAQgyiC,GAAgBM,YAEnC,MAAMrxpC,GAASygP,GAAKF,WACpB,IAAIgL,GAAS,EACb,KAAOA,GAASvrP,IAAQ,CACpB,MAAMmhuB,GAAS1gf,GAAK+w6B,UAAUjm6B,IAAQ,GAEtC,GADAA,IAAU,EACK,QAAX41e,GAAmB,CACnB,GAA6C,aAAzC1gf,GAAKgx6B,UAAWlm6B,IAAU,GAAI,GAC9B,OAAOxsI,GAAQgyiC,GAAgBK,SAEnC,MAAMM,EAAkD,QAAzCjx6B,GAAK+w6B,UAAWjm6B,IAAU,GAAI,GAC7CA,IAAU9K,GAAKgx6B,UAAUlm6B,GAAS,EAAGmm6B,GACrC,MAAM1siC,GAAOy7H,GAAK+w6B,UAAUjm6B,GAAQmm6B,GACpCnm6B,IAAU,EACV,QAAShpP,GAAI,EAAGA,GAAIyiH,GAAMziH,KACtB,GAAgD,MAA5Ck+O,GAAK+w6B,UAAUjm6B,GAAa,GAAJhpP,GAAQmvpC,GAChC,OAAO3yiC,GAAQ0hI,GAAK+w6B,UAAUjm6B,GAAa,GAAJhpP,GAAS,EAAGmvpC,GAAO,KAIjE,IAA0B,QAAZ,MAATvwb,IACN,MAGA51e,IAAU9K,GAAK+w6B,UAAUjm6B,IAAQ,EAAK,EAG9C,OAAOxsI,GAAQgyiC,GAAgBK,QAAO,EAE1Cn2iC,GAAOquiC,kBAAkBrqpC,GAC7B,OAEI,OAAO+/G,GAAO+xiC,GAAgBn0lC,QAClC,IAEJ00lC,GAAcK,WAAa,CAAC1+1B,GAAQ1xO,IAAW,EAAMqwkC,IAAiB,IAAU,IAAI9yiC,QAAQ,SAAUC,GAASC,IAC3G,MAAMg2Z,GAAW,iCAAiC58f,KAAKtG,UAAUuG,WAC3D+8f,GAAQ,oBAAoBh9f,KAAKtG,UAAUuG,WACjDymG,QAAQC,QAAQi2Z,IAAYI,IACvB/2Z,KAAKwziC,IACFA,GACOP,GAAcQ,0BAA0Bn/oC,OAAOkhG,SAAUtyB,GAAUqwkC,IAGnEN,GAAcS,4BAA4B9+1B,GAAQ1xO,GAAUqwkC,KAGtEvziC,KAAM2ziC,KACP,MAAM9ypC,EAAQ8ypC,GAAYryoC,MAAMszI,KAAK++/B,IAAa,GAC5CC,GAAsB/ypC,EAAM48E,IAAI78E,IAAQqypC,GAAcC,eAAetypC,KACrEizpC,GAAiBhzpC,EAAM48E,IAAI78E,IAAQqypC,GAAca,cAAclzpC,KACrE,IAAImzpC,GAAqB,GACzBtziC,QAAQ62O,IAAIs8zB,IACP5ziC,KAAMg0iC,KACPD,GAAqBC,GACdvziC,QAAQ62O,IAAIu8zB,MAElB7ziC,KAAKi0iC,KACN,MAAMC,GAAcD,GAAax2kC,IAAI,CAAC02kC,GAAYv0kC,OAC9Cm3B,MAAOo9iC,GAAWC,QAClBnyb,YAAa8xb,GAAmBn0kC,IAChCs9B,SAAUi3iC,GAAWj3iC,YAGrBwD,GADAx9B,GACQgxkC,GAGAA,GAAY,GAHD,EAK1B,GAEAj0iC,MAAMC,IAAOS,GAAOT,IAC7B,GACA+yiC,GAAca,cAAiBlzpC,IACpB,IAAI6/G,QAAQ,CAACC,GAASC,MACzB,MAAM/D,GAAS,IAAI3F,WACnB2F,GAAOzF,OAAUv5G,KAEb8iH,GAAQ,CAAE0ziC,QAASx2pC,GAAEwD,OAAOu6F,OAAQuhB,SAAUt8G,GAAKsX,MAAM,EAE7D,IACI0kG,GAAO1F,cAAct2G,GACzB,OACOhD,IACH+iH,GAAQ,6DAA4D/iH,KACxE,IAGRq1pC,GAAcS,4BAA8B,CAAC9+1B,GAAQ1xO,IAAW,EAAMqwkC,IAAiB,KACnF,IAAI5iV,IAAO,EACX,OAAO,IAAIlwtB,QAAQ,CAACC,GAASC,MACzB,MAAMhgH,GAAei0T,GAAOvyI,cAAc,SAC1CuyI,GAAOqe,SAAStyU,GAAc,UAAW,QACzCi0T,GAAO2tJ,YAAY5hd,GAAc,OAAQ,QACzCi0T,GAAO2tJ,YAAY5hd,GAAc,SAAU,WACvCuiF,IACA0xO,GAAO2tJ,YAAY5hd,GAAc,WAAY,QAEjDi0T,GAAO8c,OAAO/wU,GAAc,QAAUxC,KAClCA,GAAOiD,OAAO9C,MAAQ,KAE1Bs2T,GAAO8c,OAAO/wU,GAAc,SAAUxC,KAClCwy0B,IAAO,EAEPjwtB,GADcviH,GAAOiD,OAAOP,MACf,GAEb0ypC,IACAj/oC,OAAOS,iBAAiB,QAAS,KAC7BrC,WAAW,KACFi+zB,IACDhwtB,GAAO,IAAIp7G,MAAM,0CAAyC,EAE/D,IAAG,EACP,CAAE6tT,MAAM,IAEfzyT,GAAamtG,OAAM,EACtB,EAELmljC,GAAcQ,0BAA4B,CAACY,GAAmBnxkC,IAAW,EAAMqwkC,IAAiB,KAC5F,IAAI5iV,IAAO,EACX,OAAO,IAAIlwtB,QAAQ,CAACC,GAASC,MACzB,MAAMhgH,GAAe0zpC,GAAkBhy+B,cAAc,SACrD1hL,GAAakrE,GAAK,eAAiB,IAAIvrD,KACvC3f,GAAa40O,MAAMC,QAAU,OAC7B70O,GAAa45O,aAAa,OAAQ,QAClC55O,GAAa45O,aAAa,SAAU,WAChCr3J,IACAviF,GAAa45O,aAAa,WAAY,QAE1C856B,GAAkB5ihC,KAAKqsG,YAAYn9O,IACnCA,GAAaoU,iBAAiB,SAAU,KACpC47zB,IAAO,EACPjwtB,GAAQ//G,GAAaE,OACrBwzpC,GAAkB5ihC,KAAKssG,YAAYs26B,GAAkB52hC,eAAe98H,GAAakrE,IAAG,EACrF,CAAEunP,MAAM,IACPmg2B,IACAj/oC,OAAOS,iBAAiB,QAAS,KAC7BrC,WAAW,MACFi+zB,IAAQ0jV,GAAkB52hC,eAAe98H,GAAakrE,MACvD80C,GAAO,IAAIp7G,MAAM,2CACjB8upC,GAAkB5ihC,KAAKssG,YAAYs26B,GAAkB52hC,eAAe98H,GAAakrE,KAAG,EAEzF,IAAG,EACP,CAAEunP,MAAM,IAGfzyT,GAAamtG,OAAM,EACtB,EAELmljC,GAAcqB,SAAW,CAACC,GAAoBtyb,GAAarta,GAAQg9c,GAAQ,GAAI4iZ,GAAU,GAAIC,GAAW,EAAGC,GAAY,IAAM,IAAIj0iC,QAAQ,SAAUC,GAASC,GACxJ6ziC,IAAoB,IACpB5iZ,IAAgB,IAChB,MAAM+iZ,GAAc,IAAIhzmC,MAExBgzmC,GAAYx9iC,OAAS,KACjB,MAAMs7Q,GAAS79D,GAAOvyI,cAAc,UAC9B7mL,GAAMi3X,GAAOp5C,WAAW,MAC9B,IAAK79U,GACD,OAAOmlH,EAAQ,+BAEnB,IAAI7xG,GAAI6lpC,GAAY73iC,aAChB74G,GAAI0wpC,GAAY93iC,cACpB,IAAK2wyB,IAAIrjb,SAAS,oBAAqB,gBAC/B83P,KAAgBywb,GAAgBz9lB,OAASgtK,KAAgBywb,GAAgB19lB,MAAM,CAC/E,MAAMn6jB,GAAIiU,GACVA,GAAI7K,GACJA,GAAIpJ,GAKZ+2wB,GAAQpowB,KAAKnL,IAAIuzwB,GAFF6iZ,GAAWA,GAAW3lpC,GAAI,EAC1B4lpC,GAAYA,GAAYzwpC,GAAI,GAE3CwuX,GAAO/rW,MAAQ5X,GAAI8iwB,GACnBn/Y,GAAOp7Q,OAASpzG,GAAI2twB,GACpB,MAAMgjZ,GAAaprpC,KAAK2sT,GAAK,IACzBq3lB,IAAIrjb,SAAS,oBAAqB,eAAiB83P,KAAgBywb,GAAgB79lB,GACnFr5jB,GAAI89U,UAAUq70B,GAAa,EAAG,EAAGliyB,GAAO/rW,MAAO+rW,GAAOp7Q,QAEjD4qnB,KAAgBywb,GAAgBz9lB,OACrCz5jB,GAAIsnhB,OACJtnhB,GAAI2puB,OAAO,GAAKyvb,IAChBp5pC,GAAIq2F,UAAU,GAAI4gS,GAAO/rW,OACzBlrB,GAAI89U,UAAUq70B,GAAa,EAAG,EAAGliyB,GAAOp7Q,OAAQo7Q,GAAO/rW,OACvDlrB,GAAIw2xB,WAEC/vD,KAAgBywb,GAAgB19lB,MACrCx5jB,GAAIsnhB,OACJtnhB,GAAI2puB,QAAO,GAAMyvb,IACjBp5pC,GAAIq2F,WAAW4gS,GAAO/rW,MAAO,GAC7BlrB,GAAI89U,UAAUq70B,GAAa,EAAG,EAAGliyB,GAAOp7Q,OAAQo7Q,GAAO/rW,OACvDlrB,GAAIw2xB,WAEC/vD,KAAgBywb,GAAgB59lB,MACrCt5jB,GAAIsnhB,OACJtnhB,GAAI2puB,OAAO,IAAMyvb,IACjBp5pC,GAAIq2F,WAAW4gS,GAAO/rW,OAAQ+rW,GAAOp7Q,QACrC77G,GAAI89U,UAAUq70B,GAAa,EAAG,EAAGliyB,GAAO/rW,MAAO+rW,GAAOp7Q,QACtD77G,GAAIw2xB,WAIJx2xB,GAAI89U,UAAUq70B,GAAa,EAAG,EAAGliyB,GAAO/rW,MAAO+rW,GAAOp7Q,QAE1D,MAAMw9iC,GAAON,GAAmBpqpC,OAAO,EAAGoqpC,GAAmB31oC,MAAM,KAAK,GAAGjd,OAAS,GAE9Eg6F,GAAS82R,GAAO2R,UAAUywxB,GAAML,IACtC9ziC,GAAQ/kB,GAAM,EAElBg5jC,GAAYtm9B,QAAUzwM,IAAK+iH,EAAO/iH,IAClC+2pC,GAAYp9iC,IAAMg9iC,EACtB,GACAtB,GAAc6B,UAAaC,IAAcpo7B,UAAUoo7B,IAAWn2oC,MAAM,SAASjd,OAAS,EACtFsxpC,GAAc+B,gBAAe,eAAAto/B,MAAAwzE,KAAG,UAAO+06B,GAAWC,GAAWtg2B,GAAQ2+1B,IAAiB,GAElF,MAAM4B,GAAar26B,KAAWA,GAAQ,KAAO,MAAMljJ,QAAQ,GACvDs5jC,IACAl/oC,QAAQ6+O,MAAM,4CAElB,MAAMug6B,SAAgBnC,GAAcK,WAAW1+1B,IAAQ,EAAO2+1B,IAC9D,IAAI8B,EACJ,QAASnxpC,GAAI,EAAGA,GAAIoxpC,GAAWpxpC,KAAK,CAChC,MAAMqxpC,GAAetC,GAAc6B,UAAUM,GAAOr+iC,OACpDs+iC,QAAuBpC,GAAcqB,SAASc,GAAOr+iC,MAAOq+iC,GAAOnzb,YAAarta,GAAQ,GAAI,KAC5F,MAAMolf,GAAUi5W,GAAc6B,UAAUO,GAExC,GADAr/oC,QAAQ6+O,MAAM,qBAAsB,mBAAoBsg6B,GAAUI,IAAe,QAASJ,GAAUn7W,IAAU,MAC1GA,IAAWu7W,GACX,MAAU,IAANrxpC,IACIgxpC,IACAl/oC,QAAQ6+O,MAAM,qBAAsB,wDAAyDsg6B,GAAUI,IAAe,YAEpH,IAAKH,GAAQr+iC,MAAOs+iC,KAGtBH,IACAl/oC,QAAQ6+O,MAAM,qBAAsB,oEAAqEsg6B,GAAUI,IAAe,YAEhI,IAAKH,GAAQr+iC,MAAOs+iC,IAI9B,GAAIr7W,GAAsB,KAAZi7W,GAAmB,KAC7B,OAAIC,IACAl/oC,QAAQ6+O,MAAM,qBAAsB,iBAAkBsg6B,GAAUn7W,IAAU,YAEvE,IAAKo7W,GAAQr+iC,MAAOs+iC,GAE1B,GAAU,IAANnxpC,GACL,MAAIgxpC,IACAl/oC,QAAQ6+O,MAAM,qBAAsB,0CAA2Cyg6B,GAAW,yBAA0BH,GAAUI,IAAe,YAE3I,IAAKH,GAAQr+iC,MAAOs+iC,GAG9BH,IACAl/oC,QAAQ6+O,MAAM,qBAAsB,UAAWsg6B,GAAUn7W,IAAU,sCAAuC91yB,GAAI,EAAG,SAErHkxpC,GAAOr+iC,MAAQs+iC,EAEnB,MAAIH,IACAl/oC,QAAQ6+O,MAAM,uCAEZ,CAAC,CACX,GAAC,gBAAAtS,GAAAC,GAAAC,IAAA,OAAA/1E,GAAA1a,MAAAzzJ,KAAA0+E,UAAA,EAlD4B,GAkD3B,IAEIu4kC,GAAuB,MAA7B,MAAMA,GACF76pC,YAAYmm8B,IACRvi8B,KAAKm0pC,gBAAkBA,GACvBn0pC,KAAKq2T,OAASksoB,GAAgB/+e,eAAe,KAAM,KACvD,CAKA+ysB,UAAU/9iC,IACN,OAAOk8iC,GAAc6B,UAAU/9iC,GACnC,CAIAm8iC,eAAetypC,IACX,OAAOqypC,GAAcC,eAAetypC,GACxC,CAKA0ypC,aACI,OAAOL,GAAcK,WAAW/0pC,KAAKq2T,QAAQ,EACjD,CAKA6g2B,sBACI,OAAOxC,GAAcK,WAAW/0pC,KAAKq2T,QAAQ,EACjD,CAKA8g2B,qBACI,OAAOzC,GAAcK,WAAW/0pC,KAAKq2T,QAAQ,GAAO,EACxD,CAKA+g2B,8BACI,OAAO1C,GAAcK,WAAW/0pC,KAAKq2T,QAAQ,GAAM,EACvD,CAcAqsE,aAAalqR,GAAOkrnB,GAAa2vC,GAAQ,GAAI4iZ,GAAU,GAAIh1hC,GAAW,EAAGuoN,GAAY,GACjF,OAAOkr0B,GAAcqB,SAASv9iC,GAAOkrnB,GAAa1juB,KAAKq2T,OAAQg9c,GAAO4iZ,GAASh1hC,GAAUuoN,GAC7F,CAOA6t0B,6BAA6BX,GAAY,EAAGC,IAAY,EAAO3B,IAAiB,GAC5E,OAAON,GAAc+B,gBAAgBC,GAAWC,GAAW32pC,KAAKq2T,OAAQ2+1B,IACnEvziC,KAAK61iC,IAAkBA,GAAe9+iC,OACtCkJ,MAAMriH,KACP,MAAMA,GAAEm5G,OAEhB,CAIA++iC,qCAAqCb,GAAY,EAAGC,IAAY,EAAO3B,IAAiB,GACpF,OAAON,GAAc+B,gBAAgBC,GAAWC,GAAW32pC,KAAKq2T,OAAQ2+1B,GAC5E,EAEJiC,UAAwBvypC,UAAI,SAAApI,IAAA,WAAAA,IAAwF26pC,IAAV58pC,MAAmDA,OAAmB,EAChL48pC,GAAwBry3B,WADkFvqS,MAAE,CAAAsiJ,MACYs6gC,GAAuBxypC,QAAvBwypC,GAAuBvypC,UAAAk1I,WAAc,SAnFvJq9gC,EAAuB,+MC1S7B,SAASO,GAAwBj90B,GAAUlK,GAAcon1B,GAAgBC,IACrE,MAAMjogC,GAAY15I,UAAYA,OAAOkhG,UAAYlhG,OAAOkhG,SAASwhN,gBACjE,IAAI31L,GAAY2sB,IAAa4gL,GAAet6T,OAAS0hpC,GACrD,GAAIl90B,KAEAz3M,GAD0By3M,IAAY9qL,IAAiC,iBAAb8qL,GAUlE,SAASo90B,GAAYp90B,GAAUq90B,GAAYF,IAEvC,OADeA,GAAW3hpC,OAAOkhG,SAAW2gjC,IAC9B1gjC,cAAcqjO,GAChC,CAXco90B,CAAYp90B,GAAUk90B,GAAe51pC,cAAe61pC,IACpDn90B,IACDz3M,IACD,MAAM,IAAI97H,MAAM,iEAGxB,OAAO87H,EACX,CAKA,SAAS+0hC,GAAiBx3kC,IACtB,OAAOA,KAASA,GAAKws0B,WACzB,CAKA,MAAMirQ,GAAgB,CAClBr11B,aAAc,eACd/2O,aAAc,eACdC,aAAc,eACdsqO,YAAa,cACb0oB,UAAW,YACXxnO,UAAW,YACX6+M,IAAK,OAEH+h2B,GAAkB,CACpBt11B,aAAc,cACd/2O,aAAc,cACdC,aAAc,cACdsqO,YAAa,cACb0oB,UAAW,aACXxnO,UAAW,aACX6+M,IAAK,QAET,MAAMgi2B,GACF57pC,YAAYk9a,IAAW,GACnBt5a,KAAKs5a,SAAWA,GAChBt5a,KAAKi4pC,SAAW3+uB,GAAWw+uB,GAAgBC,EAC/C,CACAG,kBACI,OAAOl4pC,KAAKi4pC,SAASx11B,YACzB,CACA011B,kBACI,OAAOn4pC,KAAKi4pC,SAASvskC,YACzB,CACA0skC,kBACI,OAAOp4pC,KAAKi4pC,SAAStskC,YACzB,CACA0skC,iBACI,OAAOr4pC,KAAKi4pC,SAAShi2B,WACzB,CACAqi2B,eACI,OAAOt4pC,KAAKi4pC,SAASt50B,SACzB,CACA450B,eACI,OAAOv4pC,KAAKi4pC,SAAS9gjC,SACzB,CACAqhjC,SACI,OAAOx4pC,KAAKi4pC,SAASji2B,GACzB,EAsBJ,SAASyi2B,GAAgBC,IAErB,MADiB,CAAC,SAAU,UAAUltoC,KAAMrM,IAAQxY,OAAOY,UAAUM,SAASqX,KAAKw5oC,IAAex8jC,SAAS/8E,IAE/G,CACA,SAASwojC,GAAmBgxF,GAAmBD,IAC3C,OAAOC,GAAoBD,GAAczhjC,SAASwhN,gBAAkB,IACxE,CACA,SAASwuc,GAAgBjlwB,GAASgmgC,IAC9B,MAAMlv5B,GA8BV,SAAS8/iC,IAA0B91hC,aAAW+0L,YAAUu9G,UACpD,MAAQ+ivB,mBAAiBD,oBAAoBW,GAAsBzjvB,IACnE,OAAO0jvB,GAAiBh2hC,GAAW+0L,GAAUsg2B,GAAiBD,GAClE,CAjCmBU,CAAwB5wJ,IACvC,OAAOA,GAASnwsB,SAIpB,SAASkh2B,GAAyBjgjC,GAAQ92G,GAASgmgC,IAC/C,MAAQ5ylB,QAAMtyS,aAAW+0L,aAAamwsB,IAC9BmwJ,mBAAiBD,oBAAoBW,GAAsBzjvB,IAE7DsG,GAAW5iU,GACbkgjC,GAAsBrxF,GAAmB9vwB,GAAU/0L,IAAYsyS,GAAMv9G,IAEnEoh2B,GAAsBH,GAAiB92pC,GAAQH,cAAeg2T,GAAUsg2B,GAAiBD,IACzFgB,GA8BV,SAASC,GAAoBz8tB,GAAMtnB,GAAMv9G,IACrC,MAAM2g2B,GAASpjvB,GAAKojvB,SAEpB,GAAK97tB,GAAK3mI,sBAIV,OAAQ2mI,GAAK3mI,wBAAwByi2B,IACjCQ,GAAsBt8tB,GAAMtnB,GAAMv9G,GAC1C,CAvC0Bsh2B,CAAoBn3pC,GAAQH,cAAeuza,GAAMv9G,IACnEoh2B,GACJ,MAAO,CAAEngjC,UAAQ4iU,YAAUw9uB,iBAAerh2B,YAC9C,CAdUkh2B,CAAyBjgjC,GAAQ92G,GAASgmgC,IAepD,SAASoxJ,GAA0BtgjC,GAAQ92G,GAASgmgC,IAChD,MAAQ5ylB,QAAMtyS,cAAckl4B,GAI5B,MAAO,CAAElv5B,UAAQ4iU,SAFA54S,GAAUsyS,GAAKmjvB,gBAELW,cADLp2hC,GAAUsyS,GAAKgjvB,mBACKvg2B,UAAU,EACxD,CApBUuh2B,CAA0BtgjC,GAAQ92G,EAASgmgC,GACrD,CAoBA,SAAS6wJ,GAAsBzjvB,IAC3B,MAAO,CACH+ivB,gBAAiB/ivB,GAAK+ivB,kBACtBD,gBAAiB9ivB,GAAK8ivB,kBAE9B,CAKA,SAASY,GAAiBp8tB,GAAM7kI,GAAUsg2B,GAAiBD,IACvD,GAAI18+B,MAAMkhR,GAAKy7tB,KAAmB,CAC9B,MAAMlxV,GAAU0gQ,GAAmB9vwB,GAAU6kI,IAC7C,OAAOuqY,GAAUA,GAAQixV,IAAmB,EAG5C,OAAOx7tB,GAAKy7tB,GAEpB,CAWA,SAASa,GAAsBt8tB,GAAMtnB,GAAMv9G,IACvC,MAAM5B,GAAcm/G,GAAKijvB,iBACnBlhjC,GAAYi+T,GAAKmjvB,eACjB550B,GAAYy2F,GAAKkjvB,eACvB,OAAI98+B,MAAMzlK,OAAOkgT,aACN0xwB,GAAmB9vwB,GAAU6kI,IAAMvlV,IAErCulV,GAAKzxH,cACHyxH,GAAKzxH,cAAcsJ,YAAYte,IAG/BymI,GAAK/9G,GAEpB,CAEA,SAAS060B,GAAsBv2hC,GAAW9M,GAAW,CAAEq5M,KAAM,EAAGgoT,GAAI,GAAKiiiB,IACrE,IAAI338B,GACA438B,GACJ,GAAIz2hC,GAAUo2hC,eAAiB,EAC3B,OAAO,EAEX,MAAMM,GAAmB12hC,GAAU+0L,SAC7B/0L,GAAU44S,SACV54S,GAAUhqB,OAASgqB,GAAU44S,SAcnC,OAbI49uB,IACA338B,IACK7+E,GAAUo2hC,cAAgBM,IAAoB12hC,GAAUo2hC,cAE7DK,IADqBvjiC,IAAUq5M,KAAOr5M,GAASq5M,KAAO,GACjB,KAIrC1tH,GAAY7+E,GAAU44S,UADW54S,GAAU44S,UAAY54S,GAAUo2hC,cAAgBM,KAGjFD,IADmBvjiC,IAAUqhgB,GAAKrhgB,GAASqhgB,GAAK,GACb,IAEf11a,IAAa438B,EAEzC,CA6CA,MAAME,GACFr9pC,aAAc88pC,mBACVl5pC,KAAK05pC,mBAAqB,EAC1B15pC,KAAK25pC,kBAAoB,EACzB35pC,KAAKk5pC,cAAgB,EACrBl5pC,KAAK240B,UAAY,CACbtpgB,KAAM,EACNgoT,GAAI,GAERr3nB,KAAKk5pC,cAAgBA,EACzB,CACAU,qBAAqBh2pC,IACjB,OAAQ5D,KAAK05pC,mBAAqB91pC,EACtC,CACAi2pC,oBAAoBX,IACZl5pC,KAAK25pC,oBAAsBT,KAC3Bl5pC,KAAK25pC,kBAAoB35pC,KAAKk5pC,cAC9Bl5pC,KAAKk5pC,cAAgBA,GAE7B,CACAY,aAAaN,GAAkBN,IAC3Bl5pC,KAAK45pC,qBAAqBJ,IAC1Bx5pC,KAAK65pC,oBAAoBX,GAC7B,CACAa,oBAAoBnm1B,GAAQom1B,IACpBA,GACAh6pC,KAAK240B,UAAUtpgB,KAAOuE,GAGtB5zU,KAAK240B,UAAUthN,GAAKzjT,EAE5B,CACAqm1B,kBAAkBf,GAAec,IAC7B,OAAOA,GACDh6pC,KAAK240B,UAAUtpgB,OAAS6p1B,GACxBl5pC,KAAK240B,UAAUthN,KAAO6hiB,EAChC,EAGJ,SAASgB,GAAerq/B,IACpB,MAAQ74D,mBAAiBq5N,gBAAcruU,WAAS01pC,aAAa7n/B,GACvDm41B,GAlMV,SAASmyJ,IAAiBzB,iBAAetjvB,UACrC,OAEJ,SAASglvB,GAA4BpyJ,GAAU0wJ,IAC3C,MAAM51hC,GAAYkl4B,GAASnwsB,UAAa6g2B,KAAkBA,GAAc72pC,cAClE62pC,GACAA,GAAc72pC,cACpB,MAAO,IAAKmmgC,GAAUll4B,aAC1B,CAPWs3hC,CAA4B,CAAEhlvB,QAAMv9G,SAAU4g2B,GAAgBC,KAAkBA,GAC3F,CAgMqByB,CAAe,CAC5B/kvB,KAAM,IAAI4ivB,IAAcno/B,GAAOwpQ,YAC/Bq/uB,cAAelB,GAAwBxgjC,GAAiBq5N,GAAcruU,GAAS01pC,MAE7E2C,GAAc,IAAIZ,GAAY,CAChCP,cAAejyZ,GAAgBjlwB,GAASgmgC,MAMtChy4B,GAAW,CACbqhgB,GAAIxnd,GAAOyq/B,WACXjr1B,KAAMx/J,GAAO0q/B,cAEjB,OAIJ,SAASC,GAAkB7yoC,IACvB,IAAIi/1B,MAAMlviB,KAAU/vT,GAAQm7G,UAAW,UAKvC,OAAIn7G,GAAQuwZ,WACR0uc,GAAMA,GAAI3nyB,KC3TX,SAASm4zB,GAAap7tB,GAAU8nsB,GAAYoE,IAAgBr4sB,IAC/D,MAAM4q/B,MAAYzt1B,MAAMhxJ,GAAU8nsB,IAClC,OCFG,SAAS5rc,GAAS0wc,GAAkB/4sB,IACvC,SAAO8lK,MAAQ,CAACr4K,GAAQ6yP,MACpB,MAAQghB,YAAU,EAAME,aAAW,GAAUxhQ,IAAgD,CAAC,EAC9F,IAAIw4Y,IAAW,EACXqymB,GAAY,KACZ7s8B,GAAY,KACZwqJ,IAAa,EACjB,MAAMsizB,GAAgBA,KACoC9s8B,IAAUptI,cAChEotI,GAAY,KACRwjN,KACArhO,KACAqoK,IAAc83C,GAAW5vU,WAAS,EAGpCq6kC,GAAoBA,KACtB/s8B,GAAY,KACZwqJ,IAAc83C,GAAW5vU,UAAS,EAEhCs6kC,GAAiB96pC,IAAW8tN,MAAYuiM,OAAUw4d,GAAiB7o3B,KAAQwsB,aAAUo31B,MAAyBxzd,GAAYwqwB,GAAeC,KACzI5q9B,GAAOA,KACT,GAAIq4W,GAAU,CACVA,IAAW,EACX,MAAMtojB,GAAQ26pC,GACdA,GAAY,KACZvqwB,GAAWvuZ,KAAK7B,KACfs4W,IAAcwizB,GAAc96pC,GAAK,GAG1Cu9J,GAAO/wI,aAAUo31B,MAAyBxzd,GAAapwZ,KACnDsojB,IAAW,EACXqymB,GAAY36pC,KACV8tN,IAAcA,GAAUuxpB,UAAYjuc,GAAUnhO,KAAS6q9B,GAAc96pC,IAAK,EAC7E,KACCs4W,IAAa,KACXg5D,IAAYg3I,IAAYx6V,KAAcA,GAAUuxpB,SAAWjvd,GAAW5vU,UAAS,GACnF,EAEV,CDpCW23V,CAAS,IAAMuivB,GAAW5q/B,GACrC,CDwTuBunuB,CAAazv3B,GAAQuwZ,cAAUzxa,EAAW,CACrD0qa,SAAS,EACTE,UAAU,MAGXu1c,EACX,CAjBW4zS,CARS,CACZ13hC,UAAWkl4B,GAASll4B,UACpBo1S,SAAUroQ,GAAOqoQ,WAMaj5V,QAAKo4D,KAAS,OAAM+E,MAAG6qnB,GAAgBjlwB,GAASgmgC,OAAU,EAAG9o7B,KAAK47kC,IAkBxG,SAASC,GAAuBrB,GAAoBsB,GAAOhliC,IACvD,MAAQiliC,cAAYxp+B,SApHxB,SAASyp+B,GAAexB,GAAoB52hC,GAAW9M,IACnD,MAAMiliC,GAJV,SAASE,GAAqBzB,GAAoB52hC,IAC9C,OAAO42hC,GAAqB52hC,GAAU44S,QAC1C,CAEuBy/uB,CAAqBzB,GAAoB52hC,IAC5D,MAAO,CACH2uD,KAAM4n+B,GAAsBv2hC,GAAW9M,GAAUiliC,IACjDA,cAER,CA8GiCC,CAAexB,GAAoBsB,GAAOhliC,IACvE,MAAO,CACHiliC,cACAxp+B,QACAup+B,SAER,CAzB0HD,CAAuBV,GAAYX,mBAAoBoB,GAAe9kiC,MAAS,EAAGp1C,KAAI,EAAGo6kC,YAAYX,GAAYP,aAAakB,GAAMt/uB,SAAUs/uB,GAAM9B,iBAAc,EAAGhuoC,KAAO,EAAGumK,QAAMwp+B,cAAYD,OAAS9B,qBA3NpU,SAASkC,EAAoBC,GAAgBhC,GAAuBiC,IAIhE,SAHID,IAAkBhC,KAGjBiC,IAA2BjC,GAIpC,CAmN0V+B,CAAoBvr/B,GAAOwr/B,eAAgB5p+B,GAAM4o+B,GAAYJ,kBAAkBf,GAAe+B,OAAY,EAAGr6kC,KAAI,EAAGq6kC,cAAYD,OAAS9B,sBAC3dmB,GAAYN,oBAAoBb,GAAe+B,GAAU,IAC5D,EAAG/7kC,KAAIq8kC,IACZ,CAuBA,MAAMC,GAAwB,CAC1B70oB,KAAM,iBACNF,GAAI,gBAER,SAAS80oB,GAAuBx/jC,IAC5B,MAAQk/jC,cAAYD,OAASt/uB,SAAU+/uB,KAA6B1/jC,GACpE,MAAO,CACH75E,KAAM+4oC,GAAaO,GAAsB70oB,KAAO60oB,GAAsB/0oB,GACtE3lU,QAAS,CACL268B,0BAGZ,CAAC,IAEKC,GAAuB,MAA7B,MAAMA,GACFt/pC,YAAY4F,GAAS24H,IACjB36H,KAAKgC,QAAUA,GACfhC,KAAK26H,KAAOA,GACZ36H,KAAK07a,SAAW,IAAIzsV,MACpBjvF,KAAK27pC,WAAa,IAAI1skC,MACtBjvF,KAAK47pC,uBAAyB,EAC9B57pC,KAAK67pC,yBAA2B,IAChC77pC,KAAK87pC,uBAAyB,IAC9B97pC,KAAK+7pC,wBAAyB,EAC9B/7pC,KAAKg8pC,wBAA0B,KAC/Bh8pC,KAAKqwU,cAAe,EACpBrwU,KAAKi8pC,gBAAiB,EACtBj8pC,KAAKq5a,YAAa,EAClBr5a,KAAKq7pC,gBAAiB,EACtBr7pC,KAAK03pC,UAAW,CACpB,CACAttkC,kBACSpqF,KAAK+7pC,wBACN/7pC,KAAK840B,OAEb,CACA9ntB,aAAcgriC,2BAAyBD,0BAAwBH,4BAC3D,MAAMM,GAAmBrE,GAAiBmE,IACpCG,GAAkBtE,GAAiBkE,IACnCK,GAAkBvE,GAAiB+D,IACnCS,IAAgBF,KAAoBn8pC,KAAK+7pC,wBAC1CI,KAAoBJ,GAAuBp2qB,cAC5Cy2qB,IACAF,IAAoBC,IAAmBC,MACvCp8pC,KAAKs8pC,kBACDD,IACAr8pC,KAAK840B,QAGjB,CACAA,SAzVJ,SAASyjV,KACL,cAAcxmpC,OAAW,GAC7B,EAwVYwmpC,IACAv8pC,KAAK26H,KAAKy7M,kBAAkB,KACxBp2U,KAAKw8pC,gBAAkBtC,GAAe,CAClCxC,SAAU13pC,KAAK03pC,SACf2D,eAAgBr7pC,KAAKq7pC,eACrBl7sB,QAASngd,KAAK+7pC,uBACdxB,aAAcv6pC,KAAK47pC,uBACnB55pC,QAAShC,KAAKgC,QACdq3a,WAAYr5a,KAAKq5a,WACjBriU,gBAAiBh3G,KAAKg8pC,wBACtB3r1B,aAAcrwU,KAAKqwU,aACnB6nG,SAAUl4a,KAAK87pC,uBACfxB,WAAYt6pC,KAAK67pC,2BAClBtvoC,UAAWu0L,IAAY9gN,KAAKy8pC,eAAe378B,IAAQ,EAGlE,CACA278B,gBAAiBv6oC,QAAM4+L,aACnB,MAAMw3gB,GAAUp2sB,KAASs5oC,GAAsB70oB,KAAO3mhB,KAAK07a,SAAW17a,KAAK27pC,YA8CnF,SAASe,GAAapkc,IAGlB,OAAOA,GAAQgpJ,UAAYhpJ,GAAQtze,UAAU5hP,OAAS,CAC1D,EAjDYs5pC,CAAapkc,KACbt4tB,KAAK26H,KAAKu/D,IAAI,IAAMo+hB,GAAQ57nB,KAAKokH,IAEzC,CACA1hI,cACIp/E,KAAKs8pC,iBACT,CACAA,kBACQt8pC,KAAKw8pC,iBACLx8pC,KAAKw8pC,gBAAgB/7kC,aAE7B,EAnEEi7kC,UAoEYh3pC,UAAI,SAAApI,IAAA,WAAAA,IAAwFo/pC,IAxZVrhqC,MAwZmDA,OAxZnDA,MAwZ6EA,OAAS,EApEpLqhqC,GAqEYr+kC,UAzZkFhjF,MAAE,CAAA6nB,KAyZJw5oC,GAAuBj/pC,UAAA,oFAAAC,OAAA,CAAAk/pC,uBAAA,yBAAAC,yBAAA,2BAAAC,uBAAA,yBAAAC,uBAAA,yBAAAC,wBAAA,0BAAA3r1B,aAAA,eAAA4r1B,eAAA,iBAAA5ivB,WAAA,aAAAgivB,eAAA,iBAAA3D,SAAA,YAAAj6jC,QAAA,CAAAi+U,SAAA,WAAAigvB,WAAA,cAAAp7pC,SAAA,CAzZrBlG,SAoV9FqhqC,EAAuB,KA2GvB/8zB,GAAoB,MAA1B,MAAMA,cACYj6V,UAAI,SAAApI,IAAA,WAAAA,IAAwFqiW,GAAoB,EAD5HA,GAEYliR,UAjckFpiF,MAAE,CAAA6nB,KAicSy8U,KAFzGA,GAGYjiR,UAlckFriF,MAAE,IA+bhGskW,EAAoB,wZGzb1B,MAMMg+zB,GAAgD,mBAAjB95V,aACrC,SAAS57S,GAAE21oB,GAAKC,IACZ,OAAO,EAAM,EAAMA,GAAM,EAAMD,EACnC,CACA,SAASpkpC,GAAEokpC,GAAKC,IACZ,OAAO,EAAMA,GAAM,EAAMD,EAC7B,CACA,SAAStkpC,GAAEskpC,IACP,OAAO,EAAMA,EACjB,CAEA,SAASE,GAAWC,GAAIH,GAAKC,IACzB,QAAS51oB,GAAE21oB,GAAKC,IAAOE,GAAKvkpC,GAAEokpC,GAAKC,KAAQE,GAAKzkpC,GAAEskpC,KAAQG,EAC9D,CAEA,SAASC,GAASD,GAAIH,GAAKC,IACvB,OAAO,EAAM51oB,GAAE21oB,GAAKC,IAAOE,GAAKA,GAAK,EAAMvkpC,GAAEokpC,GAAKC,IAAOE,GAAKzkpC,GAAEskpC,GACpE,CA0BA,SAASK,GAAaj4pC,IAClB,OAAOA,EACX,CACA,SAASk4pC,GAAOC,GAAKC,GAAKC,GAAKC,IAC3B,KAAM,GAAKH,IAAOA,IAAO,GAAK,GAAKE,IAAOA,IAAO,GAC7C,MAAM,IAAIr2pC,MAAM,2CAEpB,GAAIm2pC,KAAQC,IAAOC,KAAQC,GACvB,OAAOL,GAGX,IAAIM,GAAeZ,GAAwB,IAAI95V,aAxD1B,IAwD2D,IAAI9/yB,MAxD/D,IAyDrB,QAASpd,GAAI,EAAGA,GAzDK,KAyDmBA,GACpC43pC,GAAa53pC,IAAKm3pC,GAzDF,GAyDan3pC,GAAqBw3pC,GAAKE,IAwB3D,OAAO,SAAsBr4pC,IAEzB,OAAU,IAANA,GACO,EAED,IAANA,GACO,EAEJ83pC,GA9BX,SAASU,GAASC,IACd,IAAIC,GAAgB,EAChBC,GAAgB,EAEpB,KADiBC,KACVD,IAAgCJ,GAAaI,KAAkBF,KAAME,GACxED,IAhEY,KAkEdC,GAEF,IACIE,GAAYH,IADJD,GAAKF,GAAaI,MAAmBJ,GAAaI,GAAgB,GAAKJ,GAAaI,KApEhF,GAsEZG,GAAed,GAASa,GAAWV,GAAKE,IAC5C,OAAIS,IA3Ea,KAqCzB,SAASC,GAAqBN,GAAIO,GAASb,GAAKE,IAC5C,QAAS13pC,GAAI,EAAGA,GAvCM,IAuCmBA,GAAG,CACxC,IAAIs4pC,GAAejB,GAASgB,GAASb,GAAKE,IAC1C,GAAqB,IAAjBY,GACA,OAAOD,GAGXA,KADelB,GAAWkB,GAASb,GAAKE,IAAOI,IACzBQ,GAE1B,OAAOD,EACX,CA6BmBD,CAAqBN,GAAII,GAAWV,GAAKE,IAE1B,IAAjBS,GACED,GAxDnB,SAASK,GAAgBT,GAAIU,GAAIC,GAAIjB,GAAKE,IACtC,IAAIgB,GAAUC,GAAU34pC,GAAI,EAC5B,GACI24pC,GAAWH,IAAMC,GAAKD,IAAM,EAC5BE,GAAWvB,GAAWwB,GAAUnB,GAAKE,IAAOI,GACxCY,GAAW,EACXD,GAAKE,GAGLH,GAAKG,SAEJrzpC,KAAKC,IAAImzpC,IAjCQ,QAiC+B14pC,GAhC1B,IAiC/B,OAAO24pC,EACX,CA8CmBJ,CAAgBT,GAAIC,GAAeA,GA9E9B,GA8E+DP,GAAKE,GAExF,CASsBG,CAASx4pC,IAAIo4pC,GAAKE,GACxC,CACJ,CAGA,MAAMiB,GAAwB,IAAIj63B,MAAe,yBAEjD,IACMk63B,GAAmB,MAAzB,MAAMA,GACEjiU,SACA,OAAOv81B,KAAKujL,UAAUgxJ,WAC1B,CAIIkq1B,WACA,OAAOz+pC,KAAKu81B,GAAGn3nB,aAAeplO,KAAKu81B,GAAGn3nB,YAAYhmE,IAC5Cp/J,KAAKu81B,GAAGn3nB,YAAYhmE,IAAIn6E,KAAKjlF,KAAKu81B,GAAGn3nB,aACrCrjN,KAAKq9I,GACf,CACAhjK,YAAYmnL,GAAW+iK,GAAWo40B,IAC9B1+pC,KAAKujL,UAAYA,GACjBvjL,KAAKsmV,UAAYA,GAKjBtmV,KAAK2+pC,gBAAkB,IAAI/n2B,IAC3B52T,KAAK4+pC,gBAAkB,CACnB5i/B,SAAU,IACV06I,OAAQ,CACJ6la,GAAI,IACJC,GAAI,EACJC,GAAI,IACJC,GAAI,MAELgic,GAEX,CAIAG,eAAev9pC,GAAI0D,GAAGC,IAClB3D,GAAG8sU,WAAappU,GAChB1D,GAAG61G,UAAYlyG,EACnB,CAIA65pC,YAAYx9pC,GAAI2B,IACZ,MAAkB,iBAAP3B,IACC2B,IAAUjD,KAAKujL,WAAWrsE,cAAc51G,KAAE,EAE/Ci04B,MAAcj04B,GACzB,CAIAy9pC,kBAAkBz9pC,IACd,OAAItB,KAAK2+pC,gBAAgB530B,IAAIzlV,KACzBtB,KAAK2+pC,gBAAgBh2pC,IAAIrH,IAAIM,OAE1B5B,KAAK2+pC,gBAAgBxwgC,IAAI7sJ,GAAI,IAAIi7O,MAAW5zO,IAAIrH,GAC3D,CAIA09pC,YAAYjr+B,GAASqsG,GAAWj+K,IAC5B,OAAI4xE,GAAQsq+B,WAAatq+B,GAAQ/uL,GAAK+uL,GAAQkr+B,WAAalr+B,GAAQ9uL,IAGnEm7R,GAAUx+R,OACVugH,MACO,EACX,CAIA+8iC,aAAa59pC,GAAI8+R,IACb,SAAO3tE,QAAMilH,KAAUp2U,GAAI,QAAS,CAAE04T,SAAS,EAAM/qI,SAAS,KAAM,EAAGyoJ,KAAUp2U,GAAI,YAAa,CAAE04T,SAAS,EAAM/qI,SAAS,IAASmxG,IAAWnhN,QAAKoG,MAAK,GAC9J,CAIAo6yB,SAASn+3B,GAAI8+R,IACTA,GAAU7/M,WACVvgF,KAAK2+pC,gBAAgBv96B,OAAO9/O,GAChC,CAIA69pC,MAAMpr+B,IACF,OAAO,IAAIj1G,IAAYqxU,KACnB,IAAIivwB,IAAWp/pC,KAAKy+pC,OAAS1q+B,GAAQqqB,WAAarqB,GAAQ/X,SAE1Doj/B,GAAUA,GAAU,EAAI,EAAIA,GAE5B,MAAMr/pC,GAAQg0L,GAAQ2iI,OAAO0o2B,IAC7Brr+B,GAAQsq+B,SAAWtq+B,GAAQg7jB,QAAUh7jB,GAAQ/uL,EAAI+uL,GAAQg7jB,QAAUhvvB,GACnEg0L,GAAQkr+B,SAAWlr+B,GAAQm7jB,QAAUn7jB,GAAQ9uL,EAAI8uL,GAAQm7jB,QAAUnvvB,GACnEC,KAAK6+pC,eAAe9q+B,GAAQsnP,WAAYtnP,GAAQsq+B,SAAUtq+B,GAAQkr+B,UAElEtxS,KAAwBpwR,SAAS,IAAMptM,GAAWvuZ,KAAKmyL,IAAQ,EAEvE,CACAsr+B,sBAAsB/9pC,GAAIqmB,IACtB,IAAKA,GAAQq0J,SACT,OAAAh8K,KAAK6+pC,eAAev9pC,GAAIqmB,GAAQ+4J,KAAM/4J,GAAQquS,KACvC9zM,QAAQC,UAGnB,MAAMi+K,GAAYpgS,KAAK++pC,kBAAkBz9pC,IACnCyyL,GAAU,CACZsnP,WAAY/5a,GACZ88M,UAAWp+M,KAAKy+pC,OAChB1va,OAAQztvB,GAAG8sU,WACX8gb,OAAQ5tvB,GAAG61G,UACXnyG,EAAmB,MAAhB2iB,GAAQ+4J,KAAep/K,GAAG8sU,aAAezmT,GAAQ+4J,KACpDz7K,EAAkB,MAAf0iB,GAAQquS,IAAc10T,GAAG61G,YAAcxvF,GAAQquS,IAClDh6I,SAAUr0J,GAAQq0J,SAClB06I,OAAQwm2B,GAAOv1oC,GAAQ+uS,OAAO6la,GAAI50sB,GAAQ+uS,OAAO8la,GAAI70sB,GAAQ+uS,OAAO+la,GAAI90sB,GAAQ+uS,OAAOgma,KAE3F,OAAO,IAAIx6mB,QAAQC,MAEfi6B,SAAG,MAAMn9D,KCrOd,SAASmynB,GAAO+3K,GAAS3B,GAAaz82B,IAAU+42B,IACnD0D,WAAcA,IAAc,GAAK,EAAIz82B,IAAWy82B,MACzC7xiB,MAAQ,CAACr4K,GAAQ6yP,QAAek6d,MAAe/stB,GAAQ6yP,GAAYg5d,GAAS3B,QAAY/g3B,GAAW,EAAMq92B,IACpH,CDkO0B1yK,CAAO,IAAMpxsB,KAAKm/pC,MAAMpr+B,IAAS90G,KErOpD,SAASqglC,GAAU9p1B,GAAW+p1B,IAAY,GAC7C,SAAO5p1B,MAAQ,CAACr4K,GAAQ6yP,MACpB,IAAI9uU,GAAQ,EACZi8E,GAAO/wI,aAAUo31B,MAAyBxzd,GAAapwZ,KACnD,MAAMq9F,GAASo4O,GAAUz1U,GAAOshF,OAC/B+b,IAAUmikC,KAAcpvwB,GAAWvuZ,KAAK7B,KACxCq9F,IAAU+yT,GAAW5vU,UAAS,GACjC,EAEV,CF4NgE++kC,CAAWE,IAAgBx/pC,KAAKg/pC,YAAYQ,GAAap/3B,GAAWj+K,QAAU,EAAG8xN,MAAUj0U,KAAKk/pC,aAAa59pC,GAAI8+R,MAAU,EAAG6plB,MAAS,IAAMjq3B,KAAKy/3B,SAASn+3B,GAAI8+R,MAAa7zQ,WAAU,EAElP,CAUAgsS,SAAS8iH,GAAY0xH,IACjB,MAAI7zO,MAAkBl5T,KAAKsmV,WAAY,CACnC,MAAMhlV,GAAKtB,KAAK8+pC,YAAYzjvB,IACtB1G,GAA2C,QAAnCz6G,iBAAiB54T,IAAIw4a,UAC7B80e,MAAoBW,SACpB5n4B,GAAU,IACT3nB,KAAK4+pC,mBACL7xnB,GAGCrsX,KAA4B,MAAtBqsX,GAAcrsX,KAAgBi0P,GAAQo4H,GAAc/jiB,IAAM+jiB,GAAchkiB,MAASgkiB,GAAcrsX,KACrGC,MAA8B,MAAvBosX,GAAcpsX,MAAiBg0P,GAAQo4H,GAAchkiB,MAAQgkiB,GAAc/jiB,IAAO+jiB,GAAcpsX,OAI/G,OAAsB,MAAlBh5J,GAAQs5S,SACRt5S,GAAQquS,IAAM10T,GAAGqqF,aAAerqF,GAAGmhU,aAAe96S,GAAQs5S,QAG1D0zG,IAA+B,IAAtBi6e,IACW,MAAhBjn4B,GAAQ+4J,OACR/4J,GAAQg5J,MAAQr/K,GAAGuqF,YAAcvqF,GAAGqhU,YAAch7S,GAAQ+4J,MAEpC,IAAtBkuuB,GACAjn4B,GAAQ+4J,KAAO/4J,GAAQg5J,MAEI,IAAtBiuuB,KACLjn4B,GAAQ+4J,KAAO/4J,GAAQg5J,OAASh5J,GAAQg5J,MAAQh5J,GAAQg5J,QAIvC,MAAjBh5J,GAAQg5J,QACRh5J,GAAQ+4J,KAAOp/K,GAAGuqF,YAAcvqF,GAAGqhU,YAAch7S,GAAQg5J,OAG1D3gL,KAAKq/pC,sBAAsB/9pC,GAAIqmB,GAAO,CAEjD,OAAOu6F,QAAQC,SACnB,CAIAokzB,gBAAgBlrf,GAAYx4a,GAAQkqiB,GAAgB,CAAC,GACjD,MAAM0ynB,GAAez/pC,KAAK8+pC,YAAYzjvB,IAChCyhJ,GAAW98jB,KAAK8+pC,YAAYj8pC,GAAQ48pC,IACpC93oC,GAAU,IACTolhB,GAECrsX,KAAMo8Y,GAASl+O,YAAcmuN,GAAcrsX,MAAQ,GACnDs1I,IAAK8mQ,GAASn+O,WAAaouN,GAAc/2O,KAAO,IAGxD,OAAO8mQ,GAAW98jB,KAAKu4T,SAASkn2B,GAAc93oC,IAAWu6F,QAAQC,SACrE,EArLEq8iC,UAsLY95pC,UAAI,SAAApI,IAAA,WAAAA,IAAwFkiqC,IAAVnkqC,MAA+C0gU,MAA/C1gU,MAAoE2gU,OAApE3gU,MAA4FkkqC,GAAqB,KAtL/MC,GAuLY553B,WADkFvqS,MAAE,CAAAsiJ,MACY6hhC,GAAmB/5pC,QAAnB+5pC,GAAmB95pC,UAAAk1I,WAAc,SAvL7I4khC,EAAmB,KG3G2B,MAAA1ilC,GAAA,eAAAgR,GAAA,wBAAA4ykC,GAAA1iqC,GAAAC,IAqkC+hE,GArkC/hE,EAAAD,IAWgD3C,MAAE,wBA0jC6+D,EAAA2C,GAAA,OAAAxC,GA1jC/+DH,MAAE,GAAFA,MAAE,aAAAG,GAAAytK,MAAA03/B,yBAAFtlqC,CA0jCk6D,MAAAG,GAAAytK,MAAA23/B,aAAD,CAAC,UAAAC,GAAA7iqC,GAAAC,IAAoT,GAApT,EAAAD,IA1jCl6D3C,MAAE,wBA0jCotE,EAAA2C,GAAA,OAAAvC,GA1jCttEJ,MAAE,GAAFA,MAAE,aAAAI,GAAAwtK,MAAA63/B,uBAAFzlqC,CA0jCuoE,MAAAI,GAAAwtK,MAAA83/B,eAAD,CAAC,UAAAC,GAAAhjqC,GAAAC,IAAoG,GAApG,EAAAD,KA1jCvoE3C,MAAE,GAAFA,MAAE,EAAAqlqC,GAAA,qBAAFrlqC,MAAE,EAAAwlqC,GAAA,qBAAFxlqC,SA0jC2uE,EAAA2C,GAAA,OAAA1C,GA1jC3uED,cAAE,GAAFA,MAAE,OAAAC,GAAA2tK,MAAA83/B,gBAAF1lqC,MAAE,GAAFA,MAAE,OAAAC,GAAA2tK,MAAA23/B,aA0jC2jE,CAAC,OAAArgkC,GAAA,UAnkC5pE0gkC,GAAM,MAAZ,MAAMA,GACF7jqC,YAAYkF,IACRtB,KAAKsB,GAAKA,EACd,CACI4+pC,WAAOtta,IACP,UAAYjxvB,GAAK5B,MAAU4G,OAAOk+N,QAAQ+thB,IACtC5yvB,KAAKsB,GAAGO,cAAcm6O,aAAar6O,GAAK5B,GAEhD,EAREkgqC,UASYv7pC,UAAI,SAAApI,IAAA,WAAAA,IAAwF2jqC,IAAV5lqC,MAAkCA,OAAa,EAT7I4lqC,GAUY5ilC,UADkFhjF,MAAE,CAAA6nB,KACJ+9oC,GAAMxjqC,UAAA,mBAAAC,OAAA,CAAAwjqC,OAAA,UAAA78c,YAAA,IAVlG48c,EAAM,KAsBZ,SAASE,GAAiBp//B,IACtB,SAAOngF,KAAI,KACPmgF,GAAIq//B,cAAgB,KAAM,GAElC,CACA,SAASC,GAAgBt//B,IACrB,SAAOngF,KAAI,KACPmgF,GAAIq//B,cAAgB,MAE5B,CACA,SAASvt1B,KACL,SAAOjyP,KAAKvhF,IAAMA,GAAEwzU,kBACxB,CAIA,SAAS0jG,GAAel3a,GAAG2sU,IACvB,OAAQ3sU,GAAEwuU,SAAW7B,GAAKtrJ,MACtBrhL,GAAEwuU,SAAW7B,GAAKtrJ,KAAOsrJ,GAAK7jT,OAC9B9oB,GAAEyuU,SAAW9B,GAAKhW,KAClB32T,GAAEyuU,SAAW9B,GAAKhW,IAAMgW,GAAKlzN,MACrC,CAAC,IAEKwnjC,GAAc,MAApB,MAAMA,GAEE791B,mBACA,OAAOziU,KAAK6B,cAAc4gU,YAC9B,CACIE,kBACA,OAAO3iU,KAAK6B,cAAc8gU,WAC9B,CACIh3O,mBACA,OAAO3rF,KAAK6B,cAAc8pF,YAC9B,CACIE,kBACA,OAAO7rF,KAAK6B,cAAcgqF,WAC9B,CAEIsrB,gBACA,OAAOn3G,KAAK6B,cAAcs1G,SAC9B,CACIi3N,iBACA,OAAOpuU,KAAK6B,cAAcusU,UAC9B,CAEImy1B,iBACA,OAAOvgqC,KAAK6rF,YAAc7rF,KAAK2iU,WACnC,CACI691B,iBACA,OAAOxgqC,KAAK2rF,aAAe3rF,KAAKyiU,YACpC,CACIg+1B,oBACA,OAAOzgqC,KAAK0gqC,uBAAuBj+1B,cAAgB,CACvD,CACIk+1B,mBACA,OAAO3gqC,KAAK0gqC,uBAAuB/91B,aAAe,CACtD,CACAvmU,YAAYwkqC,IACR5gqC,KAAK4gqC,SAAWA,GAChB5gqC,KAAK6B,cAAgB++pC,GAAS/+pC,aAClC,CAIAg/pC,sBAAsB5rW,GAAW70hB,IAC7BpgS,KAAK2rjB,QAAU,IAAI7se,IAAYqxU,KAE3B,MAAM2wwB,MAAkBpp1B,KAAU13U,KAAK6B,cAAe,YAAa,CAAEm4T,SAAS,IACxE4ta,GAAYqtF,GAAY6rW,GAAkBA,GAAgB7hlC,KAAK4zP,MAE/DsxZ,MAAazsZ,KAAU13U,KAAK6B,cAAe,aAAc,CAAEm4T,SAAS,IAAQ/6O,QAAKC,KAAI,KAAM,KACjGuzI,OAAMm1gB,GAAWzD,IAAYllpB,QAAK2B,KAAKvhF,IAAM8wZ,GAAWvuZ,KAAKvC,MAAE,EAAG40U,MAAU7zC,KAAY7zQ,WAAU,GAEtGvsB,KAAKq3uB,QAAU,IAAIv4pB,IAAYqxU,KAC3B,MAAM4wwB,MAAYrp1B,KAAU13U,KAAK6B,cAAe,YAAa,CAAEm4T,SAAS,IAAQ/6O,QAAK2B,KAAKvhF,IAAM8wZ,GAAWvuZ,KAAKvC,MAC1G2hqC,MAAUtp1B,KAAU13U,KAAK6B,cAAe,UAAW,CAAEm4T,SAAS,IAAQ/6O,QAAK2B,KAAI,IAAMuvU,GAAWvuZ,MAAK,KAC3Gm/pC,GAAU9hlC,QAAKgyU,MAAU,IAAM+vwB,KAAO,EAAG/s1B,MAAU7zC,KAAY7zQ,WAAU,EAEjF,CAIA00oC,eAEIjhqC,KAAK6B,cAActH,UAAY,4CAC3ByF,KAAK6B,cAAcw2a,oBACnBr4a,KAAK6B,cAAcw2a,kBAAkB99a,UAAY,kBAEzD,CAIA2mqC,cAAcC,IACVnhqC,KAAK6B,cAActH,WAAc,iDAAgD4mqC,KAE7EnhqC,KAAK6B,cAAcw2a,oBACnBr4a,KAAK0gqC,sBAAwB1gqC,KAAK6B,cAAcw2a,kBAChDr4a,KAAK0gqC,sBAAsBzk7B,UAAU5sO,IAAI,qBAEjD,CAIA+xpC,UAAUrhqC,IACNC,KAAK6B,cAAcs1G,UAAYp3G,EACnC,CAIAshqC,UAAUthqC,IACNC,KAAK6B,cAAcusU,WAAaruU,EACpC,EAxFEugqC,UAyFY57pC,UAAI,SAAApI,IAAA,WAAAA,IAAwFgkqC,IA7HVjmqC,MA6H0CA,OAAa,EAzFrJimqC,GA0FYjjlC,UA9HkFhjF,MAAE,CAAA6nB,KA8HJo+oC,GAAc7jqC,UAAA,2BAAA4mtB,YAAA,IA1F1Gi9c,EAAc,KAoGdgB,GAAe,MAArB,MAAMA,cACY58pC,UAAI,SAAApI,IAAA,WAAAA,IAAwFglqC,GAAe,EADvHA,GAEYjklC,UA1IkFhjF,MAAE,CAAA6nB,KA0IJo/oC,KAF5FA,EAAe,KASfC,GAAY,MAAlB,MAAMA,GAEElqb,cACA,MAAM0pb,MAAYrp1B,KAAU13U,KAAKwhqC,aAAc,YAAa,CAAExn2B,SAAS,IAAQ/6O,KAAK4zP,KAAmBst1B,GAAiBngqC,KAAKi3G,WACvHs/N,MAAUmB,KAAU13U,KAAKi3G,SAAU,UAAW,CAAE+iN,SAAS,IAAQ/6O,KAAK4zP,KAAmBwt1B,GAAgBrgqC,KAAKi3G,WAAQ,EAAGg6S,MAAU,IAAMpnQ,OAC/I,SAAO4oE,KAAMsu8B,GAAWxq1B,GAC5B,CAEIwhkB,iBACA,OAAO/34B,KAAKwhqC,aAAazr2B,uBAC7B,CACA35T,YAAYmpqB,GAAKi8f,GAAcvqjC,IAC3Bj3G,KAAKulqB,IAAMA,GACXvlqB,KAAKwhqC,aAAeA,GACpBxhqC,KAAKi3G,SAAWA,EACpB,CAIAwqjC,eAAepiqC,GAAGqiqC,GAAW9lvB,IACzB,SAAOx/R,OAAG/8I,IAAG4/E,QAAKC,KAAK7/E,IAAMA,GAAEW,KAAK2hqC,gBAAa,EAEjDzilC,KAAK0ilC,KACmBA,GAAa5hqC,KAAK2uP,OACR+y6B,GAAY,GACnB1hqC,KAAKq4G,KACbujU,KAClB,EAEDh7V,KAAK7gF,KACDC,KAAKulqB,IAAIhtW,SAAS,IACXv4T,KAAK6hqC,oBAAoB9hqC,IAC5Bi8K,YAAUm5tB,MAAqBn14B,KAAKulqB,IAAIu8f,2BAC3C,GAET,EAnCEP,UAoCY78pC,UAAI,SAAApI,IAAA,WAAAA,IAAwFilqC,IArLVlnqC,MAqLwCinqC,IArLxCjnqC,MAqLoEwgU,aArLpExgU,MAqL4F4hE,UAAQ,EApClMslmC,GAqCYlklC,UAtLkFhjF,MAAE,CAAA6nB,KAsLJq/oC,KArC5FA,EAAY,KA2CZQ,GAAe,MAArB,MAAMA,WAAwBR,GACtBI,mBACA,MAAO,OACX,CACIhz6B,aACA,OAAO3uP,KAAK+34B,WAAWr3tB,IAC3B,CACIroE,WACA,OAAOr4G,KAAKwhqC,aAAa7+1B,WAC7B,CACAvmU,YAAYmpqB,GAAKi8f,GAAcvqjC,IAC3B7sF,MAAMm7oB,GAAKi8f,GAAa3/pC,cAAeo1G,IACvCj3G,KAAKulqB,IAAMA,GACXvlqB,KAAKi3G,SAAWA,EACpB,CACA4qjC,oBAAoB9hqC,IAChB,MAAO,CAAE2gL,KAAM3gL,GACnB,EAjBEgiqC,UAkBYr9pC,UAAI,SAAApI,IAAA,WAAAA,IAAwFylqC,IA9MV1nqC,MA8M2CinqC,IA9M3CjnqC,MA8MuEA,OA9MvEA,MA8MiG0gU,MAAQ,EAlBvMgn2B,GAmBY1klC,UA/MkFhjF,MAAE,CAAA6nB,KA+MJ6/oC,GAAetlqC,UAAA,4BAAA4mtB,YAAA,EAAA9itB,SAAA,CA/MblG,SA4L9F0nqC,EAAe,KA+BfC,GAAe,MAArB,MAAMA,WAAwBT,GACtBI,mBACA,MAAO,OACX,CACIhz6B,aACA,OAAO3uP,KAAK+34B,WAAW/hlB,GAC3B,CACI39M,WACA,OAAOr4G,KAAKwhqC,aAAa/+1B,YAC7B,CACArmU,YAAYmpqB,GAAKi8f,GAAcvqjC,IAC3B7sF,MAAMm7oB,GAAKi8f,GAAa3/pC,cAAeo1G,IACvCj3G,KAAKulqB,IAAMA,GACXvlqB,KAAKi3G,SAAWA,EACpB,CACA4qjC,oBAAoB9hqC,IAChB,MAAO,CAAEi2T,IAAKj2T,GAClB,EAjBEiiqC,UAkBYt9pC,UAAI,SAAApI,IAAA,WAAAA,IAAwF0lqC,IA7OV3nqC,MA6O2CinqC,IA7O3CjnqC,MA6OuEA,OA7OvEA,MA6OiG0gU,MAAQ,EAlBvMin2B,GAmBY3klC,UA9OkFhjF,MAAE,CAAA6nB,KA8OJ8/oC,GAAevlqC,UAAA,4BAAA4mtB,YAAA,EAAA9itB,SAAA,CA9OblG,SA2N9F2nqC,EAAe,KAiCfC,GAAY,MAAlB,MAAMA,GACEC,eACA,OAAOliqC,KAAKy2N,MAAMp+G,KAAOr4G,KAAKq4G,IAClC,CAEI0/xB,iBACA,OAAO/34B,KAAKmiqC,aAAaps2B,uBAC7B,CAEIshb,cACA,SAAO3/Z,KAAU13U,KAAKmiqC,aAAc,YAAa,CAAEno2B,SAAS,IAAQ/6O,KAAK4zP,KAC7E,CACAz2U,YAAYmpqB,GAAK9uc,GAAO0r8B,GAAclrjC,IAClCj3G,KAAKulqB,IAAMA,GACXvlqB,KAAKy2N,MAAQA,GACbz2N,KAAKmiqC,aAAeA,GACpBniqC,KAAKi3G,SAAWA,GAEhBj3G,KAAKoiqC,UAAY,IAAI7l7B,KACrBv8O,KAAK+xU,SAAW/xU,KAAKoiqC,UAAUnjlC,QAAK46P,QACxC,CAEAviJ,SACI,MAAMj/E,GAkCd,SAASgqjC,GAAmBprvB,GAAWE,GAAamrvB,IAGhD,OAAOr3pC,KAAKnK,OAFWm2a,GAAYE,GACAF,IACNqrvB,GACjC,CAtCqBD,CAAmBriqC,KAAKy2N,MAAMp+G,KAAMr4G,KAAKuiqC,mBAAoBviqC,KAAKulqB,IAAI+8f,cAC7E1+pC,GAyCd,SAAS4+pC,GAAuB1xqB,GAAgB2xqB,GAAWP,IACvD,OAAOpxqB,GAAiBoxqB,GAAWO,EACvC,CA3CyBD,CAAuBxiqC,KAAK0iqC,qBAAsB1iqC,KAAK2iqC,kBAAmB3iqC,KAAKkiqC,UAChGv0S,KAAwBpwR,SAAS,IAAMv9lB,KAAK6nnB,aAAa7nnB,KAAK4iqC,gBAAgBh/pC,GAAU5D,KAAKkiqC,UAAW7pjC,IAC5G,CAKAy2oB,QAAQrtvB,IACJ,IAAIohqC,GACAC,GACJ,MAAMjx1B,MAAYz1L,OAAG36I,IAAOw9E,KAAKkhlC,GAAiBngqC,KAAKi3G,WAAQ,EAAGr2B,KAAI,KAElEiilC,GAAgB7iqC,KAAKkiqC,SACrBY,GAAiB9iqC,KAAK2iqC,kBACtB3iqC,KAAK2ujB,aAAY,EAAI,IAEnB58O,MAAW2F,KAAU13U,KAAKi3G,SAAU,YAAa,CAAEg4E,SAAS,EAAM+qI,SAAS,IAAQ/6O,KAAK4zP,MACxFb,MAAU0F,KAAU13U,KAAKi3G,SAAU,UAAW,CAAEg4E,SAAS,IAAQhwG,KAAK4zP,KAAmBwt1B,GAAgBrgqC,KAAKi3G,WAAQ,EAAGr2B,KAAI,IAAM5gF,KAAK2ujB,aAAY,KAC1J,OAAO98O,GAAU5yP,QAAKC,KAAK7/E,IAAMA,GAAEW,KAAK2hqC,gBAAa,EAAGzilC,KAAK0ilC,IAAeA,GAAa5hqC,KAAK+iqC,kBAAe,EAAG1rhC,MAAU2rhC,IAAoBjx1B,GAAS9yP,QAAKC,KAAK7/E,IAAMA,GAAEW,KAAKijqC,kBAAe,EAE7L/jlC,KAAKgklC,IAAgBA,GAAcljqC,KAAKy2N,MAAMk4B,SAAM,EAAGzvK,KAAKyvK,IAAWm06B,IAAkBn06B,GAASq06B,IAAmBH,KAAa,EAAG3jlC,KAAKt7E,IAAa5D,KAAKmjqC,WAAWv/pC,GAAUk/pC,MAAe,EAAGlilC,KAAKh9E,IAAa5D,KAAKu4T,SAAS30T,MAAS,EAAGqwU,MAAUjC,MAC7P,EA7CEiw1B,UA8CYv9pC,UAAI,SAAApI,IAAA,WAAAA,IAAwF2lqC,IA1SV5nqC,MA0SwCinqC,IA1SxCjnqC,MA0SoEknqC,IA1SpElnqC,MA0S6FwgU,aA1S7FxgU,MA0SqH4hE,UAAQ,EA9C3NgmmC,GA+CY5klC,UA3SkFhjF,MAAE,CAAA6nB,KA2SJ+/oC,GAAYxkkC,QAAA,CAAAs0O,SAAA,cA/CxGkw1B,EAAY,KAqEZmB,GAAe,MAArB,MAAMA,WAAwBnB,GACtBgB,qBACA,MAAO,SACX,CACItB,mBACA,MAAO,OACX,CACIY,yBACA,OAAOviqC,KAAKulqB,IAAIt6K,SAASp/Z,WAC7B,CACI62kC,2BACA,OAAO1iqC,KAAKulqB,IAAIt6K,SAAS78K,UAC7B,CACIu01B,wBACA,OAAO3iqC,KAAKulqB,IAAIt6K,SAASs1qB,UAC7B,CACIwC,sBACA,OAAO/iqC,KAAK+34B,WAAWr3tB,KAAO1gL,KAAKi3G,SAASs9N,YAAYjT,aAAe,CAC3E,CACIjpN,WACA,OAAOr4G,KAAKmiqC,aAAax/1B,WAC7B,CACAvmU,YAAYmpqB,GAAK9uc,GAAOz0N,GAASi1G,GAAU0kU,IACvCvxZ,MAAMm7oB,GAAK9uc,GAAOz0N,GAAQH,cAAeo1G,IACzCj3G,KAAKulqB,IAAMA,GACXvlqB,KAAKy2N,MAAQA,GACbz2N,KAAKgC,QAAUA,GACfhC,KAAKi3G,SAAWA,GAChBj3G,KAAK27a,IAAMA,EACf,CACAksM,aAAajknB,GAAUy0G,IACnBr4G,KAAKmiqC,aAAanr7B,MAAM7uN,MAAS,GAAEkwF,OACnCr4G,KAAKmiqC,aAAanr7B,MAAMntN,UAAa,eAAcjmB,aACvD,CACAu/pC,WAAWv/pC,GAAU6+pC,IACjB,GAAuB,QAAnBziqC,KAAK27a,IAAI57a,MAAiB,CAC1B,GAA2C,IAAvCC,KAAKulqB,IAAI/ze,QAAQo9tB,kBACjB,OAAOhr5B,GAAW6+pC,GAEtB,GAA2C,IAAvCziqC,KAAKulqB,IAAI/ze,QAAQo9tB,kBACjB,OAAO6zQ,GAAY7+pC,GAO3B,OAAOA,EACX,CACAg/pC,gBAAgBh/pC,GAAUs+pC,IACtB,GAAuB,QAAnBliqC,KAAK27a,IAAI57a,MAAiB,CAC1B,GAA2C,IAAvCC,KAAKulqB,IAAI/ze,QAAQo9tB,kBACjB,OAAQhr5B,GAEZ,GAA2C,IAAvC5D,KAAKulqB,IAAI/ze,QAAQo9tB,kBACjB,OAAOhr5B,GAAWs+pC,GAO1B,OAAOt+pC,EACX,CACA+qjB,YAAY5ujB,IACRC,KAAKulqB,IAAI52G,YAAY,CAAE00mB,mBAAoBtjqC,IAC/C,CACAw4T,SAAS30T,IACL5D,KAAKulqB,IAAIt6K,SAASo2qB,UAAUz9pC,GAChC,EArEEw/pC,UAsEY1+pC,UAAI,SAAApI,IAAA,WAAAA,IAAwF8mqC,IAvYV/oqC,MAuY2CinqC,IAvY3CjnqC,MAuYuE0nqC,IAvYvE1nqC,MAuYmGA,OAvYnGA,MAuY6H0gU,MAvY7H1gU,MAuYkJ2jF,MAAiB,EAtEjQollC,GAuEY/llC,UAxYkFhjF,MAAE,CAAA6nB,KAwYJkhpC,GAAe3mqC,UAAA,4BAAA4mtB,YAAA,EAAA9itB,SAAA,CAxYblG,SAiU9F+oqC,EAAe,KAmFfE,GAAe,MAArB,MAAMA,WAAwBrB,GACtBN,mBACA,MAAO,OACX,CACIY,yBACA,OAAOviqC,KAAKulqB,IAAIt6K,SAASt/Z,YAC7B,CACI+2kC,2BACA,OAAO1iqC,KAAKulqB,IAAIt6K,SAAS9zY,SAC7B,CACIwrjC,wBACA,OAAO3iqC,KAAKulqB,IAAIt6K,SAASu1qB,UAC7B,CACIyC,qBACA,MAAO,SACX,CACIF,sBACA,OAAO/iqC,KAAK+34B,WAAW/hlB,IAAMh2T,KAAKi3G,SAASs9N,YAAYte,aAAe,CAC1E,CACI59M,WACA,OAAOr4G,KAAKmiqC,aAAa1/1B,YAC7B,CACArmU,YAAYmpqB,GAAK9uc,GAAOz0N,GAASi1G,IAC7B7sF,MAAMm7oB,GAAK9uc,GAAOz0N,GAAQH,cAAeo1G,IACzCj3G,KAAKulqB,IAAMA,GACXvlqB,KAAKy2N,MAAQA,GACbz2N,KAAKgC,QAAUA,GACfhC,KAAKi3G,SAAWA,EACpB,CACA4wgB,aAAajknB,GAAUy0G,IACnBr4G,KAAKmiqC,aAAanr7B,MAAMl+H,OAAU,GAAET,OACpCr4G,KAAKmiqC,aAAanr7B,MAAMntN,UAAa,oBAAmBjmB,UAC5D,CACAu/pC,WAAWv/pC,IACP,OAAOA,EACX,CACAg/pC,gBAAgBh/pC,IACZ,OAAOA,EACX,CACA+qjB,YAAY5ujB,IACRC,KAAKulqB,IAAI52G,YAAY,CAAE40mB,iBAAkBxjqC,IAC7C,CACAw4T,SAAS30T,IACL5D,KAAKulqB,IAAIt6K,SAASm2qB,UAAUx9pC,GAChC,EA5CE0/pC,UA6CY5+pC,UAAI,SAAApI,IAAA,WAAAA,IAAwFgnqC,IAjcVjpqC,MAic2CinqC,IAjc3CjnqC,MAicuE2nqC,IAjcvE3nqC,MAicmGA,OAjcnGA,MAic6H0gU,MAAQ,EA7CnOuo2B,GA8CYjmlC,UAlckFhjF,MAAE,CAAA6nB,KAkcJohpC,GAAe7mqC,UAAA,4BAAA4mtB,YAAA,EAAA9itB,SAAA,CAlcblG,SAoZ9FipqC,EAAe,KA4DfE,GAAS,MAAf,MAAMA,GACFpnqC,YAAYkF,GAAIikqB,GAAKr4oB,GAAU+pF,GAAU0jB,IACrC36H,KAAKsB,GAAKA,GACVtB,KAAKulqB,IAAMA,GACXvlqB,KAAKktB,SAAWA,GAChBltB,KAAKi3G,SAAWA,GAChBj3G,KAAK26H,KAAOA,GAEZ36H,KAAKogS,UAAY,IAAI7jD,IACzB,CAIAsk7B,wBAEI,IAAI4C,GAEAC,GAEAC,GAEJ,MAAqC,aAAjC3jqC,KAAKulqB,IAAIq+f,qBAET5jqC,KAAK6jqC,qBAAuB,IAAItn7B,KAChCv8O,KAAK8jqC,qBAAuB,IAAIvn7B,KAEhCv8O,KAAKulqB,IAAIt6K,SAAS41qB,sBAAsB7gqC,KAAKulqB,IAAIw+f,2BAA4B/jqC,KAAKogS,WAElFqj4B,GAAiBzjqC,KAAK8jqC,qBACtBJ,GAAkB1jqC,KAAK6jqC,qBACvBF,GAAoB3jqC,KAAKulqB,IAAIt6K,SAAS0gE,QAAQ1se,QAE9CC,KAAK7/E,MAAMA,IAAIk3a,GAAel3a,GAAGW,KAAKsB,GAAGy0T,2BAAgC,EAAG8jB,SAAqB,EAEjGj5P,KAAK+qe,IAAY3rjB,KAAKi3G,SAASmpjC,cAAgBz0mB,GAAU,KAAM,EAAQ,OACvE3rjB,KAAKulqB,IAAIt6K,SAASosP,QAAQp4pB,QAAK2B,KAAKvhF,KAC5BA,GACIk3a,GAAel3a,GAAGW,KAAKgkqC,MAAMjsR,YAC7B/34B,KAAK8jqC,qBAAqBliqC,KAAKvC,IAE1Bk3a,GAAel3a,GAAGW,KAAKy2N,MAAMshrB,cAClC/34B,KAAKulqB,IAAI0+f,YAAW,GACpBjkqC,KAAK6jqC,qBAAqBjiqC,KAAKvC,KAInCW,KAAKulqB,IAAI0+f,YAAW,EAAK,IAEhC,EAAGhw1B,MAAUj0U,KAAKogS,YAAY7zQ,cAI/Bk3oC,GAAiBzjqC,KAAKgkqC,MAAM3sb,QAC5Bqsb,GAAkB1jqC,KAAKy2N,MAAM4ghB,QAC7Bssb,GAAoB3jqC,KAAK2rjB,YAEtBl5V,KAEPkx8B,GAAkB1klC,QAAK2B,KAAKvhF,IAAMW,KAAK+ujB,WAAW1vjB,MAElDokqC,GAAexklC,QAAKgyU,MAAW5xZ,IAAMW,KAAKgkqC,MAAMl1a,QAAQzvvB,MAExDqkqC,GAAgBzklC,QAAKgyU,MAAW5xZ,IAAMW,KAAKy2N,MAAMgr8B,eAAepiqC,GAAGW,KAAKgkqC,MAAM3rjC,KAAMr4G,KAAKuiqC,sBAC7F,CAEI52mB,cACA,MAAMu4K,MAAaxsZ,KAAU13U,KAAKsB,GAAI,aAAc,CAAE04T,SAAS,IAAQ/6O,KAAK4zP,MAAgB,EAAG3zP,KAAI,KAAM,IACnGilpB,MAAazsZ,KAAU13U,KAAKsB,GAAI,aAAc,CAAE04T,SAAS,IAAQ/6O,KAAK4zP,MAAgB,EAAG3zP,KAAI,KAAM,IACzG,SAAOuzI,KAAMyxgB,GAAYC,GAC7B,CACA9nuB,WACI2D,KAAK26H,KAAKy7M,kBAAkB,OAElBp2U,KAAKktB,SAASgi4B,KAAOlv5B,KAAKktB,SAASki4B,WAAapv5B,KAAKulqB,IAAI2+f,uBAC3DlkqC,KAAK6gqC,wBAAwB5hlC,QAAKg1P,MAAUj0U,KAAKogS,YAAY7zQ,aAAU,EAG3EkmM,KAAMzyN,KAAKulqB,IAAI7pP,SAAU17a,KAAKulqB,IAAIoiE,SAAS1opB,QAAK2B,KAAI,IAAM5gF,KAAKgkqC,OAAO1s+B,WAAQ,EAAG28I,MAAUj0U,KAAKogS,YAAY7zQ,WAAU,EAE9H,CACA6yD,cACIp/E,KAAKogS,UAAUx+R,OACf5B,KAAKogS,UAAU7/M,WAEXvgF,KAAK8jqC,sBAAwB9jqC,KAAK6jqC,uBAClC7jqC,KAAK6jqC,qBAAqBtjlC,WAC1BvgF,KAAK8jqC,qBAAqBvjlC,WAElC,EAxFEijlC,UAyFY9+pC,UAAI,SAAApI,IAAA,WAAAA,IAAwFknqC,IAziBVnpqC,MAyiBqCwgU,aAziBrCxgU,MAyiB6DinqC,IAziB7DjnqC,MAyiByFiiF,OAziBzFjiF,MAyiBiH4hE,UAziBjH5hE,MAyiBsIA,OAAS,EAzF7OmpqC,GA0FYnmlC,UA1iBkFhjF,MAAE,CAAA6nB,KA0iBJshpC,KA1F5FA,EAAS,KAgGTW,GAAU,MAAhB,MAAMA,WAAmBX,GACjBjB,yBACA,OAAOviqC,KAAKulqB,IAAIt6K,SAASt/Z,YAC7B,CACAvvF,YAAYkF,GAAIikqB,GAAKr4oB,GAAU+pF,GAAU0jB,IACrCvwG,MAAM9oB,GAAGO,cAAe0jqB,GAAKr4oB,GAAU+pF,GAAU0jB,IACjD36H,KAAKulqB,IAAMA,GACXvlqB,KAAKktB,SAAWA,GAChBltB,KAAKi3G,SAAWA,GAChBj3G,KAAK26H,KAAOA,EAChB,CACAo0b,WAAWhvjB,IACPC,KAAKulqB,IAAIx2G,WAAW,CAAEq1mB,gBAAiBrkqC,IAC3C,EAbEokqC,UAcYz/pC,UAAI,SAAApI,IAAA,WAAAA,IAAwF6nqC,IA9jBV9pqC,MA8jBsCA,OA9jBtCA,MA8jBgEinqC,IA9jBhEjnqC,MA8jB4FiiF,OA9jB5FjiF,MA8jBoH0gU,MA9jBpH1gU,MA8jByIA,OAAS,EAdhP8pqC,GAeYjolC,UA/jBkF7hF,MAAE,CAAA6nB,KA+jBJiipC,GAAU1nqC,UAAA,kBAAA6gF,UAAA,SAAAtgF,GAAAC,IAA+R,GAA/R,EAAAD,KA/jBR3C,KA+jBmL2nqC,GAAe,GA/jBlM3nqC,KA+jBwRipqC,GAAe,MAAAtmqC,GAAA,KAAAugF,GA/jBvSljF,MAAEkjF,GAAFljF,WAAE4C,GAAAw5N,MAAAl5I,GAAAC,OAAFnjF,MAAEkjF,GAAFljF,WAAE4C,GAAA+mqC,MAAAzmlC,GAAAC,OAAA,EAAA2zQ,SAAA,EAAAxxV,aAAA,SAAA3C,GAAAC,IAAA,EAAAD,IAAF3C,MAAE,yBAAAgptB,YAAA,EAAA9itB,SAAA,CAAFlG,aAAEuC,MAAA,EAAAC,KAAA,EAAAC,OAAA,gDAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAAF3C,MAAE,WAAFA,MAAE,WAAFA,SAkkB1F,EAAA2C,KAlkB0F3C,MAAE,sBAAA4C,GAAAsoqB,IAAA8+f,WAAA,IAAFhqqC,MAAE,GAAFA,MAAE,sBAAA4C,GAAAsoqB,IAAA++f,WAAA,IAikB9B,EAAAjolC,aAAA,CAEq1D2llC,GAA6EsB,IAAe58kC,OAAA,6tDAAAzI,gBAAA,IAnBn/DkmlC,EAAU,KAsCVI,GAAU,MAAhB,MAAMA,WAAmBf,GACjBjB,yBACA,OAAOviqC,KAAKulqB,IAAIt6K,SAASp/Z,WAC7B,CACAzvF,YAAYkF,GAAIikqB,GAAKr4oB,GAAU+pF,GAAU0jB,IACrCvwG,MAAM9oB,GAAGO,cAAe0jqB,GAAKr4oB,GAAU+pF,GAAU0jB,IACjD36H,KAAKulqB,IAAMA,GACXvlqB,KAAKktB,SAAWA,GAChBltB,KAAKi3G,SAAWA,GAChBj3G,KAAK26H,KAAOA,EAChB,CACAo0b,WAAWhvjB,IACPC,KAAKulqB,IAAIx2G,WAAW,CAAEy1mB,kBAAmBzkqC,IAC7C,EAbEwkqC,UAcY7/pC,UAAI,SAAApI,IAAA,WAAAA,IAAwFioqC,IApmBVlqqC,MAomBsCA,OApmBtCA,MAomBgEinqC,IApmBhEjnqC,MAomB4FiiF,OApmB5FjiF,MAomBoH0gU,MApmBpH1gU,MAomByIA,OAAS,EAdhPkqqC,GAeYrolC,UArmBkF7hF,MAAE,CAAA6nB,KAqmBJqipC,GAAU9nqC,UAAA,kBAAA6gF,UAAA,SAAAtgF,GAAAC,IAA+R,GAA/R,EAAAD,KArmBR3C,KAqmBmL0nqC,GAAe,GArmBlM1nqC,KAqmBwR+oqC,GAAe,MAAApmqC,GAAA,KAAAugF,GArmBvSljF,MAAEkjF,GAAFljF,WAAE4C,GAAAw5N,MAAAl5I,GAAAC,OAAFnjF,MAAEkjF,GAAFljF,WAAE4C,GAAA+mqC,MAAAzmlC,GAAAC,OAAA,EAAA2zQ,SAAA,EAAAxxV,aAAA,SAAA3C,GAAAC,IAAA,EAAAD,IAAF3C,MAAE,yBAAAgptB,YAAA,EAAA9itB,SAAA,CAAFlG,aAAEuC,MAAA,EAAAC,KAAA,EAAAC,OAAA,gDAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAAF3C,MAAE,WAAFA,MAAE,WAAFA,SAwmB1F,EAAA2C,KAxmB0F3C,MAAE,sBAAA4C,GAAAsoqB,IAAA8+f,WAAA,IAAFhqqC,MAAE,GAAFA,MAAE,sBAAA4C,GAAAsoqB,IAAA++f,WAAA,IAumB9B,EAAAjolC,aAAA,CAE6iE0llC,GAA6EqB,IAAe18kC,OAAA,86DAAAzI,gBAAA,IAnB3sEsmlC,EAAU,KAuChB,MAAME,GAAuB,IAAIng4B,MAAe,wBAE1CjmN,GAAiB,CACnBqmlC,UAAW,GACXL,WAAY,GACZC,WAAY,GACZ7t8B,MAAO,WACPq83B,WAAY,UACZxz2B,WAAY,SACZ17O,SAAU,SACVggqC,oBAAqB,WACrB9B,yBAA0B,IAC1BQ,aAAc,GACdqC,qBAAsB,EACtBC,eAAgB,EAChBC,gBAAiB,EACjBd,4BAA4B,EAC5Be,oBAAoB,EACpBC,mBAAmB,EACnBC,gBAAgB,EAChBd,uBAAuB,GACzB,IACIe,GAAgB,MAAtB,MAAMA,GACF7oqC,YAAYurB,IACR3nB,KAAKklqC,cAAgBv9oC,GAAU,IAAK02D,MAAmB12D,IAAY02D,GACnEr+E,KAAK4u5B,qBAAoBW,QAC7B,EAJE01Q,UAKYvgqC,UAAI,SAAApI,IAAA,WAAAA,IAAwF2oqC,IAxpBV5qqC,MAwpB4CoqqC,GAAoB,KAL9JQ,GAMYrg4B,WAzpBkFvqS,MAAE,CAAAsiJ,MAypBYsohC,GAAgBxgqC,QAAhBwgqC,GAAgBvgqC,UAAAk1I,WAAc,SAN1IqrhC,EAAgB,KAkBhBE,EAA0B,MAAhC,MAAMA,GACF/oqC,YAAY66G,GAAUu6E,GAAStkK,IAC3BltB,KAAKi3G,SAAWA,GAChBj3G,KAAKwxL,QAAUA,GACfxxL,KAAKktB,SAAWA,GAChBltB,KAAKolqC,eAAiB,IAAIvklC,KAAgB7gF,KAAKqlqC,0BAC/CrlqC,KAAKg7a,cAAgBh7a,KAAKolqC,eAAetklC,eAErC5zD,GAASq2N,cACTm0F,KAAU13U,KAAKi3G,SAASs9N,YAAa,SAAU,CAAEva,SAAS,IAAQ/6O,QAAK4sL,MAAa7rQ,KAAKwxL,QAAQ0z+B,cAAcP,uBAAoB,EAAGzllC,KAAI,IAAMl/E,KAAKqlqC,2BAAwB,EAAGxr1B,SAAqB,EAAGj5P,KAAKy3B,IAASr4G,KAAKolqC,eAAexjqC,KAAKy2G,MAAQ9rF,WAE/P,CAIA84oC,yBAEI,IAAKrlqC,KAAKktB,SAASq2N,UACf,OAAO,EAGX,GAAIvjP,KAAKktB,SAASgi4B,IACd,OAAO,EAEX,MAAM/8e,GAAMnya,KAAKi3G,SAAS6sE,cAAc,OACxCquP,GAAI53a,UAAY,uBAChB43a,GAAIn7L,MAAMt2D,KAAO,MACjByxP,GAAIn7L,MAAMqjF,SAAW,SACrB83G,GAAIn7L,MAAMpzO,SAAW,QACrBuua,GAAIn7L,MAAMg/E,IAAM,UAChBh2T,KAAKi3G,SAASi8B,KAAKqsG,YAAY4yL,IAC/B,MAAM95T,GAAO85T,GAAIp8G,wBAAwBp1I,MACzC,OAAA3gL,KAAKi3G,SAASi8B,KAAKssG,YAAY2yL,IACxB95T,EACX,EAlCE8sjC,UAmCYzgqC,UAAI,SAAApI,IAAA,WAAAA,IAAwF6oqC,IAxsBV9qqC,MAwsBsD0gU,MAxsBtD1gU,MAwsB2E4qqC,IAxsB3E5qqC,MAwsBwGiiF,OAAW,EAnCjN6olC,GAoCYvg4B,WAzsBkFvqS,MAAE,CAAAsiJ,MAysBYwohC,GAA0B1gqC,QAA1B0gqC,GAA0BzgqC,UAAAk1I,WAAc,SApCpJurhC,EAA0B,KA8C1BG,EAAmB,MAAzB,MAAMA,GACFlpqC,YAAYkF,GAAI0B,GAAUkza,IACtBl2a,KAAKgD,SAAWA,GAChBhD,KAAKk2a,oBAAsBA,GAC3Bl2a,KAAKulqC,YAAc3inC,MAAainG,MAChC7pJ,KAAKulqC,YAAcrvvB,GAAoB8E,cAAczuZ,UAAW8rF,KAC5Dr4G,KAAKgD,SAAS0xU,SAASpzU,GAAGO,cAAe,0BAA4B,IAAGw2G,OAAUwqzB,MAAoBC,SAAQ,EAEtH,CACA1j1B,cACIp/E,KAAKulqC,YAAY9klC,aACrB,EAXE6klC,UAYY5gqC,UAAI,SAAApI,IAAA,WAAAA,IAAwFgpqC,IA/tBVjrqC,MA+tB+CA,OA/tB/CA,MA+tByEA,OA/tBzEA,MA+tBkG8qqC,GAA0B,EAZ1NG,GAaYjolC,UAhuBkFhjF,MAAE,CAAA6nB,KAguBJojpC,GAAmB7oqC,UAAA,gCAAA4mtB,YAAA,IAb/Giid,EAAmB,KAuBnBE,GAAY,MAAlB,MAAMA,GAEE50vB,eACA,OAAO5wa,KAAKylqC,SAChB,CACI70vB,aAAS7wa,IACTC,KAAKylqC,aAAYtwR,MAAqBp14B,IACtCC,KAAKm/2B,YACT,CAEIl/xB,eACA,OAAOjgF,KAAKk54B,SAChB,CACIj5zB,aAASlgF,IACTC,KAAKk54B,aAAYhE,MAAsBn14B,IACvCC,KAAKk54B,UAAYl54B,KAAK0lqC,eAAiB1lqC,KAAKm/2B,YAChD,CACA/i3B,YAAYu+H,GAAMztG,GAAUopZ,IAOxB,GANAt2a,KAAK26H,KAAOA,GACZ36H,KAAKktB,SAAWA,GAChBltB,KAAKs2a,UAAYA,GACjBt2a,KAAKk54B,WAAY,EACjBl54B,KAAK2lqC,qBAAuB,KAC5B3lqC,KAAKyB,MAAQ,IAAIwtF,OACZqnV,GACD,MAAM,IAAItva,MAAM,wFAExB,CACAk96B,sBACSlk7B,KAAK2lqC,uBAAyB3lqC,KAAKk54B,WACpCl54B,KAAKm/2B,YAEb,CACA//xB,cACIp/E,KAAK0lqC,cACT,CACAvmT,aAEI,GADAn/2B,KAAK0lqC,eACD1lqC,KAAKktB,SAASq2N,UAAW,CACzB,MAAMh5O,GAAS,IAAIu0E,IAAY+lK,KAC3B7kP,KAAK4lqC,gBAAkB,IAAIrsvB,eAAgBl6a,IAAMwlP,GAASjjP,KAAKvC,KAC/DW,KAAK4lqC,gBAAgBnsvB,QAAQz5a,KAAKs2a,UAAU20E,SAASppf,eACjD7B,KAAKs2a,UAAU20E,SAASy1qB,uBACxB1gqC,KAAK4lqC,gBAAgBnsvB,QAAQz5a,KAAKs2a,UAAU20E,SAASy1qB,sBAAqB,GAGlF1gqC,KAAK26H,KAAKy7M,kBAAkB,KACxBp2U,KAAK2lqC,sBAAwB3lqC,KAAKylqC,UAAYl7pC,GAAO00E,QAAK4sL,MAAa7rQ,KAAKylqC,YAAcl7pC,IAAQgiB,UAAUvsB,KAAKyB,MAAK,EACzH,CAET,CACAikqC,eACI1lqC,KAAK4lqC,iBAAiB7pvB,aACtB/7a,KAAK2lqC,sBAAsBlllC,aAC/B,EAtDE+klC,UAuDY9gqC,UAAI,SAAApI,IAAA,WAAAA,IAAwFkpqC,IAjyBVnrqC,MAiyBwCA,OAjyBxCA,MAiyB8DiiF,OAjyB9DjiF,MAiyBsFinqC,IAAe,EAvDnMkE,GAwDYnolC,UAlyBkFhjF,MAAE,CAAA6nB,KAkyBJsjpC,GAAY/oqC,UAAA,yBAAAC,OAAA,CAAAk0a,SAAA,8BAAA3wV,SAAA,+BAAAwd,QAAA,CAAAh8F,MAAA,gBAAA4htB,YAAA,IAxDxGmid,EAAY,KA2EZ7suB,GAAW,MAAjB,MAAMA,GAEE14W,eACA,OAAOjgF,KAAKk54B,SAChB,CACIj5zB,aAASA,IACTjgF,KAAKk54B,aAAYhE,MAAsBj1zB,GAC3C,CAEI+klC,qBACA,OAAOhlqC,KAAK6lqC,eAChB,CACIb,mBAAe/klC,IACfjgF,KAAK6lqC,mBAAkB3wR,MAAsBj1zB,GACjD,CAEIiklC,4BACA,OAAOlkqC,KAAK8lqC,sBAChB,CACI5B,0BAAsBjklC,IACtBjgF,KAAK8lqC,0BAAyB5wR,MAAsBj1zB,GACxD,CAEI8jlC,iCACA,OAAO/jqC,KAAK+lqC,2BAChB,CACIhC,+BAA2B9jlC,IAC3BjgF,KAAK+lqC,+BAA8B7wR,MAAsBj1zB,GAC7D,CAEI6klC,yBACA,OAAO9kqC,KAAKgmqC,mBAChB,CACIlB,uBAAmB7klC,IACnBjgF,KAAKgmqC,uBAAsB9wR,MAAsBj1zB,GACrD,CAEI8klC,wBACA,OAAO/kqC,KAAKimqC,kBAChB,CACIlB,sBAAkB9klC,IAClBjgF,KAAKimqC,sBAAqB/wR,MAAsBj1zB,GACpD,CACIp+E,oBACA,OAAO7B,KAAKsB,GAAGO,aACnB,CACAzF,YAAYkF,GAAIq5H,GAAM//B,GAAmB+gV,GAAKuqvB,GAAc10+B,IACxDxxL,KAAKsB,GAAKA,GACVtB,KAAK26H,KAAOA,GACZ36H,KAAK46F,kBAAoBA,GACzB56F,KAAK27a,IAAMA,GACX37a,KAAKkmqC,aAAeA,GACpBlmqC,KAAKwxL,QAAUA,GACfxxL,KAAKk54B,WAAY,EACjBl54B,KAAK6lqC,gBAAkB7lqC,KAAKwxL,QAAQ0z+B,cAAcF,eAClDhlqC,KAAK8lqC,uBAAyB9lqC,KAAKwxL,QAAQ0z+B,cAAchB,sBACzDlkqC,KAAKgmqC,oBAAsBhmqC,KAAKwxL,QAAQ0z+B,cAAcJ,mBACtD9kqC,KAAKimqC,mBAAqBjmqC,KAAKwxL,QAAQ0z+B,cAAcH,kBACrD/kqC,KAAK+lqC,4BAA8B/lqC,KAAKwxL,QAAQ0z+B,cAAcnB,2BAE9D/jqC,KAAK0kqC,UAAY1kqC,KAAKwxL,QAAQ0z+B,cAAcR,UAE5C1kqC,KAAKqkqC,WAAarkqC,KAAKwxL,QAAQ0z+B,cAAcb,WAE7CrkqC,KAAKskqC,WAAatkqC,KAAKwxL,QAAQ0z+B,cAAcZ,WAE7CtkqC,KAAKsiqC,aAAetiqC,KAAKwxL,QAAQ0z+B,cAAc5C,aAE/CtiqC,KAAK8hqC,yBAA2B9hqC,KAAKwxL,QAAQ0z+B,cAAcpD,yBAM3D9hqC,KAAK4jqC,oBAAsB5jqC,KAAKwxL,QAAQ0z+B,cAActB,oBAQtD5jqC,KAAKy2N,MAAQz2N,KAAKwxL,QAAQ0z+B,cAAczu8B,MAQxCz2N,KAAKs/O,WAAat/O,KAAKwxL,QAAQ0z+B,cAAc5l7B,WAO7Ct/O,KAAK8ylC,WAAa9ylC,KAAKwxL,QAAQ0z+B,cAAcpyE,WAS7C9ylC,KAAK4D,SAAW5D,KAAKwxL,QAAQ0z+B,cAActhqC,SAE3C5D,KAAK4kqC,eAAiB5kqC,KAAKwxL,QAAQ0z+B,cAAcN,eAEjD5kqC,KAAK6kqC,gBAAkB7kqC,KAAKwxL,QAAQ0z+B,cAAcL,gBAElD7kqC,KAAK2nuB,QAAU,IAAI14oB,MAEnBjvF,KAAKioK,MAAQ,CAAC,EAEdjoK,KAAKogS,UAAY,IAAI7jD,IACzB,CAIAxmD,cACI,IAAI6p+B,IAAe,EACfG,IAAiB,EACjBD,IAAyB,EACzBH,IAA2B,GAEZ,QAAf3/pC,KAAKy2N,OAAkC,aAAfz2N,KAAKy2N,SAC7Bqp8B,GAAyB9/pC,KAAKirf,SAASt/Z,aAAe3rF,KAAKirf,SAASxoL,aACpEm91B,GAAmC,WAApB5/pC,KAAKs/O,YAA2Bwg7B,KAGhC,QAAf9/pC,KAAKy2N,OAAkC,eAAfz2N,KAAKy2N,SAC7Bkp8B,GAA2B3/pC,KAAKirf,SAASp/Z,YAAc7rF,KAAKirf,SAAStoL,YACrEo91B,GAAqC,WAApB//pC,KAAKs/O,YAA2Bqg7B,IAGrD3/pC,KAAK49d,SAAS,CACVh6d,SAAU5D,KAAK4D,SACf6yN,MAAOz2N,KAAKy2N,MACZq83B,WAAY9ylC,KAAK8ylC,WACjBxz2B,WAAYt/O,KAAKs/O,WACjB6m7B,YAAanmqC,KAAKigF,SAClB07V,IAAK37a,KAAK27a,IAAI57a,MACd6jqC,oBAAqB5jqC,KAAK4jqC,oBAC1BhE,gBACAG,kBACAD,0BACAH,6BAER,CACA/hsB,SAAS31T,IACLjoK,KAAKioK,MAAQ,IAAKjoK,KAAKioK,SAAUA,IACjCjoK,KAAK46F,kBAAkBrQ,eAC3B,CACA67kC,uBAAuBzllC,IACnB,IAAIl/E,GACJ,OAAOzB,KAAK07a,SAASz8V,QAAK2B,KAAKvhF,IAAMoC,GAAQpC,KAAC,EAAG6/E,KAAK7/E,IAAMA,GAAEwD,OAAO89E,MAAS,EAAGo1P,SAAS,EAAG7qT,MAAO,EAAE02lB,GAAMo/K,MAAUp/K,KAASo/K,KAAI,EAAG9htB,KAAI,IAAMz9E,IACpJ,CAIAstjB,WAAWpD,IACP3rjB,KAAK26H,KAAKu/D,IAAI,IAAMl6L,KAAK49d,SAAS,IAAK+tF,KAC3C,CAIAgD,YAAY58O,IACR/xU,KAAK26H,KAAKu/D,IAAI,IAAMl6L,KAAK49d,SAAS,IAAK7rJ,KAC3C,CAIAky1B,WAAWoC,IACPrmqC,KAAK26H,KAAKu/D,IAAI,IAAMl6L,KAAK49d,SAAS,CAAEyosB,sBACxC,CACAhqqC,WAEI2D,KAAK26H,KAAKy7M,kBAAkB,KACpBp2U,KAAKsmqC,gBACLtmqC,KAAKirf,SAAWjrf,KAAKsmqC,eACrBtmqC,KAAKumqC,gBAAgBtF,gBAGrBjhqC,KAAKirf,SAAWjrf,KAAKumqC,gBAGzBvmqC,KAAKirf,SAASi2qB,cAAclhqC,KAAK0kqC,WACjC,IAAI8B,MAAe9u1B,KAAU13U,KAAKirf,SAASppf,cAAe,SAAU,CAAEm4T,SAAS,IAE/Ews2B,GAAexmqC,KAAK6kqC,gBAAkB2B,GAAavnlC,QAAKypyB,MAAU1o3B,KAAK6kqC,kBAAoB2B,GAE3FxmqC,KAAK07a,SAAW8qvB,GAAavnlC,QAAKg1P,MAAUj0U,KAAKogS,YACjDpgS,KAAKm2b,iBAAmBn2b,KAAKomqC,uBAAuB,aACpDpmqC,KAAKymqC,mBAAqBzmqC,KAAKomqC,uBAAuB,aAAY,EAE1E,CACAp1iC,YAAYC,IAEJjxH,KAAKirf,UACLjrf,KAAKs3L,QAEb,CACAltG,kBAEIpqF,KAAKs3L,SAELt3L,KAAK27a,IAAI/zV,OAAO3I,QAAK2B,KAAI,IAAM5gF,KAAKs3L,WAAQ,EAAG28I,MAAUj0U,KAAKogS,YAAY7zQ,WAC9E,CACA6yD,cACIp/E,KAAKogS,UAAUx+R,OACf5B,KAAKogS,UAAU7/M,UACnB,CAIA+2G,SACSt3L,KAAK8kqC,oBACN9kqC,KAAK0mqC,eAEJ1mqC,KAAK+kqC,mBACN/kqC,KAAK2mqC,cAGT3mqC,KAAK+1L,cACL/1L,KAAK2nuB,QAAQ/luB,MACjB,CAIA22T,SAAS5wS,IACL,OAAO3nB,KAAKkmqC,aAAa3t2B,SAASv4T,KAAKirf,SAASppf,cAAe8lB,GACnE,CAIA4+4B,gBAAgB1j6B,GAAQ8kB,IACpB,OAAO3nB,KAAKkmqC,aAAa3/P,gBAAgBvm6B,KAAKirf,SAASppf,cAAegB,GAAQ8kB,GAClF,CACA++oC,eAIQ1mqC,KAAK6B,cAAcm1O,MAAMl+H,OAFL,aAApB94G,KAAK8ylC,YAA6B9ylC,KAAK4mqC,WAEJ,GAAE5mqC,KAAKirf,SAASw1qB,cAAgBzgqC,KAAK4mqC,WAAW/kqC,cAAc4gU,iBAG9D,GAAEziU,KAAKirf,SAASw1qB,iBAE3D,CACAkG,cAIQ3mqC,KAAK6B,cAAcm1O,MAAM7uN,MAFL,aAApBnoB,KAAK8ylC,YAA6B9ylC,KAAK6mqC,WAEL,GAAE7mqC,KAAKirf,SAAS01qB,aAAe3gqC,KAAK6mqC,WAAWhlqC,cAAc8gU,gBAG7D,GAAE3iU,KAAKirf,SAAS01qB,gBAE1D,EAnQEhouB,UAoQYj0b,UAAI,SAAApI,IAAA,WAAAA,IAAwFq8b,IAzjCVt+b,MAyjCuCA,OAzjCvCA,MAyjCiEA,OAzjCjEA,MAyjCuFA,OAzjCvFA,MAyjCwH2jF,MAzjCxH3jF,MAyjCsJslmC,IAzjCtJtlmC,MAyjC2L4qqC,IAAgB,EApQzStsuB,GAqQYz8W,UA1jCkF7hF,MAAE,CAAA6nB,KA0jCJy2a,GAAWl8b,UAAA,mBAAA8w5B,eAAA,SAAAvw5B,GAAAC,GAAAuw5B,IAA44B,GAA54B,EAAAxw5B,IA1jCT3C,MAAEmz5B,GA0jCq4B8yQ,GAAc,KAAAtjqC,GAAA,KAAAugF,GA1jCr5BljF,MAAEkjF,GAAFljF,WAAE4C,GAAAqpqC,eAAA/olC,GAAAC,OAAA,EAAAF,UAAA,SAAAtgF,GAAAC,IA0jC0uC,GA1jC1uC,EAAAD,KAAF3C,KAAEyhF,GAAA,EA0jCsiC6+O,OA1jCxiCtgU,KAAEyyF,GAAA,EA0jCmpC6tO,OA1jCrpCtgU,KA0jC8tCimqC,GAAc,MAAAtjqC,GAAA,KAAAugF,GA1jC5uCljF,MAAEkjF,GAAFljF,WAAE4C,GAAA4pqC,WAAAtplC,GAAAC,OAAFnjF,MAAEkjF,GAAFljF,WAAE4C,GAAA2pqC,WAAArplC,GAAAC,OAAFnjF,MAAEkjF,GAAFljF,WAAE4C,GAAAspqC,gBAAAhplC,GAAAC,OAAA,EAAA2zQ,SAAA,EAAAxxV,aAAA,SAAA3C,GAAAC,IAAA,EAAAD,IAAF3C,MAAE,oBAAAqC,OAAA,CAAAujF,SAAA,WAAA+klC,eAAA,iBAAAd,sBAAA,wBAAAH,2BAAA,6BAAAe,mBAAA,qBAAAC,kBAAA,oBAAAL,UAAA,YAAAL,WAAA,aAAAC,WAAA,aAAAhC,aAAA,eAAAR,yBAAA,2BAAA8B,oBAAA,sBAAAnt8B,MAAA,QAAA6oB,WAAA,aAAAwz2B,WAAA,aAAAlvlC,SAAA,WAAAghqC,eAAA,iBAAAC,gBAAA,mBAAApnkC,QAAA,CAAAkqoB,QAAA,WAAAvoZ,SAAA,gBAAAikY,YAAA,EAAA9itB,SAAA,CAAFlG,MA0jCywB,CAAC,CAAEmG,QAAS8gqC,GAAiB5gqC,YAAai4b,MA1jCnzBt+b,aAAEoib,mBAAAl9U,GAAA3iG,MAAA,EAAAC,KAAA,EAAAC,OAAA,0NAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAAF3C,cAAE,UAAFA,CA0jCk5C,WA1jCl5CA,MAAE,iCA0jC29C4C,GAAAq6L,QAAQ,GA1jCr+Cj9L,MAAE,UAAFA,CA0jCgoD,SA1jChoDA,MAAE,GAAFA,kBAAE,EAAA2lqC,GAAA,sBAAF3lqC,SA0jCqvE,EAAA2C,KA1jCrvE3C,MAAE,SAAA4C,GAAAgrK,OAAF5tK,MAAE,GAAFA,MAAE,iBAAA4C,GAAA2nqC,eAAFvqqC,CA0jCqhD,iBAAA4C,GAAA+nqC,gBA1jCrhD3qqC,MAAE,GAAFA,MAAE,QAAA4C,GAAAgjF,UA0jCiwD,EAAA5D,aAAA,CAA8jgBqk1B,KAAiGu/P,GAA+EuF,GAAgJlF,GAA2EgF,EAAqFf,GAAkEJ,IAAUz9kC,OAAA,0qpBAAAzI,gBAAA,IArQ38kB06W,EAAW,KA8TXmuuB,GAAiB,MAAvB,MAAMA,cACYpiqC,UAAI,SAAApI,IAAA,WAAAA,IAAwFwqqC,GAAiB,EADzHA,GAEYrqlC,UArnCkFpiF,MAAE,CAAA6nB,KAqnCS4kpC,KAFzGA,GAKYpqlC,UAxnCkFriF,MAAE,IAmnChGysqC,EAAiB,yICjoCyB,MAAAhrlC,EAAA,gCAAAirlC,EAAA/pqC,GAAAC,IAAA,KAAAD,GAAA,OAAAwlF,GAU6CnoF,cAAE,cAAFA,MAAE,mBAAFA,MAAEmoF,IAAA,MAAA5nF,GAAFP,QAAE,OAAFA,MAqyB9CO,GAAAwgM,SAAQ,GAryBsC/gM,MAAE,YAAFA,MAAE,UAAFA,SAsyBnD,CAAC,UAAA2sqC,GAAAhqqC,GAAAC,IAGqD,GAHrD,EAAAD,KAtyBkD3C,MAAE,GAAFA,MAAE,GAAFA,SAyyBG,EAAA2C,GAAA,OAAAlC,GAzyBHT,MAAE,GAAFA,MAAE,GAAFA,MAAE,IAAAS,GAAAmsqC,gBAAA,MAyyBf,CAAC,UAAAC,GAAAlqqC,GAAAC,IACzE,GADyE,EAAAD,KAzyBY3C,MAAE,SAAFA,MAAE,GAAFA,MAAE,EAAA2sqC,GAAA,sBAAF3sqC,SA0yBrF,EAAA2C,GAAA,OAAAxC,GA1yBqFH,cAAEG,GAAAmtB,QAAAw/oC,YAAF9sqC,MAAE,aAAAG,GAAA8/B,OAAFjgC,MAAE,GAAFA,MAAE,IAAAG,GAAA8/B,MAAA,KAAFjgC,MAAE,GAAFA,MAAE,OAAAG,GAAAysqC,gBAyyB5C,CAAC,UAAAG,GAAApqqC,GAAAC,IAI5C,GAJ4C,EAAAD,IAzyByC3C,MAAE,WA6yBvF,EAAA2C,GAAA,OAAAvC,GA7yBqFJ,cAAEI,GAAAktB,QAAA0/oC,cAAFhtqC,MAAE,YAAAI,GAAA8/B,QAAFlgC,MA4yBtC,CAAC,UAAAitqC,GAAAtqqC,GAAAC,IAKhD,GALgD,EAAAD,KA5yBqC3C,MAAE,WAAFA,MAAE,GAAFA,SAizBrF,EAAA2C,GAAA,OAAAtC,GAjzBqFL,cAAEK,GAAAitB,QAAA0/oC,cAAFhtqC,MAAE,aAAAK,GAAA6/B,SAAFlgC,MAAE,GAAFA,MAAE,IAAAK,GAAA6/B,QAAA,IAizB9F,CAAC,UAAAgtoC,GAAAvqqC,GAAAC,IAGM,GAHN,EAAAD,KAjzB2F3C,MAAE,SAAFA,MAAE,WAAFA,SAozBrF,EAAA2C,GAAA,OAAArC,GApzBqFN,cAAE,GAAFA,MAAE,QAAAM,GAAAwtB,MAAA,IAmzBrC,CAAC,CApyB3D,MAAMq/oC,GAYFprqC,YAAYgI,GAAWovZ,KAAUxkE,OAAAhvV,KAAA,2BAVjCgvV,KAAAhvV,KAAA,uBAEAgvV,KAAAhvV,KAAA,8BAMAgvV,KAAAhvV,KAAA,mBAGIA,KAAKoE,UAAYA,GACjBpE,KAAKwzZ,SAAWA,EACpB,CAEAmlmB,OAAO500B,GAAM0j/B,IACT,OAAAznqC,KAAK0nqC,cAAgB3j/B,GACdA,GAAK400B,OAAO34/B,KAAMynqC,GAC7B,CAEA/oiB,SACI,MAAM36c,GAAO/jL,KAAK0nqC,cAClB,GAAI3j/B,GACA,OAAA/jL,KAAK0nqC,mBAAgBjhqC,EACds9K,GAAK26c,QAEpB,CAEI62M,iBACA,OAA6B,MAAtBv10B,KAAK0nqC,aAChB,CAKAC,gBAAgB5j/B,IACZ/jL,KAAK0nqC,cAAgB3j/B,EACzB,EAMJ,MAAM6j/B,GAAexrqC,eACjB4yV,OAAAhvV,KAAA,6BAEAgvV,KAAAhvV,KAAA,qBAEA24/B,OAAOkvK,GAAQJ,IACX,OAAAznqC,KAAK8nqC,gBAAkBD,GAChB7nqC,KAAK+nqC,sBAAsBF,GAAQJ,GAC9C,CACA/oiB,SACQ1+nB,KAAK8nqC,iBACL9nqC,KAAK8nqC,gBAAgBH,kBAEzB3nqC,KAAK8nqC,qBAAkBrhqC,EACnBzG,KAAKgoqC,aACLhoqC,KAAKgoqC,aACLhoqC,KAAKgoqC,gBAAavhqC,EAE1B,CACAwhqC,aAAaxlqC,IACTzC,KAAKgoqC,WAAavlqC,EACtB,EAMJ,MAAMylqC,EAgBF9rqC,YAAY+rqC,KAAan50B,OAAAhvV,KAAA,yBAdzBgvV,KAAAhvV,KAAA,+BAEAgvV,KAAAhvV,KAAA,kBACkB,IAAC,EACnBgvV,KAAAhvV,KAAA,eACe,IAAIu8O,MAAS,EAC5ByyG,KAAAhvV,KAAA,YACY,IAAIu8O,MAAS,EACzByyG,KAAAhvV,KAAA,eACe,IAAIu8O,MAAS,EAC5ByyG,KAAAhvV,KAAA,gBACgB,IAAIu8O,MAAS,EAC7ByyG,KAAAhvV,KAAA,kBACkB,IAAIu8O,KAElBv8O,KAAKmoqC,YAAcA,EACvB,CACAC,cACIpoqC,KAAKqoqC,aAAazmqC,OAClB5B,KAAKqoqC,aAAa9nlC,UACtB,CACA+nlC,eACI,OAAOtoqC,KAAKqoqC,aAAavnlC,cAC7B,CACAynlC,eACI,OAAOvoqC,KAAKwoqC,cAAc1nlC,cAC9B,CACA2nlC,iBACI,OAAOzoqC,KAAK0oqC,gBAAgB5nlC,cAChC,CAIAq3B,QACIn4G,KAAKmoqC,YAAYzpiB,SACjB1+nB,KAAK2oqC,aAAa/mqC,OAClB5B,KAAKqoqC,aAAazmqC,OAClB5B,KAAK2oqC,aAAapolC,WAClBvgF,KAAKqoqC,aAAa9nlC,WAClBvgF,KAAK4oqC,UAAUrolC,WACfvgF,KAAKwoqC,cAAcjolC,WACnBvgF,KAAK0oqC,gBAAgBnolC,UACzB,CAEAsolC,cACI,OAAO7oqC,KAAK2oqC,aAAa7nlC,cAC7B,CACAgolC,aACI,OAAO9oqC,KAAK4oqC,UAAU/nT,SAC1B,CACA11M,WACInrqB,KAAK4oqC,UAAUhnqC,OACf5B,KAAK4oqC,UAAUrolC,UACnB,CAEAwolC,gBACI,OAAO/oqC,KAAK4oqC,UAAU9nlC,cAC1B,CAEAkolC,YAAYC,GAAcR,IAClBQ,IACAjpqC,KAAKwoqC,cAAc5mqC,OAEnB6mqC,IACAzoqC,KAAK0oqC,gBAAgB9mqC,OAAO5B,KAAKinqC,gBAEzC,EAMJ,MAAMiC,GASF9sqC,YAAY41T,GAASniJ,GAAQt1I,GAASD,GAAO6uoC,GAAWC,KAAUp60B,OAAAhvV,KAAA,qBAAAgvV,KAAAhvV,KAAA,oBAAAgvV,KAAAhvV,KAAA,qBAAAgvV,KAAAhvV,KAAA,mBAAAgvV,KAAAhvV,KAAA,uBAAAgvV,KAAAhvV,KAAA,sBAAAgvV,KAAAhvV,KAAA,SAFzD,IAAIu8O,MAAS,EAAAyyG,KAAAhvV,KAAA,YACV,IAAIu8O,KAEZv8O,KAAKgyT,QAAUA,GACfhyT,KAAK6vK,OAASA,GACd7vK,KAAKu6B,QAAUA,GACfv6B,KAAKs6B,MAAQA,GACbt6B,KAAKmpqC,UAAYA,GACjBnpqC,KAAKopqC,SAAWA,GAChBppqC,KAAKopqC,SAASP,cAAct8oC,UAAU,KAClCvsB,KAAKqpqC,UAAU9olC,WACfvgF,KAAKspqC,OAAO/olC,UAAS,EAE7B,CAEAgplC,aACIvpqC,KAAKspqC,OAAO1nqC,OACR5B,KAAK6vK,OAAO25/B,cACZxpqC,KAAKspqC,OAAO/olC,UAEpB,CACAkplC,QACI,OAAOzpqC,KAAKspqC,OAAOxolC,cACvB,CAEA4olC,cAAc51oC,IACV9zB,KAAKqpqC,UAAUznqC,KAAKkyB,GACxB,CACA61oC,WACI,OAAO3pqC,KAAKqpqC,UAAUvolC,cAC1B,EAEJ,MA+BM8olC,GAAe,IAAItl4B,MAAe,eAQxC,MAAMul4B,WAAsBjC,GAIxBxrqC,YAAY0tqC,GAAiBC,GAA2B5/N,IACpD//6B,SAAM,EAAE4kU,KAAAhvV,KAAA,6BAAAgvV,KAAAhvV,KAAA,uCAAAgvV,KAAAhvV,KAAA,kBACRA,KAAK8pqC,gBAAkBA,GACvB9pqC,KAAK+pqC,0BAA4BA,GACjC/pqC,KAAKmq8B,QAAUA,EACnB,CAKA49N,sBAAsBF,GAAQJ,IAC1B,MAAMr5M,GAAmBpu9B,KAAK+pqC,0BAA0Brid,wBAAwBmgd,GAAOzjqC,WACvF,IAAIqjtB,GAMJA,UAAe2mQ,GAAiBxn9B,OAAOihqC,GAAOr0wB,UAK9CxzZ,KAAKmq8B,QAAQwzB,WAAWl2Q,GAAa83N,UACrCv/6B,KAAKioqC,aAAa,KACdjoqC,KAAKmq8B,QAAQjb,WAAWznO,GAAa83N,UACrC93N,GAAaz4Y,SAAQ,GAIrBy41B,GACAznqC,KAAK8pqC,gBAAgB7j4B,aAAajmS,KAAKgqqC,sBAAsBvid,IAAezntB,KAAK8pqC,gBAAgB5j4B,YAGjGlmS,KAAK8pqC,gBAAgBvq7B,YAAYv/O,KAAKgqqC,sBAAsBvid,KAEzDA,EACX,CAEAuid,sBAAsBvid,IAClB,OAAOA,GAAa83N,SAASnqmB,UAAU,EAC3C,EAGJ,IACM601B,GAAgB,MAAtB,MAAMA,GAAiB7tqC,eAAA4yV,OAAAhvV,KAAA,eACP804B,OAAO/5kB,QAAS,EAAAi0B,KAAAhvV,KAAA,4BAE5Bo/E,cACQp/E,KAAKkqqC,mBAAqBlqqC,KAAKkqqC,kBAAkBhnqC,YACjDlD,KAAKkqqC,kBAAkBhnqC,WAAWs8O,YAAYx/O,KAAKkqqC,kBAE3D,CAOA93iB,sBACI,OAAKpynB,KAAKkqqC,mBACNlqqC,KAAKmqqC,mBAEFnqqC,KAAKkqqC,iBAChB,CAMAC,mBACI,MAAMrniC,GAAY9iI,KAAKujL,UAAUO,cAAc,OAC/ChhD,GAAUm5G,UAAU5sO,IAAI,qBACxByzH,GAAUk5G,aAAa,YAAa,UACpCh8O,KAAKujL,UAAUrwC,KAAKqsG,YAAYz8G,IAChC9iI,KAAKkqqC,kBAAoBpniC,EAC7B,EAGHksN,cAlCKi70B,GAAgB,qBAAA3tqC,IAAA,WAAAA,IAgCiF2tqC,GAAgB,MAAAj70B,KAhCjHi70B,GAAgB,aAhSuE5vqC,MAAE,CAAAsiJ,MAiUYsthC,GAAgBxlqC,QAAhBwlqC,GAAgBvlqC,UAAAk1I,WAAc,UAjCnIqwhC,EAAgB,KA4CtB,MAAMG,GAEFhuqC,YAAYiuqC,KAAar70B,OAAAhvV,KAAA,sBACrBA,KAAKqqqC,YAAcA,EACvB,CACA1xK,OAAOkvK,GAAQJ,IAAc,GACzB,OAAOznqC,KAAKqqqC,YAAY1xK,OAAOkvK,GAAQJ,GAC3C,CAKA/oiB,SACI,OAAO1+nB,KAAKqqqC,YAAY3riB,QAC5B,EAGJ,IAQM4riB,GAAO,MAAb,MAAMA,GAAQluqC,eAAA4yV,OAAAhvV,KAAA,uBACU804B,OAAOm1R,MAAiB,EAAAj70B,KAAAhvV,KAAA,+BAChB804B,OAAOi2D,SAAyB,EAAA/7mB,KAAAhvV,KAAA,aAClD804B,OAAO9gf,SAAe,EAAAhlE,KAAAhvV,KAAA,eACpB804B,OAAO/5kB,QAAS,EAC5Bi0B,KAAAhvV,KAAA,gBACgB,IAAI42T,IAAK,CAKzBhwT,OAAOsld,GAAeq+sB,IAElB,OAAOvqqC,KAAKwqqC,kBAAkBxqqC,KAAKyqqC,eAAev+sB,GAAeq+sB,IACrE,CACAE,eAAev+sB,GAAgB,GAAIq+sB,IAC/B,OAAKvqqC,KAAK0qqC,cAAc/hqC,IAAI4hqC,KACxBvqqC,KAAK0qqC,cAAcv8gC,IAAIo8gC,GAAkB,CAAC,GAEzCvqqC,KAAK0qqC,cAAc/hqC,IAAI4hqC,IAAkBr+sB,MAC1Clsd,KAAK0qqC,cAAc/hqC,IAAI4hqC,IAAkBr+sB,IAAiBlsd,KAAK2qqC,mBAAmBz+sB,GAAeq+sB,KAE9FvqqC,KAAK0qqC,cAAc/hqC,IAAI4hqC,IAAkBr+sB,GACpD,CAKAy+sB,mBAAmBz+sB,GAAeq+sB,IAC9B,MAAMK,GAAO5qqC,KAAKujL,UAAUO,cAAc,OAC1C8m/B,UAAKt9lC,GAAK,kBACVs9lC,GAAK3u7B,UAAU5sO,IAAI68c,IACnB0+sB,GAAK3u7B,UAAU5sO,IAAI,mBACdk7pC,GAIDA,GAAiBn4iB,sBAAsB7yY,YAAYqr7B,IAHnD5qqC,KAAK6qqC,kBAAkBz4iB,sBAAsB7yY,YAAYqr7B,IAKtDA,EACX,CAMAE,kBAAkBF,IACd,OAAO,IAAIf,GAAce,GAAM5qqC,KAAK+pqC,0BAA2B/pqC,KAAKmq8B,QACxE,CAKAqgO,kBAAkBI,IACd,OAAO,IAAIR,GAAWpqqC,KAAK8qqC,kBAAkBF,IACjD,EAGH570B,cA1DKs70B,GAAO,qBAAAhuqC,IAAA,WAAAA,IAwD0FguqC,GAAO,MAAAt70B,KAxDxGs70B,GAAO,aArWgFjwqC,MAAE,CAAAsiJ,MA8ZY2thC,GAAO7lqC,QAAP6lqC,GAAO5lqC,UAAAk1I,WAAc,UAzD1H0whC,EAAO,KAgEPS,GAAa,MAAnB,MAAMA,GAWF3uqC,YAAYugJ,GAAOquhC,GAAS3hN,GAAWr97B,GAAW64D,KAAQmqQ,OAAAhvV,KAAA,qBAAAgvV,KAAAhvV,KAAA,uBAAAgvV,KAAAhvV,KAAA,uBAAAgvV,KAAAhvV,KAAA,oBAAAgvV,KAAAhvV,KAAA,0BAAAgvV,KAAAhvV,KAAA,kBALxC,IAAC,EAAAgvV,KAAAhvV,KAAA,SACV,KAAE,EAAAgvV,KAAAhvV,KAAA,8BAAAgvV,KAAAhvV,KAAA,kCAAAgvV,KAAAhvV,KAAA,QAGH,GAEJA,KAAKgrqC,QAAUA,GACfhrqC,KAAKqp9B,UAAYA,GACjBrp9B,KAAKgsB,UAAYA,GACjBhsB,KAAK6kF,OAASA,GACd7kF,KAAKirqC,aAAe,IACbtuhC,GAAMkioB,WACNlioB,GAAMkzB,QAETlzB,GAAMkzB,OAAOq7/B,cACblrqC,KAAKirqC,aAAaC,YAAc,IACzBvuhC,GAAMkioB,QAAQqsZ,eACdvuhC,GAAMkzB,OAAOq7/B,aAG5B,CAEAnsvB,KAAKxkZ,GAASD,GAAOwkxB,GAAW,CAAC,EAAG58xB,GAAO,IACvC,OAAOliB,KAAKmrqC,sBAAsBjppC,GAAMqY,GAASD,GAAOt6B,KAAKorqC,YAAYtsX,IAC7E,CAEA57qB,QAAQ3oG,GAASD,GAAOwkxB,GAAW,CAAC,GAEhC,OAAO9+yB,KAAKmrqC,sBADCnrqC,KAAKirqC,aAAaC,YAAYhoiC,SAAW,GACd3oG,GAASD,GAAOt6B,KAAKorqC,YAAYtsX,IAC7E,CAEApnyB,MAAM6iB,GAASD,GAAOwkxB,GAAW,CAAC,GAE9B,OAAO9+yB,KAAKmrqC,sBADCnrqC,KAAKirqC,aAAaC,YAAYxzpC,OAAS,GACZ6iB,GAASD,GAAOt6B,KAAKorqC,YAAYtsX,IAC7E,CAEAx5jB,KAAK/qN,GAASD,GAAOwkxB,GAAW,CAAC,GAE7B,OAAO9+yB,KAAKmrqC,sBADCnrqC,KAAKirqC,aAAaC,YAAY5l7B,MAAQ,GACX/qN,GAASD,GAAOt6B,KAAKorqC,YAAYtsX,IAC7E,CAEAtojB,QAAQj8N,GAASD,GAAOwkxB,GAAW,CAAC,GAEhC,OAAO9+yB,KAAKmrqC,sBADCnrqC,KAAKirqC,aAAaC,YAAY106B,SAAW,GACdj8N,GAASD,GAAOt6B,KAAKorqC,YAAYtsX,IAC7E,CAIAppd,MAAM1jC,IAEF,UAAWuikB,MAASv03B,KAAKqrqC,OACrB,QAAgB5kqC,IAAZurT,IACA,GAAIuikB,GAAMvikB,UAAYA,GAElB,YADAuikB,GAAM60S,SAAShB,mBAKnB7zS,GAAM60S,SAAShB,aAG3B,CAIAht+B,OAAO42H,IACH,MAAMsmJ,GAAQt4c,KAAKsrqC,WAAWt52B,IAO9B,IANKsmJ,KAGLA,GAAMiztB,YAAYnC,SAASjxjC,QAC3Bn4G,KAAKqrqC,OAAO/qpC,OAAOg4b,GAAMj3X,MAAO,GAChCrhF,KAAKwrqC,gBAAkBxrqC,KAAKwrqC,gBAAkB,GACzCxrqC,KAAKirqC,aAAaQ,YAAczrqC,KAAKqrqC,OAAOjoqC,QAC7C,OAAO,EAEX,GAAIpD,KAAKwrqC,gBAAkBxrqC,KAAKirqC,aAAaQ,WAAazrqC,KAAKqrqC,OAAOrrqC,KAAKwrqC,iBAAkB,CACzF,MAAM/+pC,GAAIzM,KAAKqrqC,OAAOrrqC,KAAKwrqC,iBAAiBpC,SACvC38pC,GAAEq8pC,eACH9oqC,KAAKwrqC,gBAAkBxrqC,KAAKwrqC,gBAAkB,EAC9C/+pC,GAAE0+pB,WAAS,CAGnB,OAAO,CACX,CAIAuggB,cAAcpxoC,GAAQ,GAAIC,GAAU,GAAIoxoC,GAAkBC,IACtD,MAAQC,2BAA2B7rqC,KAAKirqC,aACxC,UAAW12S,MAASv03B,KAAKqrqC,OAErB,KAAMQ,IADoBA,IAA0Bt3S,GAAMj61B,QAAUA,KACdi61B,GAAMh61B,UAAYA,GACpEg61B,UAAM60S,SAASJ,YAAY2C,GAAkBC,IACtCr3S,GAGf,OAAO,IACX,CAEA62S,YAAYtsX,GAAW,CAAC,GACpB,MAAO,IAAK9+yB,KAAKirqC,gBAAiBnsX,GACtC,CAIAwsX,WAAWt52B,IACP,QAASrsT,GAAI,EAAGA,GAAI3F,KAAKqrqC,OAAOjoqC,OAAQuC,KACpC,GAAI3F,KAAKqrqC,OAAO1lqC,IAAGqsT,UAAYA,GAC3B,MAAO,CAAE3wO,MAAO17E,GAAG4lqC,YAAavrqC,KAAKqrqC,OAAO1lqC,KAGpD,OAAO,IACX,CAIAwlqC,sBAAsBhC,GAAW5uoC,GAASD,GAAOu1I,IAC7C,OAAIA,GAAOi8/B,eACA9rqC,KAAK6kF,OAAOq1G,IAAI,IAAMl6L,KAAK+rqC,mBAAmB5C,GAAW5uoC,GAASD,GAAOu1I,KAE7E7vK,KAAK+rqC,mBAAmB5C,GAAW5uoC,GAASD,GAAOu1I,GAC9D,CAKAk8/B,mBAAmB5C,GAAW5uoC,GAASD,GAAOu1I,IAC1C,IAAKA,GAAOm8/B,eACR,MAAM,IAAIhlqC,MAAM,2BAKpB,MAAMm9H,GAAYnkI,KAAK0rqC,cAAcpxoC,GAAOC,GAASv6B,KAAKirqC,aAAagB,yBAA2Bp8/B,GAAOw8S,QAAU,EAAGrsd,KAAKirqC,aAAaW,iBACxI,IAAM5rqC,KAAKirqC,aAAaY,wBAA0BvxoC,IAAUC,KACxDv6B,KAAKirqC,aAAa7+sB,mBACJ,OAAdjoV,GACA,OAAOA,GAEXnkI,KAAKksqC,qBAAuB3xoC,GAC5B,IAAI4xoC,IAAe,EACfnsqC,KAAKirqC,aAAaQ,WAAazrqC,KAAKwrqC,iBAAmBxrqC,KAAKirqC,aAAaQ,YACzEU,IAAe,EACXnsqC,KAAKirqC,aAAamB,aAClBpsqC,KAAK01V,MAAM11V,KAAKqrqC,OAAO,GAAGr52B,UAGlC,MAAMq62B,GAAarsqC,KAAKgrqC,QAAQpkqC,OAAOipK,GAAOq8S,cAAelsd,KAAKuqqC,kBAClEvqqC,KAAKqhF,MAAQrhF,KAAKqhF,MAAQ,EAC1B,IAAIirlC,GAAmB/xoC,GACnBA,IAAWs1I,GAAO08/B,aAClBD,GAAmBtsqC,KAAKgsB,UAAUss6B,SAASP,MAAgBE,KAAM195B,KAErE,MAAM6uoC,GAAW,IAAIlB,EAASmE,IACxBG,GAAe,IAAItD,GAAalpqC,KAAKqhF,MAAOwuF,GAAQy8/B,GAAkBhyoC,GAAO6uoC,GAAWC,IAGxFqD,GAAgBj4wB,MAAS5tZ,OAAO,CAAEu0T,UADtB,CAAC,CAAE36T,QAAS0oqC,GAAchy0B,SAAUs10B,KACHvpqC,OAAQjD,KAAKqp9B,YAC1Djl9B,GAAY,IAAIojqC,GAAgB33/B,GAAOm8/B,eAAgBS,IACvD5E,GAASwE,GAAW1zK,OAAOv0/B,GAAWyrK,GAAO43/B,aACnD2B,GAASltF,kBAAoB2rF,GAAO3k7B,SACpC,MAAMwp7B,GAAM,CACR162B,QAAShyT,KAAKqhF,MACd/mD,MAAOA,IAAS,GAChBC,QAASA,IAAW,GACpB6uoC,YACAuD,QAASvD,GAASL,gBAClB6D,SAAUxD,GAASP,cACnBY,MAAO+C,GAAa/C,QACpBE,SAAU6C,GAAa7C,WACvB9B,WAEJ,OAAKsE,KACDnsqC,KAAKwrqC,gBAAkBxrqC,KAAKwrqC,gBAAkB,EAC9Cr3pC,WAAW,KACPu4pC,GAAItD,SAASj+f,UAAS,IAG9BnrqB,KAAKqrqC,OAAOtspC,KAAK2tpC,IACVA,EACX,EAGH190B,cA9LK+70B,GAAa,qBAAAzuqC,IAAA,WAAAA,IA4LoFyuqC,IAjmBV1wqC,MAimByCuvqC,IAjmBzCvvqC,MAimBkEiwqC,IAjmBlEjwqC,MAimBsFA,OAjmBtFA,MAimB8GiiF,MAjmB9GjiF,MAimB0IA,OAAS,MAAA20V,KA5L1O+70B,GAAa,aAra0E1wqC,MAAE,CAAAsiJ,MAkmBYouhC,GAAatmqC,QAAbsmqC,GAAarmqC,UAAAk1I,WAAc,UA7LhImxhC,EAAa,KAidnB,MAAM8B,GAAsB,CA7qBxBpB,UAAW,EACXW,aAAa,EACb3E,aAAa,EACbr7sB,mBAAmB,EACnBw/sB,iBAAiB,EACjBK,yBAAyB,EACzBJ,wBAAwB,EACxBX,YAAa,CACTxzpC,MAAO,cACP4tO,KAAM,aACNpiH,QAAS,gBACTszH,QAAS,iBAGb21N,aAAa,EACb2gtB,gBAAgB,EAChBzgtB,QAAS,IACT0gtB,gBAAiB,IACjBR,YAAY,EACZ18C,aAAa,EACbm9C,WAAY,aACZ9gtB,cAAe,kBACfi7sB,WAAY,cACZE,aAAc,gBACd3w2B,OAAQ,UACRu22B,SAAU,IACVzD,cAAc,EACdsC,gBAAgB,EAChBoB,kBAAmB,aAmpBnBlB,eA5QO,MAAX,MAAMmB,GAgBEC,mBACA,GAAyB,aAArBptqC,KAAKioK,MAAMloK,MACX,MAAO,MAGf,CAQA3D,YAAYixqC,GAAeb,GAAc3nlC,KAAQmqQ,OAAAhvV,KAAA,2BAAAgvV,KAAAhvV,KAAA,0BAAAgvV,KAAAhvV,KAAA,oBAAAgvV,KAAAhvV,KAAA,qBAAAgvV,KAAAhvV,KAAA,mBAAAgvV,KAAAhvV,KAAA,qBAAAgvV,KAAAhvV,KAAA,6BAAAgvV,KAAAhvV,KAAA,6BApBjDgvV,KAAAhvV,KAAA,SACQ,IAAE,EACVgvV,KAAAhvV,KAAA,eACe,KAAE,EACjBgvV,KAAAhvV,KAAA,mBAAAgvV,KAAAhvV,KAAA,qBAAAgvV,KAAAhvV,KAAA,wBAAAgvV,KAAAhvV,KAAA,sBAAAgvV,KAAAhvV,KAAA,iBAAAgvV,KAAAhvV,KAAA,kBAAAgvV,KAAAhvV,KAAA,kBAAAgvV,KAAAhvV,KAAA,eAiBIA,KAAKqtqC,cAAgBA,GACrBrtqC,KAAKwsqC,aAAeA,GACpBxsqC,KAAK6kF,OAASA,GACd7kF,KAAKu6B,QAAUiyoC,GAAajyoC,QAC5Bv6B,KAAKs6B,MAAQkyoC,GAAalyoC,MAC1Bt6B,KAAK2nB,QAAU6kpC,GAAa38/B,OAC5B7vK,KAAKstqC,gBAAkBd,GAAa38/B,OAAOw8S,QAC3Crsd,KAAKutqC,aAAgB,GAAEf,GAAarD,aAAaqD,GAAa38/B,OAAOm9/B,aACrEhtqC,KAAK2H,IAAM6kqC,GAAapD,SAASL,gBAAgBx8oC,UAAU,KACvDvsB,KAAKwtqC,eAAc,GAEvBxtqC,KAAKytqC,KAAOjB,GAAapD,SAASd,eAAe/7oC,UAAU,KACvDvsB,KAAKo7L,QAAO,GAEhBp7L,KAAK0tqC,KAAOlB,GAAapD,SAASb,eAAeh8oC,UAAU,KACvDvsB,KAAKipqC,cAAa,GAEtBjpqC,KAAK2tqC,KAAOnB,GAAapD,SAASX,iBAAiBl8oC,UAAUpW,KACzDnW,KAAKinqC,gBAAkB9wpC,KAE3BnW,KAAKioK,MAAQ,CACTloK,MAAO,WACPohB,OAAQ,CACJ8rpC,SAAUjtqC,KAAKwsqC,aAAa38/B,OAAOo9/B,SACnCv22B,OAAQ,WAGpB,CACAt3O,cACIp/E,KAAK2H,IAAI84E,cACTzgF,KAAKytqC,KAAKhtlC,cACVzgF,KAAK0tqC,KAAKjtlC,cACVzgF,KAAK2tqC,KAAKltlC,cACVq4O,cAAc94T,KAAK00qB,YACnBvpgB,aAAanrK,KAAKisK,QACtB,CAIAuhgC,gBACIxtqC,KAAKioK,MAAQ,IAAKjoK,KAAKioK,MAAOloK,MAAO,WACC,IAAhCC,KAAK2nB,QAAQmlpC,gBAA2D,YAAhC9sqC,KAAK2nB,QAAQmlpC,gBACvD9sqC,KAAK2nB,QAAQ0kc,UACbrsd,KAAK4tqC,eAAe,IAAM5tqC,KAAKo7L,SAAUp7L,KAAK2nB,QAAQ0kc,SACtDrsd,KAAK6tqC,cAAe9rpC,MAAOF,UAAY7hB,KAAK2nB,QAAQ0kc,QAChDrsd,KAAK2nB,QAAQkomC,aACb7vnC,KAAK8tqC,gBAAgB,IAAM9tqC,KAAK+tqC,iBAAkB,IAG9D,CAIAA,iBACI,GAAmB,IAAf/tqC,KAAKmoB,OAA8B,MAAfnoB,KAAKmoB,QAAkBnoB,KAAK2nB,QAAQ0kc,QACxD,OAEJ,MAAMjtT,QAAUr9I,MAAOF,UAEvB7hB,KAAKmoB,OADanoB,KAAK6tqC,SAAWzugC,IACRp/J,KAAK2nB,QAAQ0kc,QAAW,IACX,eAAnCrsd,KAAK2nB,QAAQulpC,oBACbltqC,KAAKmoB,MAAQ,IAAMnoB,KAAKmoB,OAExBnoB,KAAKmoB,OAAS,IACdnoB,KAAKmoB,MAAQ,GAEbnoB,KAAKmoB,OAAS,MACdnoB,KAAKmoB,MAAQ,IAErB,CACA8gpC,eACI99/B,aAAanrK,KAAKisK,SAClB6sJ,cAAc94T,KAAK00qB,YACnB10qB,KAAKioK,MAAQ,IAAKjoK,KAAKioK,MAAOloK,MAAO,UACrCC,KAAK4tqC,eAAe,IAAM5tqC,KAAKo7L,SAAUp7L,KAAKstqC,iBAC9CttqC,KAAK2nB,QAAQ0kc,QAAUrsd,KAAKstqC,gBAC5BttqC,KAAK6tqC,cAAe9rpC,MAAOF,WAAa7hB,KAAK2nB,QAAQ0kc,SAAW,GAChErsd,KAAKmoB,OAAQ,EACTnoB,KAAK2nB,QAAQkomC,aACb7vnC,KAAK8tqC,gBAAgB,IAAM9tqC,KAAK+tqC,iBAAkB,GAE1D,CAIA3y+B,SAC6B,YAArBp7L,KAAKioK,MAAMloK,QAGforK,aAAanrK,KAAKisK,SAClBjsK,KAAKioK,MAAQ,IAAKjoK,KAAKioK,MAAOloK,MAAO,WACrCC,KAAK4tqC,eAAe,IAAM5tqC,KAAKqtqC,cAAcjy+B,OAAOp7L,KAAKwsqC,aAAax62B,UAAWhyT,KAAKwsqC,aAAa38/B,OAAOo9/B,UAC9G,CACAe,WAC6B,YAArBhuqC,KAAKioK,MAAMloK,QAGfC,KAAKwsqC,aAAajD,aACdvpqC,KAAK2nB,QAAQ6hpC,cACbxpqC,KAAKo7L,SAEb,CACA6y+B,cAC6B,YAArBjuqC,KAAKioK,MAAMloK,OAGqB,oBAAhCC,KAAK2nB,QAAQmlpC,iBACb3hgC,aAAanrK,KAAKisK,SAClBjsK,KAAK2nB,QAAQ0kc,QAAU,EACvBrsd,KAAK6tqC,SAAW,EAEhB/02B,cAAc94T,KAAK00qB,YACnB10qB,KAAKmoB,MAAQ,EAErB,CACA+lpC,oBACyC,IAAhCluqC,KAAK2nB,QAAQmlpC,gBAA2D,oBAAhC9sqC,KAAK2nB,QAAQmlpC,gBACrB,IAAjC9sqC,KAAK2nB,QAAQolpC,iBACQ,YAArB/sqC,KAAKioK,MAAMloK,QAGfC,KAAK4tqC,eAAe,IAAM5tqC,KAAKo7L,SAAUp7L,KAAK2nB,QAAQolpC,iBACtD/sqC,KAAK2nB,QAAQ0kc,QAAUrsd,KAAK2nB,QAAQolpC,gBACpC/sqC,KAAK6tqC,cAAe9rpC,MAAOF,WAAa7hB,KAAK2nB,QAAQ0kc,SAAW,GAChErsd,KAAKmoB,OAAQ,EACTnoB,KAAK2nB,QAAQkomC,aACb7vnC,KAAK8tqC,gBAAgB,IAAM9tqC,KAAK+tqC,iBAAkB,IAE1D,CACAH,eAAe17gC,GAAM+Z,IACbjsK,KAAK6kF,OACL7kF,KAAK6kF,OAAOuxP,kBAAkB,IAAOp2U,KAAKisK,QAAU93J,WAAW,IAAMnU,KAAKmuqC,iBAAiBj8gC,IAAO+Z,KAGlGjsK,KAAKisK,QAAU93J,WAAW,IAAM+9I,KAAQ+Z,GAEhD,CACA6hgC,gBAAgB57gC,GAAM+Z,IACdjsK,KAAK6kF,OACL7kF,KAAK6kF,OAAOuxP,kBAAkB,IAAOp2U,KAAK00qB,WAAatuZ,YAAY,IAAMpmR,KAAKmuqC,iBAAiBj8gC,IAAO+Z,KAGtGjsK,KAAK00qB,WAAatuZ,YAAY,IAAMl0H,KAAQ+Z,GAEpD,CACAkigC,iBAAiBj8gC,IACTlyJ,KAAK6kF,OACL7kF,KAAK6kF,OAAOq1G,IAAI,IAAMhoC,MAGtBA,IAER,EA4BH88L,cAlNKm+0B,GAAK,qBAAA7wqC,IAAA,WAAAA,IAuL4F6wqC,IAnyBV9yqC,MAmyBiC0wqC,IAnyBjC1wqC,MAmyB2D6uqC,IAnyB3D7uqC,MAmyBoFA,OAAS,MAAA20V,KAvLpLm+0B,GAAK,YA5mBkF9yqC,MAAE,CAAA6nB,KAoyBJirpC,GAAK1wqC,UAAA,4BAAA00V,SAAA,EAAAxxV,aAAA,SAAA3C,GAAAC,IAAA,EAAAD,IApyBH3C,MAAE,0BAoyBJ4C,GAAA+wqC,UAAU,EApyBR3zqC,CAoyBQ,+BAAV4C,GAAAgxqC,aAAa,EApyBX5zqC,CAoyBW,+BAAb4C,GAAAixqC,kBAAkB,KAAAlxqC,KApyBhB3C,MAAE,YAAA4C,GAAAgrK,OAAF5tK,MAAE4C,GAAAswqC,cAAFlzqC,MAAE,UAAA4C,GAAAmwqC,cAAA,EAAA/pd,YAAA,EAAA9itB,SAAA,CAAFlG,OAAEu4vB,MAAA92qB,EAAAl/E,MAAA,EAAAC,KAAA,EAAAC,OAAA,iXAAAC,SAAA,SAAAC,GAAAC,IAAA,EAAAD,KAAF3C,MAAE,EAAA0sqC,EAAA,gBAAF1sqC,MAAE,EAAA6sqC,GAAA,aAAF7sqC,MAAE,EAAA+sqC,GAAA,aAAF/sqC,MAAE,EAAAitqC,GAAA,aAAFjtqC,MAAE,EAAAktqC,GAAA,cAozBvF,EAAAvqqC,KApzBqF3C,MAAE,OAAA4C,GAAA0qB,QAAAwkc,aAAF9xd,MAAE,GAAFA,MAAE,OAAA4C,GAAAq9B,OAAFjgC,MAAE,GAAFA,MAAE,OAAA4C,GAAAs9B,SAAAt9B,GAAA0qB,QAAA4kpC,YAAFlyqC,MAAE,GAAFA,MAAE,OAAA4C,GAAAs9B,UAAAt9B,GAAA0qB,QAAA4kpC,YAAFlyqC,MAAE,GAAFA,MAAE,OAAA4C,GAAA0qB,QAAAkomC,aAkzB9D,EAAAxziC,aAAA,CAG8Bqk1B,MAAInk1B,cAAA,EAAA9K,KAAA,CAAA2nP,UAA+E,IACtIssB,MAAQ,WAAY,IAChBz9K,MAAM,cAAY+uE,MAAM,CAAE4lL,QAAS,MAAI,EACvC30P,MAAM,YAAU+uE,MAAM,CAAE4lL,QAAS,MAAI,EACrC30P,MAAM,aAAW+uE,MAAM,CAAE4lL,QAAS,MAAI,EACtCj3E,MAAW,wBAAsBC,MAAQ,mCAAgC,EACzED,MAAW,uBAAqBC,MAAQ,yCA/MlDun1B,EAAK,MAkSLiB,GAAgBA,CAACv+/B,GAAS,CAAC,KAU7B,EAAOykP,OATW,CACd,CACI9zZ,QAASopqC,GACT1y0B,SAAU,CACN2nb,QAASguZ,GACTh9/B,cAKd,IAEIo8S,GAAY,MAAlB,MAAMA,GACF5oO,eAAexzE,GAAS,CAAC,GACrB,MAAO,CACHqrJ,SAAU+wJ,GACV9wJ,UAAW,CAACiz2B,GAAcv+/B,KAElC,EAIHm/K,cAVKi9H,GAAY,qBAAA3vd,IAAA,WAAAA,IAOqF2vd,GAAY,MAAAj9H,KAP7Gi9H,GAAY,YA35B2E5xd,MAAE,CAAA6nB,KAm6BS+pc,OAAY,EAAAj9H,KAR9Gi9H,GAAY,YA35B2E5xd,MAAE,KA25BzF4xd,EAAY,yFCx6BmB,IAE/BoitB,EAAgB,MAAtB,MAAMA,EACEpllC,SAAKqllC,GACL,GAAmB,KAAfA,GAAoC,SAAfA,IAAwC,IAAfA,EAI9C,OAHA72pC,QAAQqR,KAAM,mBAAkB+E,KAAKC,UAAUwgpC,iHAE/CtuqC,KAAKuuqC,OAAQ,GAGjBvuqC,KAAKuuqC,MAAQD,EACbn6pC,WACA,KACI,MAAMuob,EAAO18b,KAAKmxU,WAAWtvU,cACvB2sqC,GAAW9xuB,EAAK38b,OACH,IAAfuuqC,GAAwBE,KAAaA,GAASvllC,QAE9CollC,EAAiB1r+B,cAAc+5P,EAAM,OAAM,EAGvD,CACIzzW,WACA,OAAOjpF,KAAKuuqC,KAChB,CACAnyqC,YAAY+0U,EAAYs91B,GACpBzuqC,KAAKmxU,WAAaA,EAClBnxU,KAAKyuqC,UAAYA,EACjBzuqC,KAAKuuqC,MAAQ,GACbvuqC,KAAK0uqC,kBAAmB,EACxB1uqC,KAAK2uqC,eAAiB,KACtB3uqC,KAAK4uqC,YAAc,IACvB,CACAvr7B,gBAAgB/hP,GACZ,MAAO,CACHyH,MAAOzH,EAAGuC,eACVmF,IAAK1H,EAAGutqC,aAEhB,CACAxr7B,gBAAgB/hP,EAAIyH,EAAOC,IACvB1H,EAAGuC,eAAiBkF,EACpBzH,EAAGutqC,aAAe7lqC,GAClB1H,EAAG+pG,OACP,CACAg4I,qBAAqB/hP,EAAIwlb,GACrB,MAAMrlb,GAAQ,IAAIm5K,MAAMksQ,GACxBxlb,EAAGqhM,cAAclhM,GACrB,CACA4hP,kBAAkB/hP,EAAIvB,GAClBuB,EAAGvB,MAAQA,EAAMkpF,OACjBollC,EAAiB1r+B,cAAcrhM,EAAI,QACvC,CACAjF,WACS2D,KAAKyuqC,WAIVzuqC,KAAK2uqC,eAAiB3uqC,KAAKyuqC,UAAU9lM,cACjC3o+B,KAAK2uqC,iBACL3uqC,KAAK4uqC,YAAc5uqC,KAAK2uqC,eAAepsqC,WACvCvC,KAAK2uqC,eAAepsqC,WAAcxC,IAC9B,MAAMm/2B,GAAuB,IAAdl/2B,KAAKipF,MAAmBlpF,GAAS,mBAAsBA,EAAMkpF,MAASjpF,KAAK0uqC,iBAEpF3uqC,EAAMkpF,OADNlpF,EAEFC,KAAK4uqC,aACL5uqC,KAAK4uqC,YAAY1vpC,KAAKlf,KAAK2uqC,eAAgBzvT,GAE3Cn/2B,IAAUm/2B,IACNl/2B,KAAK2uqC,eAAe1sqC,UACpBjC,KAAK2uqC,eAAe1sqC,SAAYi92B,GAEhCl/2B,KAAK2uqC,eAAexsqC,WACpBnC,KAAK2uqC,eAAexsqC,YAAa,IAlB7CsV,QAAQqR,KAAK,0GAuBrB,CACAs2D,cACQp/E,KAAK2uqC,gBAAkB3uqC,KAAK4uqC,cAC5B5uqC,KAAK2uqC,eAAepsqC,WAAavC,KAAK4uqC,YAE9C,CACA7vE,OAAOz9lC,EAAIvB,IACW,IAAdC,KAAKipF,OAGU,KAAdjpF,KAAKipF,MAAe,SAAWjpF,KAAKipF,OAAS,mBAAsBlpF,EAAMkpF,MAAQlpF,EAAMkpF,SAAWlpF,IACnGsuqC,EAAiBS,WAAWxtqC,EAAIvB,GAChCsuqC,EAAiB1r+B,cAAcrhM,EAAI,QAE3C,CACAwyR,QAAQxyR,EAAIvB,GACR,IAAkB,IAAdC,KAAKipF,MAGS,KAAdjpF,KAAKipF,MAAe,mBAAsBlpF,EAAMkpF,MAAQlpF,EAAMkpF,SAAWlpF,EAAO,CAChF,IAAMgJ,SAAOC,QAAQqlqC,EAAiBU,SAASztqC,GAC9B,MAAbvB,EAAM,IAAwB,IAAVgJ,IAAuB,IAARC,KACnCD,GAAQ,EACRC,GAAM,GAEVqlqC,EAAiBS,WAAWxtqC,EAAIvB,GAChCsuqC,EAAiBjlnB,SAAS9njB,EAAIyH,GAAOC,GAAG,CAEhD,EAtGEqlqC,SAuGY3pqC,UAAI,SAAApI,GAAA,WAAAA,GAAwF+xqC,GAAVh0qC,MAA4CA,OAA5CA,MAAsEkK,KAAY,KAvGhL8pqC,EAwGYhxlC,UADkFhjF,MAAE,CAAA6nB,KACJmspC,EAAgB5xqC,UAAA,6CAAAkD,aAAA,SAAA3C,EAAAC,GAAA,EAAAD,GADd3C,MAAE,gBAAAuF,IAAA,OACJ3C,EAAA8hmC,OAAAn/lC,GAAAiD,OAAAjD,GAAAiD,OAAA9C,MAAyC,EADvC1F,CACuC,iBAAAuF,IAAA,OAAzC3C,EAAA62R,QAAAl0R,GAAAiD,OAAAjD,GAAAiD,OAAA9C,MAA0C,IAAArD,OAAA,CAAAusF,KAAA,OAAAyllC,iBAAA,sBAxGtIL,CAAgB,KAoIhB7hiC,EAAsB,MAA5B,MAAMA,YACY9nI,UAAI,SAAApI,GAAA,WAAAA,GAAwFkwI,EAAsB,EAD9HA,EAEY/vD,UA/BkFpiF,MAAE,CAAA6nB,KA+BSsqH,IAFzGA,EAGY9vD,UAhCkFriF,MAAE,IA6BhGmyI,CAAsB,wIC5H5B,SAAAwiiC,EAAAhyqC,GAAAC,IAo1BowC,GAp1BpwC,EAAAD,IAspBqG3C,MAAE,WA8L6pC,EAAA2C,GAAA,OAAA1C,GA9L/pCD,cAAE,SAAAC,GAAA20qC,YAAA,KAAF50qC,CA8Lu9B,QAAAC,GAAA40qC,SA9Lv9B70qC,MAAE,wBAAAC,GAAA60qC,WAAA70qC,GAAAw1K,cAAAs//B,eAAF/0qC,CA8L+3B,qBAAAC,GAAA+0qC,eA9L/3Bh1qC,CA8L+3B,qBAAAC,GAAAg1qC,kBA9L/3Bj1qC,CA8L+3B,eAAAC,GAAAg1qC,mBAAAh1qC,GAAAi1qC,aA9L/3Bl1qC,MAAE,8BAAAC,GAAAk1qC,YA8L+6B,CAAC,UAAAC,EAAAzyqC,GAAAC,IAA05B,GAA15B,EAAAD,IA9Ll7B3C,MAAE,YA8L00D,EAAA2C,GAAA,OAAAxC,GA9L50DH,cAAE,QAAAG,GAAAk1qC,SAAA,KAAFr1qC,CA8LqwD,SAAAG,GAAAk1qC,SAAA,KA9LrwDr1qC,CA8LqwD,MAAAG,GAAAm1qC,SA9LrwDt1qC,MAAE,UAAAG,GAAAo1qC,aAAFv1qC,CA8LosD,MAAAG,GAAAq1qC,eA9LpsDx1qC,MA8LmsD,CAAC,UAAAy1qC,EAAA9yqC,GAAAC,IAAA,EAAAD,IA9LpsD3C,MAAE,QA8LiuE,UAAA01qC,GAAA/yqC,GAAAC,IAAY,GAAZ,EAAAD,KA9LnuE3C,MAAE,SAAFA,MAAE,EAAAy1qC,EAAA,cAAFz1qC,SA8L+uE,EAAA2C,GAAA,OAAAvC,GA9L/uEJ,cAAEI,GAAAu1qC,gBAAF31qC,MAAE,GAAFA,MAAE,UAAAI,GAAAw1qC,OA8LutE,CAAC,UAAAC,GAAAlzqC,GAAAC,IAAA,EAAAD,IA9L1tE3C,MAAE,EA8L21E,UAAA81qC,GAAAnzqC,GAAAC,IAAA,KAAAD,IA9L71E3C,MAAE,EAAA61qC,GAAA,uBA8L21E,EAAAlzqC,GAAA,OAAArC,GA9L71EN,cAAE,mBAAAM,GAAAy1qC,YA8Lw0E,CAAC,UAAAC,GAAArzqC,GAAAC,IAAA,EAAAD,IA9L30E3C,MAAE,QA8LsxG,UAAAi2qC,GAAAtzqC,GAAAC,IAAU,GAAV,EAAAD,KA9LxxG3C,MAAE,SAAFA,MAAE,EAAAg2qC,GAAA,cAAFh2qC,SA8LkyG,EAAA2C,GAAA,OAAApC,GA9LlyGP,cAAEO,GAAA21qC,gBAAFl2qC,MAAE,GAAFA,MAAE,UAAAO,GAAA41qC,OA8L4wG,CAAC,UAAAC,GAAAzzqC,GAAAC,IAAA,EAAAD,IA9L/wG3C,MAAE,EA8L04G,UAAAq2qC,GAAA1zqC,GAAAC,IAAA,KAAAD,IA9L54G3C,MAAE,EAAAo2qC,GAAA,uBA8L04G,EAAAzzqC,GAAA,OAAAlC,GA9L54GT,cAAE,mBAAAS,GAAA61qC,YA8Lu3G,CAAC,CAj1B/9G,IAAIC,GAAO,OAAPA,OAAO,IAECC,kBAAuB,sBAC/BD,GAAQE,SAAc,YACtBF,GAAQG,kBAAuB,sBAC/BH,GAAQI,8BAAmC,oCAC3CJ,GAAQK,qBAA0B,0BAClCL,GAAQM,YAAiB,eACzBN,GAAQ/zc,OAAY,SACpB+zc,GAAQO,SAAc,YACtBP,GAAQQ,aAAkB,gBAC1BR,GAAQS,aAAkB,gBAC1BT,GAAQU,YAAiB,eACzBV,GAAQW,MAAW,QACnBX,GAAQY,gBAAqB,mBAC7BZ,GAAQa,qBAA0B,yBAClCb,GAAQc,wBAA6B,6BACrCd,GAAQe,6BAAkC,mCAC1Cf,GAAQgB,cAAmB,iBAC3BhB,GAAQiB,eAAoB,mBAC5BjB,GAAQkB,aAAkB,gBAC1BlB,GAAQmB,YAAiB,eACzBnB,GAAQoB,aAAkB,gBAC1BpB,GAAQqB,eAAoB,kBAvB5BrB,IAAO,GA4BPsB,GAAQ,OAARA,OAAQ,IAECC,aAAkB,gBAC3BD,GAAS321B,WAAgB,cACzB221B,GAAS121B,YAAiB,eAC1B021B,GAASE,aAAkB,gBAC3BF,GAAS9wC,WAAgB,cACzB8wC,GAASG,YAAiB,eAC1BH,GAASI,UAAe,aACxBJ,GAAS721B,QAAa,WACtB621B,GAAS521B,SAAc,YAVvB421B,IAAQ,GAeRK,GAAY,OAAZA,OAAY,IAECC,YAAiB,MAC9BD,GAAaE,YAAiB,MAH9BF,IAAY,GAShB,MAAMG,GAAqB,aAIrBC,GAAqB,aAKrBC,GAAe,CAAC,EAKhBC,IAAa,EACbC,IAAa,EAcbC,GAAiB,CACnB,sBAAuB,CACnBC,KAAM,EACNptlC,MAAO,0BAEX,YAAa,CACTotlC,KAAM,EACNptlC,MAAO,gBAEX,sBAAuB,CACnBotlC,KAAM,EACNptlC,MAAO,0BAEX,oCAAqC,CACjCotlC,KAAM,EACNptlC,MAAO,wCAEX,0BAA2B,CACvBotlC,KAAM,EACNptlC,MAAO,8BAEX,eAAgB,CACZotlC,KAAM,EACNptlC,MAAO,mBAEXi3oB,OAAQ,CACJm2c,KAAM,GACNptlC,MAAO,aAEX,YAAa,CACTotlC,KAAM,EACNptlC,MAAO,gBAEX,gBAAiB,CACbotlC,KAAM,EACNptlC,MAAO,oBAEX,gBAAiB,CACbotlC,KAAM,GACNptlC,MAAO,oBAEX,eAAgB,CACZotlC,KAAM,EACNptlC,MAAO,mBAEX2rlC,MAAO,CACHyB,KAAM,EACNptlC,MAAO,YAEX,mBAAoB,CAChBotlC,KAAM,EACNptlC,MAAO,uBAEX,yBAA0B,CACtBotlC,KAAM,EACNptlC,MAAO,6BAEX,6BAA8B,CAC1BotlC,KAAM,EACNptlC,MAAO,iCAEX,mCAAoC,CAChCotlC,KAAM,EACNptlC,MAAO,uCAEX,iBAAkB,CACdotlC,KAAM,EACNptlC,MAAO,qBAEX,mBAAoB,CAChBotlC,KAAM,EACNptlC,MAAO,uBAEX,gBAAiB,CACbotlC,KAAM,EACNptlC,MAAO,oBAEX,eAAgB,CACZotlC,KAAM,EACNptlC,MAAO,mBAEX,gBAAiB,CACbotlC,KAAM,EACNptlC,MAAO,oBAEX,kBAAmB,CACfotlC,KAAM,EACNptlC,MAAO,uBAMTqqU,GAAiB,CACnBgjxB,SAAU,UACVC,WAAY,GACZC,YAAajB,GAAS121B,YACtB431B,QAAS,GACTC,QAASzC,GAAQG,kBACjBn1c,KAAM,EACNnjZ,MAAO,EACP821B,aAAa,EACb+D,SAAU,UACVC,YAAarB,GAASE,aACtBoB,QAAS,GACTC,QAAS7C,GAAQG,kBACjBpooB,IAAK,GACLinoB,aAAcsC,GAASE,aACvB1C,SAAU,IACVgE,QAAS,GACTtE,eAnI6B,SAoI7BuE,oBAAqB,IACrBC,aAAc,wBACd1E,QAAS,UACTM,YAAa+C,GAAaC,YAC1BvD,YAAa,EACb4E,gBAAgB,EAChBj8pC,KAAM,GACNwhyB,UAAW,UACX06X,aAAc5B,GAASE,aACvBlnuB,SAAS,EACTourB,QAAS,KAMPy6C,GAA6B,IAAIzv4B,MAAe,4BAA4B,IAE5E0v4B,GAAkB,MAAxB,MAAMA,GAIF53qC,YAAYyzK,IACR7vK,KAAK6vK,OAASA,GACd7vK,KAAK8vK,cAAgB,IAAKmgP,IACtBjwZ,KAAK6vK,SACD7vK,KAAK6vK,OAAOyp9B,SAAWt5nC,KAAK6vK,OAAOyp9B,QA3JlC,IA4JDt5nC,KAAK6vK,OAAOyp9B,QA5JX,GA8JLt5nC,KAAK8vK,cAAgB,IAAK9vK,KAAK8vK,iBAAkB9vK,KAAK6vK,SAE1D7vK,KAAKoogC,QAAU,CAAC,EAChBpogC,KAAKqvqC,eAAiB,IAAIxulC,IAAgB,CACtCsulC,SAAU,GACV8E,QAAQ,IAEZj0qC,KAAKk0qC,gBAAkBl0qC,KAAKqvqC,eAAevulC,eAC3C9gF,KAAKm0qC,eAAiB,IAAItzlC,IAAgB,CACtCsulC,SAAU,GACV8E,QAAQ,IAEZj0qC,KAAKo0qC,gBAAkBp0qC,KAAKm0qC,eAAerzlC,eAC3C9gF,KAAKq0qC,UAAY,IAAIxzlC,IAAgB,CACjCsulC,SAAU,GACV8E,QAAQ,IAEZj0qC,KAAKs0qC,mBAAqBt0qC,KAAKq0qC,UAAUvzlC,eACzC9gF,KAAKu0qC,UAAY,IAAI1zlC,IAAgB,CACjCsulC,SAAU,GACV8E,QAAQ,IAEZj0qC,KAAKw0qC,mBAAqBx0qC,KAAKu0qC,UAAUzzlC,cAC7C,CAMA2zlC,eAAetF,IACX,MAAMuF,GAAWvF,KAAanvqC,KAAK8vK,cAAcs//B,eACjD,GAAIpvqC,KAAKoogC,QAAQ+mK,IAAW,CACxB,GAAInvqC,KAAKoogC,QAAQ+mK,IAAUwF,QACvB,MAAM,IAAI3tqC,MAAO,+BAA8BmoqC,sBAEnDnvqC,KAAKoogC,QAAQ+mK,IAAUwF,SAAU,EACjC30qC,KAAKoogC,QAAQ+mK,IAAUuF,SAAWA,GAE9B10qC,KAAK40qC,eAAe9B,GAAY3D,IAChCnvqC,KAAKqvqC,eAAeztqC,KAAK,CAAEutqC,YAAU8E,QAAQ,IAGzCj0qC,KAAK40qC,eAAe/B,GAAY1D,KAChCnvqC,KAAKm0qC,eAAevyqC,KAAK,CAAEutqC,YAAU8E,QAAQ,GAAM,MAK3Dj0qC,KAAK60qC,iBAAiB1F,GAAUuF,IAAU,EAElD,CAMAI,kBAAkB3F,IACdnvqC,KAAK+0qC,cAAc5F,WACZnvqC,KAAKoogC,QAAQ+mK,GACxB,CAMA6F,mBACI,MAAO,IAAKh1qC,KAAK8vK,cACrB,CAIAmlgC,aACI,OAAOpnpC,KAAKsjH,MAAMtjH,KAAKC,UAAU9tB,KAAKoogC,SAC1C,CAKA30I,UAAU07S,IAEN,OAAInvqC,KAAKoogC,QADT+mK,GAAWA,IAAsBnvqC,KAAK8vK,cAAcs//B,gBAEzCvhpC,KAAKsjH,MAAMtjH,KAAKC,UAAU9tB,KAAKoogC,QAAQ+mK,MAE3C,IACX,CAQA+F,YAAY/F,GAAU5jQ,GAASmnQ,GAAoBj4/B,IAC1Cz6K,KAAKm1qC,aAAahG,GAAU5jQ,IAAQ,EAAM9wvB,MAG1Cz6K,KAAKoogC,QAAQ+mK,IAAUiG,MAAM7pQ,IAAQ8pQ,iBAElCr1qC,KAAK40qC,eAAe/B,GAAY1D,MAChCnvqC,KAAKs1qC,mBAAmBnG,IACxBnvqC,KAAKm0qC,eAAevyqC,KAAK,CAAEutqC,YAAU8E,QAAQ,KAEjDj0qC,KAAKqvqC,eAAeztqC,KAAK,CAAEutqC,YAAU8E,QAAQ,KAErD,CAQAlrqC,MAAMwi6B,GAASmnQ,GAAoBj4/B,IAC/Bz6K,KAAKk1qC,YAAYl1qC,KAAK8vK,cAAcs//B,eAAgB7jQ,GAAQ9wvB,GAChE,CAQA86/B,sBAAsBpG,GAAU5jQ,GAASonQ,GAAoBl4/B,IACpDz6K,KAAKm1qC,aAAahG,GAAU5jQ,IAAQ,EAAO9wvB,MAG3Cz6K,KAAK40qC,eAAe9B,GAAY3D,MAChCnvqC,KAAKoogC,QAAQ+mK,IAAUiG,MAAM7pQ,IAAQ8pQ,gBACtCr1qC,KAAKm0qC,eAAevyqC,KAAK,CAAEutqC,YAAU8E,QAAQ,GAErD,CAQAuB,gBAAgBjqQ,GAASonQ,GAAoBl4/B,IACzCz6K,KAAKu1qC,sBAAsBv1qC,KAAK8vK,cAAcs//B,eAAgB7jQ,GAAQ9wvB,GAC1E,CAQAg7/B,WAAWtG,GAAU5jQ,GAASmnQ,IACrB1yqC,KAAK01qC,YAAYvG,GAAU5jQ,MAG3Bvr6B,KAAK40qC,eAAe9B,GAAY3D,MACjCnvqC,KAAK21qC,mBAAmBxG,IACxBnvqC,KAAKqvqC,eAAeztqC,KAAK,CAAEutqC,YAAU8E,QAAQ,IACzCj0qC,KAAK40qC,eAAe/B,GAAY1D,KAChCh7pC,WAAW,KACHnU,KAAK40qC,eAAe/B,GAAY1D,KAEhCnvqC,KAAKm0qC,eAAevyqC,KAAK,CAAEutqC,YAAU8E,QAAQ,GAAM,EAExDj0qC,KAAK8vK,cAAcy//B,YAzTF,IADL,MA+T3B,CAOA72iC,KAAK6yyB,GAASmnQ,IACV1yqC,KAAKy1qC,WAAWz1qC,KAAK8vK,cAAcs//B,eAAgB7jQ,GACvD,CAQAqqQ,qBAAqBzG,GAAU5jQ,GAASonQ,IAC/B3yqC,KAAK01qC,YAAYvG,GAAU5jQ,MAG3Bvr6B,KAAK40qC,eAAe9B,GAAY3D,MAChCnvqC,KAAK40qC,eAAe/B,GAAY1D,MACjCnvqC,KAAKs1qC,mBAAmBnG,IACxBnvqC,KAAKm0qC,eAAevyqC,KAAK,CAAEutqC,YAAU8E,QAAQ,IAErD,CAOA4B,eAAetqQ,GAASonQ,IACpB3yqC,KAAK41qC,qBAAqB51qC,KAAK8vK,cAAcs//B,eAAgB7jQ,GACjE,CAMAwpQ,cAAc5F,IACLnvqC,KAAKoogC,QAAQ+mK,KAIdnvqC,KAAK40qC,eAAe9B,GAAY3D,KAChCnvqC,KAAK21qC,mBAAmBxG,IACxBnvqC,KAAKqvqC,eAAeztqC,KAAK,CAAEutqC,YAAU8E,QAAQ,KAExCj0qC,KAAK40qC,eAAe/B,GAAY1D,MACrCnvqC,KAAKs1qC,mBAAmBnG,IACxBnvqC,KAAKm0qC,eAAevyqC,KAAK,CAAEutqC,YAAU8E,QAAQ,KAEjDj0qC,KAAK81qC,eAAe91qC,KAAKoogC,QAAQ+mK,IAAUiG,OAC3Cp1qC,KAAKoogC,QAAQ+mK,IAAUiG,MAAQ,CAAC,GAZ5B39pC,QAAQqR,KAAM,+BAA8BqmpC,sBAapD,CAIA4G,UACI/1qC,KAAK+0qC,cAAc/0qC,KAAK8vK,cAAcs//B,eAC1C,CAYAwF,eAAeoB,GAAc7G,GAAU5jQ,IACnC,GAAIvr6B,KAAKoogC,QAAQ+mK,IAAW,CACxB,MAAMiG,GAAQp1qC,KAAKoogC,QAAQ+mK,IAAUiG,MACrC,OAAI7pQ,KACO6pQ,GAAM7pQ,OAAW6pQ,GAAM7pQ,IAAQ73uB,QAEnC/sL,OAAOiY,KAAKw2pC,IAAO5ppC,KAAM8hD,MAAS8nmC,GAAM9nmC,IAAIomH,SAAW0h/B,GAAM9nmC,IAAI0omC,eAAiBA,GAAY,CAEzG,OAAO,CACX,CAMAnB,iBAAiB1F,GAAUuF,GAAUC,IAC5B30qC,KAAKoogC,QAAQ+mK,MACdnvqC,KAAKoogC,QAAQ+mK,IAAY,CACrBA,YACAiG,MAAO,CAAC,EACRV,YACAC,YAGZ,CAOAgB,mBAAmBxG,IACfnvqC,KAAKq0qC,UAAUzyqC,KAAK,CAAEutqC,YAAU8E,QAAQ,IACxC9/pC,WAAW,KACPnU,KAAKq0qC,UAAUzyqC,KAAK,CAAEutqC,YAAU8E,QAAQ,GAAO,EAChDj0qC,KAAK8vK,cAAcy//B,YA/aJ,IADL,KAibjB,CAOA+F,mBAAmBnG,IACfnvqC,KAAKu0qC,UAAU3yqC,KAAK,CAAEutqC,YAAU8E,QAAQ,IACxC9/pC,WAAW,KACPnU,KAAKu0qC,UAAU3yqC,KAAK,CAAEutqC,YAAU8E,QAAQ,GAAO,EAChDj0qC,KAAK8vK,cAAcy//B,YA3bJ,IADL,KA6bjB,CAMA0G,YAAY7thB,IACRj9e,aAAai9e,GAAK8thB,YAClB/qgC,aAAai9e,GAAK+thB,UAClBhrgC,aAAai9e,GAAKguhB,SACtB,CAMAN,eAAeV,IACXzuqC,OAAOiY,KAAKw2pC,IAAOl2lC,IAAK5R,KACpBttE,KAAKi2qC,YAAYb,GAAM9nmC,IAAG,EAElC,CAIA6nmC,aAAahG,GAAU5jQ,GAAQyqQ,GAAcv7/B,GAAOm4/B,IAChD5yqC,KAAK60qC,iBAAiB1F,QAAU1oqC,GAAW,GAC3C,MAAM4uqC,GAAiBr1qC,KAAK40qC,eAAeoB,GAAc7G,IACzD,GAAKnvqC,KAAKoogC,QAAQ+mK,IAAUiG,MAAM7pQ,KAO9B,GAGIvr6B,KAAKoogC,QAAQ+mK,IAAUiG,MAAM7pQ,IAAQyqQ,eAAiBA,GACtD,MAAM,IAAIhvqC,MAAO,6BAA4Buk6B,2BAVjDvr6B,KAAKoogC,QAAQ+mK,IAAUiG,MAAM7pQ,IAAU,CACnCA,UACAyqQ,gBACA18C,QAAS7+8B,GAAK6+8B,SA7db,EA6dmC7+8B,GAAK6+8B,QAAUt5nC,KAAK8vK,cAAcwp9B,QACtEpurB,QAASzwR,GAAKywR,QAAUzwR,GAAKywR,QAAUlrc,KAAK8vK,cAAco7R,QAC1DzyH,MAAOh+J,GAAKg+J,OAheV,EAge+Bh+J,GAAKg+J,MAAQz4U,KAAK8vK,cAAc2oK,OAiBzE,QATIz4U,KAAKq2qC,cAAcr2qC,KAAKoogC,QAAQ+mK,IAAUiG,MAAM7pQ,IAAS4jQ,MAG7DnvqC,KAAKoogC,QAAQ+mK,IAAUiG,MAAM7pQ,IAAU,IAChCvr6B,KAAKoogC,QAAQ+mK,IAAUiG,MAAM7pQ,IAChC8pQ,kBACA3h/B,QAAS3xK,KAAKq9I,OAElBp/J,KAAKs2qC,YAAYt2qC,KAAKoogC,QAAQ+mK,IAAUiG,MAAM7pQ,IAAS4jQ,KAClDnvqC,KAAKoogC,QAAQ+mK,IAAUwF,SAIhC,CAIAe,YAAYvG,GAAU5jQ,IAClB,IAAKvr6B,KAAKoogC,QAAQ+mK,IACd13pC,eAAQqR,KAAM,+BAA8BqmpC,wBACrC,EAEX,MAAM/mhB,GAAOpopB,KAAKoogC,QAAQ+mK,IAAUiG,MAAM7pQ,IAC1C,SAAKnjR,KAGDA,GAAKmuhB,WACLv2qC,KAAKi2qC,YAAY7thB,WACVpopB,KAAKoogC,QAAQ+mK,IAAUiG,MAAM7pQ,IAC7B,GAEPvr6B,KAAKw2qC,YAAYpuhB,GAAM+mhB,MAG3BnvqC,KAAKi2qC,YAAY7thB,WACVpopB,KAAKoogC,QAAQ+mK,IAAUiG,MAAM7pQ,IAC7B,IACX,CAOA8qQ,cAAcjuhB,GAAM+mhB,IAChB,GAAI/mhB,GAAK3vU,MArhBC,EAqhBkB,CACxB,GAAI2vU,GAAKmuhB,UACL,OAAO,EAEX,IAAKnuhB,GAAK8thB,WACN9thB,UAAKmuhB,WAAY,EACjBnuhB,GAAK8thB,WAAa/hqC,WAAW,KACzBi0oB,GAAKmuhB,WAAY,EACbnuhB,GAAK4thB,aACLh2qC,KAAKk1qC,YAAY/F,GAAU/mhB,GAAKmjR,QAGhCvr6B,KAAKu1qC,sBAAsBpG,GAAU/mhB,GAAKmjR,OAAM,EAErDnjR,GAAK3vU,QACD,EAGf,OAAO,CACX,CAOA691B,YAAYluhB,GAAM+mhB,IACV/mhB,GAAKl9M,QAAUk9M,GAAKkxe,UAEpBnu9B,aAAai9e,GAAK+thB,UAClB/thB,GAAK+thB,SAAWhiqC,WAAW,KACnBi0oB,GAAK4thB,aACLh2qC,KAAKy1qC,WAAWtG,GAAU/mhB,GAAKmjR,QAG/Bvr6B,KAAK41qC,qBAAqBzG,GAAU/mhB,GAAKmjR,OAAM,EAEpDnjR,GAAKl9M,SAEhB,CAOAsruB,YAAYpuhB,GAAM+mhB,IACd,MAAM/vgC,GAAMr9I,KAAKq9I,MACjB,SAAIgpf,GAAK10d,SACD00d,GAAK10d,QAAU00d,GAAKkxe,QAAUl69B,MAC9Bgpf,GAAKguhB,SAAWjiqC,WAAW,KACnBi0oB,GAAK4thB,aACLh2qC,KAAKy1qC,WAAWtG,GAAU/mhB,GAAKmjR,QAG/Bvr6B,KAAK41qC,qBAAqBzG,GAAU/mhB,GAAKmjR,OAAM,EAEpDnjR,GAAK10d,QAAU00d,GAAKkxe,QAAUl69B,KAC1B,EAInB,EAEJ40gC,UAAmBtvqC,UAAI,SAAApI,IAAA,WAAAA,IAAwF03qC,IAAV35qC,MAA8C05qC,GAA0B,KAC7KC,GAAmBpv4B,WADkFvqS,MAAE,CAAAsiJ,MACYq3hC,GAAkBvvqC,QAAlBuvqC,GAAkBtvqC,UAAAk1I,WAAc,SAlc7Io6hC,EAAkB,KAgdlByC,GAAoB,MAA1B,MAAMA,GAIFr6qC,YAAYs6qC,GAAc97kC,GAAmBk6B,IACzC90H,KAAK02qC,aAAeA,GACpB12qC,KAAK46F,kBAAoBA,GACzB56F,KAAK80H,WAAaA,GAClB90H,KAAKwkO,aAAc,EACnBxkO,KAAK8vK,cAAgB9vK,KAAK80H,WAAWkgjC,mBACrCh1qC,KAAKizqC,SAAWjzqC,KAAK8vK,cAAcmjgC,SACnCjzqC,KAAKkzqC,WAAalzqC,KAAK8vK,cAAcojgC,WACrClzqC,KAAKmzqC,YAAcnzqC,KAAK8vK,cAAcqjgC,YACtCnzqC,KAAKozqC,QAAUpzqC,KAAK8vK,cAAcsjgC,QAClCpzqC,KAAKqzqC,QAAUrzqC,KAAK8vK,cAAcujgC,QAClCrzqC,KAAKuvqC,YAAcvvqC,KAAK8vK,cAAcy//B,YACtCvvqC,KAAKszqC,SAAWtzqC,KAAK8vK,cAAcwjgC,SACnCtzqC,KAAKuzqC,YAAcvzqC,KAAK8vK,cAAcyjgC,YACtCvzqC,KAAKwzqC,QAAUxzqC,KAAK8vK,cAAc0jgC,QAClCxzqC,KAAKyzqC,QAAUzzqC,KAAK8vK,cAAc2jgC,QAClCzzqC,KAAK2oiB,IAAM3oiB,KAAK8vK,cAAc64X,IAC9B3oiB,KAAKmvqC,SAAWnvqC,KAAK8vK,cAAcs//B,eACnCpvqC,KAAK4vqC,aAAe5vqC,KAAK8vK,cAAc8//B,aACvC5vqC,KAAK0vqC,SAAW1vqC,KAAK8vK,cAAc4//B,SACnC1vqC,KAAK0zqC,QAAU1zqC,KAAK8vK,cAAc4jgC,QAClC1zqC,KAAK2zqC,oBAAsB3zqC,KAAK8vK,cAAc6jgC,oBAC9C3zqC,KAAK4zqC,aAAe5zqC,KAAK8vK,cAAc8jgC,aACvC5zqC,KAAKkvqC,QAAUlvqC,KAAK8vK,cAAco//B,QAClClvqC,KAAKwvqC,YAAcxvqC,KAAK8vK,cAAc0//B,YACtCxvqC,KAAKivqC,YAAcjvqC,KAAK8vK,cAAcm//B,YACtCjvqC,KAAK6zqC,eAAiB7zqC,KAAK8vK,cAAc+jgC,eACzC7zqC,KAAK4X,KAAO5X,KAAK8vK,cAAcl4J,KAC/B5X,KAAKo5yB,UAAYp5yB,KAAK8vK,cAAcspoB,UACpCp5yB,KAAK8zqC,aAAe9zqC,KAAK8vK,cAAcgkgC,YAC3C,CAIAz3qC,WACI2D,KAAK22qC,qBACL32qC,KAAK80H,WAAW2/iC,eAAez0qC,KAAKmvqC,UACpCnvqC,KAAK42qC,qBACL52qC,KAAK6vqC,eAAiB7vqC,KAAK02qC,aAAazqpC,+BAA+BjsB,KAAK0zqC,SAC5E1zqC,KAAK62qC,sBAAwB72qC,KAAK80H,WAAWo/iC,gBACxCj1lC,QAAK/zD,KAAQ4rpC,IAAc92qC,KAAKmvqC,WAAa2H,GAAU3H,WACvD5ipC,UAAWklD,KACZzxE,KAAKqvqC,eAAiB59lC,GAAKwimC,OAC3Bj0qC,KAAK46F,kBAAkBi3P,cAAa,GAExC7xV,KAAK+2qC,sBAAwB/2qC,KAAK80H,WAAWs/iC,gBACxCn1lC,QAAK/zD,KAAQ4rpC,IAAc92qC,KAAKmvqC,WAAa2H,GAAU3H,WACvD5ipC,UAAWklD,KACZzxE,KAAKm0qC,eAAiB1imC,GAAKwimC,OAC3Bj0qC,KAAK46F,kBAAkBi3P,cAAa,GAExC7xV,KAAKg3qC,yBAA2Bh3qC,KAAK80H,WAAWw/iC,mBAC3Cr1lC,QAAK/zD,KAAQ4rpC,IAAc92qC,KAAKmvqC,WAAa2H,GAAU3H,WACvD5ipC,UAAWklD,KACZzxE,KAAKsvqC,kBAAoB79lC,GAAKwimC,OAC9Bj0qC,KAAK46F,kBAAkBi3P,cAAa,GAExC7xV,KAAKi3qC,yBAA2Bj3qC,KAAK80H,WAAW0/iC,mBAC3Cv1lC,QAAK/zD,KAAQ4rpC,IAAc92qC,KAAKmvqC,WAAa2H,GAAU3H,WACvD5ipC,UAAWklD,KACZzxE,KAAKk3qC,kBAAoBzlmC,GAAKwimC,OAC9Bj0qC,KAAK46F,kBAAkBi3P,cAAa,GAExC7xV,KAAKwkO,aAAc,CACvB,CAIAxzG,YAAYC,IACR,IAAKjxH,KAAKwkO,YACN,OAEJ,MAEM2y8B,GAAgBlmjC,GAAQyijC,SADRzijC,GAAQwijC,SADRxijC,GAAQoijC,UAI1BrzqC,KAAK22qC,qBAET32qC,KAAK42qC,qBACDO,KACAn3qC,KAAK6vqC,eAAiB7vqC,KAAK02qC,aAAazqpC,+BAA+BjsB,KAAK0zqC,SAEpF,CAIAt0lC,cACIp/E,KAAK80H,WAAWggjC,kBAAkB90qC,KAAKmvqC,UACnCnvqC,KAAK62qC,uBACL72qC,KAAK62qC,sBAAsBp2lC,cAE3BzgF,KAAK+2qC,uBACL/2qC,KAAK+2qC,sBAAsBt2lC,cAE3BzgF,KAAKg3qC,0BACLh3qC,KAAKg3qC,yBAAyBv2lC,cAE9BzgF,KAAKi3qC,0BACLj3qC,KAAKi3qC,yBAAyBx2lC,aAEtC,CAIAk2lC,qBACI32qC,KAAKiwqC,OAASltpC,MAAMgwpC,GAAe/yqC,KAAKyzqC,SAAST,MAAM1w3B,KAAK,GAC5DtiT,KAAKgwqC,eAAiB+C,GAAe/yqC,KAAKyzqC,SAAS7tlC,MACnD5lF,KAAKwwqC,OAASztpC,MAAMgwpC,GAAe/yqC,KAAKqzqC,SAASL,MAAM1w3B,KAAK,GAC5DtiT,KAAKuwqC,eAAiBwC,GAAe/yqC,KAAKqzqC,SAASztlC,KACvD,CAIAgxlC,qBACI52qC,KAAK2vqC,QAAU,UACf3vqC,KAAKo3qC,WAAa,UAClBp3qC,KAAKq3qC,QAAU,UAEXr3qC,KAAK4vqC,aAAa97kC,WAAW,UAC7B9zF,KAAK2vqC,QAAU,MAEV3vqC,KAAK4vqC,aAAa97kC,WAAW,SAClC9zF,KAAK2vqC,QAAU,QAEf3vqC,KAAKuzqC,YAAYz/kC,WAAW,UAC5B9zF,KAAKo3qC,WAAa,MAEbp3qC,KAAKuzqC,YAAYz/kC,WAAW,SACjC9zF,KAAKo3qC,WAAa,QAElBp3qC,KAAK8zqC,aAAahglC,WAAW,UAC7B9zF,KAAKq3qC,QAAU,MAEVr3qC,KAAK8zqC,aAAahglC,WAAW,SAClC9zF,KAAKq3qC,QAAU,QAEfr3qC,KAAKuzqC,cAAgBrB,GAASE,aAC1BpyqC,KAAK0zqC,SAAW1zqC,KAAK4vqC,eAAiBsC,GAASE,aAC3CpyqC,KAAK4X,MAAQ5X,KAAK8zqC,eAAiB5B,GAASE,cAE5CpyqC,KAAK2vqC,QAAU3vqC,KAAK02qC,aAAa5sL,yBAA0B,cAAa9p/B,KAAKwzqC,QAAU,gBAA6BxzqC,KAAK2oiB,UACzH3oiB,KAAKo3qC,WAAap3qC,KAAK02qC,aAAa5sL,yBAA0B,cAAa9p/B,KAAK0vqC,SAAW,eAC3F1vqC,KAAKq3qC,QAAUr3qC,KAAK02qC,aAAa5sL,yBAA0B,cAAa9p/B,KAAK0vqC,SAAW,SAAS1vqC,KAAK2oiB,WAAW3oiB,KAAKwzqC,QAAU,UAIhIxzqC,KAAK2vqC,QAAU3vqC,KAAK02qC,aAAa5sL,yBAA0B,cAAa9p/B,KAAKwzqC,QAAU,SAASxzqC,KAAK2oiB,IAAM,QAC3G3oiB,KAAKo3qC,WAAap3qC,KAAK02qC,aAAa5sL,yBAA0B,cAAa9p/B,KAAK0vqC,SAAW,SAAS1vqC,KAAK2oiB,IAAM,SAI/G3oiB,KAAK4X,MAAQ5X,KAAK8zqC,eAAiB5B,GAASE,eAE5CpyqC,KAAKo3qC,WAAap3qC,KAAK02qC,aAAa5sL,yBAA0B,qBAAiC9p/B,KAAK2oiB,IAAM,QAC1G3oiB,KAAKq3qC,QAAUr3qC,KAAK02qC,aAAa5sL,yBAA0B,cAAa9p/B,KAAKwzqC,QAAU,SAASxzqC,KAAK2oiB,IAAM,SAK/G3oiB,KAAK0zqC,SACL1zqC,KAAK4vqC,eAAiBsC,GAASE,cAC/BpyqC,KAAK4X,MACL5X,KAAK8zqC,eAAiB5B,GAASE,eAE/BpyqC,KAAK2vqC,QAAU3vqC,KAAK02qC,aAAa5sL,yBAA0B,qBAAiC9p/B,KAAK2oiB,IAAM,QACvG3oiB,KAAKq3qC,QAAUr3qC,KAAK02qC,aAAa5sL,yBAA0B,cAAa9p/B,KAAK0vqC,SAAW,SAAS1vqC,KAAK2oiB,IAAM,QAGxH,EAEJ8toB,UAAqB/xqC,UAAI,SAAApI,IAAA,WAAAA,IAAwFm6qC,IA7LZp8qC,MA6LkDkK,MA7LlDlK,MA6L8EA,OA7L9EA,MA6L+G25qC,IAAkB,EACtOyC,GAAqBv6lC,UA9LgF7hF,MAAE,CAAA6nB,KA8LFu0pC,GAAoBh6qC,UAAA,oBAAAC,OAAA,CAAAu2qC,SAAA,WAAAC,WAAA,aAAAC,YAAA,cAAAC,QAAA,UAAAzC,YAAA,cAAA0C,QAAA,UAAAC,SAAA,WAAAC,YAAA,cAAAC,QAAA,UAAApD,YAAA,cAAAqD,QAAA,UAAA9qoB,IAAA,MAAAwmoB,SAAA,WAAAS,aAAA,eAAAF,SAAA,WAAAgE,QAAA,UAAAC,oBAAA,sBAAAC,aAAA,eAAA1E,QAAA,UAAAM,YAAA,cAAAP,YAAA,cAAA4E,eAAA,iBAAAj8pC,KAAA,OAAAwhyB,UAAA,YAAA06X,aAAA,gBAAAvzqC,SAAA,CA9LpBlG,OAAEuC,MAAA,GAAAC,KAAA,GAAAC,OAAA,yjBAAAC,SAAA,SAAAC,GAAAC,IA8Lo6G,GA9Lp6G,EAAAD,KAAF3C,MAAE,EAAA20qC,EAAA,cAAF30qC,MAAE,WAAFA,MAAE,EAAAo1qC,EAAA,aAAFp1qC,MAAE,WAAFA,MAAE,EAAA01qC,GAAA,aAAF11qC,MAAE,EAAA81qC,GAAA,yBAAF91qC,qBAAE,UAAFA,CA8LwkF,UA9LxkFA,MAAE,GAAFA,kBAAE,YAAFA,MAAE,GAAAi2qC,GAAA,aAAFj2qC,MAAE,GAAAq2qC,GAAA,yBAAFr2qC,gBA8Ls6G,EAAA2C,GAAA,OAAA6gF,GA9Lt6GxjF,MAAE,GAAAmoF,GAAFnoF,MAAE,IAAFA,MAAE,OAAA4C,GAAA42qC,gBAAFx5qC,MAAE,GAAFA,MAAE,mBAAA4C,GAAA22qC,aAAFv5qC,CA8L03C,gBAAA4C,GAAA02qC,qBA9L13Ct5qC,MAAE,wBAAA4C,GAAAkyqC,WAAAlyqC,GAAA6yK,cAAAs//B,eAAF/0qC,CA8L60C,qBAAA4C,GAAAoyqC,eA9L70Ch1qC,CA8L60C,qBAAA4C,GAAAqyqC,kBA9L70Cj1qC,CA8L60C,eAAA4C,GAAAqyqC,mBAAAryqC,GAAAsyqC,aA9L70Cl1qC,MAAE,GAAFA,MAAE,OAAA4C,GAAAy2qC,SAAFr5qC,MAAE,GAAFA,MAAE,QAAA4C,GAAAq2qC,SAAFj5qC,CA8Lm/D,QAAA4C,GAAAu2qC,QAAA,KA9Ln/Dn5qC,CA8Lm/D,SAAA4C,GAAAu2qC,QAAA,KA9Ln/Dn5qC,CA8Lm/D,MAAA4C,GAAAm6qC,YA9Ln/D/8qC,MAAE,UAAA4C,GAAAs2qC,aAAFl5qC,MAAE,GAAFA,MAAE,QAAA4C,GAAAmzqC,YAAF/1qC,CA8L8nE,WAAAwjF,IA9L9nExjF,MAAE,GAAFA,MAAE,MAAA4C,GAAAo6qC,QAAFh9qC,CA8LkiF,QAAA4C,GAAAm8yB,WA9LliF/+yB,MAAE,UAAA4C,GAAA62qC,cAAFz5qC,MAAE,GAAFA,MAAE4C,GAAA2a,MAAFvd,MAAE,GAAFA,MAAE,QAAA4C,GAAAm2qC,QAAA,KAAF/4qC,CA8LkjG,SAAA4C,GAAAm2qC,QAAA,KA9LljG/4qC,CA8LkjG,QAAA4C,GAAAg2qC,SA9LljG54qC,CA8LkjG,UAAA4C,GAAAi2qC,YA9LljG74qC,MAAE,wBAAA4C,GAAAkyqC,WAAAlyqC,GAAA6yK,cAAAs//B,eAAF/0qC,CA8Lm1F,qBAAA4C,GAAAk3qC,eA9Ln1F95qC,CA8Lm1F,qBAAA4C,GAAAi6qC,kBA9Ln1F78qC,CA8Lm1F,eAAA4C,GAAAi6qC,mBAAAj6qC,GAAAsyqC,aA9Ln1Fl1qC,MAAE,UAAA4C,GAAAk2qC,aAAF94qC,MAAE,GAAFA,MAAE,QAAA4C,GAAA0zqC,YAAFt2qC,CA8LqrG,WAAAmoF,GAAD,CAAC,EAAAnG,aAAA,CAAi9wB2B,KAAiFA,KAA2EA,KAA0GA,MAAmB0I,OAAA,s6jCAAAzI,gBAAA,IA/K9/3Bw4lC,EAAoB,KA6RpB130B,GAAiB,MAAvB,MAAMA,GAMF17G,eAAei07B,IACX,MAAO,CACHp82B,SAAU6jC,GACV5jC,UAAW,CACP,CACI36T,QAASuzqC,GACT780B,SAAUog1B,KAI1B,EAEJv40B,UAAkBr6V,UAAI,SAAApI,IAAA,WAAAA,IAAwFyiW,GAAiB,EAC/HA,GAAkBtiR,UA/TmFpiF,MAAE,CAAA6nB,KA+TQ68U,KAC/GA,GAAkBriR,UAhUmFriF,MAAE,CAAAsiF,QAAA,CAgUqC,CAACC,SApBvImiR,EAAiB,KAiCmB,IAAIz6D,MAAe,kCA8GrB,IAAIA,MAAe,gEC7lC3D,SAAAiz4B,EAAA7zW,EAAAvhtB,EAAAC,EAAA4xE,EAAAwj/B,EAAA71qC,EAAA4qJ,IACA,IACA,IAAA+4F,GAAAo+kB,EAAA/h0B,GAAA4qJ,IACAxsJ,GAAAulP,GAAAvlP,KACA,OAAI2X,IAEJ,YADA0qG,EAAA1qG,GAEA,CACA4tO,GAAA5uC,KACAv0F,EAAApiH,IAEAmiH,QAAAC,QAAApiH,IAAA0hH,KAAAuyE,EAAAwj/B,EAEA,CACe,SAAA717B,EAAAl/O,GACf,kBACA,IAAA+oJ,EAAAxrJ,KACAmqB,EAAAu0D,UACA,WAAAwjC,QAAA,SAAAC,EAAAC,GACA,IAAAshtB,EAAAjh0B,EAAAgxJ,MAAAjI,EAAArhI,GACA,SAAA6pK,GAAAj0L,IACAw3qC,EAAA7zW,EAAAvhtB,EAAAC,EAAA4xE,GAAAwj/B,GAAA,OAAAz3qC,GACA,CACA,SAAAy3qC,GAAA71jC,IACA41jC,EAAA7zW,EAAAvhtB,EAAAC,EAAA4xE,GAAAwj/B,GAAA,QAAA71jC,GACA,CACAqyE,QAAA,EACA,EACA,CACA,mDC7Be,SAAA62I,EAAA1rT,GAGf,OAAA0rT,EAAA,mBAAAC,QAAA,iBAAAA,OAAAllK,SAAA,SAAAzmJ,GACA,cAAAA,CACA,EAAI,SAAAA,GACJ,OAAAA,GAAA,mBAAA2rT,QAAA3rT,EAAA/iB,cAAA0uU,QAAA3rT,IAAA2rT,OAAAvjU,UAAA,gBAAA4X,CACA,GAAGA,EACH,CCPe,SAAA6vU,EAAA7vU,EAAAxd,EAAA5B,GACf,OAAA4B,ECAe,SAAA81qC,EAAAlrhC,GACf,IAAA5qJ,ECFe,SAAA+1qC,EAAA18oC,EAAA28oC,GACf,GAAa,WAAP9s2B,EAAO7vS,IAAA,OAAAA,EAAA,OAAAA,EACb,IAAA48oC,EAAA58oC,EAAA8vS,OAAA/kK,aACA,YAAA6xgC,EAAA,CACA,IAAA90jC,EAAA80jC,EAAA14pC,KAAA8b,EAAA28oC,GAAA,WACA,GAAe,WAAP9s2B,EAAO/nN,GAAA,OAAAA,EACf,UAAAz8F,UAAA,gDAEA,kBAAAsxpC,EAAAz2qC,OAAAytE,QAAA3zC,EACA,CDPY08oC,CAAWnrhC,EAAA,UACvB,MAAgB,WAAPs+K,EAAOlpU,KAAAT,OAAAS,EAChB,CDHQ81qC,CAAa91qC,MACrBwd,EACAxY,OAAAmnJ,eAAA3uI,EAAAxd,EAAA,CACA5B,QACAgsU,YAAA,EACAr9K,cAAA,EACA4hU,UAAA,IAGAnxc,EAAAxd,GAAA5B,EAEAof,CACA,8GGiBO,IAAAigK,EAAA,WACP,OAAAA,EAAAz4K,OAAAquJ,QAAA,SAAA14J,IACA,QAAA2J,GAAAN,GAAA,EAAAd,GAAA65E,UAAAt7E,OAA+CuC,GAAAd,GAAOc,KAEtD,QAAA8G,MADAxG,GAAAy4E,UAAA/4E,IACAgB,OAAAY,UAAA6S,eAAA8E,KAAAjZ,GAAAwG,MAAAnQ,GAAAmQ,IAAAxG,GAAAwG,KAEA,OAAAnQ,EACA,EACA8iL,EAAA3rB,MAAAzzJ,KAAA0+E,UACA,EA0EO,SAAA4oyB,GAAA35tB,GAAAkqhC,GAAA3/pC,GAAA4/pC,IAEP,WAAA5/pC,QAAAgqG,UAAA,SAAAC,GAAAC,IACA,SAAA21jC,GAAAh4qC,IAAkC,IAAMkyH,GAAA6ljC,GAAAl2qC,KAAA7B,IAAA,OAA+BV,IAAY+iH,GAAA/iH,GAAA,EACnF,SAAAkmE,GAAAxlE,IAAiC,IAAMkyH,GAAA6ljC,GAAAj9+B,MAAA96L,IAAA,OAAmCV,IAAY+iH,GAAA/iH,GAAA,EACtF,SAAA4yH,GAAA70B,IAA8BA,GAAAs5G,KAAAv0F,GAAA/kB,GAAAr9F,OAJ9B,SAAA8rwB,GAAA9rwB,IAA0B,OAAAA,cAAAmY,GAAAnY,GAAA,IAAAmY,GAAA,SAAAiqG,IAA+DA,GAAApiH,GAAA,EAAiB,CAI5E8rwB,CAAAzuqB,GAAAr9F,OAAA0hH,KAAAs2jC,GAAAxymC,GAAA,CAC9B0sD,IAAA6ljC,MAAArkhC,MAAA9F,GAAAkqhC,IAAA,KAAAj2qC,OACA,EACA,CAqGO,SAAA2t3B,GAAAnp3B,IACP,OAAApG,gBAAAuv3B,IAAAvv3B,KAAAoG,KAAApG,MAAA,IAAAuv3B,GAAAnp3B,GACA,CAEO,SAAAip3B,GAAA1huB,GAAAkqhC,GAAAC,IACP,IAAAht2B,OAAArlK,cAAA,UAAAp/I,UAAA,wCACA,IAAA1gB,GAAAsK,GAAA6nqC,GAAArkhC,MAAA9F,GAAAkqhC,IAAA,IAAAhoqC,GAAA,GACA,OAAAlK,GAAA,GAAeqyqC,GAAA,QAAAA,GAAA,SAAAA,GAAA,UAAAryqC,GAAAmlU,OAAArlK,eAAA,WAAuF,OAAAzlK,IAAA,EAAc2F,GACpH,SAAAqyqC,GAAAnzqC,IAAqBoL,GAAApL,MAAAc,GAAAd,IAAA,SAAAuB,IAAgC,WAAA87G,QAAA,SAAA17G,GAAAiB,IAAqCoI,GAAAkP,KAAA,CAAAla,GAAAuB,GAAAI,GAAAiB,KAAA,GAAAwqM,GAAAptM,GAAAuB,GAAA,EAA2C,GACrI,SAAA6rM,GAAAptM,GAAAuB,IAA0B,KAC1B,SAAA6rH,GAAA3sH,IAAqBA,GAAAvF,iBAAAwv3B,GAAArtwB,QAAAC,QAAA78G,GAAAvF,MAAAqG,GAAAq7G,KAAAw2jC,GAAA71jC,IAAA81jC,GAAAroqC,GAAA,MAAAvK,GAAA,CADW2sH,CAAAhiH,GAAApL,IAAAuB,IAAA,OAAiB/G,IAAY64qC,GAAAroqC,GAAA,MAAAxQ,GAAA,EAE7D,SAAA44qC,GAAAl4qC,IAA4BkyM,GAAA,OAAAlyM,GAAA,CAC5B,SAAAqiH,GAAAriH,IAA2BkyM,GAAA,QAAAlyM,GAAA,CAC3B,SAAAm4qC,GAAAxkqC,GAAAtN,IAA0BsN,GAAAtN,IAAAyJ,GAAA63N,QAAA73N,GAAAzM,QAAA6uM,GAAApiM,GAAA,MAAAA,GAAA,OAC1B,CAQO,SAAA032B,GAAApj2B,IACP,IAAA2mT,OAAArlK,cAAA,UAAAp/I,UAAA,wCACA,IAAA1gB,GAAAwB,GAAAgd,GAAA2mT,OAAArlK,eACA,OAAAt+J,MAAA+X,KAAAiF,QAhFO,SAAAihsB,GAAAjhsB,IACP,IAAAle,GAAA,mBAAA6kU,eAAAllK,SAAAz+J,GAAAlB,IAAAke,GAAAle,IAAAN,GAAA,EACA,GAAAwB,GAAA,OAAAA,GAAA+X,KAAAiF,IACA,GAAAA,IAAA,iBAAAA,GAAA/gB,OAAA,OACAxB,KAAA,WACA,OAAAuiB,IAAAxe,IAAAwe,GAAA/gB,SAAA+gB,QAAA,GACA,CAAmBpkB,MAAAokB,OAAAxe,MAAA+wM,MAAAvyL,GACnB,GAEA,UAAAkC,UAAApgB,GAAA,4DACA,CAsEAm/sB,CAAAjhsB,IAAAxe,GAAA,GAAyGqyqC,GAAA,QAAAA,GAAA,SAAAA,GAAA,UAAAryqC,GAAAmlU,OAAArlK,eAAA,WAAuF,OAAAzlK,IAAA,EAAc2F,IAC9M,SAAAqyqC,GAAAnzqC,IAAqBc,GAAAd,IAAAsf,GAAAtf,KAAA,SAAAuB,IAA8B,WAAA87G,QAAA,SAAAC,GAAAC,KACnD,SAAA81jC,GAAA/1jC,GAAAC,GAAA71G,GAAAnG,IAA2C87G,QAAAC,QAAA/7G,IAAAq7G,KAAA,SAAAr7G,IAAsC+7G,GAAA,CAAUpiH,MAAAqG,GAAAswM,KAAAnqM,IAAmB,EAAI61G,GAAA,CADf81jC,CAAA/1jC,GAAAC,IAAAh8G,GAAA+d,GAAAtf,IAAAuB,KAAAswM,KAAAtwM,GAAArG,MAAA,EAAwD,EAE3J,CAgEA,mBAAAo4qC","names":["i0","ctx_r0","className","ctx_r1","ctx_r2","ctx_r3","ctx_r4","ctx_r5","ctx_r6","ctx_r7","ctx_r8","ctx_r9","ctx_r10","ctx_r11","ctx_r12","ctx_r13","ctx_r14","ctx_r15","ctx_r16","ctx_r17","ctx_r18","ctx_r19","ctx_r20","ctx_r21","ctx_r22","ctx_r23","ctx_r24","ctx_r25","ctx_r26","ctx_r27","CategoryIconsComponent","constructor","ngOnInit","t","_angular_core__WEBPACK_IMPORTED_MODULE_0__","Xpm","selectors","inputs","expenseCategoryId","decls","vars","consts","template","rf","ctx","CategoryIconsComponent__svg_svg_0_Template","CategoryIconsComponent__svg_svg_1_Template","CategoryIconsComponent__svg_svg_2_Template","CategoryIconsComponent__svg_svg_3_Template","CategoryIconsComponent__svg_svg_4_Template","CategoryIconsComponent__svg_svg_5_Template","CategoryIconsComponent__svg_svg_6_Template","CategoryIconsComponent__svg_svg_7_Template","CategoryIconsComponent__svg_svg_8_Template","CategoryIconsComponent__svg_svg_9_Template","CategoryIconsComponent__svg_svg_10_Template","CategoryIconsComponent__svg_svg_11_Template","CategoryIconsComponent__svg_svg_12_Template","CategoryIconsComponent__svg_svg_13_Template","CategoryIconsComponent__svg_svg_14_Template","CategoryIconsComponent__svg_svg_15_Template","CategoryIconsComponent__svg_svg_16_Template","CategoryIconsComponent__svg_svg_17_Template","CategoryIconsComponent__svg_svg_18_Template","CategoryIconsComponent__svg_svg_19_Template","CategoryIconsComponent__svg_svg_20_Template","CategoryIconsComponent__svg_svg_21_Template","CategoryIconsComponent__svg_svg_22_Template","CategoryIconsComponent__svg_svg_23_Template","CategoryIconsComponent__svg_svg_24_Template","CategoryIconsComponent__svg_svg_25_Template","CategoryIconsComponent__svg_svg_26_Template","CategoryIconsComponent_img_27_Template","ActivatePlusIconComponent","CalendarComponent","DeactivateMinusIconComponent","LogIconComponent","param","BlockCutCopyPasteDirective","blockPaste","e","preventDefault","blockCopy","blockCut","blockDrop","lG2","hostBindings","$event","MinDirective","min","value","this","_validator","Validators","parseFloat","validate","control","_angular_core__WEBPACK_IMPORTED_MODULE_1__","features","provide","NG_VALIDATORS","useExisting","forwardRef","multi","MaxDirective","max","NumericDirective","check","decimals","String","match","RegExp","regExpString","el","specialKeys","onKeyDown","event","indexOf","key","next","nativeElement","concat","FileDirective","element","onChange","_","onTouched","inputElement","file","files","writeValue","registerOnChange","fn","registerOnTouched","handleChange","handleTouched","target","NG_VALUE_ACCESSOR","MarkAsteriskDirective","renderer","parent","parentNode","getElementsByClassName","length","innerHTML","getAttribute","dynamicDigitBeforeAndDynamicDigitAfterDecimalNumberDirective","regex","beforeDecimal","afterDecimal","current","position","selectionStart","slice","join","TwoDigitDecimaNumberDirective","CanDeactivateGuard","alertService","canDeactivate","component","onFormClosed","getUserActionEvent","i1","Yz7","factory","ɵfac","BI_RM","int2char","n","charAt","op_and","x","y","op_or","op_xor","op_andnot","lbit","r","cbit","b64map","hex2b64","h","i","c","ret","parseInt","substring","b64tohex","s","k","slop","v","decoder","Base64","decode","a","undefined","ignore","Object","create","out","bits","char_count","Error","re","unarmor","m","exec","Int10","buf","prototype","mulAdd","b","l","sub","pop","toString","base","valueOf","simplify","reTimeS","reTimeL","stringCut","str","len","dbits","Stream","enc","pos","hexDigits","get","charCodeAt","hexByte","hexDump","start","end","raw","isASCII","parseStringISO","fromCharCode","parseStringUTF","parseStringBMP","hi","lo","parseTime","shortYear","parseInteger","neg","pad","parseBitString","maxLength","unusedBit","intro","skip","j","parseOctetString","parseOID","ASN1","stream","header","tag","ASN1Tag","typeName","tagClass","tagNumber","content","Infinity","posContent","Math","abs","isUniversal","toPrettyString","indent","tagConstructed","posStart","posEnd","toHexString","decodeLength","getHexStringValue","substr","streamStart","getSub","isEOC","lowprimes","lplim","BigInteger","fromNumber","fromString","negate","toRadix","d","km","p","DB","nbi","ZERO","subTo","compareTo","bitLength","nbits","DM","mod","divRemTo","modPowInt","z","isEven","Classic","Montgomery","exp","clone","copyTo","intValue","DV","byteValue","shortValue","signum","toByteArray","equals","and","bitwiseTo","or","xor","andNot","not","shiftLeft","rShiftTo","lShiftTo","shiftRight","getLowestSetBit","bitCount","testBit","floor","setBit","changeBit","clearBit","flipBit","add","addTo","subtract","multiply","multiplyTo","divide","remainder","divideAndRemainder","q","modPow","nbv","Barrett","g","k1","convert","g2","sqrTo","mulTo","w","is1","r2","revert","modInverse","ac","u","ONE","pow","NullExp","gcd","isProbablePrime","modInt","millerRabin","fromInt","fromRadix","mi","sh","intAt","clamp","dlShiftTo","drShiftTo","bs","cbs","bm","ds","am","squareTo","pm","pt","ts","ms","nsh","ys","y0","yt","F1","F2","d1","FV","d2","qd","invDigit","chunkSize","LN2","log","cs","dMultiply","dAddOffset","nextBytes","op","f","multiplyLowerTo","multiplyUpperTo","n1","random","square","gcda","callback","gcda1","setTimeout","fromNumberAsync","bnp_1","bnpfn1_1","reduce","mp","mpl","mph","um","mt2","u0","q3","mu","parseBigInt","inBrowser","navigator","appName","xl","xh","rr","vv","BI_RC","rng_state","rng_pptr","Arcfour","S","init","rng_pool","window","crypto","getRandomValues","Uint32Array","count","onMouseMoveListener_1","ev","removeEventListener","detachEvent","addEventListener","attachEvent","rng_get_byte","prng_newstate","SecureRandom","ba","RSAKey","dmp1","dmq1","coeff","doPublic","doPrivate","xp","xq","setPublic","N","E","console","error","encrypt","text","pkcs1pad2","rng","setPrivate","D","setPrivateEx","P","Q","DP","DQ","C","generate","B","qs","ee","p1","q1","phi","decrypt","ctext","pkcs1unpad2","generateAsync","rsa","loop1","loop4","loop3","loop2","sign","digestMethod","digestName","getDigestHeader","name","DIGEST_HEADERS","pkcs1pad1","filler","verify","signature","digest","removeDigestHeader","name_1","hasOwnProperty","replace","md2","md5","sha1","sha224","sha256","sha384","sha512","ripemd160","YAHOO","lang","extend","subc","superc","overrides","F","superclass","_IEEnumFix","ADD","test","userAgent","fname","KJUR","asn1","ASN1Util","integerToByteHex","bigIntToMinTwosComplementsHex","bigIntegerValue","xorLen","hMask","getPEMStringFromHex","dataHex","pemHeader","hextopem","newObject","_KJUR_asn1","_DERBoolean","DERBoolean","_DERInteger","DERInteger","_DERBitString","DERBitString","_DEROctetString","DEROctetString","_DERNull","DERNull","_DERObjectIdentifier","DERObjectIdentifier","_DEREnumerated","DEREnumerated","_DERUTF8String","DERUTF8String","_DERNumericString","DERNumericString","_DERPrintableString","DERPrintableString","_DERTeletexString","DERTeletexString","_DERIA5String","DERIA5String","_DERUTCTime","DERUTCTime","_DERGeneralizedTime","DERGeneralizedTime","_DERSequence","DERSequence","_DERSet","DERSet","_DERTaggedObject","DERTaggedObject","_newObject","keys","paramList","asn1Obj","push","array","tagParam","call","obj","explicit","newParam","jsonToASN1HEX","getEncodedHex","oidHexToInt","hex","i01","binbuf","bin","oidIntToHex","oidString","itox","roidtox","roid","padLen","bPad","b8","split","splice","ASN1Object","getLengthHexFromValue","hV","hN","hNlen","hTLV","isModified","getFreshValueHex","hL","hT","getValueHex","DERAbstractString","params","getString","setString","newS","stohex","setStringHex","newHexString","DERAbstractTime","localDateToUTC","utc","getTime","getTimezoneOffset","Date","formatDate","dateObject","type","withMillis","zeroPadding","year","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","millis","getMilliseconds","sMillis","Array","setByDateValue","month","day","hour","sec","UTC","setByDate","DERAbstractStructured","setByASN1ObjectArray","asn1ObjectArray","asn1Array","appendASN1Object","asn1Object","setByBigInteger","setByInteger","bi","setValueHex","bigint","int","o","setHexValueIncludingUnusedBits","newHexStringIncludingUnusedBits","setUnusedBitsAndHexValue","unusedBits","hValue","hUnusedBits","setByBinaryString","binaryString","setByBooleanArray","booleanArray","newFalseArray","nLength","toLowerCase","setValueOidString","setValueName","oidName","oid","x509","OID","name2oid","date","sortFlag","sort","sortflag","isExplicit","setASN1Object","isExplicitFlag","tagNoHex","_a","extendStatics","__extends","setPrototypeOf","__proto__","TypeError","__","JSEncryptRSAKey","_super","_this","parseKey","hasPrivateKeyProperty","hasPublicKeyProperty","parsePropertiesFrom","pem","modulus","public_exponent","der","Hex","private_exponent","prime1","prime2","exponent1","exponent2","coefficient","sequence","getPrivateBaseKey","options","getPrivateBaseKeyB64","getPublicBaseKey","first_sequence","second_sequence","bit_string","getPublicBaseKeyB64","wordwrap","width","getPrivateKey","getPublicKey","version","process","env","npm_package_version","JSEncrypt","default_key_size","default_public_exponent","setKey","warn","setPrivateKey","privkey","setPublicKey","pubkey","getKey","cb","getPrivateKeyB64","getPublicKeyB64","RSAHelper","Encrypt","stringToEncrypt","Decrypt","stringToDecrypt","NoCommaPipe","transform","val","Yjl","pure","DateFormatPipe","DatePipe","args","super","Constants","DATE_FMT","_angular_core__WEBPACK_IMPORTED_MODULE_2__","TimeFormatPipe","TIME_FMT","TimeFormatPipeNew","TIME_FMT_HHmm","MonthFormatPipe","MONTH_FMT","EODDateFormatPipe","EODDATE_FMT","GrdFilterPipe","items","filter","defaultFilter","isArray","filterKeys","item","keyName","some","OrderByPipe","values","reverse","isInside","getValue","object","SafeUrlPipeline","sanitizer","bypassSecurityTrustResourceUrl","setHeader","claimsService","orgId","userId","currentClaims","subscribe","claims","authorizationHeader","defaultParams","DefaultParams","FinanceManager","environment","requestTimeStamp","deviceInfo","DeviceInfo","organisationCurrency","platform","appVersion","appId","deviceId","detectBrowserName","detectBrowserVersion","logintoken","localStorage","getItem","HttpHeaders","Authorization","JSON","stringify","apimSubscriptionKey","apimTraceEnabled","agent","opr","chrome","tem","matchTest","_angular_core__WEBPACK_IMPORTED_MODULE_4__","DashBoardAPI","DashboardDataRequest","FCGetReportResponse","fcGetReportList","fcReceiptResponseList","FCReceiptResponse","nrfcReceiptInfo","nrfcJustificationNotesViewModel","FuelCardDetails","NRReceiptResponse","NRGetDashboardClaimaintResponse","NRDashboardReceiptResponse","NRGetDashboardClaimaintDetail","ClaimantListForNRFCApproval","NRFCConfigModel","orgVehicles","nrFCStatusEnum","NRFCStatusEnum","expenseStatusEnum","ExpenseStatusEnum","functionPackageEnum","FunctionPackageEnum","isOwnershipEditing","taxRateMasterResponse","orgVehiclesNRFCResponse","OrgVehiclesNRFCResponse","vehicleTypeSummary","noOfRecords","employeeList","nrClaimantList","nrReceiptGetList","fcReceiptGetList","nrReceiptResponse","fcReceiptResponse","nrDashboardResponse","fcGetReportResponse","nrCompliantEnum","NRCompliantEnum","fromDate","toDate","datePickerOptionsFromDate","mode","defaultDate","maxDate","altInput","altFormat","dateFormat","datePickerOptionsToDate","datePickerOptions","nrDashboardReceiptResponse","nrDashboardReceiptList","nrGetDashboardClaimaintDetail","claimantListForNRFCApproval","fcClaimantList","AllFilterValuesSelected","ShowSidePanel","ClaimantSelected","newAttribute1","WorkflowRequest","expenseIds","MileageWizardRequestDto","OrgUKMileageRateInfo","OrgOwnershipTypeInfo","CloseFormAction","FunctionDetail","FunctionId","CurrencyId","SelectExpenseCategoryPopupModel","policyViolationForFM","CreateExpenseSubmitModel","ClaimantExpenseListRequest","expenseStatus","sortColumn","pageNo","sortOrder","searchText","isFirstLoad","skipRecords","isUnreportedExpenses","containerId","SelectForignCurrencyPopupModel","baseCurrencyIcon","RecentTagsRequest","SelectTagsPopupModel","ExpenseStatus","expenseId","UpdateExpenseRequest","action","expenseInfo","isReceiptNewExpense","SelectPreApprovalTagPopupModel","PreApprovalBaseRequest","organisationId","SelectBusinessPurposePopupModel","SelectVehicleModel","ExpenseDetailsPanelModel","ExpenseDetailsActionTakenModel","actionId","actionResult","ClaimantExpenseDetail","approverAsCA","SelectStatesPopupModel","SelectCustomerPopupModel","SelectProjectPopupModel","ViewVoiceMemoInputModel","memoFileName","memoUrl","PolicyViolationInputModel","expenseCategoryName","baseCategoryId","justificationNotes","disableJustificationNotes","expenseDetailResponse","CreateExpenseInputModel","DismissCreditCardExpenseInputModel","DismissCreditCardExpenseOutputModel","AssociateCreditCardExpenseInputModel","AssociateCreditCardExpenseOutputModel","RecentJourneysRequest","ExpenseRequest","requestData","receiptFiles","ReceiptSaveRequest","ReceiptsInfo","ReceiptLocationInfo","ExpenseMergeInputModel","mergeExpenseIds","ExpenseMergePanelOutputModel","selectedExpenseIds","tagsList","receiptList","voiceMemoList","notesList","GetReceiptExpensesWithAttachmentRequest","ResourceMileageDetailsRequest","orgID","fromLocation","toLocation","orgExpenseCategoryId","MileageForSaveExpense","Mileage","SelectDetourInputModel","SelectDetourOutputModel","SelectRecentJourneyInputModel","SelectRecentJourneyOutputModel","SelectCostCentrePopupModel","SelectLocationPopupModel","SelectReceiptTypePopupModel","MileageData","SourceDestinationRequest","MileageAllowance","CalculateMileageRequest","CalculateMileageResponse","MileageDetailList","MileageMultipleDateDetails","SourceDestinationResponse","NRDetailRequest","MultipleLegsAddJourneyFormModel","isEditMode","isFromLocationDisabled","MultipleLegsPopupModel","isMultipleVehiclePurchase","PreviewOutputModel","AmendedExpenseDetailsPanelInputModel","ReceiptOutputModel","ClaimantAmendedExpenseDetailsRequest","DeleteReceiptShortRequest","NRReceiptSaveRequest","FCReceiptRequest","UserCustomSetting","SaveUserCustomSettingRequest","userCustomSettings","HistoricalJustificationInputModel","CreditCardExpenseInfoInputModel","ExpensePolicyInputModel","ExpenseDashboardDetailsRequest","OtherExpenseDetailsModel","ExpenseCategoryRequest","ExpenseCategoryRequestInfo","ExpenseCategoryInExpenseRequest","EmailModel","keyValuePairs","LoggingPanelModel","functionId","FilterType","MileageFilterType","EntityFilterType","OrgSubscription","UpdateOrganisationSubscriptionInvoiceStatusRequest","AlertPanelModel","showPanel","title","message","btnCancelToolTipText","btnOkToolTipText","showReviewConfirmContinuePanel","showReviewConfirmContinuePanelText","htmlMessage","btnArray","BackgroundTask","topic","input","allItemIds","notificationHeader","notificationBody","route","privilegeId","userName","BackgroundTaskStatusEnum","NotStarted","InProgress","Success","PartialSuccess","Failed","Claims","OrgLogo","IsFinanceManager","TwoStepApproval","MenuSettings","expensesPendingPayment","pendingForFinanceApproval","pendingAllForPayment","pendingExpensesForPayment","accountingSystemId","accountingSystemType","CartCount","IsRedirectFromCart","IsOnboardingCompleted","IsAccountingIntegrationPackagePurchasedOrTrial","IsAttendeeTypePurchased","IsCreditCardPackageSubscribed","IsPackagePurchasedOrTrial","showGooglePackagePurchaseReminder","googlePackagePurchaseReminderThreshold","IsSocialMediaUser","IsMarqueeOn","IsCostCentrePackagePurchasedOrTrial","IsOrgBasicFunctionTrialEndsReminder","IsOrgBasicFunctionTrialEndsAlert","IsCustomerPackagePurchasedOrTrial","IsExportReportPackagePurchasedOrTrial","IsExpenseCategoryPackagePurchasedOrTrial","IsTaxPackagePurchasedOrTrial","IsMultipleCompaniesPackagePurchasedOrTrial","IsProjectBudgetPurchasedOrTrial","pendingCountNRFinanceApproval","pendingCountNRApprover","pendingExpenseCountApprover","isNRPackagePurchasedOrTrial","ShowPendingDeputyPanel","isFCPackagePurchasedOrTrial","pendingCountFCFinanceApproval","pendingCountFCApprover","ShowPendingEmployeeWithGradePanel","CompanyApproverRule","IsLocationPurchasedOrTrial","isClaimOnWebAllowed","RateType","IsSecondaryFMPackagePurchasedOrTrial","IsAssignDeputyToApproversPurchased","IsClaimantWiseMonthlyCappingEnabled","IsClaimantWiseYearlyCappingEnabled","IsSupplierPurchasedOrTrial","IsDocPackagePurchasedOrTrial","IsLeaveManagementAllowed","showCostCentresWithoutApproverCount","isUniversalImportAllowed","IsMultipleCountryPackagePurchasedOrTrial","IsDuplicateCheckerPurchasedOrTrial","orgRoleId","isPreApprovalPurchased","pendingCountPreApproval","pendingExpensesWithApprover","isAdvanceBalanceOutstanding","isAdvancesFunctionPurchasedOrTrial","IsCashAdvanceEnabled","IsCreditCardAdvanceEnabled","advanceCappingPolicyType","pendingAdvancesForApproval","pendingAdvancesForPayment","pendingAdvanceForFinanceApproval","isMultiAccSysIntAllow","isPolicyOnVehicleChange","showCompliancePopup","isStripPaymentFailed","IsDelegator","IsDelegate","IsDelegateFunctionPurchasedOrTrial","isAPAutomationFunctionPurchasedOrTrial","pendingCountInvoiceApproval","pendingCountInvoiceFinanceApproval","pendingCountInvoicePay","IsCounterApproverPurchased","IsVendorPurchased","IsKYCMandatoryForInvoice","IsAPAutomationAllow","nrfcStatus","BandId","isBasicFunctionPurchased","IsPayStepEnabled","IsLeftMenuCollapseAndStopToggle","IsRecallExportedExpensesPurchased","IsContainerEnabled","IsSpecialCategoryFunctionPurchasedorTrial","IsAutomaticScanEnabled","ManageCCOptions","IsFaceIdRegistered","IsContainerPurchasedOrTrial","IsCfpEnabled","EmailSendRequest","templateName","GridConfig","hideFilters","isInsidePanel","defaultSortColumn","rowKey","statusValue","enableRowSelection","countByStatus","suppressCellSelection","suppressRowClickSelection","isCheckAllAllowed","gridTitle","defaultSortOrder","rowHeight","noDataMessage","headerHeight","rowClassRules","isHoverRowColumnHighlight","suppressRowHoverHighlight","searchBarClass","gridWrapperClass","columnHoverHighlight","gridHeaderMessage","dataFilterValue","dataFilterTitle","gridTitleClass","CountByStatus","label","isClickEvent","EmployeeStatusEnum","Active","Inactive","NotInvited","Pending","Delete","UserTypeEnum","Claimant","Approver","Agent","Vendor","MarketingPopup","description1","description2","description3","image1","image2","tooltip","functionPackageId","functionPackageName","packagePath","dependentFunctionId","dependentFunction2Id","descListHeader","descList","descListFooter","NotificationGroup","headerText","notifications","unreadCount","isUnread","NotificationActionType","Redirect","ShowPanel","BackgroundJob","ApiRequest","webApiName","webApiVersion","requestId","TimeZoneInfo","languageCode","applicationVersion","browser","bVersion","PagingDetail","SoloCheckFuncPurchaseListRequest","Wizard","WizardResponse","wizardRequestConfig","WizardDetailRequest","ContainerTurnOnSettingRequest","ContainerListRequest","SelectContainerInputModel","SelectContainerOutputModel","ContainerRequest","ContainerFormModel","AddContainerInputModel","AddContainerOutputModel","DeleteContainerRequest","ExpenseContainerListRequest","UpdateContainerRequest","MoveContainerExpenseInputModel","MoveExpensesToContainerRequest","ApproverContainerListRequest","ContianerPolicyInputModel","RequestCostCentre","costCentreId","costCentreName","costCentreCode1","costCentreCode2","replacementDate","newCostCentreName","newCostCentreCode1","newCostCentreCode2","status","createdBy","createdDate","modifedBy","modifiedDate","createdByName","SaveCostCentreApproverRequest","costCentreApproverMap","AssignCostCentreApprover","approverId","approverName","RequestCostCentreByOrg","pageNumber","RequestDeactiveCostCentre","CostCentreStatusEnum","RequestSaveCCDisplaySetting","RequestGetCostCentreListForAssignEmployee","CostCentreMappedEmployeeList","employeeIds","RequestBulkDeactiveCostCentre","costCentreIds","modifiedBy","isBulkDeleteAction","CSVRecordExport","CardImportTemplateSaveRequest","CardRulesImportSaveRequest","CardRulesEmailReminderSaveRequest","CardRulesFinancialYearSaveRequest","CardUserAssignmentListRequest","CardUserAssignmentRequest","cardUserAssignmentId","employeeId","cardNumber","isActive","createdOn","updatedBy","updatedOn","CUACsvRecord","CSVRecordSampleCCImportTemplateExport","CSVTransactionTemplate","DismissCardExpenseFormModel","DismissCardExpenseRequest","dismissJustificationNotes","ClaimantAssociatedExpenseListRequest","supplierName","FinancialYearRulesFormModel","EmailReminderRulesFormModel","ImportRulesFormModel","CardSaveSupervisoryActionRequest","SelectUserModel","supplier","amount","expenseDate","CcImportTemplateDetails","CcImportModel","CardTransactionObject","CardReviewUploadedTransactionsRequest","templateDetails","cardTransactions","CardImportTemplateSaveRequestModel","GoLiveWithCardFunctionRequest","CardImportTemplateDetailSaveDateFormatRequest","CardUserAssignmentFormModel","CardUserAssignmentFormOutputModel","filterStatus","CCPendingExpenseListPanelInputModel","cardOrganisationId","cardName","CardPendingExpenseRequest","CCAssignTransactionsPanelInputModel","expenseList","CCDashboardRequest","CCPendingTransactionInputModel","importId","CCPendingTransactionRequest","cardImportOriginalFileId","BulkImportAssignCreditCard","errors","errorsCount","BulkImportAssignCreditCardRequest","fmName","fmEmail","fmUserId","assignCreditCardList","ImportAssignCreditCardEditInputModel","CardUserAssignmentDetails","CCClaimantCreditCardListPanelInputModel","SaveUserCreditCardDetailsRequest","CreditCardDetails","CCImportedTransactionInputModel","importDate","CCImportedTransactionRequest","RequestGetCustomer","customerId","CustomerResponse","CustomerListRequest","RequestGetCustomersByOrgIdAndStatus","CustomerRequest","code1","code2","accountingSystemParameter","BulkActionOnCustomerRequest","customerIds","RequestGetCustomerHistory","CustomerModelError","customernameValidationMessage","customercode1ValidationMessage","CustomerCsvRecordExport","GetEmployeeForCustomerCostCentreRuleAssignmentRequest","EmployeeListForCustomerCostCentreRuleAssignmentResponse","AssignCustomerCostCentreAccessRuleToEmployeesRequest","AddUpdateCustomerModel","isActiveProject","CustomerFormModel","PolicyType","Overall","PerNight","PerPerson","ExpenseTimeLimit","DailyCap","MonthlyCap","YearlyCap","AutoApproval","Duplicate","Escalation","ControlType","CheckBox","Switch","Dropdown","BaseInformationType","DrivingLicense","Registration","MOT","Insurance","CarTax","ClaimantCCEnum","All","WithoutCostCentre","WithCostCentre","ClaimantGradeEnum","WithGrade","WithoutGrade","ReceiptEnum","View","NoReceipt","ClaimantEnum","WithDOC","WithoutDOC","MileageUOMEnum","Mile","Kilometre","ModeOfJourneyValue","Quickest","Shortest","VehicleTypeEnum","No_Vehicle","Four_Wheeler","Two_Wheeler","Private_Car","Company_Car","VehicleSubTypeEnum","Diesel","Petrol","Electric","Gas","Incomplete","IncompleteUPIExpense","PendingForSubmission","Rejected","PendingWithApprover","Approved","ApprovedForPayment","PassedForPayment","Exported","Archived","Deleted","IncompleteCardExpense","Dismissed","PendingWithCA","MileageRateTypeEnum","NoRateSelected","FreeForLife","SingleRate","DifferentialRate","MultipleRate","AssignRatetoGrade","TriangulationRuleValue","NoTriangulation","TakeLesserOf","TakeDifference","PaymentTypeEnum","Cash","PersonalCreditCard","DebitCard","Cheque","DemandDraft","CorporateCreditCard","UPI","Total","EntityType","CostCentre","Grade","CardUserAssignment","CardStatementImport","Customer","Location","CreditCardUserAssignmentEnum","Assigned","UnAssigned","InActive","GradeStatusEnum","BaseCategoryTypeEnum","MileageGPS","MileageGoogle","Hotel","Entertainment","Generic","Advance","SpecialCategory","NoReceiptCategory","AccountingSystemMasterEnum","Tally","Xero","QuickBooks","Sage50","Sage200","AccountingSystemTypeEnum","Realtime","NonRealtime","XeroExportedExpenseStatus","AwaitingApproval","AwaitingPayment","XeroExportExpensesAs","PurchaseBill","ExpenseClaims","AccountingSystemMasterModelEnum","XeroAccounts","XeroContacts","XeroTaxRate","XeroOrganisation","QuickBooksCompanyInfo","QuickBooksSipplier","QuickBooksAccounts","QuickBooksTaxCodes","QuickBooksTaxRates","QuickBooksVendors","XeroTrackingCategory","QuickBooksProjects","OrderBillingFunctionEnum","Trial","Purchase","VehicleStatusEnum","NoVehicle","Unauthorised","NoVehicleForGrid","MileageRateStatusEnum","FutureRate","Expired","UKRateConfigEnum","ActivateOwnerShip","ActiveRateEdit","FutureRateEdit","AddNewRate","AddNewOwnership","CopyRate","ImportExport","ExportFormatEnum","FreeExportFile","YesBankPaymentFile","EmailTemplateEnum","ActivationRequestWizard","ForgotPassword","DefaultPassword","AddUpdateExployee","SendSummaryEmail","SendInvitationEmail","SendForgotPassword","SendReminderEmail","SendExportedExpensesToCSV","InviteAFriendExisting","CategoryActiveReminder","SendYblRequest","AdvanceGenericEmail","ChangePassword","ExpenseSyncDataStatus","Fail","InQueue","FMRoleType","AllPrivilege","LimitedPrivilege","NoPrivilege","ApprovalRuleSetting","Manual","AutomaticA","AutomaticB","AutomaticC","AutomaticD","AutomaticE","FunctionPrivilege","SetupYourOrganisation","Currency","DeleteTestData","ManageEmployees","PreApprovals","SetupCreditCard","SetupCostCentre","ExpenseCategoryManagement","Advances","SetupGrade","SetupAdvancedMileage","SetupExpensePolicy","LiabilityReport","Customers","BusinessPurpose","TransferData","AdditionalFields","Vendors","DeputyForApprover","ProjectAndBudget","AuditTrail","ApproverHistoricalView","ReceiptwithMultipleVATRates","VATNoVATNoReceipt","NinetyDayRule","FinanceApprover","PassforPayment","Invoices","ConfigureAdministratorPrivilege","assigncategoriestograde","AssignDeputyToApprovers","EnterOutofOffice","SetupMultipleCompanies","OpenApi","AddAttendeeTypes","Supplier","LeaveManagement","MultipleCountry","CounterApprover","FxRate","Delegate","ApAutomation","ApproverKYCDocuments","CarbonFootprint","Container","ConfigureApprovalRule","BasicMileageRates","AssignVehicle_toClaimants","Pre_Approvals","SetupCostCentre_Assign_toClaimants","SetupTaxRate","SetupGradesAssign_toClaimants","SetupUKRates","Triangulation","Explore_YesPayBizPortal","Travel","Customer_Projects","SetupSingleRates","SingleRateAssignVehicleToClaimants","SetupDifferentialRates","DifferentialRateAssignVehicleToClaimants","AssignVehicleToClaimants","AccountingIntegration","DataTransferXERO","DataTransferQUICKBOOKS","DataTransferSAGE","DataTransferTALLY","ExportReport","ProjectBudget","ManualVat","VatNoVat","PerPersonLimit","PerNightLimit","ExpenseCappingDaily","ExpenseCappingMonthly","ExpenseCappingYearly","NonReimbursableFuel","FuelCard","assignRatetoGrade","DutyofCare","DutyofCareApproval","AttendeeType","UniversalImport","MultipleVehicle","PassengerLoadMiles","DataTransferSAGE200","DuplicateChecker","APAutomation","ApproveKYCDocuments","ReceiptsTransferXERO","AccessCharge","SingleSignOn","FMCanEditExpense","RecallExportedExpenses","OverallDailyLimit","ExpenseEscalation","ComplianceStatement","AntiFraud","YearEndRule","FunctionPackageTypeEnum","Both","Web","Mobile","DasboardExpenseStatusEnum","PendingFinanceApproval","PendingPassforPayment","PendingPreApprovalCountWithApprover","CustomerStatusEnum","CustomerRuleStatusEnum","Mandatory","NonMandatory","NotRequired","CustomerRuleEnum","AccountingIntegrationTrackingCategoryOption","TCCostCentre","TCCustomer","TCLocation","TCProject","WorkflowCurrentStatusEnum","Recall","GooglePackagePaymentBillingStatusEnum","CommonStatusEnum","Warning","BillingInvoiceForEnum","Subscription","GooglePackageService","PlaidPackageService","ReceiptTypeEnum","VATRecetpt","NoVATReceipt","ForeignReceipt","AttachmentTypeEnum","Image","Pdf","VoiceMemo","Other","ReferAndEarnRoleEnum","Reseller","BankAccountTypeEnum","Saving","Current","AgentFilterStatusEnum","ProjectBudgetEntityType","BudgetStatus","ProjectBudgetApprovalRule","NormalFlow","ProjectManagerFlow","ProjectManagerBillableApproverNonBillable","ProjectStatus","Closed","NoNRFC","NR","FC","Compliant","NonCompliant","CompanyStatusEnum","CategoryAccountingCodeRuleEnum","UseMasterCompanyAccountingCode","ManuallyEnterAccountingCode","CompanyApproverRuleEnum","NormalApprovalFlow","ApprovalFlowBasedOnCompanyConfiguration","SetupCompanyRulesFilterEnum","WithOneFinanceManager","WithTwoFinanceManagers","WithThreeFinanceManagers","WithMoreThanThreeFinanceManagers","CurrencyEnum","INR","GBP","EUR","AUD","USD","PKR","NPR","BDT","LKR","ClosedProjectType","AddBackUnspentMoney","ReduceProjectBudgetFromMainBudget","HandleManually","BillingTypeEnum","BasicFunction","PerFunction","PerTransaction","AssistedSupport","LogObjectActionEnum","Added","Updated","Activated","Deactivated","Enabled","Disabled","MasterDataSync","Selected","UnSelected","LogObjectActionTemplateEnum","ManageEmployee","Approver1stLevel","AssignGradetoClaimants","Approver2ndLevel","AssignGradetoCategory","AssignDeputies","SetupOutOfOffice","ExpenseSubmissionTimeLimit","PerPersonLimitEntertainment","PerNightLimitHotelandLodging","DuplicateRulePolicy","OverallDailyLimitPolicy","ExpenseEscalationSettingsPolicy","ExpenseCappingDailyPolicy","ExpenseCappingMonthlyPolicy","ExpenseCappingYearlyPolicy","AutoApprovalPolicy","SetupvatsRate","TaxRateWithComponenets","AssignTaxtoMultipleCategories","SetupCostCentreAssignToClaimants","AssignCostCentre","CustomerCostCentreProjectBudget","ProjectListing","CustomerUserRule","SetupCustomer","BusinessPurposeSetup","AdditionalField","AssignVehicletoClaimants","SetupDifferentialRatesOwnershipType","SetupUKRatesOwnershipType","AssignVehicletoMultipleClaimants","RegisterCard","SetupImportTemplate","SetupCreditCardRules","AssignCreditCardtoClaimant","AssignPrivilegestoapproverName","BuildNewReport","AssignApproverToCostCentres","AssignMileageRatetoGrade","TriangulationOfficeNameAddress","TriangulationSetupOfficeWorkers","FuelReceiptManagementFunction","TriangulationSetupHomeWorkers","ExpenseCappingMonthlyClaimantWisePolicy","ExpenseCappingYearlyClaimantWisePolicy","SetupSupplier","AssignSupplierRule","DutyofCareStep1","DutyofCareStep2","DutyofCareStep3","DutyofCareStep4","DutyofCareStep5","SetupLocation","AssignLocation","AccountingIntegrationSetup","AdvancesClaimantCappingPolicy","AdvancesGradeCappingPolicy","Discount","OrganisationDiscount","OrganisationDiscountContract","CostCentreDisplaySetting","AttendeeTypeFunction","AllowanceRate","AllowanceOwnershipMapping","ConfigureCompanyApprovalRule","AssignAccountingCodeToCompanyLog","AssignEmployeesToCompany","ComplianceStatementFunction","VatNoVatReceiptType","SetupDelegator","SetupDelegate","AssignDelegate","AssignCounterApprover","CounterApproverRule","AssignCounterApproverToCategory","FxRateStep1","FxRateStep3","TriangulationRule","PowerUserPreference","MileageStep5Rule","YearEndPolicy","NRUpdateFromDashboardByFM","DeputyPreference","FCUpdateFromDashboardByFM","PassengerPayEnabledForTriangulation","AdditionalVendorSettings","MileageRateType","MileageMeasure","CategoryMileage","InviteVendor","VendorForm","ApproveForms","KYCFormSetup","ConfigureXeroSettings","AccIntAssignTaxTypeToTaxCode","AccIntMapCostCentre","AccIntMapLocation","AccIntMapCreditCard","CostCentreTrackingCategory","LocationTrackingCategory","AccIntColumnSelection","AccIntMapEmployee","ConfigureXeroRefSettings","ConfigureXeroDesSettings","AccIntMapExpCategory","AccIntEmployeeMapRule","BuildNewReportReportFields","AdditionalFieldCatAssign","CFPAssignCategory","CFPOwnershipType","CFPCategory","SingleSignOnEnableDisable","SetupPayStep","DisappearingExpensesStep1","DisappearingExpensesStep2","CardFunctionToLiveMode","PowerUserCasualUser","RecallExportedExpense","CCFeedPreferencePurchaseLog","CCFeedScheduler","CCFeedStartDate","ManageNegativeTransaction","ManageSupplierContact","ManageYourCard","SpecialCategoryExportSetup","SpecialCategory_Step2","QBProjectsTurnOnOff","QBProjectsMapping","TaxSetupOnOff","ContainerSetting","SetupContainer","IsReceiptTypeOnOff","UpdateFunctionPrice","UpdateCustomerFunctionPrice","UpdateBasicPrice","UpdateGooglePackagePrice","LocationStatus","ExpenseErrorWarningTypeEnum","CalculateMileageDetails","ZeroDistanceNotAllowed","InActiveExpenseCategoryAlert","ReceiptTypeAlert","ZeroDistance","CategoryMandetory","ZeroAmountNotAllowed","SplitCategoryAmountMismatch","EmailEnum","ClaimMileageWhenMileageNotSetup","ClaimMilesWhenVehicleNotSetup","ClaimMilesAndVehicleNotApproved","ClaimantMilesAndOfficeLocationNotSetWithTriangulation","GradeNotAssigned","AdditionalFieldTypeEnum","Text","OrgFeedbackTypes","OnboardingFeedback","TrialFeedback","EmployeeActionsEnum","Deactivate","ResendInvite","SendInvite","Activate","Edit","CCActionsEnum","Log","CustomerActionEnum","Page","Home","ShoppingCartConfirm","EmployeeLocationStatus","WithLocation","WithoutLocation","BillingMethod","PerPersonBilling","HybridBilling","UniversalImportTemplateEnum","Employee","ExpenseCategory","ExportTemplates","ImportCreditCardStatement","AdvanceClaimantCappingPolicy","ImportEmployees","ImportCategories","ImportMileageRates","CounterApp","ImportVehicleAssignment","ImportOfficeBasedClaimants","Deputy","ImportAssignCreditCard","ImportGrade","PricingImport","ImportLocation","ClaimantWiseCappingPolicyStatusEnum","EmployeeWithPolicy","EmployeeWithoutPolicy","OtherPolicyTypeEnum","MonthlyCapping","YearlyCapping","SupplierStatus","EmployeeSupplierConfig","SupplierRuleId","ExpenseCategoryField","SupplierField","AccSysAssignmentType","tally","sage50","xeroReference","xeroDescription","UniversalImportReviewFilterEnum","WithErrors","WithoutErrors","DocumentStatus","CardSupervisoryActionEnum","NoAction","ReAssigned","AdvanceType","CashAdvance","CreditCardAdvance","AdvanceReturn","AdvanceCappingPolicyType","CappingByIndividual","CappingByGrade","UniversalImportEmployeesResponseEnum","ActivatedOwnershipType","OfficeSetup","CostCentreApproversResponseEnum","UniversalImportStepsEnum","UploadFile","DefineHeader","ConfirmMapping","Review","ImportSummary","ExpenseStatusAction","Submit","Archive","PreApprovalStatusEnum","PassForPayment","Draft","DashboardCountEnum","Approver_Count","Finance_Approver_Count","Dashboard_Count","Mileage_Wizard_Count","MultipleCountryStatusEnum","CcImportTemplateTypeEnum","SingleUser","MultipleUser","CcImportCardNumberSelectionModeEnum","Column","Cell","AccIntMappingModelEnum","EntertainmentExpenseCategory","UserOrgMapping","TaxRateMaster","TaxRateComponent","Projects","StatusEnum","DiscountMonthsEnum","oneMonthsDiscount","threeMonthsDiscount","sixMonthsDiscount","twelveMonthsDiscount","twentyFourMonthsDiscount","thirtySixMonthsDiscount","fourtyEightMonthsDiscount","sixtyMonthsDiscount","TaxRateStatusEnum","GradePolicyFilterEnum","GradeWithPolicy","GradeWithoutPolicy","JourneyTypeEnum","Single","Return","Multiple","AcctIntEmployeeSyncStatusEnum","Linked","Ignored","NotLinked","AcctIntDomainStatusEnum","Syncd","SSOStatusEnum","RequresAction","MileageAllowanceEnum","OnePassenger","TwoPassenger","ThreePassenger","FourPassenger","OneLoad","OnePassengerOneLoad","TwoPassengerOneLoad","ThreePassengerOneLoad","FourPassengerOneLoad","EntertainmentEmpEnum","Guest","Tips","FunctionCategoryEnum","YourOrganisation","EmployeesApprovers","CostCentresCustomers","ExpenseCategories","TaxRates","ExpensePolicy","CreditCards","MileageRates","DataExport","Analysis","OpenAPIs","SalesOnDemand","ReportWriter","FunctionCategoryNameEnum","ImportEmployeesResponseEnum","EmployeeErrorsList","SuccessRecordsCounts","ChangedClaimantsApproverCounts","ChangedClaimantsGradeCounts","ChangedClaimantsCostCentreCounts","ChangedClaimantsLastNameCounts","ChangedClaimantsFirstNameCounts","ApproverStatusEnum","NoJoined","CCLiveModeEnum","TestMode","LiveMode","NotConfirm","DuplicateCheck","On","Off","AssignTaxToCategoriesFilterEnum","WithTax","WithoutTax","CheckType","Document","FrequencyType","Option1","Option2","Option3","Option4","Option5","Option6","CounterAppType","ApproverswithCA","ApproverswithoutCA","CounterAppSeqType","Or","End","End2","CounterAppDetType","AlertPanelTypeEnum","SetuptIncomplete","NotApplicable","ComingSoon","DelegateFilterEnum","DelegateActionTypeEnum","Delegator","DelegatorExpenseEnum","MyExpense","DelegatorExpense","ApproverCostCentreFilterEnum","NoAproverCount","OneAproverCount","ManyApproverCount","DelegatorFilterEnum","WizardActionEnum","SetupMileage","VehicleManagement","NRFC","DOC","PassengerLoad","ClaimantMyMileage","Tax","AdditionalFieldsStep1","AdditionalFieldsStep2","AdditionalFieldsStep3","AdditionalFieldsStep4","DisappearingExpense","ManageCCFeedTransactions","AccIntTrackingCategoryLocation","AccIntTrackingCategoryCostCentre","PriceManagement","PanelClosActionEnum","Close","Save","ApproverDeputy","ApproverWithAll","ApproverWithDeputy","ApproverWithoutDeputy","PolicyDashboardLoadType","InitialLoad","GridFilterLoad","PolicyGridLoadType","Category","WorkflowApproverEnum","MultiApprover","FxRateRule","Default","Editable","NotEditable","FxRateSubRule","Imported","CurrencyRateEnum","WithRate","WithoutRate","CurrencyRateSelectionEnum","Future","HideMileageFunctions","AssignVehicleToClaimant","FilterFxRateHistory","Next6Months","Next12Months","PolicyDashboardGridType","PolicyDashboardGridColumnType","selected","policyBreachCount","UnsubscribeCountryOptionEnum","Move","ClaimType","Expense","Invoice","ClaimAction","ClaimList","CreateClaim","EditClaim","NoClaimMsg","CreateClaimBtnMsg","ClaimDetail","ApproperClaimantListCount","ClaimCount","ClaimantName","FilterClaimDate","AddReceipt","ViewReceipt","VendorKYCStatusEnum","PleaseComplete","PendingForApproval","FieldType","Img","RadioButton","TextChanges","Displayname","CountofCharacters","NotesCharacterCount","CheckBoxChanges","SpecialCharacters","ImgAlignment","FormType","ClaimantTypeEnum","ALL","EmployeeTypeEnum","VehicleDOCExistsEnum","Exists","NotExists","CCPendingTransactionsFilterEnum","NotCompleted","ReRouted","Orphan","Completed","PendingWithApprovar","PendingWithFinanceApprover","PendingWithPassforPayment","DeleteExpenseEnum","DeletedWithReceipt","Cancel","New","TaxRateComponentStatusEnum","TaxActionEnum","AdditionalFieldCatAssignEnum","Partially","Unassigned","AdditionalFieldTypesEnum","FieldType1","FieldType2","FieldType3","FieldType4","CFPCategoryEnum","DOCStatusEnum","notValid","incomplete","pleaseComplete","pendingSubmission","pendingApproval","approved","rejected","expired","recalled","aboutToExpire","suspended","notRequired","FCInfoStatusEnum","ClosingBalanceRequired","FuelCardRequired","ClosingBalUpdateRequired","ExpenseToBeDel","OpeningBalDateNotValid","ClosingBalRequiredOnLastDayOfMonth","ClosingBalDateNotValid","MaxReceiptCountBreach","DisableOpeningBalanceDetail","VehicleChanged","CounterCategoryType","CACategoryByPassApprover","CACategoryWithApprover","CACategoryWithApproverAndCAApprover","ReceiptScanOption","NotScanned","Discarded","Accepted","UserCustomSettingEnum","DragAndDropApproverPanel","ApprovalSectionEnum","expenseDetails","taxDetails","additionalDetails","ccDetails","CCTransactionsFilterEnum","CFPWizardActionEnum","Step1","CfpToggle","ExpCategoryStatusEnum","CategoryNotActive","CategoryNotAssignedtoGrade","HideExportPrivelageListFunctions","FmCanEdit","RequestSaveFxRateSetting","CurrencyFetchRequest","RequestUpdateFxRateSetup","CurrencyRequest","OrganisationGooglePackageSaveRequest","OrganisationGooglePackageUpdateCallsRequest","UnsubscribeGooglePackageCallsRequest","OrganisationId","UpdatedBy","DismissGooglePackagePurchaseReminderRequest","UpdateOrganisationGooglePackagePaymentDetailStatusRequest","OrganisationPlaidPackageSaveRequest","PlaidConnectionResponse","PlaidConnection","AccessToken","ItemId","RequestId","Region","OrgId","RequestGrade","gradeName","gradeDescription","gradeStatus","isDefault","RequestGradeListForAssignEmployee","GradeMappedEmployeeList","gradeId","RequestGradeBulkDeactivate","gradeIds","RequestGradeListAll","GradeCsvRecord","GradeCsvRecordExport","assignCategoriesToGradesByGradeRequest","AssignCategoriesToGradeListPanelInputModel","AddGradePanelInputModel","isCopy","AddGradePanelOutputModel","GradeFormModel","LocationRequest","AssignLocationToEmployeesRequest","GetEmployeeForLocationAssignmentRequest","GetLocationListForGridRequest","GetLocationByOrgIdAndStatusRequest","GetLocationByLocationIdRequest","EmployeeForLocationAssignment","LocationCsvRecord","LocationCsvRecordExport","AddUpdateLocationModel","locationId","assignedEmployeesCount","DeactivateLocationModel","locationName","BulkActionOnLocationRequest","LocationFormModel","VehicleList","AddUpdateEmployeeRequestDto","employeeID","employeeCode","employeeCode2","employeeCode3","employeeCode4","firstName","lastName","email","isPasswordReset","employeeRole","vehicleTypeId","vehicleStatus","vehicleSubTypeId","rateType","orgVehicleTypeMapId","derivedName","approverEmail","costCentreCode","costCentreRuleId","userType","assignedExpCatIds","assignedFormIds","AddUpdateBulkEmployeeRequestDto","employees","isImport","EmpList","GetAllEmployeesRequest","IsFromManageEmployee","GetAllTypeEmployeesRequest","DropdownOptionModel","id","description","groupByField","isLink","EmployeesFormModel","InviteEmployeesInputModel","InviteEmployeesOutputModel","EmployeeBulkActionInputModel","AssignNewApproverInputModel","AssignApproverFormModel","AssignNewApproverOutputModel","EmployeeBulkActionOutputModel","AssignFmInputModel","AssignFmOutputModel","AssignFmFormModel","ImportEmployeeRequest","CartDetailsRequest","UserId","BillingStatus","FunctionPackageId","FunctionPackageName","Number","GetCartDetailsRequest","FunctionDefaultCurrency","RemoveFunction","GetOrgDependentFunctionListRequest","PurchaseFunctionListRequest","DropdownItems","RequestGetPreferences","RequestEscalationSettings","RequestOtherPolicyData","RequestDuplicatePolicyData","OtherPolicyExpCatData","policyId","effectiveFrom","effectiveTo","hasPolicy","isFuturePolicy","isEdit","errAmount","futurePolicyCount","currentPolicyCount","addFutureDateClicked","stoppedPolicyCount","showEditDelete","alertPercentage","errAlertPercentage","isEditClicked","notes","isAmountChanged","RequestSaveOtherPolicyData","RequestSaveDuplicatePolicyData","ReqBusinessPurpose","Data","fieldValueId","fieldValue","code","isRowHighlighted","SaveAdditionalFieldsData","additionalFieldDataId","additionalFieldId","SaveAdditionalFieldsConfig","isSwitchedOn","fieldName","isDataAvailable","fieldType","instruction","data","SaveAdditionalFieldsRequest","OrgID","UserID","DeleteFieldByIdRequest","AdditionalFieldDataId","DeleteAdditionalFieldRequest","AdditionalFieldId","AdditionalFieldType","BPValues","bpId","bpValue","ReqSaveBPValues","bPStatus","bpValues","ExpTimeLimitSaveRequest","expenseTimeLimit","YearEndSaveRequest","isYearEndRuleEnabled","yearEndDate","yearEndNoOfDays","yearEndNotes","SelectAdditionalFieldDataPopupModel","RequestPolicyConversion","RequestDeleteOtherPoliciesForConversionToGradeOrClaimantWise","ClaimantWisePolicyExport","RequestClaimantWisePolicyExport","RequestClaimantWisePolicyHistoricalView","PolicyDashboardOverviewDetail","PolicyDashboardData","PolicyDashboardFilter","GridHeader","PolicyDashBoardPanelModel","ReqSaveCategoryAdditionalFieldDetails","BillingDataForPricingRequest","currencyId","QuoteModel","FunctionPackageQuote","FunctionAmount","DisplayAmount","PricingEmailQuoteRequest","buisness","noOfEmployee","hearAboutUs","emailQuote","CurrencySymbol","CurrencyCode","business","ProjectBudgetListRequest","entityType","ProjectSummaryPopupModel","projectBudgetDetailsId","entityName","ProjectSummaryRequest","ProjectBudgetOperationPopupModel","GetCustomerCostCentreListRequest","includeCostCentre","includeCustomer","CostCentreCustomerList","GetActiveEmployeesForProjectBudgetRequest","GetProjectBudgetAllDetailsByProgBudIdRequest","ProjectCategorySummaryRequest","CategorySummaryResponse","GetProjectBudgetByEntityTypeRequest","entityTypeId","GetProjectManagerCountRequest","UpdateProjectManagerRequest","oldApproverId","newApproverId","claimantsIds","GetProjectListForCloseModel","CloseProjectRequest","projectDetailsId","closedType","spentAmount","GetCustomerCostCentreProjectsListRequest","SubscriptionCardDetailsRequest","CardBrand","CardType","CardExpirationMonthYear","CardLastFourDigits","LogoUrl","PaymentGatewayId","PaymentCustomerId","PaymentIntentId","StripeSessionRequest","PageUrl","CustomerEmail","currencyCode","StripeGenerateInvoiceRequest","CustomerId","InvoiceItemList","BillingInvoiceFor","StripeInvoiceItem","StripeChangeUserCardRequest","SessionId","StripeInstantPaymentInvoiceItem","StripeInstantPaymentSessionRequest","RequestGetPolicyDetail","RequestPolicyViolation","AttendeeList","ReceiptWithMultipleRatesPanelInputModel","receiptCount","ReceiptWithMultipleRatesPanelOutputModel","MultipleLineFormModel","HeaderTemplateButtonConfig","isDisabled","isVisible","ImportEmployeeMapping","EmployeeImportModel","uniqueRowId","statusName","ownershipType","baseOwnershipType","isFinanceApprover","isAdministrator","homePostCode","officeName","officePostCode","milesHomeToOffice","fuelType","hpEngineSizeSmall","hpEngineSizeMedium","hpEngineSizeLarge","initialMileage","vehicleRegNo","isDocRequired","ImportEmployeesEditInputModel","ValidateUniversalImportEmployeesRequest","BulkSaveUniversalImportEmployeesRequest","CheckListPanelModel","CheckListData","ImportCatMapping","StorageData","AssignApproverToCostCentresImportModel","ImportAssignApproverToCostCentresMapping","BulkSaveUniversalCostCentreApproversRequest","costCentreApprovers","ImportCustomerMapping","ImportCardTransactionsMapping","UserRequestBase","Userrequestdto","CurrencyInfo","MileageInfo","Profileinfo","SetupInfo","OrganisationBasicSetupRequestInfo","OrganisationBasicSetup","VerifyYourEmail","VerifyYourEmailRequestInfo","UserBrowserDetails","FormlyWrapperFormField_ng_template_0_label_0_span_2_Template","FormlyWrapperFormField_ng_template_0_label_0_Template","props","required","hideRequiredMarker","FormlyWrapperFormField_ng_template_0_Template","hideLabel","FormlyWrapperFormField_ng_container_3_Template","_r0","FormlyWrapperFormField_ng_template_4_Template","FormlyWrapperFormField_ng_container_6_Template","FormlyWrapperFormField_div_7_Template","field","FormlyWrapperFormField_small_8_Template","_c0","FormlyWrapperFormField","FieldWrapper","ɵFormlyWrapperFormField_BaseFactory","ɵcmp","labelPosition","showError","dependencies","i2","encapsulation","FormlyBootstrapFormFieldModule","ɵmod","ɵinj","imports","CommonModule","ReactiveFormsModule","FormlyModule","forChild","wrappers","FieldType$1","hostContainerRef","templateRef","createEmbeddedView","ɵdir","viewQuery","_t","first","FormlyFieldInput_ng_template_0_input_0_Template","formControl","FormlyFieldInput_ng_template_0_ng_template_1_Template","FormlyFieldInput_ng_template_0_Template","_r3","FormlyFieldInput","ɵFormlyFieldInput_BaseFactory","i3","changeDetection","FormlyBootstrapInputModule","types","extends","defaultOptions","FormlyFieldTextArea_ng_template_0_Template","cols","rows","FormlyFieldTextArea","arguments","ɵFormlyFieldTextArea_BaseFactory","FormlyBootstrapTextAreaModule","FormlySelectOptionsPipe","Observable","dispose","observableOf","pipe","map","transformOptions","ngOnDestroy","to","transformSelectProps","opts","groups","forEach","option","transformOption","group","groupProp","labelProp","opt","valueProp","disabled","disabledProp","templateOptions","selectPropFn","prop","_options","complete","_subscription","unsubscribe","fieldChanges","property","tap","BehaviorSubject","asObservable","ɵpipe","FormlySelectModule","FormlyFieldRadio_ng_template_0_div_0_Template","option_r3","$implicit","i_r4","index","formCheck","disabledControl","FormlyFieldRadio_ng_template_0_Template","FormlyFieldRadio","FormControl","ɵFormlyFieldRadio_BaseFactory","i4","FormlyBootstrapRadioModule","FormlyFieldCheckbox_ng_template_0_label_2_span_2_Template","FormlyFieldCheckbox_ng_template_0_label_2_Template","a0","a1","FormlyFieldCheckbox_ng_template_0_Template","indeterminate","FormlyFieldCheckbox","ɵFormlyFieldCheckbox_BaseFactory","FormlyBootstrapCheckboxModule","FormlyFieldMultiCheckbox_ng_template_0_div_0_Template","_r6","checked","isChecked","FormlyFieldMultiCheckbox_ng_template_0_Template","FormlyFieldMultiCheckbox","markAsDirty","patchValue","markAsTouched","ɵFormlyFieldMultiCheckbox_BaseFactory","FormlyBootstrapMultiCheckboxModule","FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_option_1_Template","opt_r8","FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_ng_template_2_option_1_Template","child_r14","FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_ng_template_2_Template","FormlyFieldSelect_ng_template_0_select_0_ng_container_1_ng_container_1_Template","_r10","FormlyFieldSelect_ng_template_0_select_0_ng_container_1_Template","opts_r6","ngIf","FormlyFieldSelect_ng_template_0_select_0_Template","compareWith","FormlyFieldSelect_ng_template_0_ng_template_1_option_1_Template","placeholder","FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_option_1_Template","opt_r20","FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_ng_template_2_option_1_Template","child_r26","FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_ng_template_2_Template","FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_ng_container_1_Template","_r22","FormlyFieldSelect_ng_template_0_ng_template_1_ng_container_2_Template","opts_r18","FormlyFieldSelect_ng_template_0_ng_template_1_Template","FormlyFieldSelect_ng_template_0_Template","multiple","FormlyFieldSelect","ngZone","o1","o2","selectAccessor","bind","_getOptionId","_idCounter","onStable","take","_elementRef","selectedIndex","SelectControlValueAccessor","FormlyBootstrapSelectModule","FormlyWrapperAddons_ng_template_0_div_1_i_1_Template","addonLeft","class","FormlyWrapperAddons_ng_template_0_div_1_span_2_Template","FormlyWrapperAddons_ng_template_0_div_1_Template","_r8","addonLeftClick","onClick","FormlyWrapperAddons_ng_template_0_div_4_i_1_Template","addonRight","FormlyWrapperAddons_ng_template_0_div_4_span_2_Template","FormlyWrapperAddons_ng_template_0_div_4_Template","_r12","addonRightClick","FormlyWrapperAddons_ng_template_0_Template","FormlyWrapperAddons","styles","addonsExtension","FormlyBootstrapAddonsModule","extensions","extension","postPopulate","FormlyBootstrapModule","fnCloseCreateTagPanel","fnSelectCreateTag","inputModel","FormlyTagInputComponent","showCreateTagPanel","fnOpenCreateTagPanel","tagList","claimantId","model","claimantName","setValue","change","isClose","core","FormlyTagInputComponent_span_7_Template","FormlyTagInputComponent_create_tag_panel_8_Template","_r2","closeAdvancePassbookPanel","FormlyAdvanceBalanceInputComponent","showAdvancePassbookPanel","showAdvancePassbook","FormlyAdvanceBalanceInputComponent_advance_passbook_panel_7_Template","FormlyTextInputComponent_h6_0_small_4_Template","notesClass","nameRequired","attributes","FormlyTextInputComponent_span_8_ng_template_2_Template","_r16","ancherClass","iconTooltip","rightIcon","FormlyTextInputComponent_div_11_span_1_Template","trim","error_r20","FormlyTextInputComponent_div_13_span_1_Template","customErrors","error_r22","FormlyTextInputComponent_div_14_span_1_Template","note","FormlyTextInputComponent_p_15_small_1_Template","FormlyTextInputComponent_p_15_small_2_Template","maxLengthCount","sanitizerHtml","htmlCustomMsg","supportingNote","FormlyTextInputComponent","dynamicFormService","cdRef","isFormSubmitted","mainClass","showTooltip","ngAfterViewInit","form","valueChanges","detectChanges","checkOverflow","fieldKey","headingClass","formSubmissionSubscription","getFormSubmittedEvent","onValueChange","omitSpecialChar","charCode","alphaNumericOnly","allowOnlyApostropheAndHyphenChar","allowAcuteChar","allowOnlyNumeric","numaricOnly","alphaNumericSpecialWithoutComma","notAllowOnlySpaceChar","allowSpecialChar","which","textarea","offsetHeight","scrollHeight","offsetWidth","scrollWidth","bypassSecurityTrustHtml","FormlyTextInputComponent_h6_0_Template","FormlyTextInputComponent_span_6_Template","FormlyTextInputComponent_span_7_Template","FormlyTextInputComponent_span_8_Template","FormlyTextInputComponent_a_9_Template","FormlyTextInputComponent_a_10_Template","FormlyTextInputComponent_div_11_Template","FormlyTextInputComponent_div_12_Template","FormlyTextInputComponent_div_13_Template","FormlyTextInputComponent_div_14_Template","FormlyTextInputComponent_p_15_Template","FormlyTextInputComponent_p_16_Template","FormlyTextInputComponent_span_17_Template","FormlyTextInputComponent_p_18_Template","isHeadingRequired","_c1","turnToCaps","showOverflowTooltip","isSelectionOption","isRightIcon","whitespace","invalidEmail","errorOnChange","FormlyIntegerInputComponent_div_5_span_1_Template","FormlyIntegerInputComponent","datePipe","cdr","onNumberInput","numberOnly","keyCode","allowNotZero","FormlyIntegerInputComponent_span_4_Template","FormlyIntegerInputComponent_div_5_Template","FormlyTextareaInputComponent_div_6_span_1_Template","FormlyTextareaInputComponent_p_7_small_1_Template","FormlyTextareaInputComponent_p_7_small_2_Template","FormlyTextareaInputComponent","onTextInput","FormlyTextareaInputComponent_span_3_Template","FormlyTextareaInputComponent_div_6_Template","FormlyTextareaInputComponent_p_7_Template","readonly","FormlyNumberInputComponent_div_5_span_1_Template","FormlyNumberInputComponent","FormlyNumberInputComponent_span_4_Template","FormlyNumberInputComponent_div_5_Template","FormlyDisabledInputComponent","FormlyCalendarInputComponent_div_7_span_1_Template","FormlyCalendarInputComponent","dateChange","EventEmitter","isLabelVisible","addTopMargin","calendarLabel","dateFormats","dateFormatString","hideDefaultDate","minDate","find","it","dateInput","flatpickr","FormlyCalendarInputComponent_span_5_Template","FormlyCalendarInputComponent_div_7_Template","FormlyCalendarInputComponent_p_8_Template","fnOpenSelectionPanel","_r24","fnShowExpPolicy","preApprovalBalance","fnReturnRegNum","mileage","registrationNumber","fnReturnMakeModel","makeModel","FormlyFieldInputPanelComponent_div_10_span_1_Template","_r27","closeSelectionPanel","ctx_r28","onSelection","_r30","ctx_r29","ctx_r31","_r33","ctx_r32","ctx_r34","_r36","ctx_r35","ctx_r37","_r39","ctx_r38","ctx_r40","_r42","ctx_r41","ctx_r43","_r45","ctx_r44","showPolicyInputModel","_r47","ctx_r46","ctx_r48","_r50","ctx_r49","ctx_r51","_r53","ctx_r52","ctx_r54","_r56","ctx_r55","ctx_r57","_r59","ctx_r58","ctx_r60","_r62","ctx_r61","ctx_r63","_r65","ctx_r64","ctx_r66","FormlyFieldInputPanelComponent","translate","alertPanelModel","instant","isCostCentreSelectionHide","isLocationSelectionHide","openPanelSubscription","getOpenPanelEvent","isVisibleOnLoad","startsWith","ADDITIONAL_FIELD_DYNAMIC_KEY","additionalFieldValueId","ADDITIONAL_FIELD_DYNAMIC_ID_KEY","additionalFieldDataList","showSelectAdditionalFieldDataPanel","preApprovalId","showSelectPreApprovalTagPanel","disableBaseCategoryIds","saveStatus","isIncompleteCreditCardExpense","isFmEditingExpense","receiptsInfo","showSelectExpenseCategoryPanel","spentCurrencyId","spentCurrencyCode","conversionRate","showSelectForeignCurrencyPanel","stateId","stateName","showSelectStatesPanel","businessPurposeCaption","showSelectBusinessPurposePanel","vatNoVatReceiptTypeId","showSelectReceiptTypePanel","vehicleId","todaysDate","getUTCTimeStamp","fnDisplayAlertPanel","showVehiclePanel","showSelectCustomerPanel","newCostCentreId","isSelectionHide","showSelectCostCentrePanel","newLocationId","showSelectLocationPanel","entityId","isCostCentrePackagePurchasedOrTrial","isCustomerPackagePurchasedOrTrial","isProjectBudgetPurchasedOrTrial","showSelectProjectPanel","containerName","showContainerListPanel","alertPanelReceiver","returnValue","hidePanel","preApprovalTag","customFields","categoryAdditionalFieldData","isNotesMandatory","isCFPReporting","orgSubCategoryMappings","vatNoVatReceiptType","customerName","mileageAllowance","docStatus","projectName","newLocationName","showExpensePolicyPanel","UTCDateTime","getUTCDate","regNum","makeMod","FormlyFieldInputPanelComponent_span_4_Template","FormlyFieldInputPanelComponent_span_5_Template","FormlyFieldInputPanelComponent_span_6_Template","FormlyFieldInputPanelComponent_span_7_Template","FormlyFieldInputPanelComponent_p_8_Template","FormlyFieldInputPanelComponent_p_9_Template","FormlyFieldInputPanelComponent_div_10_Template","FormlyFieldInputPanelComponent_select_category_panel_11_Template","FormlyFieldInputPanelComponent_select_pre_approval_tag_panel_12_Template","FormlyFieldInputPanelComponent_select_foreign_currency_panel_13_Template","FormlyFieldInputPanelComponent_select_state_panel_14_Template","FormlyFieldInputPanelComponent_select_business_purpose_panel_15_Template","FormlyFieldInputPanelComponent_select_additional_field_data_panel_16_Template","FormlyFieldInputPanelComponent_view_exp_policy_panel_17_Template","FormlyFieldInputPanelComponent_select_customer_panel_18_Template","FormlyFieldInputPanelComponent_select_project_panel_19_Template","FormlyFieldInputPanelComponent_select_cost_centre_panel_20_Template","FormlyFieldInputPanelComponent_select_location_panel_21_Template","FormlyFieldInputPanelComponent_select_receipt_type_panel_22_Template","FormlyFieldInputPanelComponent_app_select_vehicle_panel_23_Template","FormlyFieldInputPanelComponent_container_list_panel_25_Template","isPolicyAvailable","item_r5","_r9","fnSelectExpenseCategory","SelectCategoryPanelComponent_ul_18_li_1_span_5_Template","SelectCategoryPanelComponent_ul_18_li_1_i_6_Template","selectedOrgExpenseCategoryId","inputData","isRecentCategory","SelectCategoryPanelComponent_ul_18_li_1_Template","recentCategoryList","item_r11","_r13","fnSelectAdvanceItem","advanceId","selectedAdvanceId","SelectCategoryPanelComponent_ul_19_li_1_Template","advancesList","_r15","fnShowPopUpForNoCategorySetupReceiver","showPopUpForNoCategorySetupModel","SelectCategoryPanelComponent","expenseCategoryService","advancesService","emailService","organisationFunctionService","changeDetectorRef","closePanelEvent","selectItemEvent","orgExpenseCategoryList","isAdvancesDisplay","isAssignCategoriesToGradePurchased","isSupplierPurchased","hasReciept","claimsSubscription","checkFunctionPurchased","fnGetOrgExpenseCategoryList","fnSetExpenseCategoryInputValues","request","WebApiName","WebApiVersion","RequestInfo","LastUpdatedTimeStamp","IsForCreditCardExpense","getOrgExpenseCategory","response","responseInfo","categories","includes","isAssignedToGrade","fnSortCategoryList","fnGetRecentCategoriesOnTop","fnShowNoCategoriesAssigned","selectedCategoryModel","isTipsEnabled","showAdvancesList","emit","showPopUpForNoCategorySetup","checkFunctionsSubscribed","subscription","OrgCategoryId","fnSendReminderEmail","fnClosePanel","requestInfo","toLocaleLowerCase","getAdvancesPassbookNotLinked","result","toFixed","recentExpenseCount","i5","i6","outputs","SelectCategoryPanelComponent_div_15_Template","SelectCategoryPanelComponent_ul_18_Template","SelectCategoryPanelComponent_ul_19_Template","SelectCategoryPanelComponent_app_alert_panel_20_Template","item_r4","fnOnChangeCustomer","hasFormChanges","customersList","selectedCustomerId","customerCode1","SelectCustomerPanelComponent_ul_38_div_2_Template","SelectCustomerPanelComponent","BaseComponent","customerService","howDoIVideoLinks","HowDoIVideoLinks","userActionEventSubscription","fnGetActiveCustomersList","fnSetCustomerInputValues","GetActiveCustomers","customerValues","fnGetSelectedCustomerOnTop","fnSelectCustomer","selectCustomersOutputModel","customserDetails","sortedArr","acc","SelectCustomerPanelComponent_div_36_Template","SelectCustomerPanelComponent_ul_38_Template","_c2","_r7","fnOnChangeCostCentre","SelectCostCentrePanelComponent_ul_37_div_2_small_8_Template","costCentreList","isHomeCostCentre","selectedCostCentreId","SelectCostCentrePanelComponent_ul_37_div_2_Template","SelectCostCentrePanelComponent","costCentreService","disableSave","fnGetActiveCostCentreList","fnSetCostCentreInputValues","GetActiveCostCentre","costCentreValues","fnGetSelectedCostCentreOnTop","fnSelectCostCentre","selectCostCentreOutputModel","costCentreDetails","SelectCostCentrePanelComponent_div_35_Template","SelectCostCentrePanelComponent_ul_37_Template","_r14","project_r12","fnOnChangeProject","selectedProjectDetailsId","SelectProjectPanelComponent_ul_31_div_2_div_11_div_4_li_6_Template","projectList","SelectProjectPanelComponent_ul_31_div_2_div_11_div_4_Template","SelectProjectPanelComponent_ul_31_div_2_div_11_div_5_Template","_r19","fnOnChangeEntity","SelectProjectPanelComponent_ul_31_div_2_small_8_Template","SelectProjectPanelComponent_ul_31_div_2_small_9_Template","SelectProjectPanelComponent_ul_31_div_2_small_10_Template","SelectProjectPanelComponent_ul_31_div_2_div_11_Template","customerCostCentreProjectList","selectedEntityId","entityCode","projectBudgetEntityType","SelectProjectPanelComponent_ul_31_div_2_Template","SelectProjectPanelComponent","datepipe","projectBudgetService","cdfr","localOrganisationId","fnSetProjectInputValues","fnGetCustomerCostCentreProjectList","GetCustomerCostCentreProjectList","fnGetSelectedProjectOnTop","fnSelectCustomerCostCentreProject","selectProjectOutputModel","entityDetails","projectDetails","fnIsSubmitDisabled","fnGetPanelTitle","fnGetGridTitle","SelectProjectPanelComponent_div_29_Template","SelectProjectPanelComponent_ul_31_Template","item_r2","_r4","fnOnChangeApprovalTag","selectedPreApprovalTag","remainingDays","approvalDate","balance","SelectPreApprovalTagPanelComponent","claimantOnWebService","disableSubmitButton","preApprovalTagList","fnGetPreApprovalTagList","fnSetPreApprovalDetails","GetPreApprovalTagList","fnGetSelectedPreApprovalTagOnTop","fnSelectApprovalTag","selectPreApprovalTagOutputModel","SelectPreApprovalTagPanelComponent_div_21_Template","SelectPreApprovalTagPanelComponent_div_22_Template","CreateDetourPanelComponent_div_26_span_1_Template","createDetourForm","controls","detour","CreateDetourPanelComponent_div_35_span_1_Template","detourJustificationNotes","CreateDetourPanelComponent","router","toastr","authenticationService","fb","isDetourFormSubmitted","currentUserSubscription","currentUser","user","observeUnsavedChangesAlerts","fnCreateDetourForm","fnSetDetourInputDetails","dirty","noWhitespaceValidator","fnOnSubmitDetour","setErrors","invalid","selectDetourOutputModel","i7","i8","i9","CreateDetourPanelComponent_div_26_Template","CreateDetourPanelComponent_div_35_Template","item_r3","_r5","fnSelectBusinessPurposeValues","selectedBpId","SelectBusinessPurposePanelComponent","policyService","cd","bpValuesList","fnGetBusinessPurposeValues","fnSetBusinessPurposeInputValues","GetBusinessPurposeValues","fnGetSelectedBpValueOnTop","selectBusinessPurposeOutputModel","SelectBusinessPurposePanelComponent_div_30_Template","SelectBusinessPurposePanelComponent_li_33_Template","fnSelectReceiptType","SelectReceiptTypePanelComponent","organisationSettingService","receiptTypesList","fnGetReceiptTypeSettings","getVatNoVatReceiptType","receiptTypes","mapReceiptType","isDisplayOn","receiptTypeDetail","receiptType","SelectReceiptTypePanelComponent_div_29_Template","SelectReceiptTypePanelComponent_li_32_Template","fnSelectStates","selectedStateId","SelectStatePanelComponent","stateService","stateList","fnGetStates","fnSetStatesInputValues","getAllExpenseState","fnGetSelectedStateOnTop","selectStatesOutputModel","SelectStatePanelComponent_div_28_Template","SelectStatePanelComponent_li_31_Template","selectedFieldValueId","SelectAdditionalFieldDataPanelComponent","fnSetAdditionalFieldDataInputValues","selectAdditionalFieldDataOutputModel","fnGetSelectedAdditionalFieldOnTop","SelectAdditionalFieldDataPanelComponent_div_29_Template","SelectAdditionalFieldDataPanelComponent_li_32_Template","selectedExpenseId","fnOnExpenseChange","fnGetCurrencyCode","fnSelectAssociateCreditCardExpense","AssociateCreditCardExpensePanelComponent","creditCardService","currencyService","claimantAssociatedExpenseList","currencytList","getCurrrencyList","fnGetClaimantAssociatedExpenseList","fnSeAssociateCreditCardExpenseInputValues","GetClaimantAssociatedExpenseList","selectAssociateCreditCardExpenseOutputModel","getAllExpenseCurrency","CurrentOrganisationCurrencyCode","currency","i10","i11","AssociateCreditCardExpensePanelComponent_div_13_Template","AssociateCreditCardExpensePanelComponent_div_14_Template","AssociateCreditCardExpensePanelComponent_footer_15_Template","fnRemoveTag","tag_r3","item_r9","_r11","fnAddRecentTag","CreateTagPanelComponent_div_26_li_7_Template","fnGetFilteredRecentTagList","CreateTagPanelComponent","recentTagsList","isCreateTagsFormSubmitted","createTagsForm","fnCreateTagsForm","fnGetTagListControl","fnGetRecentTags","tagNameInput","focus","tagName","GetRecentTags","recentTagList","Set","fnSelectTag","fnAddTag","selectTagsPopupModel","reset","CreateTagPanelComponent_span_20_Template","CreateTagPanelComponent_div_26_Template","fnSelectRecentJourneys","SelectRecentJourneysPanelComponent_div_15_span_20_Template","SelectRecentJourneysPanelComponent_div_15_span_21_Template","location","totalDistance","mileageUOM","mileageUOMEnum","SelectRecentJourneysPanelComponent","recentJourneysList","fnGetRecentJourneys","GetRecentJourneys","journeyList","selectRecentJourneyOutputModel","SelectRecentJourneysPanelComponent_div_14_Template","SelectRecentJourneysPanelComponent_div_15_Template","item_r1","isLinkedToCC","AdvancePassbookPanelComponent_div_29_div_1_span_13_Template","details","categoryId","dateString","expenseAmount","cashAmount","advanceReturnId","AdvancePassbookPanelComponent_div_29_div_2_span_5_Template","AdvancePassbookPanelComponent_div_29_div_1_Template","AdvancePassbookPanelComponent_div_29_div_2_Template","AdvancePassbookPanelComponent","advanceClaimantList","getAdvancePassbook","getAdvancePassbookBalance","categoryList","getAdvancesPassbook","row","passbookId","advancePassbookId","getCategoryDetail","creditCardAmount","advanceBalance","hasReceipt","getCurrencyName","isLinkedToCreditCardTransaction","category","balanceAdvanceAmount","AdvancePassbookPanelComponent_div_29_Template","item_r6","FormlyNgSelectInputComponent_ng_template_3_span_0_Template","FormlyNgSelectInputComponent_ng_template_3_span_1_Template","error_r13","FormlyNgSelectInputComponent_span_5_div_1_Template","alertNote","fnOpenPanel","linkType","FormlyNgSelectInputComponent","caService","click","FormlyNgSelectInputComponent_ng_template_3_Template","FormlyNgSelectInputComponent_div_4_Template","FormlyNgSelectInputComponent_span_5_Template","FormlyNgSelectInputComponent_div_6_Template","FormlyNgSelectInputComponent_p_7_Template","FormlyNgSelectInputComponent_p_8_Template","headingIcon","headingValue","FormlyNgSelectDescriptionInputComponent_ng_template_5_div_0_Template","FormlyNgSelectDescriptionInputComponent_ng_template_5_span_1_Template","error_r14","FormlyNgSelectDescriptionInputComponent_span_7_div_1_Template","onTinyClick","tinyText","FormlyNgSelectDescriptionInputComponent","clickAction","isReadonly","FormlyNgSelectDescriptionInputComponent_h6_0_Template","FormlyNgSelectDescriptionInputComponent_ng_template_5_Template","FormlyNgSelectDescriptionInputComponent_div_6_Template","FormlyNgSelectDescriptionInputComponent_span_7_Template","FormlyNgSelectDescriptionInputComponent_div_8_Template","FormlyNgSelectDescriptionInputComponent_span_9_Template","isTinyTextDisplay","iconClass","FormlyUlComponent","listOptions","FormlyUlComponent_li_1_Template","currentSelection","FormlyRadioButtonComponent","initialize","valueSubscription","FormlyRadioButtonComponent_span_0_Template","option_r1","classupdateWhenNoAdvanceMileage","icon","FormlyVehicleButtonComponent","selectedValue","itemCount","FormlyVehicleButtonComponent_div_2_Template","FormlyCheckboxInputComponent","checkedItems","setCheckedItems","allItems","isItemChecked","checkUncheckAll","selectAllItem","checkedItemsLength","allItemsLength","FormlyCheckboxInputComponent_p_0_Template","EmailValidator","EMAIL_REGEX","NoWhitespaceValidator","FormlyReceiptComponent","getReceipt","isClick","FormlyReceiptComponent_span_4_Template","fnActionString","FormlyNotesComponent_div_8_li_2_Template","ListItems","FormlyNotesComponent","dateFormatPipe","timeFormatPipeNew","cTimeformat","actionString","FormlyNotesComponent_div_8_Template","FormlyNotesComponent_div_9_Template","otherInfo","title1","title2","notesCount","advanceCappingLimit","advanceLimit","passbookBalance","advanceOverLimit","FormlyAdvancePolicyComponent","FormlyAdvancePolicyComponent_div_8_Template","fnClosePolicyViolationPanel","policyViolationInputModel","isReceiptNumberSettingsEnabled","zindexClass","FormlyPolicyViolationComponent","policyDataService","showPolicyViolationPanel","getPolicyRequest","fnOpenPolicyViolationPanel","expenseModel","GetPolicyData","statusCode","getPolicyResponse","PolicyOnMainCategory","policyViolation","policyViolationDetails","FormlyPolicyViolationComponent_policy_violation_panel_8_Template","FormlyAdvancePolicyViolationComponent","FormlyAdvancePolicyViolationComponent_advance_policy_violation_panel_8_Template","labelActive","labelDeactive","extraMessage","FormlyToggleInputComponent","enableBigToggle","extraMsgHtml","FormlyToggleInputComponent_label_3_Template","FormlyToggleInputComponent_label_4_Template","FormlyToggleInputComponent_div_5_Template","FormlyRadioInputComponent_div_1_span_2_Template","FormlyRadioInputComponent","FormlyRadioInputComponent_div_1_Template","item_r12","FormlyNgMultiSelectInputComponent_ng_template_3_div_0_div_1_Template","items_r6","FormlyNgMultiSelectInputComponent_ng_template_3_div_0_Template","FormlyNgMultiSelectInputComponent_ng_template_3_div_1_Template","FormlyNgMultiSelectInputComponent_ng_template_3_div_2_Template","item$_r16","item$_r19","item_r18","FormlyNgMultiSelectInputComponent_span_7_div_1_Template","FormlyNgMultiSelectInputComponent","onOpen","scrollContainer","document","querySelector","scrollTop","FormlyNgMultiSelectInputComponent_ng_template_3_Template","FormlyNgMultiSelectInputComponent_ng_template_4_Template","FormlyNgMultiSelectInputComponent_ng_template_5_Template","FormlyNgMultiSelectInputComponent_div_6_Template","FormlyNgMultiSelectInputComponent_span_7_Template","FormlyNgMultiSelectInputComponent_div_8_Template","FormlyCurrencyImageUploderComponent","ShowErrorPanel","imgUrl","orgLogo","evt","realImgDimension","tempFile","fileExtension","alert","close","formatNotSupport","size","fileSizeMessage","filedata","image","fr","FileReader","readAsDataURL","onload","img","height","widthHeighMessage","src","FormlyCurrencyImageUploderComponent_app_alert_panel_38_Template","dimension","accepted_formats","h_30px","w_30px","kb_50","fileformats","FormlyButtonComponent","buttonClass","FormlyButtonComponent_span_1_Template","FormlyCalendarDateMonthInputComponent_label_3_span_2_Template","FormlyCalendarDateMonthInputComponent_div_5_span_1_Template","FormlyCalendarDateMonthInputComponent","fydate","FormlyCalendarDateMonthInputComponent_label_3_Template","FormlyCalendarDateMonthInputComponent_div_5_Template","FormlyCalendarDateMonthInputComponent_p_6_Template","FormlyToggleInputLeftAlignedComponent","FormlyToggleInputLeftAlignedComponent_label_2_Template","FormlyToggleInputLeftAlignedComponent_label_3_Template","isActiveCategoryForTemplate","FormlyCategoryViewComponent_div_11_div_7_li_8_Template","orgCategoryListByBaseCatId","FormlyCategoryViewComponent_div_11_div_7_Template","FormlyCategoryViewComponent","baseCategoryTypeEnum","categoryDetail","fnGetTemplateName","fnOpenTemplateDiv","valueChangeSubscription","getValueChangeEvent","baseCategoryNameModel","manageCategoryList","manageCategoryView","fnCloseTemplateDiv","FormlyCategoryViewComponent_img_3_Template","FormlyCategoryViewComponent_img_4_Template","FormlyCategoryViewComponent_img_5_Template","FormlyCategoryViewComponent_img_6_Template","FormlyCategoryViewComponent_img_7_Template","FormlyCategoryViewComponent_img_8_Template","FormlyCategoryViewComponent_img_9_Template","FormlyCategoryViewComponent_img_10_Template","FormlyCategoryViewComponent_div_11_Template","FormlyTwoDecimalNumberInputComponent_div_5_span_1_Template","error_r6","FormlyTwoDecimalNumberInputComponent_span_6_div_1_Template","supportLabel","FormlyTwoDecimalNumberInputComponent","onKeyPress","omitNegativeSign","FormlyTwoDecimalNumberInputComponent_span_4_Template","FormlyTwoDecimalNumberInputComponent_div_5_Template","FormlyTwoDecimalNumberInputComponent_span_6_Template","FormlyTwoDecimalNumberInputComponent_span_7_Template","ThreeDigitBeforeAndTwoDigitAfterDecimalNumberDirective","FormlyThreeDigitDecimalInputComponent_div_5_span_1_Template","FormlyThreeDigitDecimalInputComponent","FormlyThreeDigitDecimalInputComponent_span_4_Template","FormlyThreeDigitDecimalInputComponent_div_5_Template","fnOpenAssociateCreditCardExpensePanel","FormlyExpenseAmountInputComponent_div_6_span_1_Template","fnCloseAssociateCreditCardExpensePanel","associateCreditCardExpenseInputModel","FormlyExpenseAmountInputComponent","selectAssociateCategoryAlert","showAssociateCreditCardExpensePanel","digitDirective","isSix","cardAssociateId","cardDescription","selectAssociateCategoryAlertPanelReceiver","FormlyExpenseAmountInputComponent_span_4_Template","FormlyExpenseAmountInputComponent_p_5_Template","FormlyExpenseAmountInputComponent_div_6_Template","FormlyExpenseAmountInputComponent_associate_credit_card_expense_panel_8_Template","isCreditCardExpense","FormlyRadioDescriptionInputComponent","FormlyRadioDescriptionInputComponent_div_0_Template","FormlyLogoUploaderComponent","showAlertPanel","fileExtensions","defaultLogo","isValidFile","reader","naturalHeight","naturalWidth","getSupportedExtensionsText","isValid","checkExtension","fileName","endsWith","FormlyLogoUploaderComponent_app_alert_panel_41_Template","FormlyCalendarDateInputComponent_div_7_span_1_Template","FormlyCalendarDateInputComponent","FormlyCalendarDateInputComponent_span_5_Template","FormlyCalendarDateInputComponent_div_7_Template","fnSearchPlacePrediction","fnDeleteText","fnSetAddress","FormlyLocationInputComponent_div_31_span_1_Template","googleCallsInfo","notesForGoogle","_r18","hasReturnJourney","onReturnJourneyInput","FormlyLocationInputComponent_div_33_div_1_Template","_r21","fnOpenSelectRecentJourneyPanel","fnIsMileageGoogleExpense","_r23","fnCloseSelectRecentJourneyPanel","fnSelectRecentJourney","selectRecentJourneyInputModel","FormlyLocationInputComponent","googleMappingService","queryWait","isGoogleDropdownVisible","isHomeOfcDropdownVisible","isGoogleAddressNotFound","countOfGoogleCalls","showSelectRecentJourneyPanel","isCharLimit","isToDelIconDisplay","localUserId","localLoginId","LoginId","gm_lable","fnIsManualMileageExpense","fnSearchAddress","limitChar","placeId","fnGetFromAutocompletePredictions","googleDynamicAddressList","triangulationRule","fnGetPlacePredictions","then","catch","err","query","autocompleteSrv","google","maps","places","AutocompleteService","Promise","resolve","reject","getPlacePredictions","predictions","PlacesServiceStatus","OK","fnOnInputClick","fnCloseGoogleDropdown","fnUpdateOrganisationGooglePackageCalls","CallsUsed","UpdateOrganisationGooglePackageCalls","res","place","place_id","fnIsDelIconDisplay","fnSetAddressFromTriangulation","address","_err","FormlyLocationInputComponent_span_5_Template","FormlyLocationInputComponent_span_6_Template","FormlyLocationInputComponent_span_7_Template","userHomeAddressInfo","userOfficeAddressInfo","FormlyLocationInputComponent_ul_25_Template","FormlyLocationInputComponent_div_31_Template","FormlyLocationInputComponent_div_32_Template","FormlyLocationInputComponent_div_33_Template","FormlyLocationInputComponent_select_recent_journeys_panel_34_Template","_r37","ctx_r36","fnOnRoundTripClick","fnOnMultipleLegsClick","activeTab","fncheckMultipleVehicle","_r40","ctx_r39","_r44","fnSetCurrentLocation","_r46","ctx_r45","_r48","ctx_r47","openOfficeAddPanel","item_r51","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_29_span_1_Template","_r58","_r60","ctx_r59","_r64","_r66","ctx_r65","item_r67","_r69","ctx_r68","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_61_span_1_Template","_r72","ctx_r71","onCalculateMileageClick","disabledCalculateBtn","isExpenseCategoryActive","_r74","ctx_r73","ctx_r75","_r77","ctx_r76","totalCarbonFootprint","ctx_r78","onTotalDistanceOfMultipleInput","ctx_r30","_c3","carbonEmissionText","_r81","ctx_r80","_r89","mileageDateDetails_r82","ctx_r87","fnOpenSelectDetourPanel","_r92","ctx_r90","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_79_div_21_span_6_Template","ctx_r84","fnGetDetour","_c4","_r95","ctx_r94","fnOpenAddPassengerLoadPanel","ctx_r85","fnSetAllowanceText","_c5","_r97","ctx_r96","fnOpenCreateMileageTagPanel","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_79_div_21_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_79_div_22_Template","ctx_r98","fnGetRateText","fnGetAmountText","tags","isDetourEnabled","isPassengerLoadPurchased","_r100","ctx_r99","fnViewMileageMapAndCalculations","mileageMultipleDateDetails","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_1_Template","_r102","ctx_r101","ctx_r103","ctx_r104","ctx_r105","ctx_r106","ctx_r107","fnKeypress","ctx_r108","fnFromKeyDown","FormlyMileageDetailsComponent_div_0_div_1_div_1_span_14_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_span_15_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_li_18_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_li_19_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_li_20_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_li_21_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_ul_23_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_29_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_30_Template","ctx_r109","ctx_r110","ctx_r111","ctx_r112","ctx_r113","ctx_r114","ctx_r115","ctx_r116","fnToKeyDown","FormlyMileageDetailsComponent_div_0_div_1_div_1_span_46_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_span_47_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_li_50_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_li_51_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_li_52_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_li_53_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_ul_55_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_61_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_62_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_span_65_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_span_66_Template","ctx_r117","totalDistanceOfMultiple","ctx_r118","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_77_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_78_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_div_79_Template","ctx_r120","fnViewMultipleLegPanel","FormlyMileageDetailsComponent_div_0_div_1_div_1_span_89_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_span_90_Template","FormlyMileageDetailsComponent_div_0_div_1_div_1_p_91_Template","_c6","_c7","isFromDelIconDisplay","_c8","isFromHomeOfcDropdownVisible","isFromCurrentLocationVisible","currentLocation","isOtherOfficeAvailable","isFromGoogleDropdownVisible","isFromGoogleAddressNotFound","isFromGoogleNotesDisplay","isToHomeOfcDropdownVisible","isToCurrentLocationVisible","isToGoogleDropdownVisible","isToGoogleAddressNotFound","isToGoogleNotesDisplay","isCarbonFootprintReporting","fnGetActiveMileageMultipleDateDetails","sourceDestinationInformation","FormlyMileageDetailsComponent_div_0_div_1_div_1_Template","fnGetActiveMileageTab","FormlyMileageDetailsComponent_div_0_div_1_Template","showMileageSection","_r122","ctx_r121","fnCloseDebtourNotActivatedAlertPanel","debtourNotActivatedAlertModel","_r124","ctx_r123","fnCloseSelectDetourPanel","ctx_r125","fnSelectDetourPanel","selectDetourInputModel","_r127","ctx_r126","fnCloseCreateMileageTagPanel","ctx_r128","fnSelectCreateMileageTag","createMileageTagInputModel","_r130","ctx_r129","ctx_r131","_r133","ctx_r132","fnCloseSwitchMultipleLegAlertPanel","switchMultipleLegAlertModel","_r135","ctx_r134","closeOfficeAddPanel","FormlyMileageDetailsComponent","showSelectDetourPanel","showCreateMileageTagPanel","isCharLimitFrom","isCharLimitTo","userHomeCurrencyCode","UserHomeCurrencyCode","fnSetGoogleCallsMsg","isDeleted","journeyType","mileageDateDetails","selectedMileageDateUniqueId","mileageDateUniqueId","fnShowDebtourNotActivatedAlertPanel","selectedMileageDateDetails","showDebtourNotActivatedAlertPanel","selectedMileageAllowance","allowanceId","fnShowSwitchMultipleLegAlertPanel","expenseDateUnix","totalTriangulatedDistanceText","formatted_address","showSwitchMultipleLegAlertPanel","rateText","mileageRateInfo","fnGetMileageRateString","arraylength","itemMileage","mileageRate","amountText","isOfficeAddressPanel","ofcKeyType","officeAddress","ngOnChanges","changes","FormlyMileageDetailsComponent_div_0_Template","FormlyMileageDetailsComponent_app_alert_panel_1_Template","FormlyMileageDetailsComponent_create_detour_panel_2_Template","FormlyMileageDetailsComponent_create_tag_panel_3_Template","FormlyMileageDetailsComponent_select_recent_journeys_panel_4_Template","FormlyMileageDetailsComponent_app_alert_panel_5_Template","FormlyMileageDetailsComponent_office_address_panel_6_Template","isMileageExpense","FormlyNrDisplayComponent","nrAvailableDistance","FormlyGooglePurchaseComponent","fnGoToPurchaseGooglePackage","setItem","navigate","queryParams","step","FormlyGooglePurchaseComponent_span_3_Template","isFreeCallsMsgRequired","FormlyLinkComponentComponent","FormlyLinkComponentComponent_span_3_Template","FormlyLinkComponentComponent_span_4_Template","sectionHeading","fnSelectVehicleModel","fnBindDefaultVehicle","fnShowVehicleNotAppprovedPopupReceiver","showVehicleNotAppprovedPopuModel","SelectVehiclePanelComponent","vehicleResponse","fnGetVehicleDetails","GetUserVehicleInfo","userVehicleList","fnSetVehicleInputValues","fnShowVehicleNotAppprovedPopup","selectVehicleModel","showVehicleNotAppprovedPopup","VehicleTypeId","fnGetSelectedVehicleOnTop","SelectVehiclePanelComponent_div_28_Template","SelectVehiclePanelComponent_li_31_Template","SelectVehiclePanelComponent_app_alert_panel_33_Template","FormlyRadioInputWithSideDescriptionComponent","FormlyRadioInputWithSideDescriptionComponent_div_0_Template","FormlyToggleRuleComponent","journeyFormModel","fnShowDeleteConfirmationAlert","fnShowWarningAlertsReceiver","showWarningAlertsModel","fnCloseAddPassengerLoadPanel","fnSelectPassengerLoad","passengerLoadInputModel","_r26","fnClosePassengerLoadNotActivatedAlertPanel","passengerLoadNotActivatedAlertModel","_r28","fnDeleteConfirmationAlertReceiver","deleteConfirmationAlertModel","fnGoogleServiceErrorPopupReceiver","GoogleServiceErrorPopupModel","AddjourneyPanelComponent","delegateService","ngxService","submitEvent","deleteEvent","disableSaveButton","journeyFormFields","showWarningAlerts","showAddPassengerLoadPanel","showDeleteConfirmationAlert","showGoogleServiceErrorPopup","fnObserveUnsavedChangesAlerts","fnSetPanelHeading","mileageUOMText","fnEditInputLeg","selectedSequence","isReturnJourney","fnOnReturnJourney","fnInitializeForm","multipleLegList","distance","allowanceDescription","fromLocationDescription","toLocationDescription","resourceMileageDetails","carbonFootprint","fnUpdateTagDisplay","editLegDetails","fnSelectLegDetailsForEdit","panelHeading","journeyForm","fnInitialiseFormModel","fields","fieldGroupClassName","fieldGroup","modelKey","fnOnMileageAddressChange","expressionProperties","fnCalculateMileageMultipleLeg","hideExpression","fnShowAddPassengerLoadPanel","fnShowSelectDetourPanel","fnShowCreateMileageTagPanel","latitude","longitude","locationTrackTime","fnGetFromLocation","lastLegDetails","fnIsBtnCalculateMileageDisbled","fnSaveJourneyDetails","onFormSubmitted","calculateMileageDetails","mileageDetailList","fnShowWarningAlerts","legModel","GetField","fnMarkFormAsDirty","defaultVehicle","vehicleDetail","vehicleDetailResponse","fnCalculateMileageMultipleLegRequest","CalculateMileageMultipleLeg","stop","errorInfo","ShowGoogleServiceErrorPanel","calculatedDetails","totalTriangulatedDistance","triangulatedDistance","mileageDate","operationalInformation","customMileageRate","sourceDestinationarray","mileageData","expenseErrorWarningType","isAdvanceMileagePurchasedOrTrial","selectedData","fnShowPassengerLoadNotActivatedAlertPanel","fnMarkMileageAllowanceUnselect","showPassengerLoadNotActivatedAlertPanel","displayTags","tagField","fnMarkFormAsPristine","markAsPristine","DynamicFormComponent","AddjourneyPanelComponent_span_8_Template","AddjourneyPanelComponent_button_10_Template","AddjourneyPanelComponent_app_alert_panel_19_Template","AddjourneyPanelComponent_create_tag_panel_20_Template","AddjourneyPanelComponent_create_detour_panel_21_Template","AddjourneyPanelComponent_app_alert_panel_22_Template","AddjourneyPanelComponent_add_passenger_load_panel_23_Template","AddjourneyPanelComponent_app_alert_panel_24_Template","AddjourneyPanelComponent_app_alert_panel_25_Template","AddjourneyPanelComponent_app_alert_panel_26_Template","OfficeAddressPanelComponent","zone","ukMileageRateSettingService","gridData","isOverlayRequired","closeFormAction","isOverlayEnabled","fnInitialiseGrid","fnGetGridItems","fnCreateColumnDefs","gridColumnDefs","headerName","resizable","sortable","suppressMenu","minWidth","cellClass","fnGetGridConfigItems","gridConfigItems","gridComponent","initializeGrid","fnOnGridCellClick","SoloGetOrgOfficeCodes","officeDetailsList","refreshGridData","onClosePanel","AppGridComponent","OfficeAddressPanelComponent_div_0_Template","_r20","item_r23","_r25","FormlyGoogleLocationInputComponent_div_20_span_1_Template","FormlyGoogleLocationInputComponent","isCurrentLocationVisible","isGoogleNotesDisplay","fnKeyDown","FormlyGoogleLocationInputComponent_span_4_Template","FormlyGoogleLocationInputComponent_span_5_Template","FormlyGoogleLocationInputComponent_span_6_Template","FormlyGoogleLocationInputComponent_li_9_Template","FormlyGoogleLocationInputComponent_li_10_Template","FormlyGoogleLocationInputComponent_li_11_Template","FormlyGoogleLocationInputComponent_li_12_Template","FormlyGoogleLocationInputComponent_ul_14_Template","FormlyGoogleLocationInputComponent_div_20_Template","FormlyGoogleLocationInputComponent_div_21_Template","FormlyGoogleLocationInputComponent_office_address_panel_22_Template","FormlyTextWithToggleComponent","documentCount","FormlyImgUploadComponent","alignMentClass","alignMent","fnOpenReceiptPanel","FormlyImgUploadComponent_span_16_Template","FormlyImgUploadComponent_div_17_Template","FormlySixDigitBeforeAfterDecimalInputComponent_div_5_span_1_Template","FormlySixDigitBeforeAfterDecimalInputComponent_span_6_div_1_Template","FormlySixDigitBeforeAfterDecimalInputComponent","FormlySixDigitBeforeAfterDecimalInputComponent_span_4_Template","FormlySixDigitBeforeAfterDecimalInputComponent_div_5_Template","FormlySixDigitBeforeAfterDecimalInputComponent_span_6_Template","FormlySixDigitBeforeAfterDecimalInputComponent_span_7_Template","option_r2","FormlyDynamicRadioInputComponent_p_3_span_3_Template","FormlyDynamicRadioInputComponent","FormlyDynamicRadioInputComponent_p_3_Template","FormlyDynamicRadioInputComponent_div_4_Template","fnShowAttachReceiptOptionsPanel","FormlyImageUploader2Component","ifNoImage","ifNoValidation","btnText","getElementById","FormlyImageUploader2Component_div_3_Template","FormlyImageUploader2Component_div_4_Template","FormlyImageUploader2Component_app_alert_panel_10_Template","FormlyImageUploaderComponent","FormlyImageUploaderComponent_div_3_Template","FormlyImageUploaderComponent_div_4_Template","FormlyImageUploaderComponent_app_alert_panel_10_Template","FormlyLeftTextWithToggleComponent","FormlyPlusButtonComponent","fnSetDateFormat","FormlyDateFormatComponent","selectedDate","fnGetSelectedFormatOnTop","selectedFormat","FormlyDateFormatComponent_li_3_Template","fnCloseAddContainerPanel","fnSubmitAddContainerPanel","addContainerInputModel","ContainerListPanelComponent","loggingPanelService","containerService","submitPanelEvent","containerList","selectedContainerId","selectedContainerName","selectedId","showAddContainerPanel","isAddContainerPanelDirectOpen","fnGetContainerList","cellRenderer","maxWidth","pinned","headerComponentParams","isHideText","cellRendererParams","fnOnContainerChange","wrapText","cellStyle","wordBreak","valueGetter","suppressMovable","buttonTooltip","userAction","hideProperty","fnGridFilterChanged","fnMapSelectedContainer","column","colId","fnShowContainerLoggingPanel","fnShowAddContainerPanel","GetContainerList","fnSeContainerActions","hideEdit","selectedRow","rowData","fnOnSubmitContainer","outputModel","selectedItemDetails","isEdited","container","expenseCount","fnDeleteContainer","DeleteContainer","success","onShowLogPanel","ContainerListPanelComponent_div_0_Template","ContainerListPanelComponent_app_alert_panel_24_Template","ContainerListPanelComponent_add_container_panel_25_Template","openSectionName","vatNovatReceiptType","vatNoVatReceiptTypeName","item_r16","receiptNumber","fnShowReceiptsPanel","receiptInfo","GenericPolicyViolationPanelComponent_div_7_li_17_a_7_span_5_Template","showMap","GenericPolicyViolationPanelComponent_div_7_li_17_a_7_Template","GenericPolicyViolationPanelComponent_div_7_li_17_a_8_Template","GenericPolicyViolationPanelComponent_div_7_li_17_Template","duplicate","overallDailyLimit","violation","limit","violationDate","dailyCappingLimit","monthlyCappingLimit","yearlyCappingLimit","perPersonLimit","categoryName","perNightLimit","item_r27","fieldTitle","fieldValueString","GenericPolicyViolationPanelComponent_div_14_li_13_Template","operationalInformationViolation","defaultVehicleType","selectedVehicle","_r29","expenseCategory","onChangeJustificationNotes","GenericPolicyViolationPanelComponent_div_17_span_14_Template","GenericPolicyViolationPanelComponent_div_17_div_15_Template","isNoteError","milesTravelled","triangulationMiles","detourMiles","origin","destination","receiptLat","receiptLong","latLongArray","_r38","fnCloseDuplicateReceiptPanel","originalReceiptInfo","duplicateReceiptInfo","claimType","GenericPolicyViolationPanelComponent","nrFcLogicsService","ischangeJustifactionNotes","showPotentialFraud","isPolicyViolated","dailyCapVisible","monthlyCapVisible","yearlyCapVisible","duplicateVisible","vatNoVatVisible","overallVisible","perNightVisible","perItemVisible","expenseTimeLimitVisible","defaultVehicleTypeVisible","operationalInformationVisible","showPolicyViolation","showDuplicateReceiptPanel","pageType","DecryptParameters","page","zindex_Class","selectedPolicySubCategoryItem","setPolicViolationList","fnGetPotentialFraudList","fnRefreshData","operationalInfoViolation","expenseOperationalInfo","fnGetOpenSectionName","viewReceiptComponent","fnShowmileageMapDetail","mileageDetailComponent","fnMapData","fnSubmitPanel","headerClass","potentialFraud","GetPotentialFraudData","lstExpenses","receipt","fnShowDuplicateReceiptPanel","duplicateReceipt","receipts","GenericPolicyViolationPanelComponent_div_5_Template","GenericPolicyViolationPanelComponent_div_6_Template","GenericPolicyViolationPanelComponent_div_7_Template","GenericPolicyViolationPanelComponent_div_8_Template","GenericPolicyViolationPanelComponent_div_9_Template","GenericPolicyViolationPanelComponent_div_10_Template","GenericPolicyViolationPanelComponent_div_11_Template","GenericPolicyViolationPanelComponent_div_12_Template","GenericPolicyViolationPanelComponent_div_13_Template","GenericPolicyViolationPanelComponent_div_14_Template","GenericPolicyViolationPanelComponent_div_15_Template","GenericPolicyViolationPanelComponent_div_16_Template","GenericPolicyViolationPanelComponent_div_17_Template","GenericPolicyViolationPanelComponent_app_view_receipt_18_Template","GenericPolicyViolationPanelComponent_duplicate_receipt_panel_19_Template","fnOnChangeLocation","locationList","selectedLocationId","SelectLocationPanelComponent_ul_37_div_2_Template","SelectLocationPanelComponent","locationService","locationLabel","LocationLabel","fnGetActiveLocationList","fnSetLocationInputValues","GetActiveLocations","nameCode","locationCode1","fnSelectLocation","selectLoOutputModel","locationDetails","fnGetSelectedLocationOnTop","SelectLocationPanelComponent_div_35_Template","SelectLocationPanelComponent_ul_37_Template","FormlyInputSelectionComponent","fmEmailForInvoice","showFMEmailForInvoicePanel","FormlyInputSelectionComponent_span_4_Template","FormlyInputSelectionComponent_span_5_Template","DynamicFormsModule","oAB","cJS","FormsModule","forRoot","extras","checkExpressionOn","lazyRender","resetFieldOnHide","validators","validation","NgbModule","NgbTooltipModule","NgSelectModule","TranslateModule","NgxTrimDirectiveModule","SharedModule","GridModule","ViewExpensePolicyPanelComponent","PolicyViolationPanelComponent","MultipleLegsPanelComponent","i12","i13","i14","MultipleTabPolicyViolationScreenComponent","ContianerPolicyPanelComponent","fnCloseImportInstuctionPanel","GradeImportExportPanelComponent","excelExportService","gradeService","universalImporterService","sampleTemplate","importSampleData","showImportInstuctionPanel","gradeList","gradeExport","getGradeForOrg","fnExportSampleFile","csvRecord","exportData","fnExportGrades","categoryExport","headerRow","exportToCsv","fnImportEmployees","storageData","importTemplate","fnSaveDataToLocalStorage","fnShowImportInstuctionPanel","gradeRequest","gradeRequestInfo","GetAllGradeByOrgId","exportGrade","GradeImportExportPanelComponent_div_33_Template","ImportGrades","closeGradePanel","gradePanelData","assignCategoriesToGradeListPanelInputModel","fnCloseAssignCategoriesToGradeListPanel","closeAssignClaimanttogradePopup","closeMarketingPopup","marketingPopupPanel","fnCloseGradeImportExportPanel","routes","path","SetupGradeWizardComponent","wizardService","howDoIVideoLink","showgradePanel","showSetupMileageRate","redirectStep","showAssignCategoriesToGradeListPanel","purchaseFunctionList","snapshot","resetUrl","GetWizardDetails","backToSettings","WizardAction","wizardDetails","wizardList","wizardComponent","setWidthAndHeight","stepData","stepNum","navigateToStep","fnAlertPanelRequired","showGradeImportExportPanel","showAssignClaimantToGradePopup","fnShowAssignCategoriesToGradeListPanel","myUrl","parse","href","go","pathname","alertPanelType","isMarketingPopup","text1","fnClearAlert","WizardComponent","SetupGradeWizardComponent_grade_panel_23_Template","SetupGradeWizardComponent_grade_assign_category_list_panel_24_Template","SetupGradeWizardComponent_grade_assign_employee_25_Template","SetupGradeWizardComponent_marketing_popup_26_Template","SetupGradeWizardComponent_grade_import_export_panel_28_Template","canActivate","AuthGuardService","GradeAssignEmployeeComponent","GradeRoutingModule","RouterModule","GradeModule","_angular_core__WEBPACK_IMPORTED_MODULE_3__","NgbPopoverModule","AgGridModule","AssignApproverPanelComponent","EmployeeStatusPanelComponent","ImportCommonModuleModule","AccountingIntegrationService","http","claimsHeaderService","SoloGetAccountingSystemDetail","requestinfo","body","post","exportApiUrl","headers","createLoginAuthorizationHeader","SoloGetAccountingIntegrationSteps","SoloTurnOnOffAccountingIntegration","SoloConnectToAccounting","XeroAuthorize","QuickBooksAuthorize","SoloXeroSyncMasterData","SoloSyncAccountingMasterData","SoloCheckToken","SoloSaveAccountingSystemConfigurationSettings","SoloGetAccountingSystemConfigurationSettings","SoloGetOrgCategoryByOrgCategoryId","HttpParams","append","billingApiUrl","SoloGetOrgManageCatListForAccounting","SoloGetEmployeeForAccountingIntegration","SoloGetEmployeesDataByAccountingSystemModelId","SoloGetTaxRateByAccountingSystemModelId","GetProjectsByAccountingSystemModelId","SoloGetTaxRateMasterAccounting","SoloGetAccountsByAccountingSystemModelId","SoloSaveEmployeeMappingWithAccountingIntegration","SoloCheckActiveEmployeeMappedWithAccountingIntegration","SoloSaveCategoryMappingWithAccountingIntegration","SoloGetTaxesForAccountingIntegration","SoloGetTallyTaxesForAccountingIntegration","SoloSaveTaxMappingWithAccountingIntegration","SoloSaveTallyTaxMappingWithAccountingIntegration","SoloCheckActiveTaxMappedWithAccountingIntegration","SoloCheckActiveCategoryMappedWithAccountingIntegration","SoloAddUpdateOrgCategory","SoloGetColumnList","SoloSaveOrgNameAndColumnSelection","SoloCheckTallyColumnSelection","SoloCheckColumnSettingStepsComplete","SoloGetCostCentreForAccountingIntegration","SoloSaveCostCentreMappingWithAccountingIntegration","SoloCheckActiveCostCentreMappedWithAccountingIntegration","SoloIntegrationAllStepsComplete","SoloGetOrgAccountingSysSettingByOrgId","SoloUpdateAccountingParameterForCC","SoloGetTrackingCategoryDataByAccountingSystemModelId","SoloGetDataForAccountingTrackingCategory","SoloSaveEntityMappingWithAccountingTrackingCategory","SoloGetAdditionalStepsByAccountingSystemId","catalogApiUrl","SoloCheckEntityMappedWithAccountingTrackingCategory","GetReportFieldMasterForIntegration","AddAccountingFieldsMapping","DeleteToken","GetAccSystemDetail","GetAccIntSteps","GetEmployeeForAccInt","SaveMappingData","GetTaxesForAccInt","GetProjectsForAccInt","GetOrgManageCatListForAccInt","GetTaxesForExpCatMap","taxReq","accIntMasterReq","taxList","taxMasterModel","mergeMap","taxesResponse","taxMasterModelResponse","GetAcctIntStepStatus","GetTrackCategoryForAccInt","GetSupplierForAccInt","GetTallyTaxesForAccIntCompany","GetTallyCostCentersForAccIntCompany","CheckTrackingCategoryStatus","companyAcctIntStep","isTrackingCategoryStepsMappedComplete","isLocationTrackingCategoryOn","isLocationConfigured","isLocationMapped","isCostCentreTrackingCategoryOn","isCostCenterConfigured","isCostCenterMapped","GetAccSysName","accSysId","GetAccSysType","GetDomainListByCompanyId","companyId","GetXeroBankTransactionsListCompanyId","GetXeroBankTransactionsToImportCompanyId","GetDomainEmployeeListByCompanyId","UpdateAutoSyncSettingWithDomainList","IgnoreSyncEmployees","SyncEmployees","UpdateIgnoreDomainsList","IgnoreBankAccountList","DomainListWithCountsByStatus","GetConfigSettingsForEmployeeAutomation","UpdateAutoSyncSettingAndHidePanel","GetAccSysCreditCardMappingList","UpdateConfigurationSetup","RevokeToken","refreshAccessTokenPermissions","forgotPasswordResponse","_angular_core__WEBPACK_IMPORTED_MODULE_6__","providedIn","NrFcLogicsService","nrfcConfigModel","checkForFunctionPurchased","getSubscribedFunctionsForOrganisation","subsData","fuelCard","functionID","nonReimbursableFuel","isFuelCardPurchased","isNonReimbursableFuelPurchased","getCartDetails","getCartDetailsRequest","getCartDetailsList","listCartDetails","updateClaims","cartList","isFuelCardInCart","isNonReimbursableFuelInCart","fnSaveCartDetails","SaveCartDetails","fnPopUpSvgUrl","url","fnGetPopUpText","routerNavigate","isFree","EncryptParameters","functionStatus","encryptValue","encryptedParam","fnCheckDisable","fnDisplayMarketingPopUp","isMarketingPopUpDisplay","fnNavigateUrl","_angular_core__WEBPACK_IMPORTED_MODULE_10__","MileageWizardService","GetOrgWizardDetails","cacheKey","cacheData","sessionStorage","of","DropOrgWizardDetailsCache","removeItem","SaveOrgWizardDetails","SaveOrgCartDetails","SaveMultipleVehicleSetup","UkMileageRateSettingService","token","Token","loginid","SoloGetOrgUKRateSelectedVehicles","SoloSaveOfficePostcode","SoloGetEmployeeHomeWorkerList","SoloGetEmployeeOfficeWorkerList","SoloGetEmployeeOfficeWorkerListWithUserId","SoloGetEmployeeHomeWorkerCounter","SoloSaveEmployeeWorkFromHome","SoloSaveOfficeWorker","UpdateOfficeWorker","SoloFetchDistance","SoloGetEmployeeAdvVehicleCounter","GetOrgOwnershipType","SoloGetAllTaxRates","SoloGetMasterVehicles","SoloSaveUKMileageRate","SoloGetOrgUKActiveRateByOrgMapId","SoloValidateEffectiveDate","SoloValidateOwnershipDeactive","SoloDeleteMileageRateSlab","SoloGetOrganisationDetail","httpHeaders","SoloGetOrgUKVehicleTypeWithCount","SoloGetUserByVehicleMapIdList","SoloGetVehicleReport","GetMileageAnalysisReport","expenseApiUrl","SoloCheckFunctionPurchased","SoloValidateOwnerhipName","SoloIsExpenseExistForVehicleType","SoloGetOrgAssignMileageRateToGrades","SoloSaveAssignMileageRateToGrades","SoloGetAssignMileageRateToGradesByGrade","SoloGetEmployeedAssignedToGrade","SoloAddUpdateEmployeeVehicle","functionIds","fnGetPurchaseFunctionList","SoloGetMileageAllowanceList","SoloGetAllowanceWizardDetails","mapwizard","GetWizardDetailWithOtherData","mapwizardWIthOtherDetail","SoloGetVehicleAndExpenseCounter","soloPurchaseFunctionList","orgPaidFunctionList","paidFunctions","fnGetMileagerate","vehicleTypes","mileageArray","fnKeyValueReplaceString","keyValueArray","wizardData","cancelledFuncListDetails","purchasedFunctionList","mileageValidationDate","iconPlacement","isStepMandatory","progressbarMessage","progressbarMessageArray","progressbarType","progressbarValue","stepClass","stepDesc","stepDescMessage","stepDescMessageArray","stepExtraMessage","stepExtraMessageArray","stepName","highlightStep","isInfoIcon","infoIconMsg","stepUrl","stepurl","isProgressBar","disabledClass","comingSoonDesc","AdvancesService","saveAdvanceSettings","getAdvanceSettings","switchAdvanceCappingPolicy","saveClaimantCappingPolicy","saveGradeCappingPolicy","getAdvanceCappingPolicy","getAdvancesClaimantList","getAdvancesListForClaimant","userHomeCurrencyId","submitAdvanceApproverAction","getAdvanceDetails","getAdvanceReceipts","getExpenseReceipts","mapAdvance","advancePassbook","advanceData","api","ai","ari","ei","ca","ci","ab","sa","sci","cr","hr","iltcct","extraAmount","exa","getAdvancesPolicyDashboard","getAdvancesPassbookSummary","getAdvanceReturnRequests","sendAdvanceReturnRequest","saveAdvanceReturn","SubmitAdvance","SaveAdvanceReceipts","formData","FormData","createLoginAuthorizationHeaderWithoutContentTypeHeader","deleteAdvance","OrgBasicFunctionSubscriptionService","organisationTrialCacheKey","GetOrgBasicFunctionSubscriptionTrialDetails","SaveOrgBasicFunctionSubscription","DropOrganisationFunctionSubscriptionCache","_angular_core__WEBPACK_IMPORTED_MODULE_5__","OrgSubscriptionFunctionService","getOrgSubscriptionPurchaseFunctionList","getOrgSubscriptionPurchaseFunction","getOrganisationPaymentCurrency","getOrgSubscriptionTrialingFunctionList","getOrgSubscriptionCancelledFunctionList","UnsubscribeFunction","purchaseEndTrial","EndTrialFunction","ReStartTrialFunction","ChangeBillingPlan","ChangeBillingPlanV2","CheckPackagePurchasedOrTrial","GetOrganisationBillingPlan","OrganisationSubscriptionInvoiceService","GetOrganisationSubscriptionInvoiceList","GetOrganisationInvoiceFailedRecords","UpdateOrganisationSubscriptionInvoiceStatus","PaymentMethodService","getPaymentTypeList","SaveOrderCartDetailsService","AddCartOrder","FindNavigationForPayment","AddCardDetails","getCardDetailsFromStripe","GetStripeCustomerDetailsByOrgId","getOrderCartDetails","GetOrgVatInfo","ChangePasswordService","SendMailWhenPasswordChanged","SaveFaceForLogin","ClaimantOnWebService","GetClaimantExpenseList","UpdateExpenseStatus","GetClaimantExpenseDetail","GetApproveExpenseDetail","expenseID","GetResourceMileageDetails","GetOrganisationRules","SaveExpenseReceipts","GetReceiptExpensesWithAttachment","getField","cf","fnSetClassForEntItems","Type","allowanceText","GetCurrentNRBalance","ScanExpenseReceipts","SaveExpenseInfo","GetClaimantAmendedExpenseDetails","CheckInvoiceNumberExistance","invoiceNumber","GetClaimText","DeleteReceipts","AddUpdateNRReceipt","AddUpdateFCReceipt","GetCardExpenseInfo","SaveUserCustomSetting","GetUserCustomSetting","GetExportedExpensesByExportedId","exportId","RecallExportedExpensesByExpenseIds","GetMileageMapDetail","GetExpenseDashboardDetails","PreApprovalInfo","GetRecentlyAddedAttendeeDetailByUserId","GetRecentlyAddedAttendeeDetail","SaveExpenseAttendeeInBulk","CurrencyService","isForeignCurrency","reqFetchCurrency","reqFetchCurrencyInfo","convertedDate","tempDate","setCurrencyForOrganisation","addCurrencyForOrganisation","currencyData","deleteOrgCurrency","userid","getCurrencyForOrganisation","getExpenseCounter","_globalCfg","UNDEF_VALUE","NULL_VALUE","EMPTY","BOOLEAN","FUNCTION","OBJECT","PROTOTYPE","__PROTO__","UNDEFINED","CONSTRUCTOR","SYMBOL","POLYFILL_TAG","INDEX_OF","LAST_INDEX_OF","LENGTH","DONE","VALUE","NAME","SLICE","ObjClass","ObjProto","StrCls","StrProto","MathCls","ArrCls","ArrProto","GLOBAL_CONFIG_KEY","_getGlobalValue","globalThis","self","global","_getGlobalConfig","gbl","safeGet","defValue","PRIMITIVE_TYPES","_createIs","theType","_createObjIs","theName","objToString","isUndefined","isNullOrUndefined","isDefined","arg","isPrimitiveType","isString","isFunction","isObject","isDate","isNumber","isBoolean","isError","isPromiseLike","isTruthy","objGetOwnPropertyDescriptor","getOwnPropertyDescriptor","objHasOwnProperty","objHasOwn","hasOwn","polyObjHasOwn","objForEachKey","theObject","callbackfn","thisArg","propMap","objDefineProp","defineProperty","objDefine","propDesc","_createProp","desc","set","newValue","_globalLazyTestHooks","_fetchLazyTestHooks","getLazy","lazyValue","lzy","configurable","safeGetLazy","_cachedGlobal","_cachedWindow","_cachedDocument","_cachedNavigator","_cachedHistory","_isWebWorker","_isNode","lazySafeGetInst","getInst","getGlobal","useCached","hasDocument","getDocument","hasWindow","getWindow","getNavigator","getHistory","isNode","versions","node","isWebWorker","WorkerGlobalScope","throwError","throwTypeError","Constructor","Prototype","strFunction","DynInstFuncTable","DynProxyTag","DynClassName","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","str__Proto","DynProtoBaseProto","DynProtoGlobalSettings","DynProtoCurrent","strUseBaseInst","strSetInstFuncs","Obj","_objGetPrototypeOf","getPrototypeOf","_objGetOwnProps","getOwnPropertyNames","_gbl","_gblInst","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","Function","_getObjProto","newProto","curProto","_forEachProp","func","lp","_isDynamicCandidate","funcName","skipOwn","_throwTypeError","_hasVisited","_populatePrototype","proto","baseInstFuncs","setInstanceFunc","instFuncTable","instFuncs_1","_createDynamicPrototype","dynProtoProxy","instFunc","_getInstFunc","currentDynProtoProxy","canAddInst","objProto","visited","protoFunc","_getProtoFunc","apply","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","classProto","_checkPrototype","thisTarget","thisProto","perfOptions","useBaseInst","instFuncs","_getInstanceFuncs","baseFuncs","_getBaseFuncs","_instFuncProxy","funcHost","theFunc","baseProto","_objFreeze","freeze","objAssign","assign","objKeys","objDeepFreeze","objFreeze","objGetPrototypeOf","dumpObj","format","propertyValueDump","stack","objCreate","polyObjCreate","tempFunc","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","strHasOwnProperty","__assignFn","extendStaticsFn","__extendsFn","__spreadArrayFn","from","il","_DYN_TO_LOWER_CASE","_DYN_BLK_VAL","_DYN_LENGTH","_DYN_RD_ONLY","_DYN_NOTIFY","_DYN_WARN_TO_CONSOLE","_DYN_THROW_INTERNAL","_DYN_SET_DF","_DYN_WATCH","_DYN_LOGGER","_DYN_APPLY","_DYN_PUSH","_DYN_SPLICE","_DYN_HDLR","_DYN_CANCEL","_DYN_INITIALIZE","_DYN_IDENTIFIER","_DYN_IS_INITIALIZED","_DYN_GET_PLUGIN","_DYN_POLL_INTERNAL_LOGS","_DYN_NAME","_DYN_TIME","_DYN_PROCESS_NEXT","_DYN_GET_PROCESS_TEL_CONT0","_DYN_GET_NOTIFY_MGR","_DYN_ADD_NOTIFICATION_LIS1","_DYN_REMOVE_NOTIFICATION_2","_DYN_ENABLED","_DYN_STOP_POLLING_INTERNA3","_DYN_UNLOAD","_DYN_ON_COMPLETE","_DYN_VERSION","_DYN_LOGGING_LEVEL_CONSOL4","_DYN_CREATE_NEW","_DYN_TEARDOWN","_DYN_MESSAGE_ID","_DYN_MESSAGE","_DYN_IS_ASYNC","_DYN_DIAG_LOG","_DYN__DO_TEARDOWN","_DYN_UPDATE","_DYN_GET_NEXT","_DYN_SET_NEXT_PLUGIN","_DYN_USER_AGENT","_DYN_SPLIT","_DYN_NODE_TYPE","_DYN_REPLACE","_DYN_LOG_INTERNAL_MESSAGE","_DYN_TYPE","_DYN_HANDLER","_DYN_IS_CHILD_EVT","_DYN_GET_CTX","_DYN_SET_CTX","_DYN_COMPLETE","_DYN_TRACE_ID","_DYN_SPAN_ID","_DYN_TRACE_FLAGS","asString","_arrSlice","_throwMissingFunction","_unwrapInstFunction","_unwrapFunction","clsProto","clsFn","_unwrapFunctionWithPoly","polyFunc","theArgs","strIndexOf","arrForEach","theArray","idx","_fnToString","_objCtrFnString","_gblWindow","fnCall","isPlainObject","UNDEFINED_VALUE","STR_EMPTY","STR_CHANNELS","STR_CORE","STR_CREATE_PERF_MGR","STR_DISABLED","STR_EXTENSION_CONFIG","STR_EXTENSIONS","STR_PROCESS_TELEMETRY","STR_PRIORITY","STR_EVENTS_SENT","STR_EVENTS_DISCARDED","STR_EVENTS_SEND_REQUEST","STR_PERF_EVENT","STR_GET_PERF_MGR","STR_DOMAIN","STR_PATH","STR_NOT_DYNAMIC_ERROR","rCamelCase","rNormalizeInvalid","rLeadingNumeric","isNotNullOrUndefined","normalizeJsName","_all","letter","toUpperCase","strContains","search","toISOString","getExceptionName","valChk","srcChk","theValue","getSetValue","_createProxyFunction","source","srcFunc","originalArguments","proxyFunctionAs","overwriteTarget","proxyFunctions","functionsToProxy","theFuncName","optimizeObject","ObjAssign","objExtend","obj1","obj2","obj3","obj4","obj5","obj6","extended","argLen","deep","isArgArray","isArgObj","isNewArray","isFeatureEnabled","feature","cfg","rlt","ft","featureOptIn","utcNow","now","polyUtcNow","strLocation","strJSON","strCrypto","strMsCrypto","strMsie","strTrident","strXMLHttpRequest","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","supported","getLocation","checkForMock","mockLocation","hasJSON","getJSON","isIE","nav","getIEVersion","userAgentStr","navigator_1","ua","doc","tridentVer","isBeaconsSupported","sendBeacon","isFetchSupported","withKeepAlive","isSupported","useXDomainRequest","XDomainRequest","isXhrSupported","UInt32Mask","MaxUInt32","SEED1","SEED2","_mwcSeeded","_mwcW","_mwcZ","_autoSeedMwc","_mwcSeed","seedValue","random32","signed","getCrypto","getMsCrypto","mwcRandom32","newId","number","chars","instanceName","_dataUid","_canAcceptData","createUniqueNamespace","includeVersion","createElmNodeData","accept","addDefault","theCache","_getCache","kill","_isConfigDefaults","isVal","_getDefault","dynamicHandler","theConfig","cfgDefaults","isDefaultValid","dfVal","fallbacks","fallback","fbValue","_resolveDefaultValue","newValue_1","_applyDefaultValue","defaultValue","setFn","mergeDf","reference","readOnly","blkDynamicValue","mrg","ref","usingDefault","cfgValue","dfName","dfValue","arrIndexOf","_createKeyValueMap","keyType","valueType","completeFn","theMap","_polySymbols","_wellKnownSymbolMap","createEnumKeyMap","asyncIterator","hasInstance","isConcatSpreadable","iterator","matchAll","species","toPrimitive","toStringTag","unscopables","UNIQUE_REGISTRY_ID","_symbol","_symbolFor","_symbolKeyFor","_wellKnownSymbolCache","polyNewSymbol","theSymbol","polySymbolFor","registry","_globalSymbolRegistry","gblCfg","gblSym","newSymbol_1","regId_1","_getSymbolValue","hasSymbol","getSymbol","resetCache","getKnownSymbol","noPoly","knownName","polyGetKnownSymbol","newSymbol","symbolFor","CFG_HANDLER_LINK","BLOCK_DYNAMIC","FORCE_DYNAMIC","_cfgDeepCopy","target_1","_canMakeDynamic","getFunc","state","blkVal","throwInvalidAccess","arrayMethodsToPatch","_throwDynamicError","logger","_getOwnPropGetter","_setDynamicProperty","getter","_createDynamicProperty","detail","trk","handler","clr","checkDynamic","isObjectOrArray","_getProperty","_makeDynamicObject","activeHandler","act","chng","_setProperty","ro","upd","isReferenced","hdlr","valueState","newIsObjectOrArray","_setDynamicPropertyState","flags","inPlace","rdOnly","blkProp","blockDynamicConversion","_patchArray","method","orgMethod","_i","_isProtoArray","arrSlice","fnApply","REF","UNREF","HAS_REF","ENABLED","_createTimeoutWith","startTimer","overrideFn","isArr","clearFn","clearTimeout","timerFn","dn","_createTimerHandler","refreshFn","cancelFn","theTimerHandler","timerId","_unref","_refresh","_cancel","cancel","refresh","scheduleTimeout","timeout","objSetPrototypeOf","_unsupportedError","aggregationErrorType","_createCustomError","_safeDefineName","_safeSetName","baseClass","createCustomError","constructCb","errorBase","theBaseClass","orgName","captureFn","captureStackTrace","_self","orgProto","symPrefix","symPostfix","_createDynamicHandler","getDynamicConfigHandler","theState","uid","newTarget","cfgHandler","_notifyWatchers","_setValue","_applyDefaults","defaultValues","_watch","configHandler","_createAndUseHandler","rm","use","_ref","_rdOnly","_blkPropValue","_block","allowUpdate","prevUpd","_createState","dynamicPropertySymbol","dynamicPropertyReadOnly","dynamicPropertyReferenced","dynamicPropertyBlockValue","dynamicPropertyDetail","_waitingHandlers","_watcherTimer","_useHandler","prevWatcher","setDf","notifyHandlers","watcherFailures_1","throwAggregationError","sourceErrors","theMessage","srcError","_addWatcher","_trackHandler","createDynamicConfig","config","defaultConfig","onConfigChange","_logInvalidAccess","_debugListener","listenerFuncs","_aiNamespace","_listenerProxyFunc","dbgExt","getDebugExt","listener","ns","disableDbgExt","_getExtensionNamespace","ApplicationInsights","ChromeDbgExt","STR_WARN_TO_CONSOLE","loggingLevelConsole","loggingLevelTelemetry","maxMessageLimit","enableDebug","_logFuncs","_sanitizeDiagnosticText","_logToConsole","theConsole","getConsole","logFunc","_InternalLogMessage","msgId","msg","isUserAct","properties","strProps","diagnosticText","dataType","safeGetLogger","DiagnosticLogger","identifier","queue","_loggingLevelConsole","_loggingLevelTelemetry","_maxInternalMessageLimit","_enableDebug","_unloadHandler","_messageCount","_messageLogged","_logInternalMessage","severity","_areInternalMessagesThrottled","logMessage","messageKey","_debugExtMsg","throttleLimitMessage","throttleMessage","errorToConsole","_setDefaultsFromConfig","consoleLoggingLevel","debugToConsole","resetInternalMessageCount","isAsync","__ieDyn","_getLogger","_throwInternal","_warnToConsole","createEnumStyle","createEnum","StorageType","LocalStorage","SessionStorage","AI","AI_AND_W3C","W3C","_DYN_INGESTIONENDPOINT","_DYN_TO_STRING","_DYN_REMOVE_ITEM","_DYN_COUNT","_DYN_PRE_TRIGGER_DATE","_DYN_DISABLED","_DYN_INTERVAL","_DYN_DAYS_OF_MONTH","_DYN_DATE","_DYN_GET_UTCDATE","_DYN_STRINGIFY","_DYN_PATHNAME","_DYN_CORRELATION_HEADER_E0","_DYN_EXCEPTIONS","_DYN_PARSED_STACK","_DYN_PROPERTIES","_DYN_MEASUREMENTS","_DYN_SIZE_IN_BYTES","_DYN_TYPE_NAME","_DYN_SEVERITY_LEVEL","_DYN_PROBLEM_GROUP","_DYN_IS_MANUAL","_DYN__CREATE_FROM_INTERFA1","_DYN_ASSEMBLY","_DYN_FILE_NAME","_DYN_HAS_FULL_STACK","_DYN_LEVEL","_DYN_METHOD","_DYN_LINE","_DYN_DURATION","_DYN_RECEIVED_RESPONSE","_canUseLocalStorage","_canUseSessionStorage","_storagePrefix","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","storage","getGlobalInst","fail","_getSessionStorageObject","utlCanUseSessionStorage","utlSetStoragePrefix","storagePrefix","utlGetLocalStorage","exception","utlSetLocalStorage","utlGetSessionStorage","utlSetSessionStorage","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","DisabledPropertyName","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","DEFAULT_BREEZE_PATH","strNotSpecified","strIkey","_createTrimFn","polyStrTrim","polyStrTrimStart","polyStrTrimEnd","strTrim","mathMax","strSlice","strSubstring","strSubstr","polyStrSubstr","strLeft","dataSanitizeKeyAndAddUniqueness","origLength","dataSanitizeKey","nameTrunc","uniqueField","dsPadNumber","dataSanitizeString","valueTrunc","dataSanitizeUrl","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeProperties","tempProps_1","dataSanitizeMeasurements","measurements","tempMeasurements_1","measure","_msgId","inputTrunc","num","createTelemetryItem","baseType","envelopeName","customProperties","systemProperties","iKey","telemetryItem","time","ext","baseData","Event","aiDataContract","ver","envelopeType","Trace","severityLevel","DataPoint","kind","stdDev","Metric","metrics","dataPoint","isNaN","strEmpty","msToTimeSpan","totalms","round","days","PageView","durationMs","duration","dataSanitizeId","PageViewPerformance","unused","cs4BaseData","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","arrMap","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_stringify","convertToString","_formatMessage","theEvent","errorType","evtMessage","filename","lineno","colno","_isStackDetails","_convertStackObj","errorStack","_getStackFromErrorObj","errorObj","opera","_getOperaStack","errorMessage","lines","entry","reason","_getErrorType","results","_formatErrorCode","_perf","Exception","exceptions","_isExceptionInternal","_ExceptionDetails","CreateAutoException","lineNumber","columnNumber","errorSrc","stackDetails","CreateFromInterface","ex","__assign","toInterface","_b","problemGroup","isManual","exceptionDetailsInterface","CreateSimpleException","assembly","line","formatError","outerId","hasFullStack","parsedStack","_isExceptionDetailsInternal","_parseStack","frames","level_1","totalSizeInBytes_1","frame","theFrame","_StackFrame","parsedFrame","left","right","acceptedLeft","acceptedRight","dataSanitizeException","exceptionTrunc","_formatStackTrace","sourceFrame","level","matches","sizeInBytes","baseSize","getPerformance","generateW3CId","tmp","hexValues","oct","clockSequenceHi","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","invalidValue","_formatValue","createTraceParent","traceId","spanId","isValidTraceId","isValidSpanId","traceFlags","formatTraceParent","_formatFlags","RequestHeaders","createTypeMap","createSimpleMap","mapClass","createValueMap","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","traceStateHeader","sdkContextHeader","sdkContextHeaderAppIdRequest","requestContextHeaderLowerCase","_document","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","createElement","host","urlParseHost","inclPort","fullHost","urlParseFullHost","protocol","port","_internalEndpoints","isInternalApplicationInsightsEndpoint","endpointUrl","correlationIdCanIncludeCorrelationHeader","requestUrl","currentHost","disableCorrelationHeaders","correlationHeaderExcludePatterns","requestHost","enableCorsCorrelation","matchExists_1","includedDomains","correlationHeaderDomains","domain","excludedDomains","correlationHeaderExcludedDomains","correlationIdGetCorrelationContext","responseHeader","correlationId","correlationIdGetCorrelationContextValue","keyValues","keyValue","dateTimeUtilsNow","perf","timing","navigationStart","dateNow","dateTimeUtilsDuration","createDistributedTraceContextFromTrace","telemetryTrace","parentCtx","trace","getName","setName","getTraceId","traceID","setTraceId","getSpanId","parentID","setSpanId","getTraceFlags","setTraceFlags","newTraceFlags","RemoteDependencyData","absoluteUrl","commandName","resultCode","requestAPI","correlationContext","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","AjaxHelperParseDependencyPath","parsedUrl","pathName","createDomEvent","eventName","createEvent","initEvent","_stringToBoolOrDefault","cfgDfSet","setter","cfgDfValidate","validator","fallBackName","cfgDfBoolean","_doc","strEndsWith","polyStrEndsWith","searchString","searchValue","chkLen","strToGMTString","strToUTCString","strCookie","strExpires","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_cookieCache","_globalCookieConfig","rootDefaultConfig","cookieCfg","cfgDfMerge","enabled","ignoreCookies","blockedCookies","cookieDomain","cookiePath","_getDoc","_isMgrEnabled","cookieMgr","isEnabled","_isIgnoredCookie","cookieMgrCfg","_isCfgEnabled","rootConfig","cookieMgrConfig","isCfgEnabled","cookieEnabled","safeGetCookieMgr","getCookieMgr","createCookieMgr","_gblCookieMgr","inst","_path","_domain","unloadHandler","_enabled","_getCookieFn","_setCookieFn","_delCookieFn","getCookie","_getCookieValue","setCookie","_setCookieValue","delCookie","areCookiesSupported","gblManager","setEnabled","maxAgeSec","_isBlockedCookie","_extractParts","_isIE","expireMs","expiry","setTime","_formatDate","location_1","uaDisallowsSameSiteNone","_formatCookieValue","del","purge","thePart","theDate","cookieValue","theCookie","strOnPrefix","strAttachEvent","strAddEventHelper","strDetachEvent","strRemoveEventListener","strEvents","strVisibilityChangeEvt","strPageHide","strBeforeUnload","strPageHideNamespace","rRemoveEmptyNs","rRemoveTrailingEmptyNs","_guid","elmNodeData","eventNamespace","_normalizeNamespace","_getEvtNamespace","evtNamespace","theNamespace_1","parsedEvent","_getRegisteredEvents","evtName","aiEvts","registeredEvents","_doDetach","handlerRef","useCapture","_doUnregister","events","unRegFn","capture","mergeEvtNamespace","theNamespace","namespaces","eventOn","_doAttach","registeredEvent","guid","eventOff","evtName_1","found_1","_unregisterEvents","eventCache","evtType","regEvent","_addEventListeners","excludeEvents","added","addEventHandler","removeEventListeners","removeEventHandler","addPageHideEventListener","newNamespaces","pageUnloadAdded","_handlePageVisibility","visibilityState","strExecutionContextKey","strParentContextKey","strChildrenContextKey","PerfEvent","payloadDetails","theDetails_1","childTime","childEvts","childEvt","exTime","ParentContextKey","ChildrenContextKey","PerfManager","manager","fire","perfEvent","doPerfActiveKey","doPerf","mgrSource","getSource","perfMgr","perfEvt","currentActive","children","pluginStateData","_getPluginState","plugin","initializePlugins","processContext","pluginState","initPlugins","lastPlugin","proxy","thePlugin","isInitialized","getCfg","sortPlugins","plugins","extA","extB","bHasProcess","strTelemetryPluginChain","strHasRunFlags","strGetTelCtx","_chainId","_createInternalContext","telemetryChain","startAt","_nextProxy","_onComplete","_getNextProxyStart","createTelemetryProxyChain","context","_next","_moveNext","nextProxy","completeDetails","diagLog","getExtCfg","_resolveExtCfg","newConfig","_getExtCfg","getConfig","_getConfig","extConfig","hasNext","getNext","setNext","nextPlugin","iterate","_iterateChain","onComplete","_addOnComplete","that","createIfMissing","idCfg","extCfg","createProcessTelemetryContext","internalContext","_processNext","_createNew","createProcessTelemetryUnloadContext","unloadState","createProcessTelemetryUpdateContext","updateState","firstProxy","lastProxy_1","newProxy","createTelemetryPluginProxy","chainId","hasProcessTelemetry","hasSetNext","proxyChain","getPlugin","processTelemetry","_processTelemetry","itemCtx","_processChain","_getTelCtx","_callProcessTelemetry","sync","unload","_unloadPlugin","unloadCtx","_callTeardown","hasRun","pluginCore","update","_updatePlugin","updateCtx","_callUpdate","_id","_setNext","processPluginFn","hasRunContext","nextId","hasNextRun","_iterSymbol","aiInstrumentHooks","cbNames","_arrLoop","arr","_doCallbacks","hooks","callDetails","cbArgs","hookCtx","hook","cbks","orgEx","hookErrorCb","_getOwner","checkPrototype","checkParentProto","owner","_createInstrumentHook","callbacks","aiHook","newFunc","_createFunctionHook","orgArgs","funcArgs","_replaceArg","_createArgs","rslt","theHook","InstrumentFunc","InstrumentEvent","createUnloadHandlerContainer","handlers","_addHandler","run","_runHandlers","isIterator","arrAppend","elms","isIterable","isStrictNullOrUndefined","iterForOf","iter","iterResult","failed","throw","return","elm","createUnloadHookContainer","_hooks","_doUnload","oldHooks","remove","_addHook","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_unloadHandlerContainer","_hookContainer","currentCtx","_setDefaults","pluginChain","_initDefaults","unloadDone","theUnloadCtx","theUnloadState","_unloadCallback","updateDone","theUpdateCtx","_doUpdate","_updateCallback","setInitialized","_DYN_IS_STORAGE_USE_DISAB0","_DYN__ADD_HOOK","_DYN_CORE","_DYN_DATA_TYPE","_DYN_ENVELOPE_TYPE","_DYN_TRACK","_DYN_TRACK_PAGE_VIEW","_DYN_TRACK_PREVIOUS_PAGE_1","_DYN_SEND_PAGE_VIEW_INTER2","_DYN_GET_ENTRIES_BY_TYPE","_DYN_START_TIME","_DYN_SEND_PAGE_VIEW_PERFO3","_DYN_POPULATE_PAGE_VIEW_P4","_DYN_HREF","_DYN_SEND_EXCEPTION_INTER5","_DYN_EXCEPTION","_DYN_ERROR","_DYN__ONERROR","_DYN_ERROR_SRC","_DYN_LINE_NUMBER","_DYN_COLUMN_NUMBER","_DYN__CREATE_AUTO_EXCEPTI6","_DYN_ADD_TELEMETRY_INITIA7","_DYN_AUTO_TRACK_PAGE_VISI9","_DYN_IS_BROWSER_LINK_TRAC10","_DYN_ENABLE_AUTO_ROUTE_TR11","_DYN_ENABLE_UNHANDLED_PRO12","_DYN_AUTO_UNHANDLED_PROMI13","_DYN_IS_PERFORMANCE_TIMIN14","_DYN_GET_PERFORMANCE_TIMI15","_DYN_NAVIGATION_START","_DYN_SHOULD_COLLECT_DURAT16","_DYN_IS_PERFORMANCE_TIMIN17","_DYN_RESPONSE_START","_DYN_LOAD_EVENT_END","_DYN_RESPONSE_END","_DYN_CONNECT_END","_DYN_PAGE_VISIT_START_TIM18","PageViewManager","appInsights","overridePageViewDuration","pageViewPerformanceManager","_logger","queueTimer","itemQueue","pageViewPerformanceSent","_flushChannels","flush","_startTimer","doFlush","_addQueue","pageView","uri","customDuration","pageViewSent","processed","pageViewPerformance","teardown","botAgentNames","_isPerformanceTimingSupported","_isPerformanceTimingDataReady","domainLookupStart","domLoading","_getPerformanceTiming","_shouldCollectDuration","durations","isGoogleBot","PageViewPerformanceManager","navigationTiming","_getPerformanceNavigationTiming","_isPerformanceNavigationTimingSupported","total","network","dom","requestStart","responseEnd","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageUrl","prevPageVisitData","stopPageVisitTimer","pageVisitEndTime","pageVisitDataJsonStr","pageVisitTime","utlRemoveSessionStorage","currPageVisitDataStr","PageVisitData","Timing","_events","_dispatchEvent","evnt","dispatchEvent","sessionRenewalMs","_chkConfigMilliseconds","sessionExpirationMs","disableExceptionTracking","samplingPercentage","_chkSampling","namePrefix","cfgDfString","disableFlushOnBeforeUnload","disableFlushOnUnload","AnalyticsPlugin","_eventTracking","_pageTracking","_pageViewManager","_pageViewPerformanceManager","_pageVisitTimeManager","_preInitTelemetryInitializers","_isBrowserLinkTrackingEnabled","_browserLinkInitializerAdded","_enableAutoRouteTracking","_historyListenerAdded","_disableExceptionTracking","_autoExceptionInstrumented","_enableUnhandledPromiseRejectionTracking","_autoUnhandledPromiseInstrumented","_extConfig","_autoTrackPageVisitTime","_prevUri","_currUri","_evtNamespace","priority","autoRoutePVDelay","_base","throwInternal","processNext","trackEvent","EventTelemetry","startTrackEvent","stopTrackEvent","trackTrace","trackMetric","metric","inPv","refUri","referrer","navigationEntries","timeOrigin","loadEventStart","trackPageViewPerformance","inPvp","startTrackPage","stopTrackPage","measurement","loc","theError","trackException","_window","URL","isCrossOriginError","_sendCORSException","errorString","telemetryInitializer","initializer","_populateDefaults","_updateStorageUsage","utlDisableStorage","utlEnableStorage","_addDefaultTelemetryInitializers","browserLinkPaths_1","envelope","remoteData","trackPageVisitTime","average","sampleCount","PageName","_updateExceptionTracking","locn","autoExceptionInstrumented","rsp","_addUnhandledPromiseRejectionTracking","_location","_getReason","_updateLocationChange","win","_history","pushState","replaceState","strUndefined","_addHistoryListener","history","_popstateHandler","_locationChangeHandler","distributedTraceCtx","_getDistributedTraceCtx","getTraceCtx","traceLocationName","hash","_doTeardown","Version","doAwaitResponse","doAwait","resolveFn","rejectFn","finallyFn","doFinally","finally","_defaultDeepCopyHandler","plainObjDeepCopyHandler","defaultDeepCopyHandlers","arrayDeepCopyHandler","functionDeepCopyHandler","dateDeepCopyHandler","_deepCopy","visitMap","userHandler","newPath","newCtx","isPlain","isPrim","copy","newKey","_copyProps","_getSetVisited","theEntry","newEntry","_doExtend","theArg","objCopyProps","deepExtend","objDeepCopy","strSplit","setValueByKey","parts","lastKey","_DYN_FEATURE_OPT_IN","_DYN_ON_CFG_CHANGE_RECEIV0","_DYN_NON_OVERRIDE_CONFIGS","_DYN_SCHEDULE_FETCH_TIMEO1","replaceByNonOverrideCfg","nonOverrideConfigs","curLevel","maxLevel","exceedMaxLevel","curCfg_1","nonOverrideVal","OFF","_debugState","_debugResult","_debugHandled","_hasInitEvent","_hasPromiseRejectionEvent","udfVal","_defaultConfig","syncMode","blkCdnCfg","customEvtName","cfgUrl","overrideSyncFn","overrideFetchFn","instrumentationKey","connectionString","CfgSyncPlugin","_extensionConfig","_mainConfig","_evtName","_cfgUrl","_timeoutHandle","_receiveChanges","_broadcastChanges","_blkCdnCfg","_fetchTimeout","_retryCnt","_onCfgChangeReceive","_nonOverrideConfigs","_fetchFn","_overrideFetchFn","_overrideSyncFn","_paused","_setCfg","isAutoSync","_sendCfgsyncEvents","updateCfg","_eventOff","global_1","customDetails","sendCustomEvent","CustomEvent","createCustomDomEvent","initCustomEvent","_updateEventListenerName","_addEventListener","global_2","cfgEvent","newCfg","_replaceTartgetByKeys","_cfg","_fetchSender","oncomplete","fetchFn","fetch","Request","_doOnComplete","ok","_xhrSender","xhr_1","XMLHttpRequest","open","onreadystatechange","readyState","responseText","onerror","ontimeout","send","_onFetchComplete","JSON_1","applyCdnfeatureCfg","cdnCfg","cdnConfig_1","featureVal","resolveCdnFeatureCfg","userOptInDetails","cdnFt","cdnM","cdnOnV","onCfg","cdnOffV","offCfg","userFt","userM","userOnV","userOffV","onFld","offFld","onV","offV","blockCdnCfg","_overrideCdnCfgByFeature","ftVal","_setupTimer","unref","_clearScheduledTimer","preBlkCdn","newEvtName","_getFetchFnInterface","pause","resume","setCfg","updateEventListenerName","_getDbgPlgTargets","_promiseDebugEnabled","STRING_STATES","DISPATCH_EVENT","STR_PROMISE","NODE_UNHANDLED_REJECTION","UNHANDLED_REJECTION","_currentPromiseId","_uniquePromiseId","_unhandledRejectionTimeout","dumpFnObj","_createAllPromise","newPromise","additionalArgs","values_1","pending_1","_createResolvedPromise","_createRejectedPromise","_resolve","_isPromiseSupported","_promiseCreator","_processPendingItems","pending","createAsyncPromise","executor","_createPromise","processor","_settledValue","_thePromise","_state","_hasResolved","_queue","_parentId","_handled","_unHandledRejectionHandler","_then","onResolved","onRejected","_processQueue","_strState","_createSettleIfFn","newState","allowState","_notifyUnhandledRejection","emitEvent","populateEvent","useNewEvent","theEvt","onFinally","thenFinally","catchFinally","_addDebugState","thePromise","stateFn","resultFn","handledFn","_rejectFn","timeoutItemProcessor","callbackTimeout","createNativePromise","PrmCls","_reject","createPromise","createAllPromise","getLength","_unwrapProp","propName","runTargetUnload","doUnloadAll","targets","done","resolved","_aiNameFunc","baseName","aiName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","createClassFromInterface","defaults","class_1","applicationBuild","applicationTypeId","applicationId","applicationLayer","deviceIp","deviceLanguage","deviceLocale","deviceModel","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOS","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceType","deviceMachineName","deviceVMName","deviceBrowser","deviceBrowserVersion","locationIp","locationCountry","locationProvince","locationCity","operationId","operationName","operationParentId","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionId","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userStoreRegion","userAuthUserId","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalSdkVersion","internalAgentVersion","internalSnippet","internalSdkSrc","CtxTagKeys","Envelope","sampleRate","STR_DURATION","_DYN_TAGS","_DYN_DEVICE_TYPE","_DYN_DATA","_DYN_ON_LINE","_DYN_IS_ONLINE","_DYN__GET","_DYN_ENQUEUE","_DYN_EVENTS_LIMIT_IN_MEM","_DYN_EMIT_LINE_DELIMITED_0","_DYN_CLEAR","_DYN_BATCH_PAYLOADS","_DYN_MARK_AS_SENT","_DYN_CLEAR_SENT","_DYN_BUFFER_OVERRIDE","_DYN__BUFFER__KEY","_DYN__SENT__BUFFER__KEY","_DYN__MAX__BUFFER__SIZE","_DYN_TRIGGER_SEND","_DYN__SENDER","_DYN_CUSTOM_HEADERS","_DYN_MAX_BATCH_SIZE_IN_BY1","_DYN_ONUNLOAD_DISABLE_BEA2","_DYN_IS_BEACON_API_DISABL3","_DYN_ENABLE_SESSION_STORA4","_DYN__BUFFER","_DYN_INSTRUMENTATION_KEY","_DYN_DISABLE_XHR","_DYN_ONUNLOAD_DISABLE_FET5","_DYN_CONVERT_UNDEFINED","_DYN_MAX_BATCH_INTERVAL","_DYN_BASE_TYPE","_DYN_SAMPLE_RATE","_DYN__ON_ERROR","_DYN__ON_PARTIAL_SUCCESS","_DYN__ON_SUCCESS","_DYN_ITEMS_ACCEPTED","_DYN_SET_REQUEST_HEADER","_DYN_EVENTS_SEND_REQUEST","_DYN_GET_SAMPLING_SCORE","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","startTime","iKeyNoDashes","_extractPartAExtensions","envTags","itmExt","itmTags","extUser","authId","localId","extApp","app","sesId","extDevice","device","deviceClass","ip","web","browserLang","browserVer","envData","envBaseData","envProps","screenRes","userConsent","extOs","os","extTrace","tgs","tg","theTags","EnvelopeCreator","EnvelopeCreatorInit","EventEnvelopeCreator","customMeasurements","baseTypeSource","eventData","_disableEvents","BaseSendBuffer","_buffer","_bufferFullMessageSent","_set","buffer","payload","getItems","newLogger","canUseSessionStorage","newBuffer","SessionStorageSendBuffer","ArraySendBuffer","_namePrefix","bufferItems","_getBuffer","notDeliveredItems","_removePayloadsFromBuffer","payloads","remaining","prefixedKey","bufferJson","buffer_1","_setBuffer","BUFFER_KEY","sentElements","unsentItems","sentItems","SENT_BUFFER_KEY","MAX_BUFFER_SIZE","Serializer","_serializeObject","circularReferenceCheck","output","_serializeStringMap","_serializeArray","contract","isRequired","isHidden","isPresent","isObj","sources","expectedType","serialize","HashCodeScoreGenerator","getHashCodeScore","getHashCode","INT_MAX_VALUE","SamplingScoreGenerator","hashCodeGenerator","Sample","samplingRate","samplingScoreGenerator","isSampledIn","_getResponseText","xhr","defaultAppInsightsChannelConfig","disableTelemetry","isRetryDisabled","EnvelopeTypeCreator","TraceEnvelopeCreator","PageViewEnvelopeCreator","currentContextId","bd","isLoggedIn","pageViewData","PageViewPerformanceEnvelopeCreator","ExceptionEnvelopeCreator","exData","MetricEnvelopeCreator","baseMetricData","DependencyEnvelopeCreator","remoteDepData","responseCode","Sender","_consecutiveErrors","_retryAt","_serializer","_stamp_specific_redirects","_headers","_fallbackSender","_syncUnloadSender","_offlineListener","_endpointUrl","_orgEndpointUrl","_maxBatchSizeInBytes","_beaconSupported","_customHeaders","_disableTelemetry","_instrumentationKey","_convertUndefined","_isRetryDisabled","_maxBatchInterval","_sessionStorageUsed","_bufferOverrideUsed","_enableSendPromise","_syncFetchPayload","_checkMaxSize","incomingPayload","incomingSize","_checkResponsStatus","responseUrl","countOfItemsInPayload","_appId","_parseResponse","_checkAndUpdateEndPointUrl","_isRetriable","_resendPayload","isOnline","_doUnloadSend","_beaconSender","_doBeaconSend","batch","plainTextBatch","Blob","queued","_onSuccess","droppedPayload","thePayload","resolveFunc","rejectFunc","endPointUrl","_xhrReadyStateChange","_formatErrorMessageXhr","_fetchKeepAliveSender","payloadSize","_doFetchSender","requestHeaders","Headers","batchLength","ignoreResponse","responseHandled","keepalive","response_1","resp","statusText","itemsReceived","itemsAccepted","linearFactor","payload_1","_setRetryTime","delayInSeconds","backOffSlot","backOffDelay","retryAfterTimeSpan","retryInterval","timerValue","_xdrSender","xdr","_xdrOnLoad","_formatErrorMessageXdr","lastIndexOf","_sample","callBack","sendReason","onunloadFlush","addHeader","createOfflineListener","parentEvtNamespace","_navigator","_isListening","_onlineStatus","_enableEvents","ononline","_setOnline","_setOffline","_isOnline","isListening","_unload","senderConfig","customHeader","bufferOverride","_validateInstrumentationKey","disableValidation","disableInstrumentationKeyValidation","enableSendPromise","sendPostFunc","diagLogger","_isSampledIn","aiEnvelope_1","constructEnvelope","doNotSendItem_1","responseURL","async","forcedSender","_notifySendRequest","sendRequest","_getNotifyMgr","_notificationManager","ieVer","retry","errors_1","extracted","orig","convertUndefined","arrReduce","ThrottleMgr","_config","_localStorageObj","_isTriggered","_isReady","_isSpecificDaysGiven","_flushMessage","msgID","saveUnsentMsg","_canSampledIn","_getCfgByKey","randomValue","maxValue","localStorageObj","_getLocalStorageObjByKey","canThrottle","_canThrottle","throttled","isTriggered","_isTrigger","maxSendNumber","localStorageName","_getLocalStorageName","_resetLocalStorage","_sendMessage","isThrottled","throttleNum","_getQueueByKey","_setCfgByKey","curCfg","configInterval","daysOfMonth","_getIntervalConfig","interval","monthInterval","dayInterval","canUseLocalStorage","curDate","_getThrottleDate","monthCheck","monthExpand","getUTCFullYear","getUTCMonth","_checkInterval","dayCheck","daySpan","msgKey","prefix","fix","dateStr","storageName","curObj","_getLocalStorageObj","storageObj","preTriggerDate","isTrigger","_isTriggeredOnCurDate","_initConfig","addUnloadHook","coreConfig","throttleMgrCfg","localObj","isReady","flushAll","result_1","isFlushed","onReadyState","sendMessage","perfEvtsSendAll","_runListeners","listeners","NotificationManager","_listeners","waiting","_finishUnload","asyncUnload","TelemetryInitializerPlugin","_initializers","addTelemetryInitializer","_addInitializer","theInitializer","_runInitializers","doNotSendItem","telemetryInitializersCount","strValidationError","strSdkUnloadingError","diagnosticLogInterval","_createPerfManager","notificationMgr","_isPluginPresent","exists","_deepMergeConfig","newValues","merge","_findWatcher","newWatcher","theListener","AppInsightsCore","_configHandler","_isInitialized","_eventQueue","_perfManager","_cfgPerfManager","_cookieManager","_pluginChain","_configExtensions","_channelConfig","_channels","_isUnloading","_telemetryInitializerPlugin","_internalLogsEventName","_unloadHandlers","_traceCtx","_cfgListeners","_extensions","_pluginVersionStringArr","_pluginVersionString","_internalLogPoller","_internalLogPollerListening","_forceStopInternalLogPoller","_startLogPoller","alwaysStart","_addUnloadHook","isRunning","createTimeout","_flushInternalLogs","_setPluginVersions","thePlugins","_addPluginVersions","channels","cfgExtensions","_createTelCtx","theCtx","_getPluginChain","_initPluginChain","theExtensions","_validateExtensions","channelPriority","allExtensions","coreExtensions","extPriorities","extPriority","rootCtx","_getPlugin","pluginIdentifier","theExt","channelHosts","getChannel","removeCb","pluginsToRemove","_removePlugins","removed","removeComplete","newConfigExtensions","newChannelConfig","newQueue","channel","track","cbTimeout","doneIterating","cbTimer","doCallback","handled_1","_updateHook","_logOrThrowError","_notifyInvalidEvent","notificationManager","_initDebugListener","getDebugListener","_initPerfManager","enablePerfMgr","__spreadArray","teeController","_registerDelayedCfgListener","unloadHdl","releaseQueue","getChannels","setCookieMgr","createPerfMgr","setPerfMgr","eventCnt","eventQueue","unloadComplete","flushComplete","processUnloadCtx","addPlugin","replaceExisting","addCb","existingPlugin","_addPlugin","removedPlugins_1","mergeExisting","oldCfg","createNew","createDistributedTraceContext","setTraceCtx","traceCtx","onCfgChange","unloadHook","_addDelayedCfgListener","fnd","getWParam","enableWParam","STR_PROPERTIES","_DYN_REQUEST_URL","_DYN_INST","_DYN_CONTEXT","_DYN_ABORTED","_DYN_TRACE_ID0","_DYN_SPAN_ID1","_DYN_INCLUDE_CORRELATION_2","_DYN_GET_ABSOLUTE_URL","_DYN_HEADERS","_DYN_REQUEST_HEADERS","_DYN_TRACK_DEPENDENCY_DAT3","_DYN_ENABLE_REQUEST_HEADE4","_DYN_ENABLE_AJAX_ERROR_ST5","_DYN_ENABLE_AJAX_PERF_TRA6","_DYN_MAX_AJAX_CALLS_PER_V7","_DYN_EXCLUDE_REQUEST_FROM8","_DYN_ADD_REQUEST_CONTEXT","_DYN_DISABLE_AJAX_TRACKIN9","_DYN_AJAX_PERF_LOOKUP_DEL10","_DYN_DISABLE_FETCH_TRACKI11","_DYN_ENABLE_RESPONSE_HEAD12","_DYN_STATUS","_DYN_STATUS_TEXT","_DYN_HEADER_MAP","_DYN_OPEN_DONE","_DYN_SEND_DONE","_DYN_REQUEST_SENT_TIME","_DYN_ABORT_DONE","_DYN_GET_TRACE_ID","_DYN_GET_TRACE_FLAGS","_DYN_ERROR_STATUS_TEXT","_DYN_STATE_CHANGE_ATTACHE13","_DYN_RESPONSE_TEXT","_DYN_RESPONSE_FINISHED_TI14","_DYN__CREATE_TRACK_ITEM","_DYN_RESPONSE","_DYN_GET_ALL_RESPONSE_HEA15","_DYN_GET_PART_APROPS","_DYN_PERF_MARK","_DYN_PERF_TIMING","_DYN_AJAX_DIAGNOSTICS_MES16","_DYN_CORRELATION_CONTEXT","_DYN_AJAX_TOTAL_DURATION","_DYN_EVENT_TRACE_CTX","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","strPerf","XHRMonitoringState","setRequestHeaderDone","ajaxRecord","completed","requestHeadersSize","responseReceivingDuration","callbackDuration","requestSize","responseStartedTime","callbackFinishedTime","endTime","xhrMonitoringState","clientFailure","getAbsoluteUrl","urlGetAbsoluteUrl","getPathName","urlGetCompleteUrl","ajaxType","enableRequestHeaderTracking","getResponse","ajaxTotalDuration","requestSentTime","responseFinishedTime","dependency","_populatePerfData","ajaxData","propsSet","strStart","strEnd","strDomainLookup","strConnect","strRedirect","strRequest","strResponse","strStartTime","strDomainLookupStart","strDomainLookupEnd","strConnectStart","strConnectEnd","strRequestStart","strRequestEnd","strResponseStart","strResponseEnd","strRedirectStart","strRedirectEnd","strTransferSize","strEncodedBodySize","strDecodedBodySize","strServerTiming","serverTiming","server_1","perfAttempts","headerMap","responseHeaders","responseType","partA","traceExt","AJAX_MONITOR_PREFIX","strDiagLog","AJAX_DATA_CONTAINER","STR_FETCH","ERROR_HEADER","ERROR_PREFIX","ERROR_POSTFIX","ERROR_NOT_SENT","CORRELATION_HEADER_ERROR","CUSTOM_REQUEST_CONTEXT_ERROR","FAILED_TO_CALCULATE_DURATION_ERROR","_markCount","_getAjaxData","ajaxDataId","_isHeaderSet","_getFailedAjaxDiagnosticsMessage","_throwInternalCritical","ajaxMonitorInstance","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","ajaxDiagnosticsMessage","_ajaxDataId","_indexOf","theHandler","_processDependencyContainer","BLOB_CORE","DfltAjaxCorrelationHeaderExDomains","_internalExcludeEndpoints","distributedTracingMode","maxAjaxPerfLookupAttempts","ignoreHeaders","addIntEndpoints","AjaxMonitor","_fetchInitialized","_xhrInitialized","_currentWindowHost","_enableRequestHeaderTracking","_enableAjaxErrorStatusText","_trackAjaxAttempts","_context","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_disabledUrls","_disableAjaxTracking","_disableFetchTracking","_excludeRequestFromAutoTrackingPatterns","_addRequestContext","_dependencyHandlerId","_dependencyListeners","_dependencyInitializers","_ignoreHeaders","_maxAjaxPerfLookupAttempts","_ajaxPerfLookupDelay","_distributedTracingMode","_polyfillInitialized","_canIncludeHeaders","_hookProto","InstrumentProto","_isDisabledRequest","theUrl","theRegex","idx2","_isMonitoredXhrInstance","excludeAjaxDataValidation","ajaxValidation","initialized","_createMarkId","performance_1","mark","markId","entries","getEntriesByName","_findPerfResourceEntry","initiatorType","trackCallback","reportError","perfMark","performance","maxAttempts","retryDelay","attempt","locateResourceTiming","perfTiming","getEntries","entryType","clearMarks","_getFailedFetchDiagnosticsMessage","_reportFetchMetrics","_reportFetchError","failedProps","errorProps","fetchDiagnosticsMessage","sysProperties","_reportDependencyInternal","initializers","aborted","_instrumentXhr","_supportsAjaxMonitoring","strPrototype","abort","xhrData","theOpen","req","_openHandler","spanID","xhrRequestData","ajaxDataCntr","_attachToOnReadyStateChange","_onAjaxComplete","_reportXhrError","ajaxResponse","_getAjaxCorrelationContext","responseHeadersString","getResponseHeader","responseHeaderMap_2","shift","exceptionText","hkErr","_addSharedXhrHeaders","_instrumentFetch","_supportsFetch","_global","isPolyfill","polyfill","fetchData","_createFetchRecord","newInit","fetchData_1","_getFetchCorrelationContext","responseHeaderMap_1","_populateContext","propExt","trackDependencyData","currentWindowHost","_processDependencyListeners","traceParent","addDependencyListener","dependencyListener","addDependencyInitializer","dependencyInitializer","Application","Device","Internal","unloadHookContainer","sdkExtension","sdkVersion","_DYN_SESSION_MANAGER","_DYN_IS_USER_COOKIE_SET","_DYN_IS_NEW_USER","_DYN_GET_TRACE_CTX","_DYN_TELEMETRY_TRACE","_DYN_APPLY_SESSION_CONTEX0","_DYN_APPLY_APPLICATION_CO1","_DYN_APPLY_DEVICE_CONTEXT","_DYN_APPLY_OPERATION_CONT2","_DYN_APPLY_USER_CONTEXT","_DYN_APPLY_OPERATING_SYST3","_DYN_APPLY_LOCATION_CONTE4","_DYN_APPLY_INTERNAL_CONTE5","_DYN_ACCOUNT_ID","_DYN_GET_SESSION_ID","_DYN_NAME_PREFIX","_DYN_USER_COOKIE_POSTFIX","_DYN_ID_LENGTH","_DYN_GET_NEW_ID","_DYN_AUTOMATIC_SESSION","_DYN_AUTHENTICATED_ID","_DYN_ACQUISITION_DATE","_DYN_RENEWAL_DATE","_DYN_JOIN","_DYN_COOKIE_SEPARATOR","_DYN_AUTH_USER_COOKIE_NAM7","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","_sessionExpirationMs","_sessionRenewalMs","sessionCookiePostfix","_initializeAutomaticSessionWithData","session","sessionData","sessionReset","tokens","acqMs","renewalMs","_setCookie","nowMs","acq","acqTimeLeftMs","isExpired","_initializeAutomaticSession","storageValue","timeSinceAcqMs","timeSinceRenewalMs","_renew","automaticSession","backup","_setStorage","renewal","TelemetryTrace","parentId","_validateUserInput","User","isNewUser","isUserCookieSet","cookie","userCookieName","_generateNewId","_setUserCookie","_generateNewCookie","utlRemoveStorage","authCookie","authCookieString","decodeURI","acqStr","accountAcquisitionDate","setAuthenticatedUserContext","authenticatedUserId","accountId","storeInCookie","encodeURI","clearAuthenticatedUserContext","cookieSeparator","authUserCookieName","strExt","strTags","_removeEmpty","_nullResult","undefString","TelemetryContext","previousTraceCtx","application","internal","autoSession","build","agentVersion","snippetVer","sdkSrc","applyWebContext","cleanUp","nullValue","isBrowserLinkTrackingEnabled","dist_es5_PropertiesPlugin","PropertiesPlugin","_distributedTraceCtx","_previousTraceCtx","_unloadHooks","breezeChannel","theContext","userCtx","_processTelemetryInternal","_c","_internalSdkSrc","_AUTHENTICATED_USER_CONTEXT","_TRACK","STR_SNIPPET","STR_FLUSH","STR_POLL_INTERNAL_LOGS","STR_GET_PLUGIN","STR_EVT_NAMESPACE","STR_TRACK_EVENT","STR_TRACK_TRACE","STR_TRACK_METRIC","STR_TRACK_PAGE_VIEW","STR_TRACK_EXCEPTION","STR_TRACK_DEPENDENCY_DATA","STR_SET_AUTHENTICATED_USER_CONTEXT","STR_CLEAR_AUTHENTICATED_USER_CONTEXT","_DYN_QUEUE","_DYN_CONNECTION_STRING","_DYN_ENDPOINT_URL","_DYN_ONUNLOAD_FLUSH","_DYN_ADD_HOUSEKEEPING_BEF0","_DYN_SEND_MESSAGE","_DYN_IS_THROTTLED","_ignoreUpdateSnippetProperties","IKEY_USAGE","CDN_USAGE","SDK_LOADER_VER","default_throttle_config","defaultConfigValues","_chkDiagLevel","AppInsightsSku","snippet","_sender","_snippetVersion","_houseKeepingNamespace","_core","_analyticsPlugin","_cfgSyncPlugin","_throttleMgr","_iKeySentMessage","_cdnSentMessage","_sdkVerSentMessage","sv","_removePageEventHandlers","removePageUnloadEventListener","removePageHideEventListener","DependenciesPlugin","parseConnectionString","kvPairs","kv","kvParts","endpointsuffix","ingest","ingestionendpoint","instrumentationkey","flushDone","loadAppInsights","legacyMode","throwUnsupported","_findSdkSourceFile","scrpt","currentScript","url_1","src_1","_updateSnippetProperties","emptyQueue","defaultEnable","extensionConfig","proxyAssign","chkSet","_loop_1","length_1","appInsightsInstance","performHousekeeping_1","loadedPlugin","propertiesPlugin","_sessionManager","added_1","analyticsPlugin","excludePageUnloadEvents","disablePageUnloadEvents","addPageUnloadEventListener","addEventListeners","isReactNative","product","getSender","_getCurrentDependencies","MonitoringService","appInsightsEnabled","enableAutoRouteTracking","setUserId","clearUserId","logPageView","trackPageView","logEvent","logMetric","logException","logTrace","AuthenticationService","oauthService","monitoringService","notificationService","ManageempService","currentUserSubject","hasValidAccessToken","logout","hideAppLoader","loaderElement","style","display","loadAccessToken","$","ajax","token_endpoint","grant_type","scope","access_token","currentUserValue","login","user_requestdto","loginTokenHeader","isOnboardingProcessComplete","LoginWithFaceId","socialmedialogin","register","UpdateUserBrowserDetails","registerwithSocial","organisationBasicSetup","TokenHeader","updateorganisation","organisationDto","updateorganisationlocation","organisationLocationDto","organisationdetails","organisationlocationdetails","orgid","stopConnection","DropOrgAllEmployeesCache","setregisternav","userResDto","setloginnav","openNotificationPanel","verifyYourEmail","addCurrentUser","sendForgotpasswordEmail","forgotPasswordRequest","getLocationOnIP","orgData","getIpCliente","getIpClientLocation","checkForUserExistance","emailId","getXeroUserDetails","checkDomainEnabledForSSO","domaiName","CheckDomainRegistered","SendInviteeNotificationToFinanceManager","getTotpSetup","verifyTotp","secret","organisationService","functionPrivilegeService","restrictedRoutes","verifyAccessToken","fnRedirectUsertoCorrectRoot","checkFunctionRouteSubscribed","result1","verifyPrivileges","fmNoPrivilegeRoutes","checkRoutePrivilegeAccess","result2","hasAccessToken","hasAccesTokenExpired","getAccessTokenExpiration","_angular_core__WEBPACK_IMPORTED_MODULE_7__","ClaimsService","_claims","selectedPackageCategory","_selectedPackageCategory","currentSelectedPackageCategory","newClaims","updateSelectedPackageCategory","SetFunctionPackageClaims","functionPurchasedTrailList","existingClaims","functionCalledFrom","SetValueToFunctionPackageClaims","onToggleMobileMenu","setAttribute","classList","toggle","currentSIdebarSize","screen","DashboardService","userNotificationSettingsSubject$","Subject","getFmDashboardApproveRejectData","userUrl","SoloGetActionableRecordForDashboard","reqInfo","getPendingDeputiesCount","getPendingEmployeeWithGradeCount","GetWizardCount","saveUserNotificationSettings","getUserNotificationSettings","EmailService","SendEmail","notificationApiUrl","ExcelExportService","isValidCSVFile","getHeaderArrayFromCSV","csvRecordsArr","headerArray","exportAsExcelFile","excelFileName","__webpack_require__","XLSX","worksheet","utils","json_to_sheet","sheet_add_aoa","sheet_add_json","skipHeader","excelBuffer","write","Sheets","SheetNames","bookType","saveAsExcelFile","FileSaver","require","saveAs","processRow","finalVal","innerValue","toLocaleString","csvFile","blob","msSaveBlob","link","download","createObjectURL","visibility","appendChild","removeChild","convertStringToBase64TextCsv","btoa","ExportToCSVService","downloadFile","headerProperties","csvData","ConvertToCSV","dwldLink","downloadExcelFile","objArray","head","fileSizeService","FileSize","GetFileSizeFromBytes","bytes","dm","DEFAULT_RETRY_DELAYS_IN_MILLISECONDS","DefaultReconnectPolicy","retryDelays","_retryDelays","nextRetryDelayInMilliseconds","retryContext","previousRetryCount","HeaderNames","Cookie","HttpResponse","HttpClient","delete","getCookieString","AccessTokenHttpClient","innerClient","accessTokenFactory","_innerClient","_accessTokenFactory","_asyncToGenerator","allowRetry","_accessToken","_setAuthorizationHeader","HttpError","trueProto","TimeoutError","AbortError","UnsupportedTransportError","transport","DisabledTransportError","FailedToStartTransportError","FailedToNegotiateWithServerError","AggregateErrors","innerErrors","LogLevel","Debug","Information","Critical","None","NullLogger","_logLevel","_message","instance","VERSION","Arg","static","Platform","isBrowser","getDataDetail","includeContent","isArrayBuffer","byteLength","formatArrayBuffer","view","Uint8Array","ArrayBuffer","_x","_x2","_x3","_x4","_x5","_x6","transportName","httpClient","getUserAgentHeader","logMessageContent","withCredentials","SubjectSubscription","subject","observer","_subject","_observer","observers","cancelCallback","ConsoleLogger","minimumLogLevel","_minLevel","logLevel","info","userAgentHeaderName","constructUserAgent","getOsName","getRuntimeVersion","runtime","runtimeVersion","majorAndMinor","getErrorString","FetchHttpClient","requireFunc","__non_webpack_require__","_jar","CookieJar","_fetchType","getGlobalThis","AbortController","_abortControllerType","abortSignal","abortController","onabort","timeoutId","cache","credentials","redirect","signal","deserializeContent","cookies","getCookies","arrayBuffer","XhrHttpClient","setRequestHeader","DefaultHttpClient","_httpClient","HttpTransportType","WebSockets","ServerSentEvents","LongPolling","TransferFormat","Binary","_isAborted","LongPollingTransport","_pollAbort","_running","onreceive","onclose","pollAborted","connect","transferFormat","isIn","_url","Ke","pollOptions","pollUrl","_closeError","_receiving","_poll","_this2","_raiseOnClose","_this3","_this4","deleteOptions","ServerSentEventsTransport","accessToken","encodeURIComponent","eventSource","opened","EventSource","onmessage","_close","onopen","_eventSource","WebSocketTransport","webSocketConstructor","_logMessageContent","_webSocketConstructor","webSocket","binaryType","_event","_webSocket","ErrorEvent","OPEN","_isCloseEvent","wasClean","HttpConnection","_stopPromiseResolver","_negotiateVersion","createLogger","baseUrl","_resolveUrl","webSocketModule","eventSourceModule","WebSocket","_connectionState","_connectionStarted","_startInternalPromise","_startInternal","_stopPromise","_sendQueue","TransportSendQueue","_stopInternal","_stopError","_stopConnection","skipNegotiation","_constructTransport","_startTransport","negotiateResponse","redirects","_getNegotiationResponse","ProtocolVersion","_createTransport","inherentKeepAlive","_this5","negotiateUrl","_resolveNegotiateUrl","negotiateVersion","connectionToken","connectionId","_createConnectUrl","requestedTransport","requestedTransferFormat","_this6","connectUrl","_isITransport","transportExceptions","transports","availableTransports","negotiate","endpoint","transportOrError","_resolveTransportOrError","transportMatches","actualTransport","transferFormats","aTag","_transport","_executing","_sendBufferedData","PromiseSource","_transportResult","_sendLoopPromise","_sendLoop","_bufferData","promise","_this7","transportResult","_concatBuffers","arrayBuffers","totalLength","offset","_resolver","_rejecter","TextMessageFormat","RecordSeparator","messages","RecordSeparatorCode","HandshakeProtocol","writeHandshakeRequest","handshakeRequest","parseHandshakeResponse","messageData","remainingData","binaryData","separatorIndex","responseLength","textData","MessageType","Invocation","StreamItem","Completion","StreamInvocation","CancelInvocation","Ping","HubConnectionState","Disconnected","Connecting","Connected","Disconnecting","Reconnecting","HubConnection","connection","reconnectPolicy","_nextKeepAlive","_freezeEventListener","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","_protocol","_reconnectPolicy","_handshakeProtocol","_processIncomingData","_connectionClosed","_callbacks","_methods","_closedCallbacks","_reconnectingCallbacks","_reconnectedCallbacks","_invocationId","_receivedHandshakeResponse","_cachedPingMessage","writeMessage","_startPromise","_startWithStateTransitions","_stopDuringStartError","handshakePromise","_handshakeResolver","_handshakeRejecter","_cleanupTimeout","_resetTimeoutPeriod","_resetKeepAliveInterval","_cleanupPingTimer","startPromise","_reconnectDelayHandle","_completeClose","methodName","streams","streamIds","_replaceStreamingParams","invocationDescriptor","_createStreamInvocation","promiseQueue","cancelInvocation","_createCancelInvocation","invocationId","_sendWithProtocol","invocationEvent","_launchStreams","sendPromise","_createInvocation","invoke","on","newMethod","off","removeIdx","onreconnecting","onreconnected","_processHandshakeResponse","parseMessages","_invokeClientMethod","allowReconnect","responseMessage","serverTimeout","_pingServerHandle","nextPing","invocationMessage","methods","_createCompletionMessage","methodsCopy","expectsResponse","completionMessage","prevRes","_cancelCallbacksWithError","_reconnect","reconnectStartTime","previousReconnectAttempts","retryError","nextRetryDelay","_getNextRetryDelay","elapsedMilliseconds","retryReason","nonblocking","streamId","_createStreamItemMessage","argument","_isObservable","JsonHubProtocol","hubMessages","parsedMessage","_isInvocationMessage","_isStreamItemMessage","_isCompletionMessage","_assertNotEmptyString","LogLevelNameMapping","debug","information","warning","critical","none","HubConnectionBuilder","configureLogging","logging","isLogger","parseLogLevel","mapping","withUrl","transportTypeOrOptions","isNotEmpty","httpConnectionOptions","withHubProtocol","withAutomaticReconnect","retryDelaysOrReconnectPolicy","SignalRService","isConnectionStarted","isConnectionSuccessful","startConnection","isAuthenticated","hubConnection","signalR","functionsUrl","SignalRHttpClient","intiateListener","_superprop_getSend","authHeaders","getAuthHeaders","CurrentOrganisationCurrency","NotificationService","notificationAction","notificationSessionStorageKey","submitBackgroundJob","getBackgroundJobStatus","jobId","GetRunningJobStatusByKey","markJobRemoved","notification","GetNotificationsForUser","MarkNotificationRead","notificationIds","SnoozeNotification","RemoveNotifications","notificationId","RemoveAllUserNotification","setNotificationActionModel","getNotificationAction","onNotificationRaised","onNotificationAction","notificationActionCompleted","GetScanDocumentWithURI","ScanDocumentWithBase64","VersionHistoryService","versionHistoryUrl","getVersionHistory","WizardService","fnGetKeyValueReplaceString","actualStepNum","WorkflowService","SoloGetWorkflow","SoloGetDashboardPresetData","mapWFApprover","emp","eid","ec","ec2","ec3","ec4","ln","displayName","er","vti","den","emailDisplayName","edn","vs","vsti","rt","ovtm","uo","an","cci","ccn","disableDeactivate","disableOthers","hideDeactivate","hideResendInvite","hideSendInvite","hideActivate","disableResendInvite","disableSendInvite","disableActivate","disableEdit","isCheckboxDisabled","co","ccc1","gi","gn","linkedToXero","ltx","approvalStatus","comment","actionDate","actionDateString","sno","perPersonBillingType","bt","hybridBillingType","displaySN","kycStatus","kycs","aeIds","afIds","companyName","comn","isConvertedToPowerUser","icpu","crid","userUpdatedOn","uuo","ContainerService","GetContainerTurnOnSetting","SaveContainerTurnOnSetting","AddContainer","UpdateContainer","GetContainerById","GetExpenseContainerList","UpdateContainerStatus","MoveExpensesToContainer","GetClaimantContainerListForApproval","CostCentreService","GetCostCentresWithApprovers","GetCostCentreCountWithoutApprovers","saveCostCentreApproverAssignment","GetCostCentres","GetCostCentresForOrg","GetCostCentre","GetCostCentreLogs","UpdateCostCentre","DeactiveCostCentre","CreateCostCentre","CreateCostCentreBulk","ReactiveCostCentre","GetCostCentresForAssignEmployees","GetCustomerCCInfo","SaveCCDisplaySetting","AssignDeassignCostCentreToEmployee","AssignDeassignCostCentreToEmployeeBackground","BulkDeactiveCostCentre","GetAllCostCentresForOrg","ImportCostCentre","exportedData","addErrorColumn","mappedData","recordExport","CostCentreName","CostCentreCode1","CostCentreCode2","BulkReactiveCostCentre","GetCcDisplaySettings","CounterApproverService","GetApproverCounterApproverDetails","GetDeletedCounterApproverDetails","GetReplacedCounterApproverDetails","GetCounterApproverByApprover","SaveCounterApproverDetails","GetCounterAppImportSampleData","GetCategoryCounterApproverSettings","SaveCategoryCounterApproverSettings","GetCounterApproverRules","SaveCounterApproverRules","CountryCurrencyMappingService","GetCountryCurrencyMapping","CreditCardService","SaveCardOrganisation","GetCardOrganisation","SaveCardImportTemplate","GetCardImportTemplate","GetCardImportTemplateHistory","SaveCardRulesImport","GetCardRulesImport","SaveCardRulesEmailReminder","GetCardRulesEmailReminder","SaveCardRulesFinancialYear","GetCardRulesFinancialYear","GetCardUserAssignmentForOrg","SaveCardUserAssignment","GetCardUserAssignmentHistory","EmployeeID","fullName","Email","claimantEmail","CreditCardNumber","exportErrorLogData","claimantCode","employeeName","GetCardSetupCount","GetReferenceNumbersFromImportedTransactions","exportSampleCCImportData","ExpenseDate","CardNo","ReferenceNo","Amount","ReviewUploadedCardStatement","ReviewUploadedCardStatementNew","SaveReviewedImports","GetDismissedTransactions","getCardDashboardData","getCardDashboardPendingTransactionsData","getCardDashboardTopSpendor","getCardDashboardUsedCategories","getCardDashboardTopQuickestActionTakers","getCardDashboardTopSlowestActionTakers","getCreditCardDashboardGraphsData","getCreditCardDashboardDownloadImportedTransactions","cardOrginialFieldId","getCreditCardDashboardDownloadNotImportedTransactions","getCreditCardDashboardDownloadPendingTransactions","GetUnassignedCardExpenses","AssignCardExpensesToClaimant","getDismissedExpenseCount","DismissExpense","GetCardRulesSetupStatus","GetCardNumberLength","GetPendingCreditCardExpenseListByImportId","GetAllPendingCreditCardExpenseList","GetReassignedAndDeletedCreditCardExpenseList","SaveCardSupervisoryAction","GetUnassignedCardExpenseCount","GetUsersWithInActiveAndNoCardsForOrg","SaveCardImportTemplateDetail","GetCardImportTemplateDetail","BulkCreditCardExpensesImport","saveRequest","BackgroundTaskNotificationBody","jobInfo","BackgroundTaskTopics","BackgroundTaskKeys","processedImportDataList","BackgroundTaskNotificationHeaders","GoLiveWithCardFunction","SaveCardImportTemplateDateFormat","GetOrgTop5CreditCardImportList","GetCardPendingExpenseList","GetPendingCreditCardExpenseListByCard","GetUsersForAssignCCExpense","GetUnassignCreditCardExpenseList","GetUnassignExpenseByCard","GetOrgDuplicateCardDetails","GetCCDashboard","GetCCDeletedExpenseList","GetCCPendingTransactionList","ValidateBulkImportAssignCreditCard","GetAssignCreditCardToClaimantList","SaveUserCreditCardDetails","GetCreditCardDetailsForImport","GetCCImportedTransactionList","GetCCImportedFileDateList","UpdateRowHighlightStatus","_angular_core__WEBPACK_IMPORTED_MODULE_9__","CustomerService","GetCustomerById","GetCustomerByOrgId","GetCustomersByCustomerIdsOrgId","GetCustomersByOrgIdAndStatus","AddCustomer","UpdateCustomer","BulkActionsOnCustomer","GetOrganisationEmployeesForCustomerRule","BulkActionsForCustomerRule","GetCustomerHistoryByCustomerId","CustomerName","CustomerCode1","CustomerCode2","customerCode2","GetEmployeeListForCustomerCostCentreRuleAssignment","GetEmployeeListForLocationRuleAssignment","AssignCustomerCostCentreAccessRuleToEmployees","AssignLocationAccessRuleToEmployees","GetAllCustomers","BulkSaveCustomer","DelegateService","GetGradesForDelegateSetup","GetUsersForActivateDelegatorDelegate","SaveDelegatorDelegateByGrade","SaveDelegatorDelegate","GetActiveDelegatorsDetails","GetDelegateListForAssignment","AssignDelegateToDelegator","GetDelegatorDetailsById","GetClaimantDelegatorList","GetUserDelegatorDelegateStatus","BulkAssignDelegateToDelegator","GoogleMappingService","SaveOrganisationGooglePackage","GetOrganisationGooglePackage","GetActiveGooglePackageDetailsForOrganisation","UnsubscribeGooglePackageCalls","DismissGooglePackagePurchaseReminder","UpdateOrganisationGooglePackagePaymentDetailStatus","SaveOrganisationPlaidPackage","GetOrganisationPlaidPackage","GetActivePlaidPackageDetailsForOrganisation","UnsubscribePlaidPackageCalls","GetOrganisationPlaidConnections","AddUpdateOrganisationPlaidConnections","GetPlaidToken","countryCodes","clientId","clientSecret","plaidClientId_UK","plaidClientSecret_UK","plaidClientId_US","plaidClientSecret_US","client_id","client_name","client_user_id","products","country_codes","language","webhook","redirect_uri","GetPlaidAccessToken","publicToken","public_token","UserService","GetFinanceManagerCount","GetOrgActiveFinanceManagerCount","ExpenseCategoryService","masterExpenseCategoryUrl","ExpenseCategoryUrl","ExpenseCategoryInExpenseUrl","getMasterExpenseCategoryList","expenseCategoryRequest","getOrgExpenseCategoryInExpense","GetExpenseCategories","GetVendorExpenseCategories","StateService","StateUrl","getExpenseState","debounceTime","State","getExpenseStates","BasicMileageService","SaveOrgBasicMileage","GetBasicMileageHistory","GradeService","GetGrade","CreateGrade","UpdateGrade","GetGradeListForAssignEmployee","AssignDeassignGradeToEmployee","AssignDeassignGradeToEmployeeBackground","BulkDeactiveGrade","GradeName","Description","BulkReactiveGrade","getCategpriesToGrade","saveCategpriesToGradeByGrade","GetGradeDetailsById","LocationService","AddLocation","UpdateLocation","AssignLocationToEmployees","GetEmployeeForLocationAssignment","GetLocationByLocationId","GetLocationByLocationIds","GetLocationByOrgIdAndStatus","GetLocationListForGrid","GetLocationShortDetailsByOrgIdAndStatus","ExportData","LocationName","LocationCode1","LocationCode2","locationCode2","BulkActionOnLocation","AddUpdateLocationRange","GetListForGrid","GetEmployeeListForLocationAssignment","UpdateLocationPreference","LoggingPanelService","logPanelModelSubject","getFMActionLog","getLogPanelEvent","functionPackageChangeSubscription","onFunctionSubscriptionChangeEvent","GetLog","GetFailedImportInfo","DeleteFailedImportInfo","UpdateEmployeeImportInfo","AddLog","AddFailedImportData","AssignCostCentreToExpenses","employeesList","GetAllCostCentresAndEmployees","isDropCache","costCentres","GetAllClaimants","costCentresForApprover","approverIds","costCentresData","costCentre","claimantsList","approversList","claimantCount","approverCount","assignedApproverCount","assignedApproverList","approvers","GetAllApprovers","GetAllEmployees","functions","isCostCenterAccess","approver","approverStatus","AllEmployeesList","empList","mapEmployees","GetAllTypeEmployees","AllTypeEmployeesList","GetAllVendors","AllVendorList","ut","DropOrgAllVendorCache","GetExistingEmployeeCount","GetAllFinanceManager","GetEmployeeListByStatus","counter","GetLoginIDHistoryList","loginIDHistoryUrl","GetOrgVehcileTypeList","fnCheckPurchaseFunctionList","GetApproverList","GetOwnershipType","ownershipTypeList","GetOrganisationEmployeeCounters","employeeCounterUrl","BulkAddUpdateEmployee","addUpdatereq","BulkInviteEmployees","BulkUpdateEmployees","Billing","BulkInviteVendors","BulkUpdateVendors","SoloSaveDashboardGraphData","toPromise","UpdateVehicle","UpdateRole","UpdateStatus","GetEmployeeImportSampleData","BulkImportEmployees","GetCostCentreApproverImportSampleData","GetViewUserDetailsById","GetEmployeeDomainList","UpdateEmployeeDomainListUpdate","GetEmployeesToEnableSSO","UpdateEmployeeSSOStatus","UpdateSSOPreference","isSSOEnabled","UpdateMFAPreference","isMFAEnabled","_angular_core__WEBPACK_IMPORTED_MODULE_18__","FunctionRouteMapping","OrganisationFunctionService","mileageWizardService","getAvailableFunctionsForOrganisation","filterActive","activeUserRoleType","isContainerAllowed","IsContainerAllowed","GetOrganisationSettingList","allFunctionCategories","functionCategoryDetail","hideSpecialHandledFunctionPackages","sdFunc","functionPackageDetail","showPackage","managePackagesForAccountingIntegrationSubscribedCondition","subscriptionStatus","remainingTrialDays","startDate","trialEndDate","managePackagesForDeputyForApprovers","managePackagesForDutyOfCare","managePackagesForAPAutomation","filterFunctionCategory","getAvailableFunctionPrivilegesForOrganisation","organisationid","functionCategories","cat","getFunctionPrivilegeMappings","privilegeList","existingCategory","functionCategoryName","privilegeCategory","pack","functionPackageSequence","privilegeName","iconUrl","privilegeIconUrl","functionCategoryId","functionCategorySequence","privilege","PrivilegeID","privilegeID","origFunctionsList","filterFunc","filterActiveFunction","filterFunction","comingSoon","privileges","privilegeRouteMap","specialHandledPackageIds","managePackagesForXeroDataTransfer","fnGetOrgWizardDetails","mileagereq","mileagereqinfo","isTrangulationOn","selectedRateType","OrganisationSettingService","organisationFuncPurchaseCacheKey","getBrowserLang","SubmitOrgFeedback","feedbackModel","isFeedbackSubmitted","resetOrganisationSettingListCache","onFunctionSubscriptionChange","saveApprovalRuleSetting","approvalRuleSaveRequest","GetFunctionDefaultCurrency","getOrgDependentFunctionList","SoloGetAllFunctionPackageCancellationPolicysByPackageId","langaugeCode","getOrgAllDependentFunctionList","GetReceiptNumberSettings","SaveReceiptNumberSettings","updateVatNoVatReceiptType","getAllFunctionsForOrganisation","getCartSubscriptionType","GetOrgPricingFunctionList","GetOrgBasicFunctionList","GetOrgFunctionPackageCurrencyMapping","GetOrgFunctionTrialDays","GetOrganisationPreferences","UpdateAttendeeOrgPreferences","UpdatePowerUserOrgPreferences","UpdateManageCCPreference","UpdateCCFeedPreferences","GetCCFeedPreferences","GetAttendeeOrgPreferences","AddUpdateCompliancePreferences","AddUpdateCounterApproverPreferences","SaveInvoiceDataForOrganization","GetUserIdForInvoiceForOrganization","PolicyDataService","GetPolicyDetail","GetOtherPolicyData","GetDuplicatePolicyData","SaveOtherPolicyData","SaveDuplicatePolicyData","SaveEscalationSettings","SaveDocRules","SaveBusinessPurpose","GetAdditionalFieldValues","SaveBusinessPurposeValues","SaveAFValues","DeleteAFValues","DeleteAFDataValues","SaveExpenseTimeLimit","SaveYearEndValues","GetClaimantWiseMonthlyAndYearlyCappingPolicy","SaveClaimantWiseMonthlyAndYearlyCappingPolicy","ConvertPolicyFromGradeToClaimantWise","DeleteOtherPoliciesForConversionToGradeOrClaimantWise","ExportClaimantWisePolicyExcel","Limit","EffectiveFrom","AlertPercentage","GetClaimantWisePolicyHistoricalView","ExportClaimantWisePolicyData","SetPolicyDefaultFilter","gradeWithPolicy","policyCallback","GetPolicyDashboardData","filterdata","GetPolicyPanelData","GetCategoryAdditionalFieldSettings","SaveCategoryAdditionalFieldSettings","PricingService","GetFunctionPackageCurrencyMapping","GetPricingFunctionList","GetPricingFunctionListbyCurrencyCode","GetMultiCurrencySetting","GetSubscriptionDiscountList","GetAllBillingDataForPricing","DiscussPricingQuote","EmailPricingQuote","ProjectBudgetService","GetProjectBudgetList","GetProjectSummary","GetCustomerCostCentreList","GetActiveEmployeesForProjectBudget","SaveProjectBudget","GetProjectBudgetAllDetailsByProjectBudgetId","GetProjectCategorySummaryResponse","GetProjectBudgetByEntityType","GetProjectManagerCount","UpdateProjectManagerWhenApproverDeactivate","GetProjectListForClose","CloseProject","FunctionPrivilegeService","cachedData","routePrivilegeMap","checkPrivilegesAccess","access","getFunctionPrivilegesForUser","userPrivileges","getPrivilegesAccessList","getFinanceManagerPrivileges","saveFunctionPrivilegesForUser","StripeService","CreateStripeSession","RegisterUserCardOnStripe","GenerateInvoice","ChangeStripeUserCard","CreateStripeSessionForInstantPayment","GetStripeCustomerDetailsForInstantPaymentCaptured","CreateStripeSessionForExistingCustomer","UniversalImporterService","importStorageData","_importStorageData","currentImportStorageData","currentTemplateName","currentImportTemplateData","importTemplateData","currentImportTemplateExtension","importTemplateExtension","currentImportTemplateFileName","importTemplatFileName","currentImportTemplateGridData","importTemplateGridData","isCurrentTemplateContainsHeader","isTemplateContainsHeader","currentReviewEmployeesList","importReviewEmployeesList","updateTemplateName","updateimporttemplatedata","updateimporttemplateextension","updateImportTemplateFileName","updateImportTemplateGridData","updateIsCurrentTemplateContainsHeader","updateCurrentReviewEmployeesList","reviewEmployeesList","GetUniversalImportFieldMasterByTemplateType","templateType","ValidateUniversalImportEmployees","BulkSaveUniversalImportEmployees","BulkUniversalImportEmployees","BulkSaveUniversalCostCentreApprovers","BulkUniversalCostCentreApprovers","BulkSaveUniversalAdvanceClaimantPolicy","BulkUniversalAdvanceClaimantPolicy","claimantPolicy","BulkSaveUniversalImportCustomers","BulkUniversalImportCustomers","customerList","BulkSaveUniversalImportCounterApprover","BulkUniversalImportCounterApprover","counterAppList","BulkSaveUniversalImportCurrencies","BulkUniversalImportFxRate","CataLog","currencyList","newStorageData","BulkUniversalImportCategories","CreateGradeInBulk","BulkImportGradeBody","BulkImportGrades","BulkSaveUniversalImportVehicleAssignment","bulkSaveUniversalImportVehicleRequest","apiRequest","bulkImportVehicleAssignments","_angular_core__WEBPACK_IMPORTED_MODULE_12__","item_r10","AlertPanelComponent_div_2_div_7_h6_1_i_1_Template","textHtml","AlertPanelComponent_div_2_div_7_h6_1_Template","item_r15","AlertPanelComponent_div_2_div_8_div_1_h6_1_Template","AlertPanelComponent_div_2_div_8_div_1_Template","AlertPanelComponent_div_2_div_9_h6_1_i_1_Template","hideInfoIcon","singleMessageTextClass","item_r17","AlertPanelComponent_div_2_div_9_h6_1_Template","dismiss","AlertPanelComponent_div_2_footer_11_button_1_Template","AlertPanelComponent_div_2_footer_11_button_2_Template","item_r26","fnSendAction","btnAction","btnClass","AlertPanelComponent_div_2_footer_12_button_1_Template","AlertPanelComponent_div_2_h6_6_Template","AlertPanelComponent_div_2_div_7_Template","AlertPanelComponent_div_2_div_8_Template","AlertPanelComponent_div_2_div_9_Template","AlertPanelComponent_div_2_div_10_Template","AlertPanelComponent_div_2_footer_11_Template","AlertPanelComponent_div_2_footer_12_Template","setClasses","AlertPanelComponent","isConfirmDisplay","bodyClass","callbackEvent","singleMessagetextClass","divClass","AlertPanelComponent_div_0_Template","AlertPanelComponent_div_2_Template","AlertModule","AlertService","onFunctionSubscriptionChangeSubject","isFormClosingSubject","getFormClosingEvent","onUserAction","onUserActionSubject","authPasswordFlowConfig","issuer","redirectUri","AppUrl","silentRefreshRedirectUri","dummyClientSecret","sessionChecksEnabled","showDebugInformation","oidc","ActionBy","LoggingPanelComponent_div_1_tr_21_Template","LoggingPanelComponent_div_1_tr_22_Template","dateText","ActionByText","LogText","LoggingPanelComponent","eodDate","logObjectActionEnum","loggingPanelModel","logObjects","processLogText","logs","LogDisplayText","getLogText","addOn","actionByUserName","trimEnd","displayText","parameter","LoggingPanelComponent_div_0_Template","LoggingPanelComponent_div_1_Template","onRefreshClick","browserRefresh","AppComponent","upToDateService","alertPanelModelForReload","showAppUpdatePanel","setInterval","pollForBuildNumber","buildIsUpToDate","buildNumberAtStartup","buildNumber","configure","setupAutomaticSilentRefresh","loadDiscoveryDocument","hasChanges","closeAlertPanel","closeAlertPanelForReload","reload","AppComponent_div_4_Template","AppComponent_div_6_Template","BuildDetails","BuildDetailsService","buildDetails","_class","emailPattern","emailPattern2","Notification","Export","GradeImport","BulkApprovalAction","BulkExportExpensesAction","BulkUpdateExpenseApprovers","BulkCostCentreImport","BulkImportXeroContacts","BulkCompanyAssignToEmployee","XeroTokenExpiryNotification","BulkApprovalActionApprover","storeURLs","playStore","appStore","website","socialMediaLinks","facebook","linkedIn","twitter","youtube","privacyPolicyURl","termsOfServiceURl","SetupOrganisation","CurrencySetup","AssignApprovers","ConfigureApproverRules","AssignApproversToClaimants","SetupBasicMileage","YesPayBizPortal","SetupCostCentres","SetupImportCc","AssignCcToClaimants","SetupDisplayNameCodeOfCc","SetupCcAccessRights","ActivateClaimantsWhoCanDelegate","ActivateClaiamantsWhoWillDoTheWork","ManageDelegatorsAndDelegates","TaxRatewithoutComponents","TaxRatewithComponents","AssignTaxtoCategories","CardSetup","ExpenseExport","InvoicesSubscription","TaxSetup","CreateNewReport","Pricing","BillingPlan","AdvancesSetup","SetupUkHMRCCompliantRates","SetupUkHMRCCompliantRatesDefault","AssignVehicleToClaimantsAdvance","SetupCustomers","Liability","SetupSingleRate","SetupDifferentialRate","vatnovat","SecondaryFM","DuplicateRule","ExpenseEscalationSettings","nr","fc","nrfcsetting","ReferNEarn","AssignCategoryToGrade","OutOfOffice","ProjectBudgetSummary","MultipleCompanies","AssignMileageRateToGrade","AssignAccountCodeToCompany","MultipleCompaniesConfigureRules","MultipleCompaniesConfigureRulesSetup","ClaimantOnWebExpenseList","ApproveDutyofCare","MonthlyCappingClaimantWise","YearlyCappingClaimantWise","UniversalEmployeesImportTemplate","UniversalImportTemplate","DiscountContractWork","DiscountAndCostControl","DiscountContract","AssignMultipleVehicle","AntiFraudMultiple","ExpenseCategorySetup","DelegateSetup","DelegateAssign","CreateDelegatorsExpense","ImportExportMileageRates","ImportDeputies","ImportVehicles","ImportHomePostcodes","ApproverKYC","AssignApproversToCostCentre","SSO","GradeWizard","SetupGrades","AddSetupAndManageEmployees","ManageEmployeesImportEmployees","ImportExportExpenseCategories","SetupAdditionalField","Assignfieldtocategoriesstep5","RollBackExportedExpenses","ccSetupStep1","ccSetupStep2","ccSetupStep3","ccSetupStep4","ccSetupStep5","ccSetupStep6","ccSetupStep7","ccSetupStep8","ConfigureNamesOfRecieptTypes","TurnOnReceiptTypeDisplayToClaimant","ConfigurePolicyViolationTaxNoTax","EnableRecieptNumberCapture","SpecialCatStep1","SpecialCatStep2","SpecialCatStep3","SpecialCatStep4","XeroSetupStep2","XeroSetupStep3","XeroSetupStep4","XeroSetupStep5","XeroSetupStep6","XeroSetupStep7","XeroSetupStep8","XeroSetupStep9","XeroSetupStep10","XeroSetupStep11","XeroSetupStep12","XeroSetupStep13","TaxSetupStep1","TaxSetupStep2","TaxSetupStep4","TaxRateSetupStep3withoutComponents","TaxRateSetupStep3withComponents","VatnovatStep1","VatnovatStep5","BuildReportWizardStep1","BuildReportWizardStep2","BuildReportWizardStep3","QuickbooksWizardStep2","QuickbooksWizardStep3","QuickbooksWizardStep4","QuickbooksWizardStep5","QuickbooksWizardStep6","MFA","DeputyforApproverStep1","DeputyforApproverStep2","DeputyforApproverStep3","DeputyforApproverStep4","MultipleLevelCounterApproverStep1","MultipleLevelCounterApproverStep2","MultipleLevelCounterApproverStep3","MultipleLevelCounterApproverStep4","MultipleLevelCounterApproverStep5","MultipleLevelCounterApproverStep6","MultipleLevelCounterApproverStep7","QuickBooksStep7","FxRateStep2","CarbonFootprintStep2","CarbonFootprintStep3","CarbonFootprintStep4","CarbonFootprintStep5","AutoDeleteOldAndUnclaimedExpensesStep1","AutoDeleteOldAndUnclaimedExpensesStep2","websiteURl","incomingDate","now_utc","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","incomingDate1","setHours","setMinutes","setSeconds","newDate","ConvertNonAsciiToAscii","removeAccents","replacements","AddContainerPanelComponent","containerFormFields","fnGetContainerById","containerForm","fnGenerateContainerFormModel","containerFormModel","fnSubmitContainer","fnUpdateContainer","fnAddContainer","toUTCString","fnEmitSubmitEvent","containerDetails","AddContainerPanelComponent_button_8_Template","fnGetPolcyList","expenseStatusInfo","chevron","daysViolated","placeHolder","isShowValidationOnInit","onInput","fnOnJustificationNoteChange","fnShowPolicyViolationPanel","fnDisableSaveButton","fnCheckValidation","fnOnSave","ContianerPolicyPanelComponent_policy_violation_panel_33_Template","fnShowGradeLoggingPanel","fnDeactivateAlertPanelReceiver","deactivateConfirmationAlertModel","AddGradePanelComponent","gradeFormFields","showDeactivateConfirmationAlert","fnGetGradeDetails","gradeForm","fnGenerateGradeFormModel","gradeFormModel","gradeToggle","fnSubmitGrade","gradeDetails","fnShowDeactivateConfirmationAlert","fnUpdateGrade","fnAddGrade","isAnyEmployeeAssigned","grade","fnShowServerErrors","lstErrInfo","nameErrors","errorCode","nameField","fnBulkDeactiveGrade","AddGradePanelComponent_button_9_Template","AddGradePanelComponent_app_alert_panel_18_Template","ClaimantDetailsComponentComponent","gridFilterStatus","fnGridConfig","panelHeader","lstClaimants","GradeAssignCategoryPanelComponent","closePanel","selectedGrade","categoriesList","gridFilterItems","isSaved","showNoCategorySelected","changedCategoryList","claimsubscription","currentContext","alertSubscription","categoriesIds","fnShowConfigureshowLoggingAlertPanel","filterClass","totalCategoryCount","assignedCount","unassignedCount","countByStatusArray","saveAssignedGradeToCategoriesByGrade","categoriesToGradeByGrade","orgExpenseCategoryName","getCategpriesToGradeByGradeSaveRequest","closeNoCategorySelected","fnPanelReceiver","fnSubmitAddGradePanel","fnCloseAddGradePanel","addGradePanelInputModel","GradeAssignCategoryListPanelComponent","videoLink","editedGradeId","expenseCategories","showAddGradePanel","fnGetCategoriesToGrades","fnGetGradeListForAssignEmployee","buttonAlignmentClass","totalGradeCount","grades","fnHighlightRows","fnUnsetGridRowHighlighted","unsetRowHighlighted","currentEditingGrade","showCategoryAssignmentPanel","selectedItem","showClaimantPanel","assignedEmployeeCount","checkItems","lstEmployee","fnCloseAssignCategoryPanel","uncheckAll","fnShowAddGradePanel","GradeAssignCategoryListPanelComponent_app_claimant_details_component_22_Template","GradeAssignCategoryListPanelComponent_add_grade_panel_23_Template","fnShowSaveGradePanel","fnOnGridCheckAll","_r17","bulkDeactivateGradeConfirm","disableDeactiveButton","GradeComponent_div_6_li_13_Template","GradeComponent_div_6_li_14_Template","selectedItemsList","closeAssigncategoriestogradePopup","assigncategoriestogradePopupModel","GradeComponent","gradeAllList","actionPanelConfig","actionPanelModel","hideActionButtons","bulkActionDiv","alertPanelModelForBulk","isGradePanelOpen","getAllGradeForOrg","checkAssigncategoriestogradeSubscribed","getGradeListForAssignEmployee","activeGradeCount","inactiveGradeCount","updatedDateTimeFromLocalStorage","lastUpdateDateTime","fnShowBulkEditGradePanel","FilterID","panelKey","headerTitle","actionButtonConfig","disableWhenNotDirty","isMultipleSelected","selectedItemCount","initializeGradeForm","buttonConfig","disableButtonsOnInvalid","subtitle","isOverlay","fnUnassignEmployees","alertPanelReceiverForBulk","bulkDeactiveGrade","actionPanel","dynamicForm","gradeBulkDeactiveRequest","onActionPanelSubmit","buttonKey","fnSaveGrade","isEmpAssigned","selectedItemList","validateGrade","formModel","gradeErrors","employeeEmailField","isAssigncategoriestogradeSubscribed","gotoAssigncategoriestograde","showAssignCategorieToGradePopup","goToImportGrade","goToSetting","ActionPanelComponent","GradeComponent_div_1_Template","GradeComponent_div_2_Template","GradeComponent_app_claimant_details_component_4_Template","GradeComponent_div_6_Template","GradeComponent_marketing_popup_7_Template","GradeComponent_grade_assign_category_list_panel_9_Template","AssignGradePanelComponent","manageEmpService","uncheckEvent","selectedItems","isBulkOperation","allApproversList","assignedGradeId","selectedGradeId","disableAssign","panelItemType","showApproverStatusPanel","anyTextForDisplay","selectedGradeStatus","resetFields","fnInitialiseEmployeesGrid","columnDefinitions","selectedItemKey","selectedItemsText","fnGridInit","onGradeChange","selectedGradeName","assignGrade","assignGradeToClaimants","resetSelectedGrade","fnGetGradeName","assignGradeToEmployee","employeesIds","gradeMappedEmployeeListModel","saveAssignments","AssignGradePanelComponent_div_20_Template","selectedClaimantList","closeAssignPanel","assignedGradeEmployeeList","unAssignedGradeEmployeeList","checkedListUnassigned","disableAssigned","disableUnassigned","checkedList","approveeList","disableDragButton","disableGradeList","gridCostCentreList","showAssignCCPanel","destroyed","localUserName","masterSelectedUnassigned","addSelected","checkedItem","masterSelected","filterSelected","fnInitialiseGradeGrid","goToGrade","assignPanelComponenet","uncheckItems","getCheckedItemList","getAssignedGradeEmployeeList","assignedGradeEmployeeLists","searchUnAssignedEmpText","searchAssignedEmpText","removeGradeFromEmployee","isAllSelectedUnassigned","every","CheckBoxCheck","getCheckedItemListUnassigned","checkUncheckAllUnassigned","isAllSelected","statusChange","selectedStatus","fnUnassignedLiOnClick","selectedUnAssignedClaimant","fnAssignedLiOnClick","selectedAssignedClaimant","GradeAssignEmployeeComponent_h2_5_Template","GradeAssignEmployeeComponent_h2_6_Template","GradeAssignEmployeeComponent_app_assign_grade_panel_19_Template","GradeAssignEmployeeComponent_add_grade_panel_20_Template","isFromExternal","DashboardExpenseStatusSummary","ApprovalSummary","pendingExpensesWithFM","pendingAdvancesWithApprover","pendingCountExpensesWithFM","pendingAmountExpensesWithFM","pendingCountFinanceApproval","pendingCountFinancePayment","approverNotAssigned","approverNotAssignedExpenseAmount","vehicleApprovalCount","approverNotInvited","approverNotInvitedTotalExpenseAmount","pendingPreApprovalsWithApprover","dismissedExpensesCount","totalCountOfItemForApproval","pendingDutyofCareApprovalCount","nrCountForFM","fcCountForApprover","pendingCountAdvanceApproval","pendingCountAdvanceFinanceApproval","pendingCountAdvancePay","pendingKYCApprovalCount","RecommendationService","getAllRecommendation","getOrgRecommendation","recommId","getExpenseRecommendation","orgRecommId","monthDuration","SnoozeOrgRecommendation","GoogleTagManagerConfigService","InjectionToken","GoogleTagManagerConfiguration","googleTagManagerConfig","_googleTagManagerConfig","gtm_auth","gtm_preview","ɵprov","GoogleTagManagerService","googleTagManagerConfiguration","googleTagManagerId","googleTagManagerMode","googleTagManagerAuth","googleTagManagerPreview","googleTagManagerResourcePath","googleTagManagerCSPNonce","isLoaded","browserGlobals","windowRef","documentRef","gtm_resource_path","checkForId","getDataLayer","dataLayer","pushOnDataLayer","addGtmToDom","gtmScript","applyGtmQueryParams","insertBefore","firstChild","pushTag","fnPayGooglePackage","submitted","fnPayAutomaticTransactionDownload","fnPaySubscription","onUpdateLater","goToCardUpdate","StripeInvoiceFailedDetailsPanelComponent_div_10_button_24_Template","cardExpiryDays","StripeInvoiceFailedDetailsPanelComponent","organisationSubscriptionInvoiceService","orgSubscriptionFunctionService","saveOrderCartDetailsService","stripeService","elRef","paymentMethodService","showCardExpiryNotification","userEmailId","loginId","paymentTypeResponse","stripeSessionIdFromUrl","fnResetUrl","fnGetStripeCustomerDetailsFromSessionId","fnGetOrganisationInvoiceFailedRecords","fnGetOrganisationPaymentCurrency","fnGetStripeCustomerDetails","fnLoadStripe","getPaymentType","orgGoogleInvoiceFailedRecord","orgTransactionDownloadInvoiceFailedRecord","orgTransactionDownloadInvoiceFailedResponse","orgSubscriptionInvoiceFailedRecord","orgStripeCustomerDetailsResponse","cardExpirationMonthYear","cardExpirationMonth","cardExpirationYear","diffTime","differenceInDays","CurrentOrganisationCurrencyId","SelectedCurrency","paymentCurrency","currencyName","stripeImport","paymentCustomerId","fnShowStripeCheckoutWindow","Stripe","StripePublicKey","redirectToCheckout","stripeSessionId","fnCreateSubscriptionPayObject","fnLoadStripeSessionForSubscriptionInstantPayment","userEmail","EmailId","invoiceItem","Name","invoiceAmount","Quantity","invoiceItemList","sessionRequestData","sessionRequest","fnCreateGooglePackagePayObject","fnLoadStripeSessionForGooglePackageInstantPayment","amountPaid","unitsPurchased","registerCardData","stripSessionType","fnUpdateOrganisationSubscriptionInvoiceStatus","fnUpdateOrganisationGooglePackagePaymentDetailStatus","subscriptionDetails","organisationSubscriptionInvoiceID","googlePackageDetails","organisationGooglePackagePaymentDetailId","loadStripeSessionForExistingCustomer","showStripeCheckoutWindow","UniqueId","Guid","OrgPaymentTypeRequest","fnCreateTransactionDownloadPackagePayObject","fnLoadStripeSessionForTransactionDownloadInstantPayment","StripeInvoiceFailedDetailsPanelComponent_h2_5_Template","StripeInvoiceFailedDetailsPanelComponent_h2_6_Template","StripeInvoiceFailedDetailsPanelComponent_div_7_Template","StripeInvoiceFailedDetailsPanelComponent_div_8_Template","StripeInvoiceFailedDetailsPanelComponent_div_9_Template","StripeInvoiceFailedDetailsPanelComponent_div_10_Template","BasicFunctionExploreAlertPanelComponent","orgBasicFunctionSubscriptionService","fnGetOrgBasicFunctionSubscriptionTrialDetails","basicFunctionTrialDays","explorationDays","basicFunctionTrialStartDate","basicFunctionTrialEndDate","fnSubscribeNow","fnClose","PresetExportComponent_div_21_ng_template_4_div_0_div_1_Template","items_r4","PresetExportComponent_div_21_ng_template_4_div_0_Template","PresetExportComponent_div_21_ng_template_4_div_1_Template","PresetExportComponent_div_21_ng_template_4_div_2_Template","filterList","item$_r14","item$_r17","onFilterSelectionChange","selectedFilterValues","PresetExportComponent_div_21_ng_template_4_Template","PresetExportComponent_div_21_ng_template_5_Template","PresetExportComponent_div_21_ng_template_6_Template","selectedFilterByPlaceHolder","PresetExportComponent","workflowService","exportToCSVService","presetexportData","selectedFilterBy","enableViewButton","initialiseGrid","setHeaderText","bindFilterBy","getDashboardPresetData","selectedPresetExportStatus","createColumnDefs","getGridConfigItems","columnDefs","hide","color","isCounterApproverPurchased","currentStatus","taxRateAmount","fnSetEntRowInGrid","taxRatevalue","taxRateMasterId","bindFilterList","filterGridData","orgExpenseCategory","checkToEnableViewButton","filterByList","filterById","filterByName","onFilterByChange","setPlaceHolder","ClosePanel","resetFilters","downloadCSV","columnName","rowText","employeeTaxRateAmount","guestTaxRateAmount","tipsTaxRateAmount","empAmount","guestAmount","tipsAmount","employeeTaxRateValue","guestTaxRateValue","tipsTaxRateValue","PresetExportComponent_div_21_Template","selectedCostCentres","assignApproversGridColumnDefs","ApprovalItemsPanelComponent","rrFcLogicsService","fmAsApproverSummary","mapGridData","mapData","gridDataItem","mapReason","fmAsApproverData","costCentresList","openEmployeeListPanel","openCostCentrePanel","fnRedirectToApprovalArea","paramsData","approverListCostCentre","approverListCostCentreCode","approverListCostCentreId","ApprovalItemsPanelComponent_assign_approver_panel_17_Template","SetupPayStepRequest","financeApprovalPendingCount","financePayPendingCount","SetupPayStepPanelComponent_div_60_button_3_Template","SetupPayStepPanelComponent_div_60_button_4_Template","fnPendingItemsAlertReceived","SetupPayStepPanelComponent","dashboardService","showPendingItemsAlert","setupPayStepFormFields","isPayStepEnabled","fnGetOrgExpenseDetails","setupPayStepForm","setupPayStepFormModel","dashboardExpenseStatusSummary","approvalSummary","incompleteExpenses","pendingExpensewithFA","passedForPayment","pendingPassedForPayment","fnSubmitConfiguration","fnSetupPayStep","financeManager","fnShowPendingItemsAlert","fnShowLoggingPanel","SetupPayStepPanelComponent_div_0_Template","SetupPayStepPanelComponent_h2_5_Template","SetupPayStepPanelComponent_h2_6_Template","SetupPayStepPanelComponent_div_60_Template","SetupPayStepPanelComponent_span_148_Template","SetupPayStepPanelComponent_span_149_Template","SetupPayStepPanelComponent_div_171_Template","SetupPayStepPanelComponent_div_172_Template","claimants","OrganisationFeedback","feedbackType","feedbackText","onOptionChange","isNoChecked","isYesChecked","FeedbackPanelComponent_div_2_div_12_Template","FeedbackPanelComponent_div_2_div_13_Template","FeedbackPanelComponent_div_2_div_14_Template","onSubmitFeedback","isOnboardingFeedback","isTrialFeedback","showCalendly","FeedbackPanelComponent","feedbackTypeText","onboardingFeedbackText","claimSubscription","initializePanel","closeFeedbackPanel","FeedbackPanelComponent_div_0_Template","FeedbackPanelComponent_div_2_Template","FeedbackPanelComponent_div_3_Template","FeedbackPanelComponent_div_5_Template","showOrphanspop","changeUrl","fnShowCardDashboard","goProducts","_r68","ctx_r67","_r70","ctx_r69","showLiabilityReport","fnGetDashboardPresetData","showTwoStepPopup","_r78","ctx_r77","fnShowSetupSkipPayStepPanel","HomeComponent_button_116_span_1_Template","HomeComponent_button_116_span_2_Template","_r80","ctx_r79","showMileageMarketingPopup","_r82","ctx_r81","showCreditCardMarketingPopup","_r84","ctx_r83","_r86","showManageCategoryMarketingPopup","_r88","_r90","ctx_r89","showAuditTrail","ctx_r91","_r94","ctx_r93","_r96","ctx_r95","showCarbonFootprint","_r98","ctx_r97","showAdvances","showAPAutomation","showLeaveManagementDashboard","_r104","_r106","closeAPAutomation","_r108","closeLiabilityReport","liabilityReportPopupModel","_r110","cfpMarketingPopupModel","_r112","advancesMarketingPopupModel","_r114","closeAuditTrail","_r116","closeLeaveManagement","_r118","ctx_r33","_r120","ctx_r119","closePendingDeputiesPopup","navigateToDeputiesToApprover","noOfApproversDoNotHaveDeputies","_r125","ctx_r124","closePendingEmployeeWithGrade","navigateToAssignGradesToClaimant","noOfEmployeeDoNotHaveGrade","_r128","ctx_r127","closeSecondaryFMPopup","secondaryFMPopupModel","creditCardMarketingPopupModel","_r132","ctx_r42","manageCategoryMarketingPopupModel","_r134","ctx_r133","mileageMarketingPopupModel","_r136","ctx_r135","closeCostCentreAlertPanel","ctx_r137","goToAssignCostCentreApprovers","costCentresWithoutApproversMessage","_r139","ctx_r138","closeOrphansPopup","_r141","ctx_r140","fnDutyofCarePopupReceiver","showDutyofCarePopupModel","_r143","ctx_r142","closePresetExportPanel","_r145","ctx_r144","fnCloseStripPaymentFailedPanel","_r147","ctx_r146","closeRecommendationPanel","ctx_r50","currentRecommModel","orgRecomm","_r149","ctx_r148","fnCloseSetupSkipPayStepPanel","ctx_r150","fnSubmitSetupSkipPayStepPanel","setupSetupSkipPayStepPanelInputmodel","_r152","ctx_r151","fnCloseBasicFunctionExploreAlertPanel","_r154","ctx_r153","onCloseFeedbackPanel","ctx_r53","feedbackPanelType","_r156","ctx_r155","HomeComponent","dashboard","recommService","gtmService","accountingIntegrationService","twoStepApproval","showOrphanspopUp","openOrphansPopup","isMileagePurchased","isTwoStepPurchased","dasboardExpenseStatusEnum","trialingFunctionResponse","isAccountingPurchased","isLiabilityReportPurchased","isAuditTrailPurchased","isAdvancesPurchased","isAPAutomationPurchased","isCarbonFootprintPurchased","isLeaveManagementPurchased","isAlertDisplay","isPrimaryFM","isFinanceApprovalAccess","isPayAccess","isCardAccess","isBuildReportAccess","isAdvancedMileageAccess","isManageCategoryAccess","isLiabilityReportAccess","isAuditTrailAccess","isAdvancesAccess","isVendorAccess","showPendingDeputiesPopup","showPendingEmployeeWithGradePopup","isDutyofCareAccess","isNRFCAccess","isApproverDeputyAccess","isLeaveManagementAccess","isManageEmployeesAccess","approvalRuleSetting","costCentresWithoutApproverCount","isDataLoadComplete","showComplianceStatement","assignCategoryToGradePurchased","isMultipleCountryPackagePurchasedOrTrial","showRecommendationPopup","showStripPaymentFailedPanel","showSetupSkipPayStepPanel","isTwoStepApprovalTurnOn","showBasicFunctionExploreAlertPanel","VAPID_PUBLIC_KEY","isTrialFeedbackPanelDisplayed","isOnboardingFeedbackPanelDisplayed","isFeedbackPanelActive","liabilityToolTip","auditTrailToolTip","advancesToolTip","showPresetExportPanel","showRecommendationPanel","reviewImportsResponse","IsAPAutomationAllowed","dashBoardAPI","getOrgPurchaseFunctionList","fnGetCostCentresList","fnGetFmDashboardApproveRejectData","fnGetSoloActionableFMCountData","notificationActionSubscription","runImportCCAtSpecificTimeOfDay","loggedInUserDisplayName","FirstName","LastName","functionprivileges","categoryMarketingPopup","creditCardPopup","mileageMarketingPopup","twoStepApprovalPopup","disableCartMileage","disableCartCc","disableCartExpenseCategory","disableTwoStepApp","liabilityReportPopup","auditTrailPopup","advancesPopup","apAutomationPopup","showDutyofCarePopup","getCostCentresWithoutApprovers","checkForPendingEmployeeWithGrade","complianceStatement","complianceHeader","getOrgBasicFunctionSubscriptionTrialDetails","basicFunctionRemainingTrialDays","trialFeedbackDays","notificationActionModel","panel","fnShowDutyofCareRequirementPopup","approvedExpenses","rejectedExpenses","isCanvasbar2Display","Chart","labels","monthsList","datasets","backgroundColor","fill","borderColor","borderWidth","pointStyle","pointRadius","legend","tooltips","scales","xAxes","gridLines","yAxes","scaleLabel","fontStyle","fontFamily","labelString","ticks","beginAtZero","userCallback","autoSkip","maxTicksLimit","lineHeight","pendingInvite","notInvited","activeEmp","barPercentage","barThickness","suggestedMin","stepSize","suggestedMax","mileageGoogle","mileageGPS","isCanvasbar1Display","responsive","requestCountType","fmcount","actionableRecordForDashboard","totalMilesOfOrg","checkOrgFunctionPurchase","fnOpenFreeMilesAlertPanel","OrgPurchaseFunctionRequest","allPurchaseFunction","isApproversDeputyPurchased","checkForPendingDeputies","isAssignMileageRateToGradePurchased","isAssignCategoryToGradePurchased","isDailyCapPurchased","isMonthlyCapPurchased","isYearlyCapPurchased","isAutoApprovalPurchased","isPerPersonPurchased","isPerNightPurchased","isDuplicateCheckerPurchased","funId","isFunctionInCart","disableLiabilityReportApp","disableAuditTrailApp","fnAddToCart","dependentFunction","saveDependentFunction","getMySubscriptionSettings","functionDetails","getDependentFunction","functionDetailss","getOrgDependentFunctionListRequest","orgDependentFunctionList","dependentFunctionID","functionPackageDescripition","dependentFunctionAmount","saveCartDetailsRequest","depend","purchaseMileageFunction","cfpPopup","leaveManagementPopup","assignEmployee","fnExportClick","showLiabilityReportPopupEvent","showLiabilityReportPopup","closeLiabilityReportPopupEvent","showAuditTrailPopupEvent","showLargeImagePopup","showLargImageForFunction","closePopupEvent","confirmDeactive","milesOfOrg","displayAlertPanelModelForMiles","alertPanelReceiverForMiles","fnpolicyDashboardNavigation","pendingTransactionDetails","transactionCount","descriptionList","zoomImage","allRecomm","applicableRecommendation","currentRecomm","recommendationId","assignVehicle","fnFuelCardComingSoonAlert","fnActionBackGroundClass","onCloseFoundersNote","IsGetStartedPopup","fnShowGetStartedPopup","confirmationModel","Swal","customClass","confirmButton","cancelButton","buttonsStyling","footerNote","html","heightAuto","padding","showCancelButton","allowOutsideClick","confirmButtonText","cancelButtonText","reverseButtons","footer","fnShowBasicFunctionExploreAlertPanel","importStatementNow","ccImportModel","ccTemplate","importTemplateType","isTemplateModified","expenseDateCol","cardNumberCol","amountCol","currencyCol","exchangeRateCol","localCurrencyAmountCol","supplierCol","notes1Col","notes2Col","referenceNumberCol","cardImportTemplateHeaderConfiguration","statementDate","importedTemplateData","templateData","importStep","reviewUploadedCardStatementRequestData","reviewUploadedCardStatementRequest","localCurrencyAmount","importedBy","saveReviewedImportsRequest","i15","i16","i17","HomeComponent_button_47_Template","HomeComponent_button_48_Template","HomeComponent_button_49_Template","HomeComponent_button_50_Template","HomeComponent_button_51_Template","HomeComponent_button_52_Template","HomeComponent_button_53_Template","HomeComponent_button_62_Template","HomeComponent_div_78_Template","HomeComponent_div_79_Template","HomeComponent_ng_template_81_Template","HomeComponent_button_116_Template","HomeComponent_button_137_Template","HomeComponent_div_229_Template","HomeComponent_div_230_Template","HomeComponent_div_237_Template","HomeComponent_div_238_Template","HomeComponent_div_239_Template","HomeComponent_div_240_Template","HomeComponent_div_241_Template","HomeComponent_div_242_Template","HomeComponent_div_249_Template","HomeComponent_div_250_Template","HomeComponent_div_251_Template","HomeComponent_div_252_Template","HomeComponent_div_253_Template","HomeComponent_marketing_popup_254_Template","HomeComponent_marketing_popup_255_Template","HomeComponent_marketing_popup_256_Template","HomeComponent_marketing_popup_257_Template","HomeComponent_marketing_popup_258_Template","HomeComponent_marketing_popup_259_Template","HomeComponent_marketing_popup_260_Template","HomeComponent_app_googlePackagePurchaseReminderPanel_261_Template","HomeComponent_app_alert_panel_262_Template","HomeComponent_div_263_Template","HomeComponent_div_264_Template","HomeComponent_div_265_Template","HomeComponent_div_266_Template","HomeComponent_marketing_popup_267_Template","HomeComponent_marketing_popup_268_Template","HomeComponent_marketing_popup_269_Template","HomeComponent_marketing_popup_270_Template","HomeComponent_div_271_Template","HomeComponent_div_273_Template","HomeComponent_app_approval_items_274_Template","HomeComponent_app_alert_panel_275_Template","HomeComponent_preset_export_277_Template","HomeComponent_stripe_invoice_failed_details_panel_278_Template","HomeComponent_app_recommendation_279_Template","HomeComponent_setup_pay_step_panel_332_Template","HomeComponent_basic_function_explore_alert_panel_333_Template","HomeComponent_feedback_panel_334_Template","HomeComponent_grade_assign_employee_335_Template","fnSaveJustification","isDisableSave","fnPolicyOnMainCategory","isPolicyOnMainCategory","specialCategoryName","fnUpdateSubcategoryPolicyViolation","selectedSubCategoryItem","MultipleTabPolicyViolationScreenComponent_div_15_button_2_Template","MultipleTabPolicyViolationScreenComponent_div_15_button_3_Template","expenseModelInfo","panelData","isShowPolicyViolationPanel","isSaveHide","justificationNotesOnMainCategory","selectedCategory","selectedsubcategoryitem","isSidePanel","MultipleTabPolicyViolationScreenComponent_button_9_Template","MultipleTabPolicyViolationScreenComponent_div_15_Template","MultipleTabPolicyViolationScreenComponent_app_generic_policy_violation_panel_17_Template","selectedApproverEmail","formateCostCentreName","selectedApproverStatus","ItemType","Claimants","assignedApproverId","selectedApproverId","selectedApproverName","selectedApproverCostCentre","selectedApproverCostCentreCode","selectedApproverStatusId","newApproverIds","ccDisplaySetting","getCustomerCCInfo","fnGetAllEmployeesList","logTypeEnum","itemType","filterApproversList","resetSelectedApprover","onApproverChange","selectedApprover","closeEmployeeStatusPanel","onRemoveApprover","removedApproverIds","assignApprovers","assignApproverToClaimants","assignApproverToCostCentres","saveEmployees","saveCostCentres","infoToast","toastId","AssignApproverPanelComponent_button_7_Template","AssignApproverPanelComponent_div_21_Template","AssignApproverPanelComponent_div_22_Template","Approvers","ApproversForCC","ClaimantsForCC","ApproversForExpense","successResponseMsg","inviteButtonText","inviteButtonClass","showCostCentreListPanel","selectedApproverData","removedApprovers","hideSave","getPanelHeading","updateGridColumnDefs","updateGridColumnDefinitions","totalEmployeeCount","pendingEmployeeCount","notInvitedEmployeeCount","sendInvitation","removeApproverFromCC","saveApproverAssignment","resendInviteAll","filteredUsers","employee","closeCostCentreListPanel","endVal","startVal","decimalPlaces","useEasing","useGrouping","useIndianSeparators","smartEasingThreshold","smartEasingAmount","separator","decimal","suffix","enableScrollSpy","scrollSpyDelay","scrollSpyOnce","finalEndVal","countDown","paused","once","frameVal","easingFn","printValue","rAF","requestAnimationFrame","onCompleteCallback","formatNumber","numerals","easeOutExpo","formattingFn","validateValue","resetDuration","onScrollFns","handleScroll","onscroll","innerHeight","scrollY","getBoundingClientRect","top","pageYOffset","determineDirectionAndSmartEasing","pauseResume","cancelAnimationFrame","render","textContent","ensureNumber","CountUpModule","DEFAULTS","easing","offsetMap","Map","EASING","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeOutElastic","sin","PI","isWindow","ScrollToAnimation","listenerTarget","loop","timeLapsed","tick","percentage","startPosition","lastPosition","source$","scrollTo","windowScrollTop","documentElement","directionalDistance","mappedOffset","innerWidth","ReplaySubject","clearInterval","ScrollToService","platformId","interruptiveEvents","isPlatformBrowser","mergedConfigOptions","animation","targetNode","getNode","getContainer","getListenerTarget","onInterrupt","addInterruptiveEventListeners","animation$","subscribeToAnimation","removeInterruptiveEventListeners","getFirstScrollableParent","supportPassive","passive","supportsPassive","getComputedStyle","overflowRegex","parentElement","overflow","overflowY","allowBodyTag","stripHash","isFinite","isElementRef","ElementRef","isNativeElement","HTMLElement","isDocumentBody","DOCUMENT","PLATFORM_ID","ScrollToModule","ngModule","providers","ApexCharts","NgApexchartsModule","argStr","NaN","constructFrom","addDays","_date","setDate","addMilliseconds","millisecondsInWeek","millisecondsInDay","millisecondsInMinute","millisecondsInHour","addHours","addMinutes","addSeconds","startOfDay","getTimezoneOffsetInMilliseconds","utcDate","setUTCFullYear","dateLeft","dateRight","_dateLeft","_dateRight","compareLocalAsc","difference","differenceInCalendarDays","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","diff","getRoundingMethod","trunc","differenceInMilliseconds","differenceInMinutes","roundingMethod","differenceInSeconds","endOfDay","endOfMonth","setFullYear","getDefaultOptions","endOfWeek","weekStartsOn","locale","getDay","isSameDay","isSameMonth","startOfSecond","setMilliseconds","isSameSecond","dates","dirtyDate","currentDate","hours","minutes","startOfMinute","startOfMonth","startOfWeek","addWeeks","addMonths","dayOfMonth","endOfDesiredMonth","setMonth","subDays","subWeeks","subMonths","startOfISOWeek","getISOWeek","startOfISOWeekYear","getISOWeekYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","fourthOfJanuary","dateWithDesiredMonth","daysInMonth","getDaysInMonth","monthIndex","lastDayOfMonth","setYear","getYear","adapterFactory","baseAdapterFactory","Positioning","getAllStyles","getStyle","isStaticPositioned","offsetParent","offsetParentEl","elPosition","parentOffset","bottom","clientTop","clientLeft","elBcr","viewportOffset","pageXOffset","elOffset","positionElements","hostElement","targetElement","placement","appendToBody","placementPrimary","placementSecondary","hostElPosition","targetElStyles","marginTop","marginBottom","marginLeft","marginRight","topPosition","leftPosition","targetElBCR","windowHeight","clientHeight","windowWidth","clientWidth","ar","DAYS_OF_WEEK","SUNDAY","MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","DEFAULT_WEEKEND_DAYS","DAYS_IN_WEEK","SECONDS_IN_DAY","getExcludedSeconds","dateAdapter","excluded","precision","endDate","seconds","dayStart","dayEnd","excludedDay","calculateExcludedSeconds","getEventsInPeriod","periodStart","periodEnd","isEventIsPeriod","eventStart","eventEnd","getWeekDay","weekendDays","today","isPast","isToday","isFuture","isWeekend","getWeekViewHeader","viewStart","viewDate","_d","viewEnd","getAllDayWeekEvents","_e","absolutePositionedEvents","maxRange","getDifferenceInDaysWithExclusions","date2","date1","totalDaysInView","eventsMapped","allDay","getWeekViewEventOffset","startOfWeekDate","span","getWeekViewEventSpan","begin","offsetSeconds","secondsInView","startsBeforeWeek","endsAfterWeek","itemA","itemB","startSecondsDiff","allDayEventRows","allocatedEvents","rowSpan_1","otherRowEvents","nextEvent","nextEventOffset","weekEvents","weekEvent","getWeekViewHourGrid","hourSegments","hourDuration","segmentHeight","minimumEventHeight","dayViewHourGrid","getDayViewHourGrid","startOfView","sanitiseHours","sanitiseMinutes","minute","endOfView","segmentDuration","startOfViewDay","endOfViewDay","dateAdjustment","dayDuration","HOURS_IN_DAY","segments","displayDate","isStart","weekDays","dayView","getDayView","eventWidth","previousDayEvents","eventsInPeriod","dayViewEvents","eventA","eventB","startsBeforeDay","endsAfterDay","hourHeightModifier","eventOffset","timezoneOffset","overlappingPreviousEvents","getOverLappingWeekViewEvents","previousEvent","dayEvent","allDayEvents","period","segment","getColumnCount","allEvents","prevOverlappingEvents","columnCount","iEvent","nextOverlappingEvents","mappedEvents","overLappingEvents","otherEvent","previousEventTop","previousEventBottom","boolean","def","getDef","arguments$1","_len","_key","_typeof","Symbol","isElement$1","nodeType","ownerDocument","indexOfElement","elements","resolveElement","hasElement","addElements","toAdd","pushElements","removeElements","toRemove","last","noThrow","getClientRect","createWindowRect","enumerable","rect","defineProperties","Temp","objectCreate","propertiesObject","objectCreate$1","mouseEventProps","createMoveInit","defaultSettings","initMove","settings","setSpecial","dispatched","requestFrame","lastTime","ttc","timer","cancelFrame","AutoScroller","maxSpeed","scrolling","margin","scrollWhenOutside","point","pointCB","createPointCB","srcElement","originalTarget","targetTouches","clientX","clientY","pageX","pageY","screenX","screenY","eventDoc","scrollLeft","dispatcher","createDispatcher","ctrlKey","shiftKey","altKey","metaKey","button","buttons","relatedTarget","region","onMove","destroy","dispatch","MouseEvent","initMouseEvent","createEventObject","down","autoScroll","syncMove","forceCleanAnimation","onDown","onUp","onMouseOut","setScroll","cleanAnimation","windowAnimationFrame","temp","animationFrame","getElementUnderPoint","underPoint","inside","getTarget","scrollWindow","scrollTick","scrollx","scrolly","ceil","scrollX","pointInside","addClass","classToAdd","removeClass","classToRemove","DraggableHelper","currentDrag","DraggableScrollContainerDirective","elementRef","DraggableDirective","draggableHelper","vcr","dragAxis","dragSnapGrid","ghostDragEnabled","showOriginalElementWhileDragging","dragCursor","dragPointerDown","dragStart","ghostElementCreated","dragging","dragEnd","pointerDown$","pointerMove$","pointerUp$","eventListenerSubscriptions","destroy$","timeLongPress","timerBegin","timerEnd","checkEventListeners","pointerDragged$","canDrag","pointerDownEvent","stopPropagation","globalDragStyle","createText","startScrollPosition","getScrollPosition","scrollContainerScroll$","listen","startWith","currentDrag$","cancelDrag$","dragComplete$","share","pointerMove","combineLatest","pointerMoveEvent","scroll","transformX","transformY","moveData","validateDrag","takeUntil","dragStarted$","dragEnded$","takeLast","scroller","AutoScrollerFactory","defaultView","dragActiveClass","cloneNode","setStyle","ghostElementAppendTo","nextSibling","ghostElement","cursor","setElementStyles","willChange","pointerEvents","ghostElementTemplate","viewRef","rootNodes","Node","dragEndData","dragEndData$","predicate","accumulator","seed","operate","scanInternals","calledCount","dragCancelled","pairwise","previous","dropData","unsubscribeEventListeners","hasEventListeners","runOutsideAngular","mousedown","onMouseDown","mouseup","onMouseUp","touchstart","onTouchStart","touchend","onTouchEnd","touchcancel","mouseenter","onMouseEnter","mouseleave","onMouseLeave","mousemove","mouseMoveEvent","isDragActivated","hasContainerScrollbar","touchStartLongPress","hasScrollbar","touchmove","contextMenuListener","fromEvent","touchMoveListener","touchMoveEvent","shouldBeginDrag","touches","enableScroll","changedTouches","setCursor","getScrollElement","moveScrollPosition","deltaScroll","deltaX","deltaY","longPressConfig","delta","delay","disableScroll","isCoordinateWithinRectangle","DroppableDirective","dragEnter","dragLeave","dragOver","drop","currentDragSubscription","drag$","droppableElement","updateCache","deregisterScrollListener","currentDragEvent","overlaps$","scrollContainerRect","isWithinElement","isDropAllowed","validateDrop","overlapsChanged$","distinctUntilChanged","dragOverActive","overlapsNow","dragOverClass","didOverlap","DragAndDropModule","IS_TOUCH_DEVICE","maxTouchPoints","msMaxTouchPoints","transferData","selector","descendantElements","querySelectorAll","cloneElements","cloneUniqueId","transferInputData","transferCanvasData","getContext","drawImage","getNewBoundingRectangle","startingRect","edges","newBoundingRect","DEFAULT_RESIZE_CURSORS","topLeft","topRight","bottomLeft","bottomRight","leftOrRight","topOrBottom","getResizeCursor","cursors","getEdgesDiff","initialRectangle","newRectangle","edgesDiff","edge","RESIZE_ACTIVE_CLASS","ResizableDirective","enableGhostResize","resizeSnapGrid","resizeCursors","ghostElementPositioning","allowNegativeResizes","mouseMoveThrottleMS","resizeStart","resizing","resizeEnd","pointerEventListeners","PointerEventListeners","getInstance","mousedown$","pointerDown","mousemove$","currentResize","cancelable","mouseup$","pointerUp","removeGhostElement","clonedNode","getResizeCursors","startCoords","getDiff","moveCoords","getSnapGrid","snapGrid","getGrid","coords","previousCoords","newCoords","previousGrid","newGrid","validateResize","rectangle","currentRect","getElementRect","translateX","translateY","offsetTop","offsetLeft","boundingRect","setElementClass","deepCloneNode","descendantsWithId","nodeName","removeAttribute","descendant","exportAs","unsubscribeMouseDown","unsubscribeTouchStart","unsubscribeMouseMove","unsubscribeTouchMove","unsubscribeMouseUp","unsubscribeTouchEnd","unsubscribeTouchCancel","ResizeHandleDirective","resizableDirective","resizeEdges","eventListeners","listenOnTheHost","onMousedown","onMouseup","onMousemove","resizableContainer","ResizableModule","ClickDirective","clickListenerDisabled","CalendarA11y","i18nPlural","monthCell","badgeTotal","other","openDayEventsLandmark","openDayEventsAlert","eventDescription","allDayEventDescription","aria","actionButtonLabel","a11yLabel","monthCellTabIndex","hideMonthCellEvents","hideEventTitle","hideWeekHourSegment","hideDayHourSegment","CalendarEventTitleFormatter","monthTooltip","week","weekTooltip","dayTooltip","CalendarView","Month","Week","Day","addDaysWithExclusions","daysCounter","daysToAdd","changeDays","DateAdapter","CalendarPreviousViewDirective","excludeDays","viewDateChange","subFn","daysInWeek","CalendarNextViewDirective","addFn","CalendarTodayDirective","CalendarAngularDateFormatter","monthViewColumnHeader","monthViewDayNumber","monthViewTitle","weekViewColumnHeader","weekViewColumnSubHeader","weekViewTitle","getWeekViewPeriod","dateToFormat","showYear","weekViewHour","dayViewHour","dayViewTitle","CalendarDateFormatter","ɵCalendarDateFormatter_BaseFactory","CalendarDatePipe","dateFormatter","allowedMethods","iMethod","LOCALE_ID","CalendarUtils","getMonthView","previousDate","eventsInMonth","initialViewDays","_loop_2","inMonth","totalDaysVisibleInWeek","rowOffsets","getWeekView","_f","_g","hourColumns","MOMENT","CalendarEventTimesChangedEventType","Drag","Drop","Resize","CalendarCommonModule","eventTitleFormatter","a11y","I18nPluralPipe","collapseAnimation","trigger","transition","animate","CalendarMonthModule","CalendarWeekModule","CalendarDayModule","CalendarModule","isBefore","dateToCompare","mediaQueriesForWebkitCompatibility","mediaQueryStyleNode","MediaMatcher","_platform","_nonce","_matchMedia","matchMedia","noopMatchMedia","WEBKIT","BLINK","createEmptyStyleRule","nonce","has","sheet","insertRule","CSP_NONCE","media","addListener","removeListener","CalendarSchedulerHourSegmentComponent_ng_template_0_div_1_Template","CalendarSchedulerHourSegmentComponent_ng_template_0_Template","onSegmentClick","hourSegmentHeight","isCancelled","cssClass","showHour","CalendarSchedulerHourSegmentComponent_ng_template_2_Template","a2","a3","a4","a5","a6","segmentClicked","CalendarSchedulerHeaderComponent_ng_template_0_div_5_Template","day_r4","onDayHeaderClick","CalendarSchedulerHeaderComponent_ng_template_0_Template","CalendarSchedulerHeaderComponent_ng_template_2_Template","dayHeaderClicked","CalendarSchedulerEventActionsComponent_span_0_a_1_Template","action_r2","onActionClick","CalendarSchedulerEventActionsComponent_span_0_Template","actions","CalendarSchedulerEventTitleComponent_ng_template_0_calendar_scheduler_event_actions_2_Template","CalendarSchedulerEventTitleComponent_ng_template_0_div_3_Template","CalendarSchedulerEventTitleComponent_ng_template_0_Template","showActions","showContent","isClickable","showStatus","CalendarSchedulerEventTitleComponent_ng_template_2_Template","CalendarSchedulerEventContentComponent_div_0_Template","maxHeight","CalendarSchedulerEventComponent_ng_template_0_calendar_scheduler_event_content_2_Template","CalendarSchedulerEventComponent_ng_template_0_calendar_scheduler_event_actions_3_Template","CalendarSchedulerEventComponent_ng_template_0_Template","onEventClick","secondary","primary","draggable","eventTitleTemplate","CalendarSchedulerEventComponent_ng_template_2_Template","a7","a8","eventClicked","CalendarSchedulerViewComponent_div_5_div_2_Template","segment_r6","CalendarSchedulerViewComponent_div_5_Template","hour_r4","CalendarSchedulerViewComponent_div_8_div_1_div_2_Template","CalendarSchedulerViewComponent_div_8_div_1_div_4_Template","calendarId","_c9","CalendarSchedulerViewComponent_div_8_div_1_Template","event_r10","resizeStarted","resizeEnded","dragStarted","dragMove","dragEnded","dayColumnWidth","day_r7","zoomEventOnHover","eventSnapSize","resizes","snapDraggedEvents","beforeStart","showEventContent","showEventActions","showEventStatus","eventTemplate","afterEnd","CalendarSchedulerViewComponent_div_8_div_2_calendar_scheduler_hour_segment_2_Template","segment_r26","eventDropped","cellTemplate","showSegmentHour","dragActive","CalendarSchedulerViewComponent_div_8_div_2_Template","_r32","hour_r23","hourClicked","i_r24","trackByHourSegment","CalendarSchedulerViewComponent_div_8_Template","trackByDayOrEvent","trackByHour","MINUTES_IN_HOUR$1","getSchedulerViewHourGrid","getSchedulerView","moment","viewDays","startsWithToday","logEnabled","startOfViewWeek","endOfViewWeek","eventsInWeek","getSchedulerViewDays","dayEvents","getOverLappingEvents","startOfHour","endOfHour","eventsInHour","getSchedulerEventsInPeriod","startOfSegment","endOfSegment","eventsInSegment","getSchedulerDay","isEventInPeriod","addPeriod","subPeriod","trackByHourColumn","trackByHour$1","trackByHourSegment$1","getDefaultEventEnd$1","minimumMinutes","roundToNearest$1","CalendarResizeHelper","resizeContainerElement","rtl","_defineProperty","outer","inner","isInsideLeftAndRight","isInsideTopAndBottom","CalendarDragHelper","dragContainerElement","draggableElement","dragAlreadyMoved","isDraggedWithinThreshold","isWithinThreshold","DRAG_THRESHOLD","isBottomInside","SchedulerConfig","headerDateFormat","CalendarSchedulerUtils","CalendarSchedulerHourSegmentComponent","mouseEvent","customTemplate","i1$1","CalendarSchedulerHeaderComponent","CalendarSchedulerEventActionsComponent","setupActions","when","hostAttrs","SchedulerEventTitleFormatter","ɵSchedulerEventTitleFormatter_BaseFactory","SchedulerEventTitlePipe","schedulerEventTitle","titleType","CalendarSchedulerEventTitleComponent","CalendarSchedulerEventContentComponent","eventContainer","CalendarSchedulerEventComponent","ngAfterContentChecked","hostVars","CalendarSchedulerViewComponent","_viewDays","onResize","adjustViewDays","mobileQueryXs","mobileQuerySm","mobileQueryListener","refreshSubscription","refreshAll","markForCheck","refreshHeader","dayStartHour","dayEndHour","dayStartMinute","dayEndMinute","refreshHourGrid","refreshBody","setViewDays","oldViewDays","viewDaysChanged","getPositioningClasses","getDayClass","getTimeClass","getLengthClass","minutesString","durationInMinutes","leftToEndOfDay","leftDurationInMinutes","dayModifier","hourModifier","segmentModifier","eventModifier","eventsContainer","resizeEvent","resizeHelper","adjustedEvents","tempEvents","lastResizeEvent","newEventDates","getResizedEventDates","adjustedEvent","eventIndex","restoreOriginalEvents","eventTimesChanged","newStart","newEnd","getMinimumEventHeightInMinutes","eventWithoutEnd","smallestResizes","daysDiff","draggedInPixelsSnapSize","dropEvent","shouldFireDroppedEvent$1","dragHelper","eventDragEnter","linkedEvent","dragEvent","newEventTimes","getDragMovedEventTimes","originalEvent","dragEndEvent","dayWidth","useY","isDraggedWithinPeriod$1","daysDragged","minutesMoved","getMinutesMoved$1","movedY","adjustedEventsArray","existingColumnEvent","clear","headerTemplate","allDayEventTemplate","CalendarSchedulerDatePipe","SchedulerDateFormatter","Intl","DateTimeFormat","dateInner","firstDay","lastDay","firstDayMonth","lastDayMonth","firstDayYear","lastDayYear","prevMonthDate","prevMonthDay","prevMonthYear","nextMonthDate","nextMonthDay","nextMonthYear","anyDateInMonth","SCHEDULER_CONFIG","provideSchedulerConfig","SchedulerModule","useValue","useFactory","deps","CategoryID","CategoryName","subHours","subMinutes","AppService","getEvents","dateOrViewChanged","CalanderSchedulerComponent_div_23_calendar_scheduler_view_22_Template","prevBtnDisabled","nextBtnDisabled","CalanderSchedulerComponent","appService","activeDayIsOpen","isDateValid","getCalendar","calendar","dateTime","currentWidth","changeDate","changeView","endOfPeriod","startOfPeriod","useClass","CalanderSchedulerComponent_mat_progress_spinner_22_Template","CalanderSchedulerComponent_div_23_Template","loadChildren","all","OrgSettingModule","RegistrationModule","AccountingIntegrationModule","TwoStepModule","CostCentreModule","CounterApproverModuleModule","FxRateModule","VendorModule","ManageEmployeesModule","SetupOrgModule","CurrencyModule","ChangePasswordModule","BillingPlanModule","ReferAndEarnModule","DeleteDataModule","PreapprovalModule","CreditCardModule","ManageCategoryModule","PolicydashboardModule","PolicyModule","AdvanceMileageModule","DashboardModule","PayModule","FinanceApproveModule","ApproverModule","TaxModule","YesBankModule","ManageSubscriptionModule","MysubscriptionModule","AddToCartModule","ShoppingcartlistModule","ShoppingcartReviewModule","ShoppingcartConfirmModule","PricingModule","ComingSoonModule","ExportModule","SupportModule","LiabilityReportModule","YearEndRuleModule","CarbonFootprintModule","CustomerModule","BusinessPurposeModule","DuplicateModule","OverallDailyLimitModule","ExpenseEscalationModule","ExpenseTimeLimitModule","PernightlimitModule","PerpersonlimitModule","DailyCappingModule","MonthlyCappingModule","YearlyCappingModule","AutoapprovalModule","DutyofcaresetupModule","AuditTrailModule","ManualVatModule","OutOfOfficeModule","AdditionalFieldsModule","SecondaryFMModule","AdvancesModule","OpenApiModule","ProjectBudgetModule","NRFCMileageModule","MultipleCompaniesModule","ApproverHistoricalViewModule","ComplianceStatementModule","AntiFraudModule","LocationModule","ClaimantOnWebModule","AttendeeTypeModule","LeaveManagementModule","SupplierModule","UniversalImportModule","MultipleCountriesModule","DelegateModule","MileageAnalysisModule","EssentialPackModule","DisappearingExpenseModule","ContainerModule","SplitCategoriesModule","EodTemplateModule","PagesRoutingModule","PagesModule","WidgetModule","NgbDropdownModule","NgbAccordionModule","NgbNavModule","NgbProgressbarModule","NgbCollapseModule","GoogleMapsModule","MarketingPopupModule","InformationAlertPanelModule","InfiniteScrollModule","NgbCarouselModule","PasswordStrengthMeterModule","EllipsisModule","NgxUiLoaderModule","NgxExtendedPdfViewerModule","DragDropModule","AutosizeModule","FlatpickrModule","MileageDetailComponent","ViewReceiptComponent","ViewTagPanelComponent","ExpenseMergePanelComponent","unloadNotification","ClaimsHeaderService","timeZoneInfo","fnGetTimeZoneInfo","localDateString","timeZoneOffset","fnClientTimeZoneOffset","onSubmitForm","UntypedFormGroup","initialValues","onSubmit","DynamicFormService","isSubmitted","isFormSubmittedSubject","valueChangeSubject","openPanelSubject","onOpenPanel","allowanceIcon","AddPassengerLoadPanelComponent_div_15_div_2_span_1_Template","AddPassengerLoadPanelComponent_div_15_div_1_Template","AddPassengerLoadPanelComponent_div_15_div_2_Template","AddPassengerLoadPanelComponent_div_17_div_2_span_1_Template","AddPassengerLoadPanelComponent_div_17_div_1_Template","AddPassengerLoadPanelComponent_div_17_div_2_Template","AddPassengerLoadPanelComponent","fnCheckForItems","AddPassengerLoadPanelComponent_div_15_Template","AddPassengerLoadPanelComponent_hr_16_Template","AddPassengerLoadPanelComponent_div_17_Template","AdvancePolicyViolationPanelComponent_div_2_button_7_Template","AdvancePolicyViolationPanelComponent_div_2_div_16_Template","AdvancePolicyViolationPanelComponent_div_2_span_31_Template","AdvancePolicyViolationPanelComponent_div_2_div_32_Template","AdvancePolicyViolationPanelComponent","AdvancePolicyViolationPanelComponent_div_2_Template","fnShowExpenseMergePanel","AttachReceiptOptionsPanelComponent","showFilePickerEvent","showExpenseMergePanelEvent","fnCloseAttachReceiptOptionsPanel","fnShowFilePicker","hideSavedEmailReciepts","AttachReceiptOptionsPanelComponent_span_18_Template","AttachReceiptOptionsPanelComponent_span_19_Template","AttachReceiptOptionsPanelComponent_li_20_Template","fnShowViewTagPanel","fnShowViewVoiceMemoPanel","memoInfo","ExpenseMergePanelComponent_div_2_div_26_div_34_span_1_Template","ExpenseMergePanelComponent_div_2_div_26_div_34_span_2_Template","ExpenseMergePanelComponent_div_2_div_26_div_34_span_3_Template","hasTags","hasVoiceMemo","fnSelectExpenseId","ExpenseMergePanelComponent_div_2_div_26_div_34_Template","isExpenseChecked","localOrgCurrency","getOrgCategoryName","_r31","fnSavePanel","fnFilterChanged","ExpenseMergePanelComponent_div_2_div_25_Template","ExpenseMergePanelComponent_div_2_div_26_Template","isSaveEnabled","filteredReceiptExpenseList","showViewVoiceMemoPanel","viewVoiceMemoInputModel","showViewTagPanel","viewTagList","fnThanOneRecordAlertPanelReceiver","moreThanOneRecordAlertModel","fnReceiptLimitPopupReceiver","receiptLimitAlertPopupModel","savePanelEvent","viewReceiptsList","showMoreThanOneRecordAlert","isMoreThanOneRecordAlertDone","showReceiptLimitAlertPopup","fnGetReceiptExpensesWithAttachment","generateOutputModel","selectedReceiptCount","fnShowReciptLimitAlert","receiptExpenseList","isEmailedReceipt","catId","fnShowMoreThanOneRecordAlert","memoName","memoURL","ExpenseMergePanelComponent_div_1_Template","ExpenseMergePanelComponent_div_2_Template","ExpenseMergePanelComponent_view_voice_memo_panel_3_Template","ExpenseMergePanelComponent_view_tag_panel_4_Template","ExpenseMergePanelComponent_app_alert_panel_7_Template","ExpenseMergePanelComponent_app_alert_panel_8_Template","MultipleLegsPanelComponent_div_8_button_1_Template","isNotMileageCategory","fnShowAddJourneyPanel","legsCount","fnGetTotalDistanceOflegs","fnGetTotalCarbonEmission","addJourneyInputModel","fnCloseAddJourneyPanel","fnSubmitAddJourneyPanel","fnDeleteAddJourneyPanel","fnOneAddJourneyAlertReceiver","oneAddJourneyAlertModel","showAddJourneyPanel","showOneAddJourneyAlert","fnGetPanelHeader","isMileageCategory","fnRefreshMultipleLegsDetails","fnMapGridList","hideJourney","fromAddress","toAddress","fnOnGridRefresh","fnRearranceLegsSequence","fnRearrangeLegsAddress","previousAddress","nextAddress","journey","fnBindCalculatedLegsDetails","fnEditLegDetails","selectedMileageUniqueId","fnDeleteLeg","selectedItemId","fnSaveMultiplLegDetails","fnShowOneAddJourneyAlert","fnOpenMap","fnGetMileageMapDetail","mileageLabel","totalMilesTraveled","receiptAmount","claimantHomeCurrencyCode","fnshowMileagemap","MultipleLegsPanelComponent_div_8_Template","MultipleLegsPanelComponent_button_9_Template","MultipleLegsPanelComponent_div_16_Template","MultipleLegsPanelComponent_span_24_Template","MultipleLegsPanelComponent_span_25_Template","MultipleLegsPanelComponent_add_journey_panel_28_Template","MultipleLegsPanelComponent_app_alert_panel_29_Template","MultipleLegsPanelComponent_app_alert_panel_30_Template","MultipleLegsPanelComponent_app_alert_panel_33_Template","item_r20","PolicyViolationPanelComponent_div_2_div_18_li_17_a_7_span_5_Template","PolicyViolationPanelComponent_div_2_div_18_li_17_a_7_Template","PolicyViolationPanelComponent_div_2_div_18_li_17_Template","item_r28","PolicyViolationPanelComponent_div_2_div_25_li_13_Template","PolicyViolationPanelComponent_div_2_button_7_Template","PolicyViolationPanelComponent_div_2_div_16_Template","PolicyViolationPanelComponent_div_2_div_17_Template","PolicyViolationPanelComponent_div_2_div_18_Template","PolicyViolationPanelComponent_div_2_div_19_Template","PolicyViolationPanelComponent_div_2_div_20_Template","PolicyViolationPanelComponent_div_2_div_21_Template","PolicyViolationPanelComponent_div_2_div_22_Template","PolicyViolationPanelComponent_div_2_div_23_Template","PolicyViolationPanelComponent_div_2_div_24_Template","PolicyViolationPanelComponent_div_2_div_25_Template","PolicyViolationPanelComponent_div_2_div_26_Template","PolicyViolationPanelComponent_div_2_span_41_Template","PolicyViolationPanelComponent_div_2_div_42_Template","fnGetPolicyViolationDetails","fnMapPolicyData","fnGetPolicyData","PolicyViolationPanelComponent_div_2_Template","PolicyViolationPanelComponent_app_view_receipt_3_Template","SixDigitBeforeAndAfterDecimalNumberDirective","baseCurrency","SelectForeignCurrencyPanelComponent_div_26_span_1_Template","foreignCurrencyForm","item_r8","currencyDescription","SelectForeignCurrencyPanelComponent_div_33_div_1_Template","SelectForeignCurrencyPanelComponent_div_43_span_1_Template","devideValue","fnCalculateConversionRates","SelectForeignCurrencyPanelComponent","foreignCurrencyList","isForeignCurrencyFormSubmitted","fnCreateForeignCurrencyForm","getBaseCurrency","fnGetForeignCurrencyList","fxRateRule","fxRateSubRule","onlySelf","dataForeign","fnSubmitForeignCurrency","selectForignCurrencyOutputModel","fnGetSpentCurrencyCode","currecnyDetails","exchangeRate","SelectForeignCurrencyPanelComponent_span_21_Template","SelectForeignCurrencyPanelComponent_div_26_Template","SelectForeignCurrencyPanelComponent_ng_template_31_Template","SelectForeignCurrencyPanelComponent_ng_template_32_Template","SelectForeignCurrencyPanelComponent_div_33_Template","SelectForeignCurrencyPanelComponent_div_43_Template","SelectForeignCurrencyPanelComponent_div_44_Template","policy_r1","policyValue","ViewExpensePolicyPanelComponent_li_17_span_4_Template","ViewExpensePolicyPanelComponent_li_17_span_5_Template","ViewExpensePolicyPanelComponent_li_17_span_6_Template","ViewExpensePolicyPanelComponent_li_17_span_7_Template","ViewExpensePolicyPanelComponent_li_17_div_8_Template","highlightedClass","policyName","policyType","policyDetails","fnGetExpensePolicyData","fnCloseExpensePolicyPanel","policy","policyTypeForFM","ViewExpensePolicyPanelComponent_li_17_Template","tag_r2","ViewTagPanelComponent_div_13_span_2_Template","fnCloseViewTagComponentPanel","ViewTagPanelComponent_div_13_Template","LogIconRendererComponent","tooltipText","initilize","colDef","isComingSoon","agInit","CheckBoxRendererComponent","isSelected","ActionsRendererComponent","actionButtons","setData","eGridCell","disableProperty","showEditGradePanelFunction","ActionsRendererComponent_a_1_Template","headerTooltip","CustomHeaderComponent","isGridEmpty","isCheckbox","alignRightstr","isRightAligned","rowCount","headerEditIcon","tooltipComponentParams","headerTooltipIcon","headerTooltipPosition","onSortChanged","onMenuClicked","showColumnMenu","menuButton","onCheckboxChange","onCheckAll","ascSort","descSort","noSort","isSortAscending","sortIconClass","isSortDescending","onSortRequested","enableSorting","setSort","handleHeaderClick","isAllChecked","CustomHeaderComponent_ng_template_15_Template","CustomHeaderComponent_ng_template_17_Template","_r1","enableMenu","StatusRenderComponent","ChevronRendererComponent","hidechevron","PreApprovalRendererComponent","preApprovalName","ReceiptIconRendererComponent","FieldValueRendererComponent","DateRendererComponent","DateRendererComponent_span_0_Template","DateRendererComponent_span_1_Template","DateTimeRendererComponent","DateTimeRendererComponent_span_0_Template","DateTimeRendererComponent_span_1_Template","AmountRendererComponent","displayAmount","displayOnlyIcon","AmountRendererComponent_ng_template_5_Template","actualApproverName","PolicyNameRendererComponent_ng_template_22_p_1_Template","policyArray","PolicyNameRendererComponent","isOtherPolicyDisplay","isPolicyIconDisplay","isPotentialFraudDisplay","approverAsDeputy","isExpenseEditedByFM","isExpenseEditedByFMIconDisplay","isPreApprovalDisplay","approverAsCounterApprover","advancesCount","violationTooltip","breachTooltip","PolicyNameRendererComponent_ng_template_7_Template","PolicyNameRendererComponent_ng_template_14_Template","PolicyNameRendererComponent_span_16_Template","PolicyNameRendererComponent_ng_template_22_Template","PolicyNameRendererComponent_span_26_Template","RecalledExportId","RecalledExpenseDate","exhangeRateTooltip","PolicyAmountRendererComponent_ng_template_22_p_1_Template","PolicyAmountRendererComponent","hasDetour","iconDisplay","violationDisplay","IsRecalledExpense","isRecalledExpense","recalledExpenseDate","recalledExportId","PolicyAmountRendererComponent_ng_template_4_Template","PolicyAmountRendererComponent_ng_template_8_Template","PolicyAmountRendererComponent_ng_template_12_Template","PolicyAmountRendererComponent_ng_template_16_Template","PolicyAmountRendererComponent_ng_template_22_Template","CheckIconRendererComponent","showCheckIcon","PricingTextRendererComponent","PricingTextRendererComponent_ng_template_4_Template","ReceiptsIconRendererComponent","SafeTextRendererComponent","StarterMobileSupportIconRendererComponent","isFunctionForMobile","isSupport","StarterMobileSupportIconRendererComponent_i_0_Template","StarterMobileSupportIconRendererComponent_i_1_Template","StarterWebSupportIconRendererComponent","isFunctionForWeb","StarterWebSupportIconRendererComponent_i_0_Template","StarterWebSupportIconRendererComponent_i_1_Template","NgSelectRendererComponent","dropdownItems","NgSelectRendererComponent_ng_template_1_Template","TooltipRenderComponent","isTooltipDisplay","toolTipText","TextWithTooltipRightRendererComponent","TextWithTooltipRightRendererComponent_ng_template_5_Template","CardNumberRendererComponent","getCardNoForDisplay","cardNo","cardWithX","CardAssignedUsernameRendererComponent","CardAssignedUsernameRendererComponent_span_0_Template","CardAssignedUsernameRendererComponent_span_1_Template","TextWithTooltipRendererComponent","TextWithTooltipRendererComponent_ng_template_5_Template","TextWithTooltipRenderer2Component","TextWithTooltipRenderer2Component_ng_template_4_Template","ClickToSetupRendererComponent_a_1_em_2_Template","showGreenTick","ClickToSetupRendererComponent","showProperty","ClickToSetupRendererComponent_a_1_Template","showSwitchText","ToggleRendererComponent_label_2_p_1_Template","informationId","ToggleRendererComponent","showText","toggleAlignClass","alignClass","userHomeOfficeSetupId","isWorkFromHome","counterApproverRule","columnSequence","ToggleRendererComponent_label_2_Template","ToggleRendererComponent_label_3_Template","TextboxRendererComponent","errDeriveName","deriveName","TextRendererComponent","isMandatory","setupName","TextRendererComponent_span_1_Template","CheckboxIngridRendererComponent","accessToSettings","textBeforeBtn","buttonText","ButtonsRendererComponent","ButtonsRendererComponent_div_0_Template","ImportErrorsCountRendererComponent","errorCounts","FormattedTextRenderer","popOverText","ApproverRenderer","isPopOverDisplay","classProp","classPropertyName","ApproverRenderer_ng_template_3_Template","DefaultMessageRendererComponent","isComplete","defaultMessage","DefaultMessageRendererComponent_span_0_Template","SuspensionMessageRendererComponent","isSuspended","suspensionMessage","supensionMessage","TextWithDescriptionRendererComponent","approvalData","ApprovalDataRendererComponent","ApprovalDataRendererComponent_span_0_Template","ApprovalDataRendererComponent_span_1_Template","ApprovalDataRendererComponent_span_2_Template","InfoStepRendererComponent","infoStep","InfoStepRendererComponent_div_0_Template","PrivilegeCountRendererComponent","fmRoleType","isTooltipTextDisplay","PrivilegeCountRendererComponent_ng_template_2_Template","statusData","statusClass","StatusDataRenderComponent_span_0_span_1_Template","StatusDataRenderComponent_span_0_span_2_Template","StatusDataRenderComponent_span_0_ng_template_3_Template","StatusDataRenderComponent","StatusDataRenderComponent_span_0_Template","GridNgSelectOrTextRendererComponent_ng_select_0_ng_template_1_Template","GridNgSelectOrTextRendererComponent","isShowText","GridNgSelectOrTextRendererComponent_ng_select_0_Template","GridNgSelectOrTextRendererComponent_span_1_Template","showValidator","GridTextBoxOrTextRendererComponent","GridTextBoxOrTextRendererComponent_input_0_Template","GridTextBoxOrTextRendererComponent_span_1_Template","CheckBoxwithTextRenderComponent","showCheckBoxWithText","PercentageRendererComponent","DiscountRendererComponent","discountedAmount","ngbPopover","MultiColorTextRendererComponent_span_0_ng_template_3_Template","ngbPopoverClass","MultiColorTextRendererComponent","dataArray","countArray","MultiColorTextRendererComponent_span_0_Template","placeholdertext","errReq","TextTwoDecimalNumberRendererComponent","isEnd","allowanceRate","caLimit","errorRecord","TextTwoDecimalNumberRendererComponent_input_0_Template","TextTwoDecimalNumberRendererComponent_i_1_Template","TextTwoDecimalNumberRendererComponent_i_2_Template","GridTextBoxRendererComponent","GridTextBoxRendererComponent_input_0_Template","GridTextBoxRendererComponent_span_1_Template","showSwitchText2","ToggleRendererSecondComponent_label_2_p_1_Template","ToggleRendererSecondComponent","isSwitchedOn2","ToggleRendererSecondComponent_label_2_Template","ToggleRendererSecondComponent_label_3_Template","ProgressBarRendererComponent","isCompleted","ProgressBarRendererComponent_p_1_Template","ProgressBarRendererComponent_p_2_Template","CountWithCheckBoxRendererComponent","NgSelectDescriptionRendrerComponent_ng_select_0_ng_template_1_div_0_Template","NgSelectDescriptionRendrerComponent_ng_select_0_ng_template_1_span_1_Template","NgSelectDescriptionRendrerComponent_ng_select_0_ng_template_1_Template","NgSelectDescriptionRendrerComponent","isShowBold","NgSelectDescriptionRendrerComponent_ng_select_0_Template","NgSelectDescriptionRendrerComponent_span_1_Template","ResultRendererComponent","caResult","ResultRendererComponent_td_0_Template","ResultRendererComponent_td_1_Template","GridDropdownRendererComponent","dropdownList","GridDropdownRendererComponent_ng_template_1_Template","ReceiptsTextRendererComponent","invoice","TwoDecimalNumberInputRendererComponent","TwoDecimalNumberInputRendererComponent_input_0_Template","TwoDecimalNumberInputRendererComponent_span_1_Template","ActionButtonsRendererComponent","ActionButtonsRendererComponent_div_0_Template","RateRendererComponent","rate","CountLinkRendererComponent","CountLinkRendererComponent_span_0_Template","CountLinkRendererComponent_span_1_Template","TranslatedTextTendererComponent","RadioRendererComponent","RadioRendererComponent_span_3_Template","MultipleButtonRendererComponent","MultipleButtonRendererComponent_button_1_Template","secondDocumentPart1","colorStatusBeforeExpiry","secondDocumentPart2","StatusSupportingTextRendererComponent","aboutToExpirytext","suspensionText","secondDocumentPart3","isStatusChange","suspensionStartDate","suspensionEndDate","statusBeforeExpiry","submissionDateBeforeExpiry","fnGetStatus","remainingDaysExpiry","string","StatusSupportingTextRendererComponent_ng_template_8_Template","CustomActionsRendererComponent","CustomActionsRendererComponent_a_1_Template","GridToggleRendererComponent","GridToggleRendererComponent_label_2_Template","MultipleCardNumberRendererComponent","isMultipleCard","MultipleCardNumberRendererComponent_span_0_Template","MultipleCardNumberRendererComponent_span_1_Template","ViewRendererComponent","hideLink","DayPolicyRenderer","overDue","PreApprovalTagRendererComponent_div_1_span_5_Template","PreApprovalTagRendererComponent_div_1_span_6_Template","PreApprovalTagRendererComponent_div_1_p_19_Template","PreApprovalTagRendererComponent","PreApprovalTagRendererComponent_div_0_Template","PreApprovalTagRendererComponent_div_1_Template","PreApprovalCountRendererComponent","PreApprovalCountRendererComponent_span_3_Template","PreApprovalLinkRendererComponent","PreApprovalLinkRendererComponent_span_2_Template","ExportLogStatusRendererComponent_div_0_div_1_p_1_Template","ExportLogStatusRendererComponent_div_0_div_1_p_2_Template","successCount","failCount","inQueueCount","ExportLogStatusRendererComponent_div_0_div_2_div_1_Template","ExportLogStatusRendererComponent_div_0_div_2_p_2_Template","ExportLogStatusRendererComponent_div_0_div_2_p_3_Template","ExportLogStatusRendererComponent_div_0_div_2_p_4_Template","ExportLogStatusRendererComponent_div_0_div_2_div_5_Template","ExportLogStatusRendererComponent_div_0_div_1_Template","ExportLogStatusRendererComponent_div_0_div_2_Template","exportFormatId","ExportLogStatusRendererComponent","downloadaction","ExportLogStatusRendererComponent_div_0_Template","Xeroaction","ExportLogActionRendererComponent_div_0_div_1_button_1_Template","ExportLogActionRendererComponent_div_0_div_1_button_2_Template","viewdetailaction","multiformatdownloadaction","ExportLogActionRendererComponent_div_0_div_1_Template","ExportLogActionRendererComponent_div_0_div_2_Template","ExportLogActionRendererComponent","ExportLogActionRendererComponent_div_0_Template","AppGridComponent_div_14_div_1_Template","dropDownClass","onDataFilterChange","selectedFilter","dataFilterItems","AppGridComponent_div_16_div_1_Template","onFromDateChange","calendarClass","fromDateFilter","clearAdvanceSearch","advanceSearchAlphabet","showAdvanceSearchPanel","AppGridComponent_div_18_small_5_Template","item_r34","AppGridComponent_div_19_div_1_span_4_Template","AppGridComponent_div_19_div_1_Template","counterDivClass","onGridReady","oncolumnResized","onCellClicked","gridstyle","gridWrapperstyle","gridOptions","rowGroupPanelShow","autoGroupColumnDef","overlayNoRowsTemplate","overlayLoadingTemplate","pinnedBottomRowData","closeAdvanceSearchPanel","startsWith_A","filterWithAdvanceFilter","startsWith_B","startsWith_C","startsWith_D","startsWith_E","startsWith_F","startsWith_G","startsWith_H","startsWith_I","startsWith_J","startsWith_K","ctx_r56","startsWith_L","startsWith_M","startsWith_N","startsWith_O","startsWith_P","startsWith_Q","ctx_r62","startsWith_R","startsWith_S","startsWith_T","startsWith_U","startsWith_V","startsWith_W","startsWith_X","startsWith_Y","ctx_r70","startsWith_Z","showAdvancedSearch","buttonFilterItem","onCellClick","filterChanged","advanceSearchChanged","dataFilterChanged","group_MIN_HEIGHT","header_MIN_HEIGHT","filters","isDataLoading","isRefresh","searchClass","showAdvancedFilters","resizeObservable$","resizeSubscription$","fFrmDate","isDateFilterApplied","compliantType","fnSetDateCalender","dateFilter","effdateShort","effDateFormat","searchRowRect","searchElement","boxSizing","gridHeight","sortGrid","sortDirection","gridColumnApi","applyColumnState","defaultState","setDataLoading","gridlastRowIndex","gridApi","hideOverlay","showLoadingOverlay","showNoRowsOverlay","fnAddCheckboxColumn","columnDef","tooltipComponent","tooltipField","allGridData","rowSelection","groupHeaderHeight","cacheBlockSize","maxBlocksInCache","rowModelType","pagination","paginationAutoPageSize","components","cbxRenderer","logRenderer","actionRenderer","agColumnHeader","statusRenderer","ChevronRenderer","PreApprovalRenderer","PolicyNameRenderer","PolicyAmountRenderer","ReceiptIconRender","fieldValueRenderer","dateRenderer","dateTimeRenderer","amountRenderer","checkboxIconRenderer","pricingTextRendererComponent","receiptsIconRenderer","receiptsTextRenderer","safeTextRendererComponent","starterMobileSupportIconRendererComponent","starterWebSupportIconRendererComponent","customTooltip","cardNumberRenderer","cardAssignedUsernameRenderer","textWithTooltipRenderer","textWithTooltipRightRenderer","multiColorTextRenderer","textTwoDecimalNumber","clickToSetupRenderer","toggleRenderer","toggleRendererSecond","textBoxRenderer","textRenderer","checkboxInGrid","textWithTooltipRenderer2","ngSelectRenderer","buttonRenderer","errorsCountRenderer","approverRenderer","formattedTextRenderer","defaultMsgRenderer","suspensionMsgRenderer","textWithDescriptionRenderer","approvalWithDataRenderer","infoStepRenderer","privilegeRendererComponent","statusDataRender","gridNgSelectOrTextRender","gridTextBoxOrTextRender","checkBoxwithTextRender","percentageRenderer","discountRenderer","gridTextBoxRenderer","progressBarRenderer","countWithCheckBoxRenderer","ngSelectDescriptionRenderer","resultRenderer","gridDropdownRenderer","twoDecimalNumberInputRenderer","actionButtonsRenderer","fxRateRenderer","countLinkRenderer","translatedTextTenderer","radioRenderer","multipleButtonRenderer","statusSupportingTextRenderer","customActionsRenderer","multipleCardNumberRenderer","viewRenderer","dayPolicyRenderer","preApprovalTagRenderer","preApprovalCountRenderer","preApprovalLinkRenderer","exportlogstatusrenderer","exportlogactionrenderer","gridToggleRenderer","suppressCellFocus","defaultColDef","flex","autoHeight","tooltipShowDelay","suppressRowTransform","customeRowClass","rowIndex","setColumnDefs","unshift","onAllChecked","lockPosition","lockPinned","resetSortModel","resetDataSource","setHeaderHeight","setSortModel","getRowNode","applyFilters","refreshData","fnAppendAllDataInGrid","gridDataForAppend","sortByKey","gridSortColumn","gridSortOrder","removeRow","rowNode","refreshInfiniteCache","checkedItemIds","checkedRows","refreshCheckbox","cbxColumn","setDataInGrid","IsRowOnTop","reorderUpdatedRecords","onGridSearchTextChange","autosizeHeaders","isEditDisabled","setDatasource","getDataSource","onDataLoadStart","columnApi","getRows","getRowData","successCallback","sortAllRows","filterRows","rowsForBlock","startRow","endRow","sortModel","isRowVisible","contactName","order","finished","headerCells","minHeight","cell","setGroupHeaderHeight","refreshGridCells","columnList","refreshCells","columns","force","suppressFlash","redrawGridRows","redrawRows","bindAdvanceFilterData","alphabet","_r71","AppGridComponent_div_14_Template","AppGridComponent_div_15_Template","AppGridComponent_div_16_Template","AppGridComponent_div_17_Template","AppGridComponent_div_18_Template","AppGridComponent_div_19_Template","AppGridComponent_div_20_Template","AppGridComponent_div_22_Template","AppGridComponent_div_23_Template","AppGridComponent_div_25_Template","isFormInvalid","isFormDirty","onSubmitPanel","sub_title","selectedCount","notesRequired","buttonModel","ActionPanelComponent_button_14_Template","ActionPanelComponent_dynamic_form_19_Template","z_index_class","ImagePreviewDetailComponent","droppedItems","scannedText","drawPolygonOnImage","canvas","previewImageUrl","polygon","coordinatesList","xCoordinate","yCoordinate","drawPolygon","polygon1","polygon2","points","beginPath","moveTo","lineTo","closePath","lineWidth","strokeStyle","getStrokeColor","stroke","elementType","onMouseMove","fnSaveReceipt","fnSavePreview","previewOutModel","fnGetDate","fnGetAmount","fnGetSupplier","fnGetReceiptNumber","i_r13","MarketingPopupComponent_ul_25_li_3_Template","MarketingPopupComponent_div_36_div_6_span_16_Template","MarketingPopupComponent_div_36_div_6_p_17_Template","pack_r15","dependentFunctionIcon","isSubscribed","MarketingPopupComponent_div_36_div_6_Template","dependentFunctionList","fnEssentialPackAlert","closeImagePopupEvent","MarketingPopupComponent","showImagePopup","isFunctionAddedToCart","isDependentFunctionPurchased","eventsSubject","purchaseFuncListDetails","mileagePurchaseResult","dependentFunctionVideoURL","videoUrl","functionURL","openImagePopupEvent","safeText","showDependentVideo","navigateToFunction","isEssentialPackAlertRequired","panelMsg","MarketingPopupComponent_ng_template_9_Template","MarketingPopupComponent_span_24_Template","MarketingPopupComponent_ul_25_Template","MarketingPopupComponent_span_26_Template","MarketingPopupComponent_div_36_Template","MarketingPopupComponent_button_44_Template","MarketingPopupComponent_button_45_Template","MarketingPopupComponent_button_46_Template","MarketingPopupComponent_div_47_Template","MarketingPopupComponent_div_48_Template","carbonEmissionLabel","innerItem_r26","innerItem_r27","valueClass","rowIndex_r10","closeMultipleJourneyGroups","MileageDetailComponent_div_1_div_25_span_14_Template","MileageDetailComponent_div_1_div_25_span_15_Template","MileageDetailComponent_div_1_div_25_span_20_Template","MileageDetailComponent_div_1_div_25_span_21_Template","MileageDetailComponent_div_1_div_25_li_31_Template","MileageDetailComponent_div_1_div_25_li_34_Template","MileageDetailComponent_div_1_div_25_div_62_Template","fromTextLength","toTextLength","milesTraveled","fnBindMileageSequence","MileageDetailComponent_div_1_button_7_Template","fnCloseMileageDetailPanel","MileageDetailComponent_div_1_span_14_Template","MileageDetailComponent_div_1_span_23_Template","MileageDetailComponent_div_1_div_25_Template","multipleLegsPanelHeading","isPanelDisplay","showMapSectionOnly","getTextLength","getOrganisationData","fnShowMileageDetailPanel","fnGetMileageRate","isWholeJournew","fnMapForReturnJourney","sourceDestinatination","lat","lng","fnshowMileage","isAdvancedMileageEnabled","seqObjectArray","totalMiles","MileageDetailComponent_div_1_Template","MileageDetailComponent_view_tag_panel_4_Template","PdfViewerComponent_div_1_button_7_Template","downloadReceipt","PdfViewerComponent_div_1_button_9_Template","PdfViewerComponent_div_1_button_10_Template","panelWidth","showPdfViewerPanel","isClaimPage","pdfName","showDeleteButton","pdfUrl","PdfViewerComponent","isOverLayHide","deletePdfEvent","pdfExpenseReceiptId","PdfViewerComponent_div_0_Template","PdfViewerComponent_div_1_Template","fnAgreeOnTerms","fnShowStripeCheckout","termsOfService","StripeAgreementPanelComponent","showRedirectText","fnRegisterUserCardOnStripe","currentTarget","fnLoadStripeSession","fnSaveOrganisationCardInformation","paymentMethodId","cardBrand","cardType","cardLastFourDigits","cardMonth","minimumIntegerDigits","StripeAgreementPanelComponent_div_12_Template","StripeAgreementPanelComponent_div_13_Template","fnShowSelectedReceipt","seletedItem","receiptName","stopSpinner","showImgPopup","ViewFormReceiptComponent_div_2_div_4_Template","expenseReceiptId","receiptFormatId","attachmentTypeEnum","totalReceipts","receiptUrl","ViewFormReceiptComponent_div_3_button_2_span_3_Template","ViewFormReceiptComponent_div_3_button_2_span_4_Template","matchReceipt","ViewFormReceiptComponent_div_3_button_3_img_1_Template","ViewFormReceiptComponent_div_3_button_3_span_2_Template","ViewFormReceiptComponent_div_3_button_4_i_1_Template","ViewFormReceiptComponent_div_3_button_4_span_2_Template","ViewFormReceiptComponent_div_3_button_2_Template","ViewFormReceiptComponent_div_3_button_3_Template","ViewFormReceiptComponent_div_3_button_4_Template","readOnlyMode","rec_r46","restoredCtx","_r52","i_r47","ViewFormReceiptComponent_div_4_div_2_img_1_Template","ViewFormReceiptComponent_div_4_div_2_i_2_Template","_r54","rotateImg","fnShowDeleteReceiptAlert","_r61","ViewFormReceiptComponent_div_4_div_2_Template","ViewFormReceiptComponent_div_4_div_3_Template","ViewFormReceiptComponent_div_4_div_6_Template","_r63","zoomIn","zoomOut","ViewFormReceiptComponent_div_4_div_12_Template","ViewFormReceiptComponent_div_4_div_13_Template","showAttachReceiptOptionsPanel","fnReceiptFormatAlertPanelReceiver","receiptFormatAlertPanelModel","fnPdfViewerReceiver","fnDeletePdf","showPdfViewer","pdfSrc","pdfPanelWidth","fnReceiptSizeLimitPopupReceiver","receiptSizeLimitPopupModel","_r79","imgPopup","_r83","ctx_r82","fnClosePreviewPanel","fnSavePreviewPanel","SaveImageWithoutScan","scanReceiptPDFUrl","fnReceiptScanOverrideAlertPanelReceiver","receiptScanOverrideAlertPanelModel","ViewFormReceiptComponent","eodDatePipe","imageCompress","showScanOption","createType","isHideDefaultPdfPanel","matchReceiptEvent","addReceiptEvent","newExpenseDeleteReceiptEvent","showReceiptFormatAlertPanel","showReceiptSizeLimitPopup","capturedReceipts","capturedReceiptsInfo","editReceiptsInfo","mergedReceiptsInfo","alertPanelModelForDeleteReceipt","isPageLoad","showScanOverrideAlertPanel","isPdfReceipt","showReceiptScanInfoPanel","fileSaveEvent","showPreviewPanel","rotationDegree","registerDragElement","fnResetReceiptPanel","readUploadedFile","fileInput","fileInputEvent","attachmentCount","newUploadCount","filesToUpload","File","scanReceipt","getImageDimensions","filesize","compressFile","imageBlob","dataURItoBlob","uploadedFilesize","fnShowReceiptSizeLimitPopupReceiver","fnCreateReceiptArray","fnScanReceipt","extractInvoiceReceipts","recSaveReq","platformID","receiptSaveRequest","recSaveReqString","expReq","addReceipt","previewOutputModel","resetFileControl","base64Image","receiptLocationInfo","capturedLat","capturedLng","isDeletable","receiptDate","getReceiptFormatId","receiptSize","newReceipt","removeZoom","dataURI","byteString","atob","int8Array","degree","receiptImages","div","newwidth","newheight","containerRect","receiptImageContainer","removeStyle","deleteReceipt","btnMarginClass","fnCloseDeleteReceiptAlert","multiBtnAlertPanelReceiver","fnExpenseByDeleteReceipt","receiptId","isSoftDelete","receiptIds","getBase64ImageFromURL","base64data","closeScanReceiptPanel","crossOrigin","getBase64Image","toDataURL","elmnt","pos1","pos2","pos3","pos4","dragMouseDown","onmouseup","closeDragElement","onmousemove","elementDrag","onmousedown","ViewFormReceiptComponent_div_2_Template","ViewFormReceiptComponent_div_3_Template","ViewFormReceiptComponent_div_4_Template","ViewFormReceiptComponent_attach_receipt_options_panel_5_Template","ViewFormReceiptComponent_app_alert_panel_7_Template","ViewFormReceiptComponent_app_alert_panel_8_Template","ViewFormReceiptComponent_app_pdf_viewer_10_Template","ViewFormReceiptComponent_app_alert_panel_11_Template","ViewFormReceiptComponent_app_alert_panel_12_Template","ViewFormReceiptComponent_div_13_Template","ViewFormReceiptComponent_app_img_preview_panel_14_Template","ViewFormReceiptComponent_div_15_Template","ViewFormReceiptComponent_button_27_Template","ViewFormReceiptComponent_img_34_Template","ViewFormReceiptComponent_embed_35_Template","ViewFormReceiptComponent_app_alert_panel_36_Template","ViewReceiptComponent_div_1_h2_4_span_1_Template","ViewReceiptComponent_div_1_h2_4_span_2_Template","ViewReceiptComponent_div_1_h2_5_span_1_Template","ViewReceiptComponent_div_1_h2_5_span_2_Template","fnFormatBytes","item_r13","receiptIndex_r14","ViewReceiptComponent_div_1_div_11_span_4_Template","ViewReceiptComponent_div_1_div_11_span_5_Template","ViewReceiptComponent_div_1_div_11_span_9_Template","ViewReceiptComponent_div_1_h2_4_Template","ViewReceiptComponent_div_1_h2_5_Template","fnCloseReceiptsPanel","ViewReceiptComponent_div_1_div_11_Template","isImageOnly","selectedReceiptInfo","ViewReceiptComponent_div_2_h2_4_span_1_Template","ViewReceiptComponent_div_2_h2_4_span_2_Template","fnToggleReceipt","fnDeleteReceipt","prevImageClick","currentReceiptId","item_r55","imageHeight","nextImageClick","currentIndex","imageReceiptInfo","markerPosition_r65","markerOptions","strExpenseIds","receiptLocation","mapShow","ViewReceiptComponent_div_2_a_29_span_3_Template","ViewReceiptComponent_div_2_a_29_span_5_Template","ViewReceiptComponent_div_2_a_30_span_3_Template","ViewReceiptComponent_div_2_h2_4_Template","ViewReceiptComponent_div_2_h2_5_Template","ViewReceiptComponent_div_2_button_7_Template","ViewReceiptComponent_div_2_button_8_Template","ViewReceiptComponent_div_2_button_9_Template","ViewReceiptComponent_div_2_button_10_Template","ViewReceiptComponent_div_2_button_11_Template","ViewReceiptComponent_div_2_button_18_Template","ViewReceiptComponent_div_2_div_19_Template","ViewReceiptComponent_div_2_button_20_Template","ViewReceiptComponent_div_2_div_21_Template","ViewReceiptComponent_div_2_div_22_Template","ViewReceiptComponent_div_2_map_marker_25_Template","ViewReceiptComponent_div_2_div_26_Template","ViewReceiptComponent_div_2_a_29_Template","ViewReceiptComponent_div_2_a_30_Template","isFromDOCApproval","showScanDetails","hideUseReceipt","center","zoom","markerPositions","markerPosition_r75","item_r80","item_r81","isCompleteJourney","amountDynamicText","ViewReceiptComponent_div_3_div_16_li_4_Template","ViewReceiptComponent_div_3_div_16_li_7_Template","ViewReceiptComponent_div_3_div_16_div_8_Template","ViewReceiptComponent_div_3_div_16_div_9_Template","ctx_r74","mapObjectArray","showMileageMap","showMileageMapFromWeb","closeMileagePopup","ViewReceiptComponent_div_3_map_marker_15_Template","ViewReceiptComponent_div_3_div_16_Template","vertices","markers","showMileageMapBasedOnCategory","_r85","ctx_r86","markerPosition_r91","ViewReceiptComponent_div_8_map_marker_3_Template","showReceiptsPanel","mileagemapHeight","mapHeight","alertPanelModelForDeletePdf","labelList","labelOptions","fontSize","fontWeight","insertedLabel","featureType","stylers","adjustImageSize","adjustMapSize","docEl","containerHeight","receiptImageFooter","dynamicHeight","cycleItems","showGoogleMileageMap","Animation","DROP","scaledSize","routeElement","toggleChatbot","fnBindMarkerMultipleLeg","fnBindMarker","mapWidth","fnBindConditionally","miles","showCommonMileageMap","amountWithPassenger","passengerLoadAmount","amountWithoutPassenger","PassengerLoadArray","PassengerLoadRate","countP","passengerRateInt","fillColor","StartLat","EndLat","fnReturnFloat","fnGetJourneyIcon","isOrigin","fromgrid","receiptsInfoDetails","fnShowReceiptsPanelFromGrid","fnShowReceiptsPanelfromGrid","showReceipt","receiptOutputModel","receiptModel","previewModel","fnshowReceipt","selectedAttachmentType","eq","css","long","visible","el1","el2","fnShowDeletePdfAlert","fnDeletePdfAction","fnDeleteReceiptAction","fnCloseDeletePdfAlert","fnSetZoomOnMap","fnFindJourneTypeAndSetZoom","range","fnUpdateReceiptPanelForDeleteButton","receiptRequest","ViewReceiptComponent_div_1_Template","ViewReceiptComponent_div_2_Template","ViewReceiptComponent_div_3_Template","ViewReceiptComponent_app_pdf_viewer_4_Template","ViewReceiptComponent_app_img_preview_panel_6_Template","ViewReceiptComponent_div_8_Template","fnCloseMessage","onButtonClick","WizardComponent_div_3_li_24_div_1_Template","WizardComponent_div_3_li_24_button_4_Template","showButton","WizardComponent_div_3_span_13_Template","WizardComponent_div_3_span_14_Template","WizardComponent_div_3_ng_template_15_Template","WizardComponent_div_3_small_17_Template","WizardComponent_div_3_div_18_Template","WizardComponent_div_3_li_24_Template","WizardComponent_div_3_img_27_Template","isEssential","StepClickEvent","OnScroll","openGoogleInvoicesEvent","wizardConfig","defaultScrollId","scrollIntoView","behavior","block","onScrollDiv","stepsDivs","toArray","bottomShown","isTestDivScrolledIntoView","wizardDivElement","mainScrollConditionRequired","WizardComponent_div_3_Template","DuplicateReceiptPanelComponent","goToManEmp","item_r7","buttonTitle","ImportChecklistPanelComponent_div_1_div_12_ul_2_i_3_Template","ImportChecklistPanelComponent_div_1_div_12_ul_2_span_5_Template","isButtonVisible","ImportChecklistPanelComponent_div_1_div_12_ul_2_Template","closePanelData","ImportChecklistPanelComponent_div_1_div_11_Template","ImportChecklistPanelComponent_div_1_div_12_Template","isSmallPanel","isGridPanel","ImportChecklistPanelComponent","onCloseActionPanel","onSubmitBulkAction","returnData","ImportChecklistPanelComponent_div_1_Template","ImportEmployeeErrorPanelComponent","employeeErrorList","fnOnExportClick","FailedErrors","FailedWarnings","EmployeeCode","EmployeeCode2","EmployeeCode3","EmployeeCode4","EmployeeRole","ApproverEmail","UpToDateBuildService","buildDetailsService","httpOptions","LoginNewComponent_div_14_div_1_Template","LoginNewComponent_div_14_div_2_Template","username","LoginNewComponent_div_15_div_8_div_1_Template","password","LoginNewComponent_div_15_div_8_Template","showPassword","touched","onError","verifyToken","resendOTP","verifyOTPandLogin","isValidOTPEntered","fnShowAuthenticatorBox","LoginNewComponent","meta","versionHistoryService","cookieService","ngxLoader","showCaptcha","caprchaResult","disableLoginButton","registrationsubmitted","showCaptchaMessage","referralCode","impersonate","loading","gotoNextStepEvent","isChrome","vendor","popupVisible","validLength","containsLowercase","containsUppercase","containsSpecialChar","showPasswordBox","showMailOTPBox","showAuthenticatorBox","isOTPModelOpen","isMFADeviceRewgistered","isInvalidOTP","myColorVaraible","mybgColorVaraible","showGetCodeInput","qrSecret","qrToken","qrCodeUrl","userrequest","loginForm","createFormGroup","showPasswordPopup","hidePasswordPopup","validatePassword","setTitle","updateTag","SetRememberPassword","fnCheckRouteParams","getUserImprosonated","rememberpassword","userData","idToken","gotoSignUp","claimValue","impersonationResponse","tokenEndpoint","fetchTokenUsingPasswordFlowAndLoadUserProfile","RefreshToken","tokenNew","getAccessToken","UserHomeCurrencyId","UserHomeCurrencyName","impersonationUserClaim","OrgName","IsCardSetupComplete","AccountingSystemId","AccountingSystemType","ReferAndEarnRole","IsClaimOnWebAllowed","IsFromOrgLogin","RoleId","IsPolicyOnVehicleChange","IsUniversalImportAllowed","IsStripPaymentFailed","NRFCStatus","IsNRPackagePurchasedOrTrial","IsFCPackagePurchasedOrTrial","UserType","IsCarbonFootPrintEnabled","PreApprovalEnabled","routeUser","FormGroup","emailValidator","onEmailIdEntered","isDomainEnabled","passwordField","onLoginSubmit","getTranslation","rsaHelper","Password","userLoginResponse","isMFADeviceRegistered","mfaSecret","registerMFADevice","otp1","otp2","otp3","otp4","otp5","otp6","continueLogin","checkForCaptchaVisibility","captchaResponse","errorDetails","loginAttemptCount","bindVersionHistory","currentVersion","isCurrentRelease","versionNumber","emailField","validateOTP","OTP","onDigitInput","nextElementSibling","previousElementSibling","verified","em","subjct","sentTime","deliveredTime","emailLogId","newGuid","otp","IsMFAEnabled","IsMFADeviceRegistered","supplierRule","currentOrganisationCurrency","currentOrganisationCurrencyId","isFinanceManager","isMarqueeOn","isAPAutomationAllow","MarqueeText","marqueeText","isKYCMandatoryForInvoice","isLeaveManagementAllowed","userHomeCurrencyName","isDelegator","isDelegate","isCardSetupComplete","isOrgBasicFunctionTrialEndsReminder","isOrgBasicFunctionTrialEndsAlert","referAndEarnRole","companyApproverRule","isClaimantWiseMonthlyCappingEnabled","isClaimantWiseYearlyCappingEnabled","isAPAutomationAllowed","isCashAdvanceEnabled","isCreditCardAdvanceEnabled","isDelegateFunctionPurchasedOrTrial","bandId","isContainerEnabled","isContainerPurchasedOrTrial","preApprovalEnabled","isCarbonFootPrintEnabled","openMFARegistration","verifyMFARegistrationToken","LoginNewComponent_div_14_Template","LoginNewComponent_div_15_Template","LoginNewComponent_div_16_Template","LoginNewComponent_div_24_Template","LoginNewComponent_div_25_Template","LoginNewComponent_div_33_Template","LoginNewComponent_h6_43_Template","LoginNewComponent_h6_44_Template","LoginNewComponent_button_63_Template","LoginNewComponent_button_64_Template","LoginNewComponent_button_65_Template","LoginNewComponent_div_66_Template","LoginNewComponent_div_67_Template","LoginNewComponent_div_146_Template","RegisterComponent_div_17_div_1_Template","firstname","valid","pristine","RegisterComponent_div_18_div_1_Template","ShowSpecialCharErrorFName","RegisterComponent_div_24_div_1_Template","ShowSpecialCharErrorLName","RegisterComponent_div_32_div_1_Template","RegisterComponent_div_32_div_2_Template","RegisterComponent","gotoLoginEvent","IsRegisterCanBeDisabled","emailAlreadyExists","registerForm","createRegistrationFormGroup","xeroSignUp","decoded","jwt_decode","family_name","given_name","lastname","goToNextStep","omit_special_char","minLength","onRegistrationSubmit","domainData","ReferralCode","domainName","gotoLogin","firstNameField","RegisterComponent_div_17_Template","RegisterComponent_div_18_Template","RegisterComponent_div_24_Template","RegisterComponent_div_32_Template","RegisterComponent_p_33_Template","OnboardingBannerComponent","currentStep","OnboardingBannerComponent_img_1_Template","OnboardingBannerComponent_img_2_Template","OnboardingBannerComponent_img_3_Template","OnboardingBannerComponent_img_4_Template","OnboardingBannerComponent_img_5_Template","OnboardingBannerComponent_img_6_Template","OnboardingBannerComponent_div_7_Template","OnboardingBannerComponent_div_8_Template","OnboardingBannerComponent_div_9_Template","OnboardingBannerComponent_div_10_Template","OnboardingBannerComponent_div_11_Template","OtpVerificationComponent_h5_4_i_1_Template","userrequestdto","newEmail","isInvalidEmail","OtpVerificationComponent_div_19_div_9_span_10_Template","isInvalidNewEmail","OtpVerificationComponent_div_19_div_9_Template","getCodeClass","passwordLengthMatch","passwordUppercaseMatch","passwordLowercaseMatch","passwordNumberSymbolMatch","password1","checkPasswordValidity","showPassword1","OtpVerificationComponent_div_20_div_12_Template","password2","checkPasswordMatch","showPassword2","OtpVerificationComponent_div_20_small_22_Template","isPasswordf1Valid","isPasswordMatch","_r35","RegisterUser","OtpVerificationComponent","showResendEmail","canRegisterDisabled","digitValidate","password1Box","isInvalid","onGetCode","digitOne","OtpVerificationComponent_h1_3_Template","OtpVerificationComponent_h5_4_Template","OtpVerificationComponent_h5_8_Template","OtpVerificationComponent_h5_18_Template","OtpVerificationComponent_div_19_Template","OtpVerificationComponent_div_20_Template","OtpVerificationComponent_button_22_Template","OtpVerificationComponent_button_23_Template","OrganisationDetailsComponent_div_16_div_1_Template","c_r6","countryId","countryName","selectedCountryId","onCountryChange","OrganisationDetailsComponent_div_17_option_7_Template","countryList","assignedCountry","currencyIcon","OrganisationDetailsComponent","countryCurrencyMappingService","SelectedCountry","SelectedCountryName","SelectedCurrencyCode","SelectedCurrencyName","CurrencyIcon","gotoNextStep","jsonData","json","country","fnGetCountryCurrencyMapping","countryDetails","defaultCurrencyDetails","orgNameField","OrganisationDetailsComponent_div_16_Template","OrganisationDetailsComponent_div_17_Template","OrganisationDetailsComponent_div_18_Template","InviteEmployeesComponent_div_16_div_1_Template","InviteEmployeesComponent_div_31_div_1_Template","InviteEmployeesComponent_div_31_div_2_Template","InviteEmployeesComponent_div_31_div_3_Template","InviteEmployeesComponent_div_31_div_4_Template","InviteEmployeesComponent_div_31_div_5_Template","isUserBelongsToOtherOrganisation","IsDuplicate","isSelfInvite","InviteEmployeesComponent_div_40_div_1_Template","newAttribute2","InviteEmployeesComponent_div_55_div_1_Template","InviteEmployeesComponent_div_55_div_2_Template","InviteEmployeesComponent_div_55_div_3_Template","InviteEmployeesComponent_div_55_div_4_Template","InviteEmployeesComponent_div_55_div_5_Template","InviteEmployeesComponent_div_64_div_1_Template","newAttribute","InviteEmployeesComponent_div_79_div_1_Template","InviteEmployeesComponent_div_79_div_2_Template","InviteEmployeesComponent_div_79_div_3_Template","InviteEmployeesComponent_div_79_div_4_Template","InviteEmployeesComponent_div_79_div_5_Template","ErrorMessage","InviteEmployeesComponent","hasValidData","fieldArray","IsMandatoryFieldMissing","IsInviteCanBeDisabled","ShowSpecialCharError","validateInviteBeforeSubmit","inviteObject","validateAllInviteBeforeSubmit","OnInviteClick","setUpInfo","currencyInfo","inviteInfo","roleId","vehicleType","EmployeesInvited","ApproverName","mileageInfo","mileageRateFor","fMVehicleType","mileageRateFor4Wheeler","mileageRateFor2Wheeler","profileInfo","organisationName","onFirstNameChange","noWhiteSpaceAtTheStart","onEmailFocusOut","validateEmail","IsDuplicateGlobal","IsInValidEmailGlobal","onEmailIdChange","validateAllInvitesWithObjects","validateAllInvites","newAttributeObj","checkForDuplicateEmail","iCount","InviteEmployeesComponent_div_16_Template","InviteEmployeesComponent_div_31_Template","InviteEmployeesComponent_div_40_Template","InviteEmployeesComponent_div_55_Template","InviteEmployeesComponent_div_64_Template","InviteEmployeesComponent_div_79_Template","InviteEmployeesComponent_p_81_Template","InviteEmployeesComponent_p_82_Template","InviteEmployeesComponent_p_83_Template","AppDownloadComponent","goToDashboard","onLoginClick","gotoOTPVerification","gotoOrgDetails","gotoInviteEmployee","gotoAppDownload","OnboardingComponent","isLoginActive","isSignupActive","isOTPVerificationActive","isOrgDetailActive","isInviteEmployeeActive","isAppDownloadActive","navigateToRoute","OnboardingComponent_app_login_new_9_Template","OnboardingComponent_app_register_10_Template","OnboardingComponent_app_otp_verification_11_Template","OnboardingComponent_app_organisation_details_12_Template","OnboardingComponent_app_invite_employees_13_Template","OnboardingComponent_app_app_download_14_Template","VideoIconComponent","showLoading","isIconHide","eventsSubscription","showVideo","iframe","afterHidden","IsvideoActive","setClass","showVideofromother","onLoad","VideoIconComponent_div_15_Template","VideoUrl","production","GatewayUrl","docApiUrl","apimDevPortalUrl","assistedSupportAmount_INR","assistedSupportAmount_GBP","billingPlanRenewalDay","pricingMinimumPrice_INR","pricingMinimumPrice_GBP","googleApiKey","authorization_endpoint","userinfo_endpoint","end_session_endpoint","check_session_endpoint","revocation_endpoint","openRoutes","xeroClientId","defaultauth","firebaseConfig","apiKey","authDomain","databaseURL","projectId","storageBucket","messagingSenderId","measurementId","LAYOUT_VERTICAL","LAYOUT_MODE","SIDEBAR_SIZE","SIDEBAR_COLOR","EventService","broadcast","NEVER","noop","DEFAULT_CONFIG","connector","subscriber","innerFrom","fromSubscribable","subscribable","ERR_SW_NOT_SUPPORTED","NgswCommChannel","serviceWorker","controllerChanges","controller","currentController","defer","controllerWithChanges","worker","registration","switchMap","getRegistration","publish","multicast","subjectOrSubjectFactory","subjectFactory","ConnectableObservable","errorObservable","postMessage","sw","postMessageWithOperation","operationNonce","waitForOperationCompleted","generateNonce","eventsOfType","filterFn","nextEventOfType","SwPush","pushManager","subscriptionChanges","notificationClicks","workerDrivenSubscriptions","getSubscription","requestSubscription","pushOptions","userVisibleOnly","decodeBase64","serverPublicKey","applicationServerKey","SwUpdate","versionUpdates","available","activated","unrecoverable","latestVersion","checkForUpdate","activateUpdate","SCRIPT","ngswAppInitializer","injector","script","readyToRegister$","registrationStrategy","strategy","delayWithTimeout","whenStable","NgZone","ApplicationRef","isStable","stable","ngswCommChannelFactory","SwRegistrationOptions","provideServiceWorker","makeEnvironmentProviders","APP_INITIALIZER","Injector","ServiceWorkerModule","fnCloseStripePanel","BasicFunctionTrialEndsAlertPanelComponent","showStripPanel","fnShowStripePanel","basicFunctionTrialGraceDays","basicFunctionTrialGraceEndDate","isFound","BasicFunctionTrialEndsAlertPanelComponent_stripe_agreement_panel_56_Template","onDeleteNotifications","notificationGroup_r9","notification_r16","actionsBtnVisible","DownloadTooltip","NotificationActionTooltip","sendEmployeeInvite","NotificationPanelComponent_div_14_div_1_div_1_li_15_p_2_Template","NotificationPanelComponent_div_14_div_1_div_1_li_15_button_5_Template","_r34","onSnoozeClick","NotificationPanelComponent_div_14_div_1_div_1_li_15_span_10_Template","onRemoveClick","NotificationPanelComponent_div_14_div_1_div_1_li_15_div_14_Template","isNew","failNotification","snoozeBtnVisible","onNotificationGroupClick","NotificationPanelComponent_div_14_div_1_div_1_span_5_Template","NotificationPanelComponent_div_14_div_1_div_1_span_6_Template","NotificationPanelComponent_div_14_div_1_div_1_li_15_Template","NotificationPanelComponent_div_14_div_1_div_1_Template","NotificationPanelComponent_div_14_div_1_Template","notificationGroups","_r41","fnCloseCheckList","fnSubmitCheckList","checkListPanelModel","fnCloseCheckListDetails","checkListDetailsPanelModel","fnCloseImportEmployeeErrorPanel","importEmployeeResponse","ErrorEmployeeList","NotificationPanelComponent","notificationsCountChange","openPanel","activeNotificationIds","notificationRequestStarted","currentExpandedGroupKey","internalGroupClicks","ExportFailedMessage","DownloadButton","backgroundTaskNotificationHeaders","currentJobId","showCheckListPanel","showCheckListDetailsPanel","noOfRecordsImported","showImportEmployeeErrorPanel","getNotifications","notificationSubscription","addNotificationToPanel","availableFunctions","showNotificationPanel","removeNotificationFromPanel","notificationGroup","isInitialLoad","notificationTime","getDisplayTime","getIconUrl","jobStatus","job","getJobInfo","displayFailText","fm","getDisplayText","isNewNotification","existingGroup","existingNotification","sortAddOnDesc","addActiveNotification","openNotificationPanelForJobStart","backgroundJobStatus","updateNotificationCount","removeActiveNotification","updateReadNotifications","internalItem","closeNotificationGroups","newNotifications","notificationsToUpdate","functionPackage","closeNotificationPanel","downloadExportFiles","ot","getCurrentJobStatus","dLinks","ReasonPhrase","openedGroup","notificationGroupHeader","fnShowCurrentTemplateDetails","fnShowImportEmployeesDetails","fnOnViewCheckList","fnShowImportEmployeesCheckListDetails","checkListDetails","newAddedCostCentre","NewCostCentreList","fnShowCheckListDetails","newAddedGrades","NewGradeList","errorEmployeeList","fnShowCheckList","ProcessResult","ResponseInfo","fnGetErrorMessages","fnShowImportEmployeesCheckList","checkList","changedClaimantsApproverCounts","changedClaimantsGradeCounts","changedClaimantsCostCentreCounts","changedClaimantsLastNameCounts","changedClaimantsFirstNameCounts","successRecordsCounts","safetext","isButtonHide","data2","navigateByUrl","skipLocationChange","NotificationPanelComponent_button_9_Template","NotificationPanelComponent_div_14_Template","NotificationPanelComponent_div_15_Template","NotificationPanelComponent_import_checklist_panel_16_Template","NotificationPanelComponent_import_checklist_panel_17_Template","NotificationPanelComponent_import_employee_error_panel_18_Template","opacity","imageSource","routeIsActive","NavMenuComponent_li_9_li_6_Template","NavMenuComponent_li_9_li_7_Template","NavMenuComponent_li_9_li_8_Template","NavMenuComponent_li_9_li_9_Template","advanceBalanceOutstanding","isApAutomationAccess","isCarbonFootprintPurchasedOrTrial","isCarbonFootprintAccess","toggleMobileMenu","_c10","_c11","_c12","_c13","NavMenuComponent_li_11_span_7_Template","NavMenuComponent_li_11_span_8_Template","NavMenuComponent_li_11_li_9_Template","NavMenuComponent_li_11_li_10_Template","NavMenuComponent_li_11_li_11_Template","NavMenuComponent_li_11_li_12_Template","NavMenuComponent_li_11_li_13_Template","NavMenuComponent_li_11_li_14_Template","NavMenuComponent_li_11_li_15_Template","NavMenuComponent_li_11_li_16_Template","_c14","_c15","userTypeEnum","_c16","NavMenuComponent_li_13_li_10_span_4_Template","_c17","NavMenuComponent_li_13_li_11_span_4_Template","_c18","NavMenuComponent_li_13_li_12_span_4_Template","_c19","NavMenuComponent_li_13_li_13_span_4_Template","_c20","NavMenuComponent_li_13_li_14_span_4_Template","_c21","NavMenuComponent_li_13_span_9_Template","NavMenuComponent_li_13_li_10_Template","NavMenuComponent_li_13_li_11_Template","NavMenuComponent_li_13_li_12_Template","NavMenuComponent_li_13_li_13_Template","NavMenuComponent_li_13_li_14_Template","_c22","NavMenuComponent_li_14_li_10_span_4_Template","_c23","NavMenuComponent_li_14_li_11_span_4_Template","_c24","NavMenuComponent_li_14_li_12_span_4_Template","_c25","NavMenuComponent_li_14_li_13_span_4_Template","_c26","NavMenuComponent_li_14_span_9_Template","NavMenuComponent_li_14_li_10_Template","NavMenuComponent_li_14_li_11_Template","NavMenuComponent_li_14_li_12_Template","NavMenuComponent_li_14_li_13_Template","_c27","NavMenuComponent_li_15_li_10_span_4_Template","_c28","NavMenuComponent_li_15_li_11_span_4_Template","_c29","NavMenuComponent_li_15_span_9_Template","NavMenuComponent_li_15_li_10_Template","NavMenuComponent_li_15_li_11_Template","_c30","navigatToImportCardStatement","isCardMenuActive","_c31","_r75","activateImportStatementMenu","NavMenuComponent_li_16_ul_2_li_1_Template","isCreditCardPackageSubscribed","NavMenuComponent_li_16_ul_3_li_1_Template","NavMenuComponent_li_16_a_1_Template","NavMenuComponent_li_16_ul_2_Template","NavMenuComponent_li_16_ul_3_Template","_c32","fnNavigateToCart","activateCreateNewReportMenu","_c33","showCreateReportMarketingPopup","showRecallExportedExpensesMarketingPopup","_c34","NavMenuComponent_li_17_a_15_Template","NavMenuComponent_li_17_a_16_Template","NavMenuComponent_li_17_a_18_Template","NavMenuComponent_li_17_a_19_Template","NavMenuComponent_li_17_a_25_Template","NavMenuComponent_li_17_a_26_Template","_c35","_c36","isAccountingIntegrationPackagePurchasedOrTrial","isExportReportPackagePurchasedOrTrial","_c37","isRecallExportedExpensesPurchased","openEssPackPanel","_c38","notificationsCount","changePassword","showMFAPanel","supportPage","fnMyMileageRate","_r117","fnInvoicesClick","_r119","paymentMethodActiveTab","_r121","changeBillingPlan","_r123","ctx_r122","assistedSupportActiveTab","referAndEarnRoute","_r129","NavMenuComponent_div_38_div_38_li_2_Template","NavMenuComponent_div_38_div_38_li_3_Template","NavMenuComponent_div_38_div_38_li_4_Template","NavMenuComponent_div_38_div_38_li_5_Template","NavMenuComponent_div_38_div_38_li_6_Template","NavMenuComponent_div_38_div_38_li_7_Template","NavMenuComponent_div_38_div_38_li_8_Template","_r131","ctx_r130","myInvoicesVisible","logoutMenuVisible","NavMenuComponent_div_38_li_33_Template","NavMenuComponent_div_38_li_34_Template","NavMenuComponent_div_38_li_35_Template","NavMenuComponent_div_38_li_36_Template","NavMenuComponent_div_38_li_37_Template","NavMenuComponent_div_38_div_38_Template","Initials","fnGetClass","storeURL","fnCloseExportReportMarketingPopUp","ctx_r136","zoomDataExportImage","routerNavigateToExportData","fnSaveCartDetailsForExportReport","_c39","disableAddToCartForDataExport","_r140","ctx_r139","closeDataExportImage","_r142","ctx_r141","closeQRCodePanel","fnRedirectToEssPack","ctx_r143","fnEssBtnClick","ctx_r149","dismissEssPack","NavMenuComponent_div_51_button_90_Template","basicFuncEndDate","recallExportedExpensesMarketingPopupModel","ctx_r157","onTokenChange","ctx_r158","ctx_r159","ctx_r154","_r161","ctx_r160","registerNewMFADevice","ctx_r162","NavMenuComponent_div_56_div_14_Template","NavMenuComponent_div_56_div_15_Template","NavMenuComponent","universalImportTemplateEnum","changePasswordService","testNav","isExpanded","users","searchItems","showSettingsMenu","activateAllFunctionsMenu","activateMySubscriptionMenu","activateComingSoonMenu","activatePricingMenu","isThirdLevelMenuVisible","activateSecondaryFMPrivilegeScreen","_routerSub","isPackagePurchasedOrTrial","showLoginMarquee","isPrivilegeCheckStarted","isPreApprovalAccess","showQRCodePanel","isNotificationPanelActive","manageCCOptions","isAdvanceBalanceChecked","toggleRightSidebarEvent","mobileMenuButtonClicked","isInFullscreenMode","recallExportedExpensesMarketingPopup","userDetails","manageCCOption","onSettingClick","onNotificationsCountChange","linkClicked","collapse","MouseOverEvent","routePath","detectUrlUpdates","menuChange","getAdvanceBalanceOutstanding","ready","slideUp","slideToggle","navSlider","closeNav","billingPlan","is_Free","package_Path","function_PackageName","function_PackageId","function_Status","getAvailableSearchFunctions","searchItemsList","searchItem","uniq","searchChanged","fragment","isSearchVisible","allFuncUrl","setSettingsMenu","NavigationEnd","urlDetails","currentUrl","isRedirectFromMySubscriptionSettingPage","invoiceActiveTab","fnManageSubscriptionClick","showExportReportMarketingPopup","disableAddToCart","showZoomedDataExportImage","openQRCodePanel","navegateToGrid","toggleRightSidebar","fullscreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","todayDate","isDisplayEssDetail","clickType","NavMenuComponent_div_7_Template","NavMenuComponent_li_9_Template","NavMenuComponent_li_10_Template","NavMenuComponent_li_11_Template","NavMenuComponent_li_12_Template","NavMenuComponent_li_13_Template","NavMenuComponent_li_14_Template","NavMenuComponent_li_15_Template","NavMenuComponent_li_16_Template","NavMenuComponent_li_17_Template","NavMenuComponent_ul_18_Template","NavMenuComponent_li_25_Template","NavMenuComponent_span_32_Template","NavMenuComponent_div_38_Template","NavMenuComponent_div_40_Template","NavMenuComponent_div_42_Template","NavMenuComponent_div_44_Template","NavMenuComponent_div_45_Template","NavMenuComponent_div_46_Template","NavMenuComponent_div_47_Template","NavMenuComponent_div_48_Template","NavMenuComponent_div_50_Template","NavMenuComponent_div_51_Template","NavMenuComponent_app_basicFunctionTrialEndsAlertPanel_52_Template","NavMenuComponent_marketing_popup_53_Template","NavMenuComponent_div_54_Template","NavMenuComponent_div_56_Template","_c40","_c41","TopbarComponent","authService","_cookiesService","settingsButtonClicked","TopbarComponent_div_3_Template","lodash_es_isObject","freeGlobal","freeSelf","_root","lodash_es_now","root","reWhitespace","reTrimStart","_baseTrim","baseTrim","trimmedEndIndex","objectProto","nativeObjectToString","symToStringTag","_baseGetTag","baseGetTag","getRawTag","isOwn","unmasked","objectToString","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","lodash_es_toNumber","toNumber","isSymbol","isObjectLike","isBinary","nativeMax","nativeMin","lodash_es_debounce","debounce","wait","lastArgs","lastThis","maxWait","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","timeWaiting","debounced","isInvoking","leadingEdge","cachedScrollbarWidth","cachedDevicePixelRatio","scrollbarWidth","box","getElementWindow$1","getElementDocument$1","canUseDOM","devicePixelRatio","getOptions$1","attribute","chr","addClasses$1","classes","removeClasses$1","classNamesToQuery$1","classNames","helpers","getElementWindow","getElementDocument","getOptions","addClasses","removeClasses","classNamesToQuery","SimpleBarCore","removePreventClickId","minScrollbarWidth","stopScrollDelay","isScrolling","isMouseEntering","scrollXTicking","scrollYTicking","wrapperEl","contentWrapperEl","contentEl","offsetEl","maskEl","placeholderEl","heightAutoObserverWrapperEl","heightAutoObserverEl","rtlHelpers","resizeObserver","mutationObserver","elStyles","isRtl","mouseX","mouseY","onWindowResize","onStopScrolling","onMouseEntered","onScroll","elWindow","showScrollbar","axis","isOverflowing","positionScrollbar","_onStopScrolling","autoHide","hideScrollbar","mouseEntered","_onMouseEntered","_onMouseMove","forceVisible","onMouseMoveForAxis","onMouseLeaveForAxis","_onWindowResize","getScrollbarWidth","hideNativeScrollbar","onPointerEvent","isWithinTrackXBounds","isWithinTrackYBounds","scrollbar","isWithinBounds","pointerType","onDragStart","onTrackClick","drag","_h","_j","_k","_l","draggedAxis","trackSize","sizeAttr","contentSize","scrollSizeAttr","hostSize","dragPos","offsetAttr","dragOffset","scrollPos","getRtlHelpers","isScrollingToNegative","scrollOffsetAttr","onEndDrag","elDocument","preventClick","offsetSizeAttr","overflowAttr","throttle","dummyDiv","scrollbarDummyEl","firstElementChild","dummyChild","dummyContainerOffset","getOffset","dummyChildOffset","dummyChildOffsetAfterScroll","isScrollOriginAtZero","initDOM","recalculate","initListeners","wrapper","scrollableNode","contentWrapper","contentNode","mask","findChild","horizontal","vertical","ResizeObserver","resizeObserverStarted_1","observe","MutationObserver","childList","subtree","characterData","direction","contentElOffsetWidth","isHeightAuto","isWidthAuto","contentWrapperElOffsetWidth","elOverflowX","overflowX","elOverflowY","paddingTop","paddingRight","paddingBottom","paddingLeft","contentElScrollHeight","contentElScrollWidth","contentWrapperElOffsetHeight","offsetForXScrollbar","getScrollbarSize","toggleTrackVisibility","scrollbarSize","scrollbarMinSize","scrollbarMaxSize","scrollOffset","handleOffset","scrollable","currentAxis","hover","clickOnTrack","scrollbarOffset","scrolled","dir","scrollSize","getContentElement","removeListeners","disconnect","unMount","bbox","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","child","ariaLabel","SimplebarAngularComponent","SimpleBar","ngContentSelectors","SimplebarAngularModule","changeSidebarSize","changeSidebarColor","sidebarsize","sidebarcolor","RightsidebarComponent","eventService","topbar","onDocumentClick","contains","changeLayout","layout","changeMode","changeWidth","changePosition","changeTopbar","RightsidebarComponent_div_59_Template","parentTrigger","subMenu","triggerElement","ClassName","ACTIVE","COLLAPSE","COLLAPSED","COLLAPSING","METIS","SHOW","MetisMenu","isElement","disposed","triggerArr","boundEventHandler","clickEvent","uls","ul","li","closest","show","evtData","shouldBubble","bubbles","isTransitioning","setTransitioning","shownElement","eleParentSiblins","sibli","sibUl","showElement","hideElement","hiddenElement","MENU","isTitle","subItems","isLayout","badge","variant","selectedMenuId","iconInactive","SidebarComponent_ng_container_5_li_2_a_1_i_1_Template","SidebarComponent_ng_container_5_li_2_a_1_span_5_Template","navigateToSettings","SidebarComponent_ng_container_5_li_2_a_2_img_1_Template","SidebarComponent_ng_container_5_li_2_a_2_img_2_Template","SidebarComponent_ng_container_5_li_2_a_2_img_6_Template","SidebarComponent_ng_container_5_li_2_a_2_span_7_Template","isEssentialPackage","subitem_r25","SidebarComponent_ng_container_5_li_2_ul_3_li_1_a_1_span_4_Template","SidebarComponent_ng_container_5_li_2_ul_3_li_1_a_2_span_4_Template","subSubitem_r36","SidebarComponent_ng_container_5_li_2_ul_3_li_1_ul_3_li_1_Template","SidebarComponent_ng_container_5_li_2_ul_3_li_1_a_1_Template","SidebarComponent_ng_container_5_li_2_ul_3_li_1_a_2_Template","SidebarComponent_ng_container_5_li_2_ul_3_li_1_ul_3_Template","hasItems","SidebarComponent_ng_container_5_li_2_ul_3_li_1_Template","SidebarComponent_ng_container_5_li_2_a_1_Template","SidebarComponent_ng_container_5_li_2_a_2_Template","SidebarComponent_ng_container_5_li_2_ul_3_Template","SidebarComponent_ng_container_5_li_1_Template","SidebarComponent_ng_container_5_li_2_Template","SidebarComponent","menuItems","isSidebar","menu","_removeAllClass","els","_activateMenuDropdown","links","menuItemEl","paths","itemIndex","strIndex","parentEl","parent2El","parent3El","childAnchor","childDropdown","parent4El","parent5El","childanchor","SidebarComponent_ng_container_5_Template","VerticalComponent","isCondensed","onSettingsButtonClicked","VerticalComponent_app_sidebar_2_Template","onMenuClick","HorizontaltopbarComponent_ng_container_5_a_2_div_4_Template","subitem_r14","subSubitem_r19","subSubSubitem_r24","HorizontaltopbarComponent_ng_container_5_div_4_ng_template_1_div_1_ng_template_6_div_1_ng_template_6_Template","HorizontaltopbarComponent_ng_container_5_div_4_ng_template_1_div_1_ng_template_6_a_0_Template","HorizontaltopbarComponent_ng_container_5_div_4_ng_template_1_div_1_ng_template_6_div_1_Template","HorizontaltopbarComponent_ng_container_5_div_4_ng_template_1_div_1_ng_template_6_Template","HorizontaltopbarComponent_ng_container_5_div_4_ng_template_1_a_0_Template","HorizontaltopbarComponent_ng_container_5_div_4_ng_template_1_div_1_Template","HorizontaltopbarComponent_ng_container_5_div_4_ng_template_1_Template","HorizontaltopbarComponent_ng_container_5_a_2_Template","HorizontaltopbarComponent_ng_container_5_a_3_Template","HorizontaltopbarComponent_ng_container_5_div_4_Template","HorizontaltopbarComponent","listLang","flag","activateMenu","flagvalue","valueset","nextEl","resetParent","parent2","parent3","parent4","parent5","menuelement","matchingMenuItem","HorizontaltopbarComponent_ng_container_5_Template","HorizontalComponent","showWebNotificationMessage","webNotificationMessage","LayoutComponent","swPush","layoutMode","layoutType","layoutwidth","layoutposition","LayoutMode","LayoutWidth","LayoutPosition","Topbar","SidebarColor","SidebarSize","pushSubscription","userBrowserDetails","browserName","getBrowserName","isVerticalLayoutRequested","isHorizontalLayoutRequested","handleWebNotifications","permission","LayoutComponent_app_vertical_0_Template","LayoutComponent_app_horizontal_1_Template","LayoutComponent_div_2_Template","LayoutComponent_div_3_Template","EventMessageUtils","eventType","EventType","LOGIN_START","InteractionStatus","Login","SSO_SILENT_START","SsoSilent","ACQUIRE_TOKEN_START","interactionType","InteractionType","Popup","AcquireToken","HANDLE_REDIRECT_START","HandleRedirect","LOGOUT_START","Logout","SSO_SILENT_SUCCESS","SSO_SILENT_FAILURE","LOGOUT_END","HANDLE_REDIRECT_END","LOGIN_SUCCESS","LOGIN_FAILURE","ACQUIRE_TOKEN_SUCCESS","ACQUIRE_TOKEN_FAILURE","RESTORE_FROM_BFCACHE","MSAL_INSTANCE","MSAL_GUARD_CONFIG","MSAL_INTERCEPTOR_CONFIG","MSAL_BROADCAST_CONFIG","MsalService","redirectHash","initializeWrapperLibrary","WrapperSKU","Angular","acquireTokenPopup","acquireTokenRedirect","acquireTokenSilent","silentRequest","handleRedirectObservable","handleRedirectPromise","loginPopup","loginRedirect","logoutRequest","logoutRedirect","logoutPopup","ssoSilent","getLogger","setLogger","MsalBroadcastService","msalInstance","msalBroadcastConfig","eventsToReplay","verbose","_msalSubject","msalSubject$","_inProgress","Startup","inProgress$","addEventCallback","getInteractionStatusFromEvent","MsalGuard","msalGuardConfig","msalBroadcastService","parseUrl","getDestinationUrl","baseElements","getElementsByTagName","normalize","pathUrl","prepareExternalUrl","loginInteractively","authRequest","setActiveAccount","account","redirectStartPage","activateHelper","BrowserConfigurationAuthError","UrlString","hashContainsKnownProperties","BrowserUtils","getConfiguration","system","allowRedirectInIframe","loginFailedRoute","currentPath","concatMap","getAllAccounts","urlContainsCode","includesCode","fragmentContainsCode","hashRouting","catchError","errorPii","canActivateChild","canMatch","MsalInterceptor","msalInterceptorConfig","intercept","scopes","getScopesForEndpoint","handle","getActiveAccount","infoPii","acquireToken","requestClone","acquireTokenInteractively","httpMethod","normalizedEndpoint","protectedResourcesArray","protectedResourceMap","matchingProtectedResources","matchResourcesToEndpoint","absoluteResources","matchScopesToEndpoint","relativeResources","protectedResourcesEndpoints","matchingResources","normalizedKey","StringUtils","matchPattern","absoluteKey","keyComponents","getUrlComponents","absoluteEndpoint","endpointComponents","relativeNormalizedKey","QueryString","AbsolutePath","HostNameAndPort","endpointArray","allMatchedScopes","matchedEndpoint","scopesForEndpoint","methodAndScopesArray","normalizedRequestMethod","MsalModule","guardConfig","interceptorConfig","OrgLoginComponent","socialMediaLink","privacyPolicy","showMobileQrCodePanel","exisitingPasswordType","PasswordType","_destroying$","getProfile","profile","givenName","surname","userPrincipalName","authRequestConfig","loginHint","IsfromOrgId","forgotPassword","ipDetails","country_name","isIndia","closeMobileQrCodePanel","timeoutHandler","loginWithOrgId","browserStorage","signupWithOrgId","CookieService","InfoModelPopup","subTitle","videoURLs","btnLabel","actionButton","InfoPanelOutput","InfoModelPopupComponent","btnClickEvent","fnBtnClick","returnOutput","infoModel","btnStatus","sanitizeVideoUrl","cat_r6","paidlist_r12","websiteFunctionPackageName","PricingSummaryComponent_table_11_div_21_div_1_div_2_div_1_p_1_Template","removeFunPackage","currencySymbol","functionAmount","PricingSummaryComponent_table_11_div_21_div_1_div_2_div_1_Template","PricingSummaryComponent_table_11_div_21_div_1_h6_1_Template","PricingSummaryComponent_table_11_div_21_div_1_div_2_Template","PricingSummaryComponent_table_11_div_21_div_1_Template","PricingSummaryComponent_table_11_div_21_Template","accessCharge","essentialPack","selectedFunctionCategory","fnGetSelectedFunctionCost","PricingSummaryComponent","_decimalPipe","accessChargeFunction","removeFunPackageEvent","raisePricingQuoteEvent","quote","functionSelected","getSelectedFunctionCategory","formctrl","compose","pattern","funPackageId","funPackage","fpackage","functionCategoryGroup","decimalVal","raiseQuote","mapQuoteModel","PricingSummaryComponent_table_11_Template","PricingSummaryComponent_div_28_Template","PricingSummaryComponent_div_43_Template","PricingSummaryComponent_div_44_Template","PricingSummaryComponent_div_56_Template","paidlist_r7","fnShowFuncDetailPopup","fnUpdateSummary","PricingExternalListComponent_div_129_div_5_Template","i_r5","funCat_r4","fnCloseInfoPopup","onInfoPanelBtnClick","freeFunction_r17","essentialPackDescripition","PricingExternalListComponent","pricingService","paidFunctionPackageList","selectedFunctionPackageList","starterPackList","functionCategory","allFunctionCategoryGroup","functionCategorydropdownList","selectedFunctionCategoryGroup","showPricingExternalCalculatorPanel","isFreeTrialBoxDisplay","websiteLink","infoPopupVisible","pricingSummaryVisible","showMobilMenu","size$","essentialPackString","_scrollSubscription","fnGetIpCliente","scrollbarRef","verticalScrolled","fnGetOrgPricingFunctionList","orgPaymentCurrencySymbol","orgPaymentCurrencyId","orgPaymentCurrencyCode","accessChargeFunctions","paidFunctionPackageDetail","essentialPackAmount","accessAmount","websiteFunctionPackageSequence","freeFunctionPackageDetail","essentialPackList","fnFunctionCategoryPackagePriceList","country_code","countryCode","isFunctionChecked","fCategory","functionAmout","fnCategoryGroupPackageList","fnChangeFunctionCategory","searchTextKeypressEvent","matched","attr","fnGetTotalCost","fun","fnRemoveFunPackage","fnViewSummary","disableSummary","btnSummaryDisabled","raisePricingQuote","emailPricingQuote","discussPricingQuote","functionPackageQuote","accessFunction","emailQuoteRequest","functionPackages","getPricingDescriptionText","getScrollHeight","removeAttr","resetSelectedFunction","NgScrollbar","PricingExternalListComponent_div_129_Template","PricingExternalListComponent_info_model_popup_213_Template","PricingExternalListComponent_div_214_Template","PricingExternalListComponent_div_227_Template","ApplicationDownComponent","healthCheckInterval","AccountModule","VerifyEmailModule","ForgotPasswordModule","ResetPasswordModule","redirectTo","AppRoutingModule","onSameUrlNavigation","invalidTimingValue","ɵRuntimeError","ngDevMode","optimizeGroupPlayer","players","NoopAnimationPlayer","ɵAnimationGroupPlayer","normalizeKeyframes$1","normalizer","keyframes","preStyles","postStyles","normalizedKeyframes","previousOffset","previousKeyframe","kf","isSameOffset","normalizedKeyframe","normalizedProp","normalizedValue","normalizePropertyName","ɵPRE_STYLE","AUTO_STYLE","normalizeStyleValue","animationFailed","listenOnPlayer","player","onStart","copyAnimationEvent","onDone","onDestroy","phaseName","makeAnimationEvent","triggerName","fromState","toState","totalTime","_data","getOrSetDefaultValue","parseTimelineCommand","command","separatorPos","getParentElement","_CACHED_BODY","_IS_WEBKIT","containsElement","elm1","elm2","invokeQuery","elem","NoopAnimationDriver","validateStyleProperty","getBodyNode","containsVendorPrefix","matchesElement","_element","_selector","computeStyle","previousPlayers","scrubberAccessRequested","AnimationDriver","NOOP","ONE_SECOND","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","_convertTimeValueToMS","unit","resolveTiming","timings","allowNegativeValues","parseTimeExpression","delayMatch","easingVal","containsErrors","startIndex","negativeStepValue","negativeDelayValue","copyObj","convertToMap","styleMap","copyStyles","backfill","setStyles","formerStyles","camelProp","dashCaseToCamelCase","eraseStyles","normalizeAnimationEntry","steps","PARAM_REGEX","extractStyleParams","lastIndex","interpolateParams","original","varName","localVal","invalidParamValue","iteratorToArray","DASH_CASE_REGEXP","visitDslNode","visitor","visitTrigger","visitState","visitTransition","visitSequence","visitGroup","visitAnimate","visitKeyframes","visitStyle","visitReference","visitAnimateChild","visitAnimateRef","visitQuery","visitStagger","invalidNodeType","ANY_STATE","parseTransitionExpr","transitionValue","expressions","parseInnerTransitionStr","eventStr","parseAnimationAlias","alias","invalidTransitionAlias","invalidExpression","expr","makeLambdaFromStates","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","driver","metadata","warnings","AnimationAstBuilderVisitor","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","currentTime","queryCount","depCount","states","transitions","invalidTrigger","definitions","stateDef","invalidDefinition","styleAst","astParams","containsDynamicStyles","missingSubs","invalidState","metadataName","matchers","normalizeAnimationOptions","furthestTime","innerAst","timingAst","constructTimingAst","makeTimingAst","strValue","ast","dynamic","currentAnimateTimings","styleMetadata","isEmpty","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","metadataStyles","styleTuple","collectedEasing","styleData","tuple","collectedEntry","updateCollectedStyle","invalidParallelAnimation","firstStart","firstEnd","secondStart","secondEnd","validateStyleParams","invalidStyleParams","invalidKeyframes","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","invalidOffset","keyframeOffsetsOutOfOrder","generatedOffset","keyframesMissingOffsets","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","normalizeSelector","hasAmpersand","optional","originalSelector","invalidStagger","currentTransition","unsupportedCSSPropertiesFound","normalizeParams","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","instructions","existingInstructions","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","currentTimeline","delayNextStep","timelines","timeline","containsAnimation","lastRootTimeline","allowOnlyTimelineStyles","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","previousNode","_applyAnimationRefDelays","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","incrementTime","hasCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","currentQueryTotal","sameElementTimeline","currentQueryIndex","parentContext","tl","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","_copyOptions","oldParams","newTime","fork","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","invalidQuery","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_localTimelineStyles","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","flattenStyles","allStyles","allProperties","getFinalKeyframe","details1","details0","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","decimalPoints","mult","AnimationStyleNormalizer","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","propertyName","userProvidedProperty","normalizedProperty","strVal","valAndSuffixMatch","invalidCssUnitValue","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","oneOrMoreTransitionsMatch","matchFns","buildStyles","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","queriedElementsList","userParams","AnimationStateStyles","combinedParams","AnimationTrigger","_normalizer","transitionFactories","balanceProperties","fallbackTransition","createFallbackTransition","containsQueries","matchTransition","matchStyles","stateMap","key1","key2","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","bodyNode","_animations","_playersById","registerFailed","_buildPlayer","autoStylesMap","missingOrDestroyedAnimation","createAnimationFailed","_getPlayer","missingPlayer","baseEvent","play","restart","finish","setPosition","QUEUED_CLASSNAME","DISABLED_CLASSNAME","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","normalizeTriggerValue","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","_engine","_triggers","_elementListeners","_hostClassName","phase","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","triggersWithStates","statesByElement","afterFlush","_getTrigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","k2","playersOnElement","playersByElement","isFallbackTransition","totalQueuedPlayers","deregister","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","fetchNamespacesByElement","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","previousTriggersValues","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","removeNode","engine","childElementCount","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","removalFlag","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","markedForDestroy","d0","elementContainsData","containsData","TransitionAnimationEngine","onRemovalComplete","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","queuedPlayers","createNamespace","_balanceNamespaceList","collectEnterElement","namespaceList","found","ancestor","ancestorNs","registerTrigger","_fetchNamespace","stateValue","isElementNode","markElementAsDisabled","hostNS","_buildInstruction","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","whenRenderingDone","cleanupFns","_flushAnimations","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","nodes","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","previousValue","nodeIsOrphaned","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","parentPlayer","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","beforeDestroy","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","flattenGroupPlayers","finalPlayers","_flattenGroupPlayersRecur","wrappedPlayer","deleteOrUnsetInMap","currentValues","_player","_containsRealPlayer","_queuedCallbacks","triggerCallback","_queueEvent","hasStarted","getPosition","cloakElement","oldValue","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","roots","rootMap","nodeSet","localRootMap","getRoot","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","componentId","triggerBuildFailed","buildTrigger","onInsert","onRemove","disableAnimations","disable","eventPhase","SpecialCasedStyles","_startStyles","_endStyles","initialStyles","initialStylesByElement","_initialStyles","WeakMap","filterNonAnimatableStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","_onDoneFns","_onStartFns","_onDestroyFns","_initialized","_finished","_started","_destroyed","_originalOnDoneFns","_originalOnStartFns","currentSnapshot","_duration","_delay","_onFinish","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","_resetDomPlayerState","_convertKeyframesToObject","kfs","fromEntries","WebAnimationsDriver","validateAnimatableStyleProperty","playerOptions","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","normalizeKeyframes","balancePreviousStylesIntoKeyframes","startingKeyframe","missingStyleProps","specialStyles","packageNonAnimatableStyles","startStyles","endStyles","BrowserAnimationBuilder","AnimationBuilder","rootRenderer","_nextAnimationId","_renderer","createRenderer","ViewEncapsulation","issueAnimationCommand","BrowserAnimationFactory","AnimationFactory","RendererAnimationPlayer","_command","_listen","setProperty","DISABLE_ANIMATIONS_FLAG","AnimationRendererFactory","delegate","_zone","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","BaseAnimationRenderer","onRendererDestroy","animationTriggers","AnimationRenderer","_scheduleCountTask","queueMicrotask","scheduleListenerCallback","_onDestroy","destroyNode","namespace","createComment","newChild","refChild","isMove","oldChild","isHostElement","selectRootElement","selectorOrNode","preserveContent","resolveElementFromTarget","parseTriggerCallbackName","dotIndex","SHARED_ANIMATION_PROVIDERS","ɵAnimationStyleNormalizer","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","ɵAnimationEngine","InjectableAnimationEngine","appRef","RendererFactory2","instantiateRendererFactory","ɵDomRendererFactory2","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","ANIMATION_MODULE_TYPE","BROWSER_NOOP_ANIMATIONS_PROVIDERS","ɵNoopAnimationDriver","BrowserAnimationsModule","BrowserModule","LayoutsModule","TranslationLoader","RECAPTCHA_LANGUAGE","RECAPTCHA_BASE_URL","RECAPTCHA_NONCE","RECAPTCHA_SETTINGS","RECAPTCHA_V3_SITE_KEY","loader","loadScript","renderMode","onLoaded","urlParams","ng2recaptchaloaded","grecaptcha","RecaptchaLoaderService","v3SiteKey","RecaptchaCommonModule","RecaptchaModule","BuildDetailsHttpService","fetchBuildDetails","BaseOperatingContext","browserEnvironment","buildConfiguration","Logger","loggerOptions","isAvailable","isBrowserEnvironment","StandardOperatingContext","getModuleName","MODULE_NAME","getId","ID","_createV3Controller","standard","StandardController","createController","PublicClientApplication","configuration","createV3Controller","standardOperatingContext","acquireTokenByCode","removeEventCallback","callbackId","addPerformanceCallback","removePerformanceCallback","enableAccountStorageEvents","disableAccountStorageEvents","getAccount","accountFilter","getAccountByHomeId","homeAccountId","getAccountByLocalId","getAccountByUsername","getTokenCache","sku","setNavigationClient","navigationClient","hydrateCache","clearCache","ErrorInterceptor","loggerCallback","MSALInstanceFactory","auth","authority","cacheLocation","BrowserCacheLocation","storeAuthStateInCookie","Info","piiLoggingEnabled","MSALInterceptorConfigFactory","MSALGuardConfigFactory","globalSettings","siteKey","HttpLoaderFactory","AppModule","bootstrap","DecimalPipe","HTTP_INTERCEPTORS","TranslateLoader","HttpClientModule","ToastrModule","positionClass","closeButton","preventDuplicates","timeOut","OAuthModule","enableProdMode","__NgCli_bootstrap_1","bootstrapModule","CUSTOM_FIELD_DYNAMIC_KEY","PASSWORD_REGEX","makeNull","allowEmptyString","missing","missingOrEmpty","toStringOrNull","attrToNumber","valueParsed","attrToBoolean","arr_1","GenericUtils","attrToString","referenceCompare","jsonEquals","val1","val2","defaultComparator","valueA","valueB","accentedCompare","valueAMissing","valueBMissing","doQuickCompare","localeCompare","ColumnKeyCreator","existingKeys","addExistingKeys","getUniqueKey","colField","idToTry","__values$8","__read$z","iterateObject","e_1","e_1_1","cloneObject","deepCloneDefinition","keysToSkip","sourceIsSimpleObject","isNonNullObject","getProperty","copyPropertyIfPresent","getAllKeysInObjects","objects","allValues","getAllValuesInObject","anyObject","propertyIsEnumerable","mergeDeep","dest","copyUndefined","makeCopyOfSimpleObjects","sourceValue","destValue","getValueUsingField","fieldContainsDots","currentObject","removeAllReferences","objectName","writable","ObjectUtils","deepCloneObject","copyPropertiesIfPresent","missingOrEmptyObject","expression","objectToRead","objectToUpdate","doOnceFlags","doOnce","getFunctionName","funcConstructor","executeInAWhile","funcs","executeAfter","executeNextVMTurnFuncs","executeNextVMTurnPending","executeNextVMTurn","funcsCopy","milliseconds","previousCall","currentCall","waitUntil","condition","timeoutMessage","timeStamp","executed","internalCallback","reachedTimeout","callIfPresent","FunctionUtils","fns","composed","ModuleNames","CommunityCoreModule","InfiniteRowModelModule","ClientSideRowModelModule","CsvExportModule","EnterpriseCoreModule","RowGroupingModule","ColumnsToolPanelModule","FiltersToolPanelModule","MenuModule","SetFilterModule","MultiFilterModule","StatusBarModule","SideBarModule","RangeSelectionModule","MasterDetailModule","RichSelectModule","GridChartsModule","ViewportRowModelModule","ServerSideRowModelModule","ExcelExportModule","ClipboardModule","SparklinesModule","AdvancedFilterModule","AngularModule","ReactModule","VueModule","__read$y","__spreadArray$r","ModuleRegistry","module","__register","registerModules","modules","__registerModules","moduleBased","gridId","runVersionChecks","areGridScopedModules","gridModulesMap","moduleName","globalModulesMap","setModuleBased","__unRegisterGridModules","isValidModuleVersion","moduleMajor","moduleMinor","currentModuleVersion","__setIsBundled","isBundled","__assertRegistered","__isRegistered","warningMessage","warningKey","modName","__getRegisteredModules","__getGridRegisteredModules","__isPackageBased","Context","beanWrappers","beanClasses","contextParams","createBeans","beanInstances","getBeanInstances","wireBeans","beanEntry","beanInstance","createBean","bean","afterPreCreateCallback","autoWireBeans","methodWireBeans","callLifeCycleMethods","createBeanWrapper","constructorParamsMeta","__agBeanMetaData","autowireMethods","agConstructor","constructorParams","getBeansForParameters","newInstance","__spreadArray$q","__read$x","createdBeanNames","BeanClass","metaData","beanName","forEachMetaDataInHierarchy","agClassAttributes","otherBean","lookupBeanInstance","attributeName","wireParams","initParams","getBeanName","constructorString","parameters","beansList","paramIndex","otherBeanName","wiringBean","providedBeanInstances","lifeCycleMethod","callLifeCycleMethodsOnBean","methodToIgnore","allMethods","getBean","destroyBeans","destroyBean","beans","isDestroyed","getGridId","PreConstruct","descriptor","getOrCreateProps$1","preConstructMethods","PostConstruct","postConstructMethods","PreDestroy","preDestroyMethods","Bean","classConstructor","Autowired","propertyKey","autowiredFunc","Optional","classPrototype","methodOrAttributeName","Qualifier","__decorate$2J","decorators","Reflect","decorate","__param$a","decorator","allSyncListeners","allAsyncListeners","globalSyncListeners","globalAsyncListeners","asyncFunctionsQueue","scheduled","firedEvents","setBeans","loggerFactory","gridOptionsService","frameworkOverrides","globalEventListener","globalSyncEventListener","useAsyncEvents","addGlobalListener","getListeners","autoCreateListenerCollection","listenerMap","noRegisteredListenersExist","removeGlobalListener","agEvent","dispatchToListeners","dispatchEventOnce","browserEvent","eventPath","composedPath","dispatchAsync","flushAsyncQueue","queueCopy","__decorate$2I","__read$w","__spreadArray$p","instanceIdSequence$4","getNextColInstanceId","userProvidedColDef","instanceId","autoHeaderHeight","moving","menuVisible","lastLeftPinned","firstRightPinned","tooltipEnabled","rowGroupActive","pivotActive","aggregationActive","setState","getInstanceId","initialSort","sortIndex","initialSortIndex","initialHide","setPinned","initialPinned","initialFlex","setColDef","initMinAndMaxWidths","initDotNotation","createColumnEvent","getUserProvidedColDef","setParent","getParent","setOriginalParent","originalParent","getOriginalParent","initialise","resetActualWidth","initTooltip","suppressDotNotation","is","tooltipFieldContainsDots","columnUtils","calculateColMinWidth","calculateColMaxWidth","tooltipValueGetter","initialWidth","calculateColInitialWidth","setActualWidth","isEmptyGroup","isRowGroupDisplayed","showRowGroup","isPrimary","isFilterAllowed","isFieldContainsDots","isTooltipEnabled","isTooltipFieldContainsDots","colDefAny","warnOnce","isRowModelType","itemsUsed","cellEditor","menuTabs","communityMenuTabs_1","enterpriseMenuTabs_1","tab","columnsMenuParams","columnGroupShow","createColumnFunctionCallbackParams","isSuppressNavigable","suppressNavigable","userFunc","isCellEditable","isColumnFunc","editable","isSuppressFillHandle","suppressFillHandle","isAutoHeight","isAutoHeaderHeight","isRowDrag","rowDrag","isDndSource","dndSource","isCellCheckboxSelection","checkboxSelection","isSuppressPaste","suppressPaste","isResizable","setMoving","isMoving","getSort","dispatchStateUpdatedEvent","setMenuVisible","isMenuVisible","isSortNone","isSorting","getSortIndex","setSortIndex","setAggFunc","aggFunc","getAggFunc","getLeft","getOldLeft","oldLeft","getRight","actualWidth","setLeft","isFilterActive","setFilterActive","active","additionalEventAttributes","filterChangedEvent","isHovered","columnHoverService","setFirstRightPinned","setLastLeftPinned","isFirstRightPinned","isLastLeftPinned","isPinned","isPinnedLeft","isPinnedRight","getPinned","setVisible","isSpanHeaderHeight","getColDef","suppressSpanHeaderHeight","getColumnGroupShow","getColId","getUniqueId","getDefinition","getActualWidth","getAutoHeaderHeight","setAutoHeaderHeight","changed","createBaseColDefParams","getColSpan","colSpan","getRowSpan","rowSpan","silent","fireColumnWidthChangedEvent","isGreaterThanMax","getMinWidth","getMaxWidth","getFlex","setFlex","setMinimum","setRowGroupActive","rowGroup","isRowGroupActive","setPivotActive","pivot","isPivotActive","isAnyFunctionActive","isValueActive","isAnyFunctionAllowed","isAllowPivot","isAllowRowGroup","isAllowValue","setValueActive","enablePivot","enableValue","enableRowGroup","getMenuTabs","EVENT_STATE_UPDATED","EVENT_MOVING_CHANGED","EVENT_LEFT_CHANGED","EVENT_WIDTH_CHANGED","EVENT_LAST_LEFT_PINNED_CHANGED","EVENT_FIRST_RIGHT_PINNED_CHANGED","EVENT_VISIBLE_CHANGED","EVENT_FILTER_CHANGED","EVENT_FILTER_ACTIVE_CHANGED","EVENT_SORT_CHANGED","EVENT_COL_DEF_CHANGED","EVENT_MENU_VISIBLE_CHANGED","EVENT_ROW_GROUP_CHANGED","EVENT_PIVOT_CHANGED","EVENT_VALUE_CHANGED","ProvidedColumnGroup","colGroupDef","groupId","localEventService","expandable","expandableListenerRemoveCallback","expanded","openByDefault","getLevel","isPadding","setExpanded","EVENT_EXPANDED_CHANGED","isExpandable","getGroupId","setChildren","getChildren","getColGroupDef","getLeafColumns","addLeafColumns","leafColumns","setupExpandable","setExpandable","onColumnVisibilityChanged","col","atLeastOneShowingWhenOpen","atLeastOneShowingWhenClosed","atLeastOneChangeable","findChildrenRemovingPadding","abstractColumn","headerGroupShow","EVENT_EXPANDABLE_CHANGED","__decorate$2H","DefaultColumnTypes","numericColumn","rightAligned","firstExistingValue","areEqual","comparator","sortNumerically","removeFromUnorderedArray","removeFromArray","removeAllFromUnorderedArray","removeAllFromArray","insertIntoArray","toIndex","moveInArray","objectsToMove","flatten","arrayOfArrays","pushAll","ArrayUtils","existsAndNotEmpty","shallowCompare","arr1","arr2","removeRepeatsFromArray","insertArrayIntoArray","toStrings","forEachReverse","list","AG_GRID_STOP_PROPAGATION","PASSIVE_EVENTS$1","supports","stopPropagationForAgGrid","isStopPropagationForAgGrid","isEventSupported","select","submit","load","getCtrlForEventTarget","eventTarget","sourceElement","renderedComp","getDomData","isElementInEventPath","getEventPath","createEventPath","pointer","eventNoType","addSafePassiveEventListener","eElement","isPassive","EventUtils","__decorate$2G","BeanStub","destroyFunctions","__v_skip","lastChangeSetIdLookup","propertyListenerId","isAlive","getFrameworkOverrides","EVENT_DESTROYED","dispatchEventAsync","addManagedListener","destroyFunc","setupGridOptionListener","addManagedPropertyListener","addManagedPropertyListeners","eventsKey","wrappedListener","changeSet","addDestroyFunc","createManagedBean","__extends$36","__decorate$2F","__param$9","ColumnFactory","createColumnTree","defs","primaryColumns","existingTree","columnKeyCreator","extractExistingTreeData","existingCols","existingGroups","existingColKeys","unbalancedTree","recursivelyCreateColumns","treeDept","findMaxDept","columnTree","balanceColumnTree","depthFirstOriginalTreeSearch","createForAutoGroups","autoGroupCols","gridBalancedTree","createAutoGroupTreeItem","balancedColumnTree","dept","findDepth","nextChild","autoGroup","currentDept","columnDept","originalGroup","newChildren","firstPaddedGroup","currentPaddedGroup","newColId","colGroupDefMerged","createMergedColGroupDef","paddedGroup","leaf","treeChildren","maxDeptThisLevel","newDept","existingColsCopy","isColumnGroup","createColumnGroup","createColumn","existingColumns","providedGroup","existingGroupAndIndex","findExistingGroup","existingColAndIndex","findExistingColumn","colDefMerged","addColumnDefaultAndTypes","dataTypeService","addColumnListeners","widthBeforeUpdate","newColDef","newGroupDef","columnType","updateColDefAndGetColumnType","assignColumnTypes","autoGroupColDef","isSortingCoupled","isColumnsSortingCoupledToGroup","validateColDef","typeKeys","allColumnTypes","typeColDef","abstractColDef","ColumnGroup","providedColumnGroup","partId","displayedChildren","createUniqueId","allLeafColumns","getProvidedColumnGroup","checkLeft","lastChildLeft","firstChildLeft","createAgEvent","getPartId","isChildInThisGroupDeepSearch","wantedChild","foundChild","groupActualWidth","groupChild","addChild","getDisplayedChildren","getDisplayedLeafColumns","addDisplayedLeafColumns","getPaddingLevel","calculateDisplayedColumns","parentWithExpansion","EVENT_DISPLAYED_CHILDREN_CHANGED","__decorate$2E","Events","EVENT_COLUMN_EVERYTHING_CHANGED","EVENT_NEW_COLUMNS_LOADED","EVENT_COLUMN_PIVOT_MODE_CHANGED","EVENT_COLUMN_ROW_GROUP_CHANGED","EVENT_EXPAND_COLLAPSE_ALL","EVENT_COLUMN_PIVOT_CHANGED","EVENT_GRID_COLUMNS_CHANGED","EVENT_COLUMN_VALUE_CHANGED","EVENT_COLUMN_MOVED","EVENT_COLUMN_VISIBLE","EVENT_COLUMN_PINNED","EVENT_COLUMN_GROUP_OPENED","EVENT_COLUMN_RESIZED","EVENT_DISPLAYED_COLUMNS_CHANGED","EVENT_VIRTUAL_COLUMNS_CHANGED","EVENT_ASYNC_TRANSACTIONS_FLUSHED","EVENT_ROW_GROUP_OPENED","EVENT_ROW_DATA_CHANGED","EVENT_ROW_DATA_UPDATED","EVENT_PINNED_ROW_DATA_CHANGED","EVENT_RANGE_SELECTION_CHANGED","EVENT_CHART_CREATED","EVENT_CHART_RANGE_SELECTION_CHANGED","EVENT_CHART_OPTIONS_CHANGED","EVENT_CHART_DESTROYED","EVENT_TOOL_PANEL_VISIBLE_CHANGED","EVENT_TOOL_PANEL_SIZE_CHANGED","EVENT_COLUMN_PANEL_ITEM_DRAG_START","EVENT_COLUMN_PANEL_ITEM_DRAG_END","EVENT_MODEL_UPDATED","EVENT_CUT_START","EVENT_CUT_END","EVENT_PASTE_START","EVENT_PASTE_END","EVENT_FILL_START","EVENT_FILL_END","EVENT_RANGE_DELETE_START","EVENT_RANGE_DELETE_END","EVENT_UNDO_STARTED","EVENT_UNDO_ENDED","EVENT_REDO_STARTED","EVENT_REDO_ENDED","EVENT_KEY_SHORTCUT_CHANGED_CELL_START","EVENT_KEY_SHORTCUT_CHANGED_CELL_END","EVENT_CELL_CLICKED","EVENT_CELL_DOUBLE_CLICKED","EVENT_CELL_MOUSE_DOWN","EVENT_CELL_CONTEXT_MENU","EVENT_CELL_VALUE_CHANGED","EVENT_CELL_EDIT_REQUEST","EVENT_ROW_VALUE_CHANGED","EVENT_CELL_FOCUSED","EVENT_CELL_FOCUS_CLEARED","EVENT_FULL_WIDTH_ROW_FOCUSED","EVENT_ROW_SELECTED","EVENT_SELECTION_CHANGED","EVENT_TOOLTIP_SHOW","EVENT_TOOLTIP_HIDE","EVENT_CELL_KEY_DOWN","EVENT_CELL_MOUSE_OVER","EVENT_CELL_MOUSE_OUT","EVENT_FILTER_MODIFIED","EVENT_FILTER_OPENED","EVENT_ADVANCED_FILTER_BUILDER_VISIBLE_CHANGED","EVENT_VIRTUAL_ROW_REMOVED","EVENT_ROW_CLICKED","EVENT_ROW_DOUBLE_CLICKED","EVENT_GRID_READY","EVENT_GRID_PRE_DESTROYED","EVENT_GRID_SIZE_CHANGED","EVENT_VIEWPORT_CHANGED","EVENT_SCROLLBAR_WIDTH_CHANGED","EVENT_FIRST_DATA_RENDERED","EVENT_DRAG_STARTED","EVENT_DRAG_STOPPED","EVENT_CHECKBOX_CHANGED","EVENT_ROW_EDITING_STARTED","EVENT_ROW_EDITING_STOPPED","EVENT_CELL_EDITING_STARTED","EVENT_CELL_EDITING_STOPPED","EVENT_BODY_SCROLL","EVENT_BODY_SCROLL_END","EVENT_HEIGHT_SCALE_CHANGED","EVENT_PAGINATION_CHANGED","EVENT_COMPONENT_STATE_CHANGED","EVENT_STORE_REFRESHED","EVENT_BODY_HEIGHT_CHANGED","EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED","EVENT_SCROLL_VISIBILITY_CHANGED","EVENT_COLUMN_HOVER_CHANGED","EVENT_FLASH_CELLS","EVENT_PAGINATION_PIXEL_OFFSET_CHANGED","EVENT_DISPLAYED_ROWS_CHANGED","EVENT_LEFT_PINNED_WIDTH_CHANGED","EVENT_RIGHT_PINNED_WIDTH_CHANGED","EVENT_ROW_CONTAINER_HEIGHT_CHANGED","EVENT_HEADER_HEIGHT_CHANGED","EVENT_COLUMN_HEADER_HEIGHT_CHANGED","EVENT_ROW_DRAG_ENTER","EVENT_ROW_DRAG_MOVE","EVENT_ROW_DRAG_LEAVE","EVENT_ROW_DRAG_END","EVENT_GRID_STYLES_CHANGED","EVENT_POPUP_TO_FRONT","EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST","EVENT_COLUMN_PIVOT_CHANGE_REQUEST","EVENT_COLUMN_VALUE_CHANGE_REQUEST","EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST","EVENT_KEYBOARD_FOCUS","EVENT_MOUSE_FOCUS","EVENT_STORE_UPDATED","EVENT_FILTER_DESTROYED","EVENT_ROW_DATA_UPDATE_STARTED","EVENT_ADVANCED_FILTER_ENABLED_CHANGED","EVENT_DATA_TYPES_INFERRED","EVENT_FIELD_VALUE_CHANGED","EVENT_FIELD_PICKER_VALUE_SELECTED","GroupInstanceIdCreator","existingIds","getInstanceIdForKey","lastResult","__extends$35","__decorate$2D","GROUP_AUTO_COLUMN_ID","AutoGroupColService","createAutoGroupColumns","rowGroupColumns","groupAutoColumns","doingTreeData","doingMultiAutoColumn","isGroupMultiAutoColumn","rowGroupCol","createOneAutoGroupColumn","updateAutoGroupColumns","autoGroupColumns","updateOneAutoGroupColumn","createAutoGroupColDef","newCol","colToUpdate","oldColDef","underlyingColId","underlyingColumn","columnModel","getPrimaryColumn","columnFactory","createBaseColDef","filterValueGetter","headerCheckboxSelection","userDef","localeService","getLocaleTextFunc","localeTextFunc","cellRendererSelector","getDisplayNameForColumn","headerValueGetter","innerRenderer","innerRendererParams","reUnescapedHtml","HTML_ESCAPES","escapeString","toEscape","skipEscapingHtmlChars","stringResult","camelCaseToHumanText","camelCase","word","camelCaseToHyphenated","utf8_encode","stringFromCharCode","createByte","encodeCodePoint","padStart","symbol","checkScalarValue","codePoints","ucs2decode","extra","capitalise","pair","MapUtils","mapById","ColDefUtil","ColDefPropertyMap","toolPanelClass","pivotKeys","cellDataType","initialAggFunc","defaultAggFunc","chartDataType","cellEditorPopupPosition","headerGroupComponent","headerGroupComponentParams","cellEditorParams","filterParams","pivotValueColumn","headerComponent","floatingFilterComponent","floatingFilterComponentParams","refData","sortingOrder","allowedAggFuncs","pivotTotalColumnIds","cellClassRules","icons","rowGroupIndex","initialRowGroupIndex","pivotIndex","initialPivotIndex","suppressCellFlash","suppressColumnsToolPanel","suppressFiltersToolPanel","marryChildren","suppressStickyLabel","initialRowGroup","initialPivot","showDisabledCheckboxes","headerCheckboxSelectionFilteredOnly","headerCheckboxSelectionCurrentPageOnly","lockVisible","unSortIcon","suppressSizeToFit","suppressAutoSize","enableCellChangeFlash","singleClickEdit","floatingFilter","cellEditorPopup","wrapHeaderText","dndSourceOnRowDrag","valueSetter","keyCreator","valueFormatter","valueParser","pivotComparator","suppressKeyboardEvent","suppressHeaderKeyboardEvent","getQuickFilterText","onCellValueChanged","onCellDoubleClicked","onCellContextMenu","rowDragText","cellEditorSelector","useValueFormatterForExport","useValueParserForImport","ALL_PROPERTIES","__read$v","__spreadArray$o","PropertyKeys","STRING_PROPERTIES","OBJECT_PROPERTIES","ARRAY_PROPERTIES","NUMBER_PROPERTIES","BOOLEAN_PROPERTIES","FUNCTIONAL_PROPERTIES","CALLBACK_PROPERTIES","FUNCTION_PROPERTIES","__assign$n","__read$u","__spreadArray$n","ComponentUtil","getCallbackForEvent","getCoercionLookup","coercionLookup","EVENT_CALLBACKS","rawValue","coercionStep","toBoolean","getGridOptionKeys","isVue","copyAttributesToGridOptions","pGridOptions","coercedValue","processOnChange","changeSetId","changesToApply","columnTypes","setColumnTypes","currentValue","setAutoGroupColumnDef","setDefaultColDef","updates","gridKey","isChanged","__setPropertyOnly","updatedKeys","__updateProperty","EVENTS","EXCLUDED_INTERNAL_EVENTS","PUBLIC_EVENTS","ALL_PROPERTIES_SET","__values$7","fuzzyCheckStrings","inputValues","validValues","allSuggestions","fuzzyMatches","invalidInputs","inputValue","validValue","invalidInput","fuzzySuggestions","hideIrrelevant","filterByPercentageOfBestMatch","thisSuggestions","relevance","stringWeightedDistances","suggestion","limit_1","indices","thisSuggestions_1","thisSuggestions_1_1","str1","str2","weight","FuzzyMatchUtils","__decorate$2C","__read$t","__spreadArray$m","logDeprecation","oldProp","newProp","newPropMsg","VUE_FRAMEWORK_PROPS","GridOptionsValidator","deprecatedProperties","rememberGroupStateWhenNewData","serverSideFilteringAlwaysResets","copyToNewProp","serverSideSortingAlwaysResets","suppressReactUi","processSecondaryColDef","processSecondaryColGroupDef","getServerSideStoreParams","serverSideInfiniteScroll","enableChartToolPanelsButton","functionsPassive","onColumnRowGroupChangeRequest","onColumnPivotChangeRequest","onColumnValueChangeRequest","onColumnAggFuncChangeRequest","serverSideFilterAllLevels","suppressAggAtRootLevel","excludeHiddenColumnsFromQuickFilter","enterMovesDown","enterMovesDownAfterEdit","suppressParentsInRowNodes","pickOneWarning","prop1","prop2","checkForDeprecated","checkForViolations","suppressPropertyNamesCheck","checkGridOptionsProperties","checkColumnDefProperties","checkColumnDefViolations","alt","validateRegistered","validProperties","userProperties","checkProperties","rowModel","unsupportedProperties","infinite","viewport","serverSide","clientSide","isMultiSelect","multiSelectDependencies","validPropertiesAndExceptions","docsUrl","invalidProperties","oldPropValue","newPropValue","serverSideStoreType","suppressServerSideInfiniteScroll","treeDataViolations","matchesGroupDisplayType","toMatch","supplied","groupDisplayTypeValues","__extends$34","__decorate$2B","__param$8","__read$s","__spreadArray$l","__values$6","ColumnModel","primaryHeaderRowCount","secondaryHeaderRowCount","gridHeaderRowCount","displayedColumnsLeft","displayedColumnsRight","displayedColumnsCenter","displayedColumns","displayedColumnsAndGroupsMap","viewportColumns","viewportColumnsHash","headerViewportColumns","viewportColumnsCenter","headerViewportColumnsCenter","autoHeightActiveAtLeastOnce","valueColumns","pivotColumns","autoGroupsNeedBuilding","forceRecreateAutoGroups","pivotMode","bodyWidth","leftWidth","rightWidth","bodyWidthDirty","shouldQueueResizeOperations","resizeOperationQueue","suppressColumnVirtualisation","isPivotSettingAllowed","buildAutoGroupColumns","onAutoGroupColumnDefChanged","onSharedColDefChanged","updateGridColumns","updateDisplayedColumns","autoGroupColService","createColumnsFromColumnDefs","colsPreviouslyExisted","recreateColumnDefs","destroyOldColumns","oldTree","newTree","oldObjectsById","colsToDestroy","destroyColumns","primaryColumnTree","secondaryBalancedTree","groupAutoColsBalancedTree","dispatchEventsFunc","compareColumnStatesAndDispatchEvents","valueCache","expire","oldPrimaryColumns","balancedTreeResult","getColumnsFromTree","primaryColumnsMap","extractRowGroupColumns","extractPivotColumns","extractValueColumns","gridColsArePrimary","orderGridColumnsLikePrimary","checkViewportColumns","dispatchEverythingChanged","dispatchNewColumnsLoaded","primaryColsOrdered","gridColumns","otherCols","placeLockedColumns","getAllDisplayedAutoHeightCols","displayedAutoHeightCols","setViewport","viewportLeft","scrollPosition","viewportRight","getDisplayedColumnsStartingAt","currentColumn","getDisplayedColAfter","afterScroll","extractViewport","setViewportPosition","isPivotMode","setPivotMode","getSecondaryPivotColumn","valueColKey","secondaryColumns","valueColumnToFind","foundColumn","thisPivotKeys","setFirstRightAndLastLeftPinned","lastLeft","firstRight","autoSizeColumns","skipHeaderGroups","stopAtGroup","animationFrameService","flushAllFrames","columnsAutosized","changesThisTimeAround","shouldSkipHeader","shouldSkipHeaderGroups","actionOnGridColumns","preferredWidth","autoWidthCalculator","getPreferredWidthForColumn","newWidth","normaliseColumnWidth","autoSizeColumnGroupsByColumns","dispatchColumnResizedEvent","flexColumns","dispatchColumnChangedEvent","dispatchColumnMovedEvent","movedColumns","dispatchColumnPinnedEvent","changedColumns","getCommonValue","dispatchColumnVisibleEvent","autoSizeColumn","e_2","headerGroupCtrl","columnGroups","getGridColumns","columnGroups_1","columnGroups_1_1","columnGroup","ctrlsService","getHeaderRowContainerCtrls","getHeaderCtrlForColumn","e_2_1","resizeLeafColumnsToFit","autoSizeAllColumns","allDisplayedColumns","getAllDisplayedColumns","rootColumns","recursiveFindColumns","childColumns","getAllDisplayedTrees","displayedTreeLeft","displayedTreeRight","displayedTreeCentre","getPrimaryColumnTree","getHeaderRowCount","getDisplayedTreeLeft","getDisplayedTreeRight","getDisplayedTreeCentre","isColumnDisplayed","getViewportColumns","getDisplayedLeftColumnsForRow","colSpanActive","getDisplayedColumnsForRow","getDisplayedRightColumnsForRow","isColSpanActive","filterCallback","emptySpaceBeforeColumn","out_i_1","lastConsideredCol","filterPasses","maxAllowedColSpan","columnsToCheckFilter","colsToRemove","colForFilter","getViewportCenterColumnsForRow","isColumnInRowViewport","getAriaColumnIndex","getAllGridColumns","isColumnInHeaderViewport","columnLeft","columnRight","leftBounds","rightBounds","getDisplayedColumnsLeftWidth","getWidthOfColsInList","getDisplayedColumnsRightWidth","updatePrimaryColumnList","masterList","actionIsAdd","columnCallback","atLeastOne","columnToAdd","setRowGroupColumns","colKeys","setPrimaryColumnList","setColumnVisible","addRowGroupColumn","addRowGroupColumns","removeRowGroupColumns","removeRowGroupColumn","addPivotColumns","setPivotColumns","addPivotColumn","removePivotColumns","removePivotColumn","detectOrderChange","oldIndex","setValueColumns","aggFuncService","getDefaultAggFunc","addValueColumns","addValueColumn","colKey","removeValueColumn","removeValueColumns","getPrimaryOrGridColumn","getGridColumn","setColumnWidths","columnWidths","sets","columnWidth","ratios","otherCol","widthDiff","otherColWidth","resizeColumnSets","resizeSets","checkMinAndMaxWidthsForSet","columnResizeSet","minWidthAccumulated","maxWidthAccumulated","maxWidthActive","changedCols","allResizedCols","newWidths","finishedCols","finishedColsGrew","loopCount","subsetCols","subsetRatioTotal","pixelsToDistribute","ratioScale","colNewWidth","atLeastOneColChanged","flexedCols","refreshFlexedColumns","resizingCols","skipSetLeft","setLeftValues","updateBodyWidths","colsForEvent","setColumnAggFunc","moveRowGroupColumn","fromIndex","impactedColumns","moveColumns","columnsToMoveKeys","columnAnimationService","doesMovePassRules","columnsToMove","proposedColumnOrder","getProposedColumnOrder","doesOrderPassRules","gridOrder","doesMovePassMarryChildren","doesMovePassLockedPositions","sortColumnsLikeGridColumns","lastPlacement","rulePassed","lockPositionToPlacement","allColumnsCopy","newIndexes","newColIndex","moveColumn","moveColumnByIndex","getColumnDefs","lastPrimaryOrder","columnDefFactory","buildColumnDefs","getBodyContainerWidth","getContainerWidth","newBodyWidth","newLeftWidth","newRightWidth","getValueColumns","getPivotColumns","getRowGroupColumns","getDisplayedCenterColumns","getDisplayedLeftColumns","getDisplayedRightColumns","getDisplayedColumns","getAllPrimaryColumns","getSecondaryColumns","getAllColumnsForQuickFilter","columnsForQuickFilter","isRowGroupEmpty","setColumnsVisible","setColumnPinned","setColumnsPinned","actualPinned","isDomLayout","updatedColumns","event_3","getDisplayedColBefore","getDisplayedGroupAfter","getDisplayedGroupAtDirection","getDisplayedGroupBefore","requiredLevel","colGroupLeafColumns","getDisplayColMethod","groupPointer","getColumnGroupAtLevel","isPinningLeft","isPinningRight","getPrimaryAndSecondaryAndAutoColumns","createStateItemFromColumn","getColumnState","orderColumnStateList","columnStateList","colIdToGridIndexMap","resetColumnState","columnStates","letRowGroupIndex","letPivotIndex","colsToProcess","stateItem","getColumnStateFromColDef","applyOrder","getValueOrNull","applyStates","getById","columnsWithNoState","rowGroupIndexes","pivotIndexes","autoGroupColumnStates","unmatchedAndAutoStates","unmatchedCount","previousRowGroupCols","previousPivotCols","syncColumnWithStateItem","applyDefaultsFunc","indexes","oldList","colA","colB","indexA","indexB","aHasIndex","bHasIndex","oldIndexA","oldIndexB","aHasOldIndex","autoGroupColsCopy","autoCol","getAutoColumn","applyOrderAfterApplyState","getSecondaryColumn","newOrder","processedColIds","gridColumnsMap","autoGroupInsertIndex","startState","columnStateBefore","columnStateBeforeMap","colsForState","dispatchWhenListsDifferent","colsBefore","colsAfter","idMapper","changesArr","getChangedColumns","changedPredicate","colStateBefore","columnIdMapper","changedValues","oldActive","activeChanged","aggFuncChanged","sortController","dispatchSortChangedEvents","normaliseColumnMovedEventForColumnState","firstValue","colStateAfter","colStateAfterMapped","colsIntersectIds","beforeFiltered","afterFiltered","csAfter","csBefore","gridCol","value1","value2","calculated","minColWidth","getColumns","columnLookupCallback","foundColumns","getColumnWithValidation","getColumn","lookupGridColumn","secondaryColumnsMap","columnMap","columnsMatch","getSourceColumnsForGroupColumn","groupCol","sourceColumnId","columnMatches","colDefMatches","idMatches","includeAggFunc","getHeaderName","wrapHeaderNameWithAggFunc","getDisplayNameForProvidedColumnGroup","getDisplayNameForColumnGroup","expressionService","evaluate","aggFuncFound","isCollapsedHeaderEnabled","isTotalColumn","measureActive","aggregationPresent","aggFuncString","getColumnGroup","allColumnGroups","checkPartId","depthFirstAllColumnTreeSearch","extractColumns","previousCols","setFlagFunc","getIndexFunc","getInitialIndexFunc","getValueFunc","getInitialValueFunc","colsWithIndex","colsWithValue","colIsNew","initialValue","initialIndex","getIndexForCol","defaultIndex","resetColumnGroupState","stateItems","groupState","setColumnGroupState","getColumnGroupState","columnGroupState","impactedGroups","updateGroupsAndDisplayedColumns","setColumnGroupOpened","keyAsString","calculateColumnsForDisplay","isAutoGroupCol","isValueCol","checkColSpanActiveInCols","calculateColumnsForGroupDisplay","groupDisplayColumns","groupDisplayColumnsMap","getGroupDisplayColumns","getGroupDisplayColumnForGroup","rowGroupColumnId","columnsForDisplay","buildDisplayedTrees","isSecondaryColumnsPresent","setSecondaryColumns","colDefs","newColsPresent","processSecondaryColumnDefinitions","previousSecondaryColumns","groupCallback","searchForColDefs","colDefs2","sortOrderToRecover","prevGridCols","lastSecondaryOrder","hasSameColumns","createGroupAutoColumnsIfNeeded","groupAutoColsMap_1","addAutoGroupToGridColumns","orderGridColsLike","refreshQuickFilterColumns","clearDisplayedAndViewportColumns","setAutoHeightActive","autoHeightActive","colsOrder","lastOrderMapped","noColsFound","gridColsMap","oldColsOrdered","oldColsMap","newColsOrdered","newGridColumns","siblings","leafCol","presentInNewGriColumns","noYetInSiblings","isPrimaryColumnGroupsPresent","normal","newAutoColsTree","viewportRowLeft","viewportRowRight","viewportRowCenter","updateOpenClosedVisibilityInColumnGroups","deriveDisplayedColumns","derivedDisplayedColumnsFromDisplayedTree","joinDisplayedColumns","isAutoRowHeightActive","wasAutoRowHeightEverActive","setLeftValuesOfColumns","setLeftValuesOfGroups","allColumns","doingRtl","left_1","left_2","tree","depthFirstDisplayedColumnTreeSearch","extractViewportColumns","getVirtualHeaderGroupRow","calculateHeaderRows","virtualColIds","testGroup","addThisItem","newHash","viewportWidth","flexViewportWidth","flexAfterDisplayIndex","allResizingCols","displayedCols","knownColumnsWidth","flexingColumns","minimumFlexedWidth","totalFlex","spaceForFlexingColumns","flexingColumnSizes","spacePerFlex","widthByFlexRule","constrainedWidth","remainingSpace","fireResizedEvent","sizeColumnsToFit","gridWidth","limitsMap","columnLimits","dimensions","getOwnPropertySymbols","__rest","doColumnsAlreadyFit","colsToSpread","colsToNotSpread","colsToDispatchEventFor","finishedResizing","moveToNotSpread","widthOverride","minOverride","defaultMinWidth","maxOverride","defaultMaxWidth","colWidth","availablePixels","scale","pixelsForLastCol","colMinWidth","colMaxWidth","MAX_VALUE","visibleColumns","leftVisibleColumns","rightVisibleColumns","centerVisibleColumns","groupInstanceIdCreator","displayedGroupCreator","createDisplayedGroups","updateDisplayedMap","isDisplayed","getGroupAutoColumns","groupFullWidthRow","isGroupUseEntireRow","suppressAutoColumn","isGroupSuppressAutoColumn","newAutoGroupCols","autoColsEqual","groupDisplayType","treeDataDisplayType","matchesTreeDataDisplayType","treeDataDisplayTypeValues","colsA","colsB","getGridBalancedTree","getFirstDisplayedColumn","queryOrder","setColumnHeaderHeight","getColumnGroupHeaderRowHeight","getPivotGroupHeaderHeight","getGroupHeaderHeight","getColumnHeaderRowHeight","defaultHeight","getPivotHeaderHeight","getHeaderHeight","displayedHeights","getNum","getFromTheme","getFloatingFiltersHeight","queueResizeOperations","processResizeOperations","resizeOperation","resetColumnDefIntoColumn","userColDef","generateColumnStateForRowGroupAndPivotIndexes","updatedRowGroupColumnState","updatedPivotColumnState","existingColumnStateUpdates","orderColumns","updatedColumnState","colList","enableProp","initialEnableProp","indexProp","initialIndexProp","updatedColIdArray","updatedColIds","newColIds","allColIds","colIdsInOriginalOrder","originalOrderMap","orderIndex","hasAddedNewCols","processPrecedingNewCols","originalOrderIndex","__extends$33","ColumnUtils","getMinColWidth","MAX_SAFE_INTEGER","maxColWidth","colDefWidth","colDefInitialWidth","getOriginalPathForColumn","originalBalancedTree","recursePath","__decorate$2A","__extends$32","DisplayedGroupCreator","sortedVisibleColumns","oldDisplayedGroups","oldColumnsMapped","mapOldGroupsById","topLevelResultCols","groupsOrColsAtCurrentLevel","currentlyIterating","lastGroupedColIdx","createGroupToIndex","previousNodeParent","newGroup","thisNode","thisNodeParent","setupParentsIntoColumns","displayedGroups","recursive","columnsOrGroups","columnOrGroup","columnsOrGroup","__decorate$2z","__extends$31","AgStackComponentsRegistry","componentsMappedByName","setupComponents","componentMeta","addComponent","classUpperCase","componentName","componentClass","getComponentClass","htmlTag","__decorate$2y","toggleAriaAttribute","removeAriaAttribute","setAriaAttribute","ariaAttributeName","setAriaRole","role","getAriaSortState","getAriaLevel","getAriaPosInSet","setAriaLabel","setAriaLabelledBy","labelledBy","setAriaDescription","setAriaDescribedBy","describedby","setAriaLive","live","setAriaLevel","setAriaDisabled","setAriaHidden","hidden","setAriaActiveDescendant","descendantId","setAriaExpanded","removeAriaExpanded","setAriaSetSize","setsize","setAriaPosInSet","setAriaMultiSelectable","multiSelectable","setAriaRowCount","setAriaRowIndex","setAriaColCount","colCount","setAriaColIndex","colIndex","setAriaColSpan","setAriaSort","removeAriaSort","setAriaSelected","setAriaChecked","setAriaControls","controllerElement","controlledElement","getAriaCheckboxStateName","isSafari","safariVersion","isFirefox","isMacOs","isIOS","invisibleScrollbar","browserScrollbarWidth","AriaUtils","getAriaDescribedBy","isBrowserSafari","getSafariVersion","versionMatch","isBrowserChrome","webstore","isBrowserFirefox","isMacOsUserAgent","isIOSUserAgent","browserSupportsPreventScroll","getTabIndex","numberTabIndex","tabIndex","getMaxDivHeight","testUpTo","getBodyWidth","getBodyHeight","initScrollbarWidthAndVisibility","msOverflowStyle","isInvisibleScrollbar","padStartWidthZeros","totalStringSize","createArrayOfNumbers","formatNumberCommas","thousandSeparator","decimalSeparator","NumberUtils","cleanNumber","decToHex","formatNumberTwoDecimalPlacesAndCommas","sum","zeroOrGreater","oneOrGreater","valueNumber","__read$r","serialiseDate","includeTime","serialised","part","calculateOrdinal","dateToFormattedString","fullYear","months","YYYY","YY","Y","MMMM","MMM","MM","Mo","M","Do","DD","dddd","ddd","dd","do","regexp","parseDateTimeFromString","timeStr","rtlNegativeScroll","DateUtils","__read$q","radioCssClass","elementClass","otherElementClass","sibling","FOCUSABLE_SELECTOR","FOCUSABLE_EXCLUDE","isFocusableFormField","Element","isFocusable","isNotFocusable","isElementVisible","setDisplayed","displayed","skipAriaHidden","setDisabled","addOrRemoveDisabledAttribute","nodeListForEach","isElementChildOfClass","cls","maxNest","getElementSize","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","getInnerHeight","getInnerWidth","getAbsoluteHeight","getAbsoluteWidth","getElementRectWithOffset","offsetElementRect","isRtlNegativeScroll","getScrollLeft","setScrollLeft","clearElement","removeFromParent","loadTemplate","tempDiv","ensureDomOrder","eContainer","eChild","eChildBefore","focusedEl","activeElement","eChildHasFocus","insertAdjacentElement","preventScroll","setDomChildOrder","orderedChildren","correctCellAtIndex","actualCellAtIndex","insertWithDomOrder","eToInsert","addStylesToElement","__values$5","parsedKey","valueAsString","parsedValue","isHorizontalScrollShowing","isVerticalScrollShowing","setElementWidth","removeProperty","setFixedWidth","formatSize","setFixedHeight","isNodeOrElement","copyNodeList","nodeList","iterateNamedNodeMap","addOrRemoveAttribute","bindCellRendererToHtmlElement","cellRendererPromise","eTarget","gui","getGui","DomUtils","removeElement","cssSelector","appendHtml","htmlTemplate","lastChild","insertAdjacentHTML","getElementAttribute","prependDC","documentFragment","setElementHeight","iconNameClassMap","columnGroupOpened","columnGroupClosed","columnSelectClosed","columnSelectOpen","columnSelectIndeterminate","columnMovePin","columnMoveHide","columnMoveMove","columnMoveLeft","columnMoveRight","columnMoveGroup","columnMoveValue","columnMovePivot","dropNotAllowed","groupContracted","groupExpanded","setFilterGroupClosed","setFilterGroupOpen","setFilterGroupIndeterminate","chart","linked","unlinked","colorPicker","groupLoading","maximize","minimize","menuPin","menuValue","menuAddRowGroup","menuRemoveRowGroup","clipboardCopy","clipboardCut","clipboardPaste","pivotPanel","rowGroupPanel","valuePanel","columnDrag","save","csvExport","excelExport","smallDown","smallLeft","smallRight","smallUp","sortAscending","sortDescending","sortUnSort","advancedFilterBuilder","advancedFilterBuilderDrag","advancedFilterBuilderInvalid","advancedFilterBuilderMoveUp","advancedFilterBuilderMoveDown","advancedFilterBuilderAdd","advancedFilterBuilderRemove","createIcon","iconName","iconContents","createIconNoSpan","eResult","forceCreate","userProvidedIcon","optionsIcons","rendererResult","IconUtils","KeyCode","BACKSPACE","TAB","ENTER","ESCAPE","SPACE","LEFT","UP","RIGHT","DOWN","DELETE","PAGE_UP","PAGE_DOWN","PAGE_HOME","PAGE_END","A","V","X","Z","isEventFromPrintableCharacter","isUserSuppressingKeyboardEvent","keyboardEvent","editing","colDefFunc","isUserSuppressingHeaderKeyboardEvent","headerRowIndex","normaliseQwertyAzerty","isDeleteKey","alwaysReturnFalseOnBackspace","KeyboardUtils","areEventsNear","e1","e2","pixelCount","diffX","diffY","MouseUtils","RowNodeUtils","sortRowNodesByOrder","rowNodes","rowNodeOrder","nodeA","nodeB","positionA","positionB","__objectId","atLeastOneOutOfOrder","traverseNodesWithKey","keyParts","recursiveSearchNodes","currentNodes","hasChildren","childrenAfterGroup","convertToSet","SetUtils","__assign$m","NumberSequence","initValue","nextValue","valToReturn","peek","AgPromiseStatus","IN_PROGRESS","RESOLVED","AgPromise","resolution","waiters","onReject","promises","remainingToResolve","combinedValues","resolveNow","ifNotResolvedValue","ifResolved","waiter","__extends$30","__assign$l","__decorate$2x","TooltipStates","NOTHING","WAITING_TO_SHOW","SHOWING","TooltipTrigger","HOVER","FOCUS","CustomTooltipFeature","parentComp","tooltipShowDelayOverride","tooltipHideDelayOverride","DEFAULT_SHOW_TOOLTIP_DELAY","DEFAULT_HIDE_TOOLTIP_DELAY","SHOW_QUICK_TOOLTIP_DIFF","FADE_OUT_TOOLTIP_TIMEOUT","INTERACTIVE_HIDE_DELAY","interactionEnabled","isInteractingWithTooltip","tooltipInstanceCount","tooltipMouseTrack","postConstruct","tooltipTrigger","getTooltipTrigger","getTooltipDelay","tooltipHideDelay","onFocusIn","onFocusOut","getGridOptionsTooltipDelay","delayOption","setToDoNothing","interactiveTooltipTimeoutId","unlockService","startHideTimeout","isLocked","showTooltipTimeoutId","prepareToShowTooltip","lastMouseEvent","tooltipComp","positionTooltip","lockService","parentCompGui","tooltipGui","isLastTooltipHiddenRecently","lastTooltipHideTime","hideTooltip","onBodyScrollEventCallback","onColumnMovedEventCallback","clearTimeouts","getTooltipParams","newTooltipComponentCallback","userComponentFactory","getTooltipCompDetails","newAgStackInstance","forceHide","destroyTooltipComp","parentGui","tooltipInstanceCopy","eGui","addPopupRes","popupService","addPopup","tooltipPopupDestroyFunc","hideFunc","tooltipMouseEnterListener","onTooltipMouseEnter","tooltipMouseLeaveListener","onTooltipMouseLeave","tooltipFocusInListener","onTooltipFocusIn","tooltipFocusOutListener","onTooltipFocusOut","ePopup","nudgeY","skipObserver","positionPopupUnderMouseEvent","positionPopupByComponent","keepWithinBounds","clearTooltipListeners","clearInteractiveTimeout","clearHideTimeout","hideTooltipTimeoutId","clearShowTimeout","CssClassManager","cssClassStates","addCssClass","removeCssClass","containsCssClass","addOrRemoveCssClass","addOrRemove","__extends$2$","__decorate$2w","compIdSequence","Component","compId","cssClassManager","setTemplate","preConstructOnComponent","usingBrowserTooltips","getCompId","setTooltip","newTooltipText","showDelayOverride","hideDelayOverride","tooltipFeature","createChildComponentsFromTags","paramsMap","childNodes","childNode","childComp","createComponentFromElement","copyAttributesFromNode","addItems","swapComponentForNode","componentParams","ComponentClass","agStackComponentsRegistry","elementGettingCreated","newComponent","setParentComponent","eComponent","replaceChild","swapInComponentForQuerySelectors","thisNoType","iterateOverQuerySelectors","thisPrototype","__agComponentMetaData","currentProtoName","querySelectors","activateTabIndex","setTemplateFromElement","__agComponent","wireQuerySelectors","createChildComponentsPreConstruct","setResult","refSelector","resultOfQuery","getFocusableElement","getAriaElement","parentComponent","getParentComponent","setGui","queryForHtmlElement","queryForHtmlInputElement","EVENT_DISPLAYED_CHANGED","addGuiEventListener","getRefElement","refName","RefSelector","querySelectorFunc","addToObjectProps","getOrCreateProps","__extends$2_","__decorate$2v","ReadOnlyFloatingFilter","eFloatingFilterText","setInputAriaLabel","onParentModelChanged","parentModel","parentFilterInstance","filterInstance","getModelAsString","modelAsString","onParamsUpdated","DateCompWrapper","dateComponentParams","eParent","alive","getDateCompDetails","dateComp","afterGuiAttached","tempValue","setDateCompDisabled","setInputPlaceholder","updateParams","OptionsFactory","customFilterOptions","filterOptions","mapCustomOptions","selectDefaultItem","getFilterOptions","filterOption","displayKey","defaultOption","firstFilterOption","getDefaultOption","getCustomOption","DEFAULT_FILTER_LOCALE_TEXT","applyFilter","clearFilter","resetFilter","cancelFilter","textFilter","numberFilter","setFilter","filterOoo","empty","notEqual","lessThan","greaterThan","inRange","inRangeStart","inRangeEnd","lessThanOrEqual","greaterThanOrEqual","notContains","blank","notBlank","andCondition","orCondition","dateFormatOoo","__extends$2Z","__assign$k","__decorate$2u","ManagedFocusFeature","eFocusableElement","shouldStopEventPropagation","onTabKeyDown","defaultPrevented","nextRoot","focusService","findNextFocusableElement","FOCUS_MANAGED_CLASS","addKeyDownListeners","handleKeyDown","__extends$2Y","__decorate$2t","RESIZE_CONTAINER_STYLE","RESIZE_TEMPLATE","PositionableFeature","dragStartPosition","lastSize","positioned","resizersAdded","resizeListeners","boundaryEl","isResizing","movable","currentResizer","popup","getWidth","getHeight","offsetElement","initialisePosition","centered","forcePopupParentAsOffsetParent","setOffsetParent","computedMinHeight","computedMinWidth","findBoundaryElement","offsetParentComputedStyles","paddingWidth","paddingHeight","setWidth","setHeight","refreshSize","initialisedDuringPositioning","top_1","isPositioned","setMovable","moveElement","moveElementDragListener","onMoveStart","onDragging","onDragStop","onMoveEnd","dragService","addDragSource","removeDragSource","setResizable","clearResizeListeners","addResizers","removeResizers","side","isSideResizable","resizerEl","getResizerElement","dragStartPixels","onResizeStart","onResizeEnd","removeSizeFromEl","restoreLastSize","isPercent","availableHeight","getAvailableHeight","elRect","offsetParentRect","yPosition","parentTop","additionalHeight","xPosition","positionPopup","updatePosition","constrainSizeToAvailableHeight","constrain","resizeObserverSubscriber","resizeObserverService","observeResize","getPopupParent","updateDragStartPosition","calculateMouseMovement","isTop","topBuffer","xDiff","yDiff","movementX","shouldSkipX","isLeft","anywhereWithin","movementY","shouldSkipY","parentRect","boundaryElRect","skipX","skipY","createResizeMap","resizerMap","resizers","DOMParser","parseFromString","isRight","isBottom","applySizeToSiblings","getSiblings","getMinSizeOfSiblings","currentEl","nextHeight","nextWidth","computedStyle","containerToFlex","isHorizontal","isVertical","oldWidth","skipWidth","oldHeight","newHeight","skipHeight","calculateTopBuffer","__extends$2X","__decorate$2s","ProvidedFilter","filterNameKey","applyActive","hidePopup","debouncePending","appliedModel","resetTemplate","positionableFeature","getPositionableElement","getFilterTitle","onFormSubmit","templateString","getCssIdentifier","createBodyTemplate","isReadOnly","providedFilterParams","setParams","resetUiToDefaults","updateUiVisibility","setupOnBtApplyDebounce","isUseApplyButton","createButtonPanel","eButtonsPanel","clickListener","onBtApply","onBtClear","onBtReset","onBtCancel","addButton","getDefaultDebounceMs","debounceMs","getDebounceMs","debounceFunc","checkApplyDebounce","onBtApplyDebounce","getModel","setModel","setModelIntoUi","applyModel","resetUiToActiveModel","handleCancelEnd","closeOnApply","currentModel","afterUiUpdatedFunc","afterAppliedFunc","onUiChanged","newModel","getModelFromUi","isModelValid","previousModel","areModelsEqual","afterFloatingFilter","afterDataChange","filterChangedCallback","onNewRowsLoaded","fromFloatingFilter","filterModifiedCallback","refreshFilterResizer","containerType","afterGuiDetached","debounceDefault","getCellValue","eFilterBody","__extends$2W","AgAbstractLabel","labelSeparator","labelAlignment","eLabel","labelWidth","setLabelSeparator","setLabel","setLabelWidth","setLabelAlignment","refreshLabel","innerText","getLabelId","getLabel","alignment","eGuiClassList","setLabelEllipsis","hasEllipsis","__decorate$2r","__extends$2V","AgAbstractField","callbackFn","getPreviousValue","__extends$2U","__decorate$2q","AgPickerField","isPickerDisplayed","skipClick","pickerGap","hideCurrentPicker","ariaRole","onPickerFocusIn","onPickerFocusOut","maxPickerHeight","variableWidth","minPickerWidth","maxPickerWidth","setPickerMaxHeight","setPickerMinWidth","setPickerMaxWidth","setupAria","displayId","eDisplayField","ariaEl","onLabelOrWrapperMouseDown","eWrapper","pickerIcon","eIcon","hidePicker","showPicker","pickerComponent","createPickerComponent","pickerGui","renderAndPositionPicker","toggleExpandedStyles","eDocument","ePicker","destroyMouseWheelFunc","pickerType","modalPicker","popupParams","modal","closeOnEsc","closedCallback","shouldRestoreFocus","beforeHidePicker","pickerAriaLabelKey","pickerAriaLabelValue","alignSide","togglePickerHasFocus","focused","setInputWidth","setPickerGap","gap","__extends$2T","AgList","cssIdentifier","itemEls","highlightedEl","setValueByIndex","isDown","itemToHighlight","nextPos","highlightItem","addOptions","listOption","addOption","sanitisedText","renderOption","updateIndices","itemEl","clearHighlighted","fireItemSelected","findIndex","displayValue","fireChangeEvent","getDisplayValue","refreshHighlighted","ACTIVE_CLASS","EVENT_ITEM_SELECTED","__decorate$2p","__extends$2S","__assign$j","AgSelect","createListComponent","listComponent","stopImmediatePropagation","KeyboardEvent","fromPicker","__extends$2R","__decorate$2o","AgAbstractInputField","inputType","displayFieldTag","setInputType","eInput","addInputListeners","getInputElement","setInputName","setMaxLength","setAutoComplete","__extends$2Q","AgCheckbox","onCheckboxClick","getNextValue","setPassive","setReadOnly","dispatchChange","refreshSelectedClass","setSelected","__extends$2P","AgRadioButton","__extends$2O","SimpleFilterModelFormatter","optionsFactory","isCombined","operator","combinedModel","conditions","condition1","condition2","customOptions","joinOperatorTranslateKey","SimpleFilter","BLANK","NOT_BLANK","customOption","numberOfInputs","conditionToString","formatValue","eTypes","eJoinOperatorPanels","eJoinOperatorsAnd","eJoinOperatorsOr","eConditionBodies","lastUiCompletePosition","joinOperatorId","getNumberOfInputs","customOpts","IN_RANGE","onFloatingFilterChanged","setTypeFromFloatingFilter","setValueFromFloatingFilter","eType","getUiCompleteConditions","maxNumConditions","filterType","getFilterType","getJoinOperator","getConditionTypes","getConditionType","defaultJoinOperator","aIsSimple","bIsSimple","areSimpleModelsEqual","aModel","bModel","numConditions","validateAndUpdateConditions","numPrevConditions","getNumConditions","removeConditionsAndOperators","createJoinOperatorPanel","createOption","orChecked_1","eJoinOperatorAnd","eJoinOperatorOr","setConditionIntoUi","simpleModel","createMissingConditionsAndOperators","doesFilterPass","models","__spreadArray$k","__read$p","individualConditionPasses","setNumConditions","getDefaultJoinOperator","filterPlaceholder","getDefaultFilterOptions","createFilterListOptions","suppressAndOrCondition","alwaysShowBothConditions","numAlwaysVisibleConditions","eConditionBody","createValueElement","putOptionsIntoDropdown","resetType","forEachPositionInput","resetInput","addChangedListeners","eJoinOperatorPanel","createJoinOperator","uniqueGroupId","resetJoinOperatorAnd","resetJoinOperatorOr","eJoinOperators","andOr","eJoinOperator","filterListOptions","createBoilerplateListOption","createCustomListOption","isAllowTwoConditions","joinOperator","updateNumConditions","updateConditionStatusesAndValues","areAllConditionsUiComplete","isConditionUiComplete","shouldAddNewConditionAtEnd","activePosition","removeStartPosition","numConditionsToRemove","isConditionDisabled","isConditionBodyVisible","orChecked","forEachInput","setElementDisplayed","setElementDisabled","resetPlaceholder","deleteCount","removeComponents","removeValueElements","joinOperatorIndex","removeItems","comp","suppressFocus","firstInput","getInputs","hasInvalidInputs","updatedLastUiCompletePosition","conditionsRemoved","positionBeforeLastUiCompletePosition","shouldUpdateConditionStatusesAndValues","updateJoinOperatorsDisabled","getPlaceholderText","defaultPlaceholder","filterPlaceholderFn","filterOptionKey","globalTranslate","setElementValue","attachElementOnChange","forEachPositionTypeInput","getValues","createCondition","filteringLabel","resetJoinOperator","isDefaultOperator","updateJoinOperatorDisabled","mapValuesFromModel","filterModel","cellValue","customFilterOption","evaluateCustomFilter","evaluateNullValue","evaluateNonNullValue","isBlank","EQUALS","NOT_EQUAL","LESS_THAN","LESS_THAN_OR_EQUAL","GREATER_THAN","GREATER_THAN_OR_EQUAL","CONTAINS","NOT_CONTAINS","STARTS_WITH","ENDS_WITH","__extends$2N","ScalarFilter","scalarFilterParams","includeBlanksInEquals","includeBlanksInGreaterThan","includeBlanksInLessThan","includeBlanksInRange","compareResult","compareToResult","inRangeInclusive","__extends$2M","__assign$i","DateFilterModelFormatter","dateFilterParams","isRange","dateFrom","dateTo","inRangeFloatingFilterDateFormat","DateFilter","eConditionPanelsFrom","eConditionPanelsTo","dateConditionFromComps","dateConditionToComps","minValidYear","maxValidYear","minValidDate","maxValidDate","filterDate","yearParser","filterModelFormatter","createDateCompWrapper","dateCompWrapper","onDateChanged","DEFAULT_FILTER_OPTIONS","eCondition","createFromToElement","eConditionPanels","dateConditionComps","fromTo","eConditionPanel","removeDateComps","isValidDateValue","aSimple","bSimple","_elPosition","__decorate$2n","__extends$2L","SimpleFloatingFilter","isEventFromFloatingFilter","isEventFromDataChange","getLastType","lastType","setLastTypeFromModel","canWeEditAfterModelFromParentFilter","isTypeEditable","setSimpleParams","setEditable","doesFilterHaveSingleInput","uneditableTypes","__extends$2K","__decorate$2m","DateFloatingFilter","createDateComponent","eReadOnlyText","updateDateComponent","eDateWrapper","allowEditing","filterValueText","getDateComponentParams","getFilterModelFormatter","__extends$2J","DefaultDateComponent","eDateInput","usingSafariDatePicker","shouldUseBrowserDatePicker","__read$o","parsedMinValidDate","parsedMaxValidDate","browserDatePicker","__decorate$2l","__extends$2I","AgInputTextField","allowedCharPattern","preventDisallowedCharacters","setStartValue","clipboardData","getData","__extends$2H","AgInputNumberField","floatedValue","normalizeValue","onWheel","adjustPrecision","isScientificNotation","floatString","setMin","setMax","setPrecision","setStep","setValueOrInputValue","setValueFunc","setInputValueOnlyFunc","setInputValueOnly","validity","__extends$2G","NumberFilterModelFormatter","filterTo","getAllowedCharPattern","NumberFilter","eValuesFrom","eValuesTo","processValue","numberFilterParams","numberFormatter","valueToSet","eValues","eValue","stringToFloat","filterText","numberParser","__extends$2F","__assign$h","TextFilterModelFormatter","TextFilter","trimInput","trimmedInput","textFilterParams","matcher","getTextMatcher","formatter","textFormatter","caseSensitive","DEFAULT_FORMATTER","DEFAULT_LOWERCASE_FORMATTER","legacyComparator","textCustomComparator","textMatcher","DEFAULT_MATCHER","getValuesWithSideEffects","applySideEffects","formattedValues","cellValueFormatted","matcherParams","__extends$2E","__decorate$2k","FloatingFilterTextInputService","valueChangedListener","setupGui","eFloatingFilterTextInput","autoComplete","setValueChangedListener","TextInputFloatingFilter","floatingFilterInputService","setupFloatingFilterInputService","setTextInputParams","createFloatingFilterInputService","eFloatingFilterInputContainer","browserAutoComplete","getAriaLabel","toDebounce","syncUpWithParentFilter","recreateFloatingFilterInputService","__extends$2D","FloatingFilterNumberInputService","numberInputActive","eFloatingFilterNumberInput","eNumberInput","eTextInput","setupListeners","getActiveInputElement","NumberFloatingFilter","__extends$2C","TextFloatingFilter","TouchListener","preventMouseClick","destroyFuncs","touching","startListener","moveListener","onTouchMove","endListener","getActiveTouch","touchList","touchStart","touchEvent","moved","touchStartCopy","EVENT_LONG_TAP","touch","EVENT_TAP","checkForDoubleTap","lastTapTime","DOUBLE_TAP_MILLIS","EVENT_DOUBLE_TAP","__extends$2B","__decorate$2j","SortIndicatorComp","skipTemplate","TEMPLATE","attachCustomElements","eSortOrder","eSortAsc","eSortDesc","eSortMixed","eSortNone","setupSort","suppressOrder","setupMultiSortIndicator","addInIcon","updateIcons","updateSortOrder","getDisplaySortForColumn","alwaysHideNoSort","isColumnShowingRowGroup","updateMultiSortIndicator","isMixedSort","allColumnsWithSorting","getColumnsWithSortingOrdered","indexThisCol","getDisplaySortIndexForColumn","moreThanOneColSorting","__extends$2A","__decorate$2i","HeaderComp","lastMovingChanged","workOutTemplate","currentTemplate","workOutShowMenu","currentShowMenu","workOutSort","currentSort","setDisplayName","setupTap","setupIcons","setMenu","setupFilterIcon","currentDisplayName","displayNameSanitised","eText","eMenu","eFilter","touchListener","suppressMenuHide","tapMenuButton","menuTouchListener","showColumnMenuAfterMouseClick","progressSort","menuHides","onIpadAndMenuHides","showMenu","menuFactory","showMenuAfterButtonClick","eSortIndicator","sortUsingCtrl","nowTime","onSortingChanged","sourceColumns","sortDirectionsMatch","sourceCol","onFilterChanged","filterPresent","__extends$2z","__decorate$2h","HeaderGroupComp","checkWarnings","setupLabel","addGroupExpandIcon","setupExpandIcons","expandAction","newExpandedValue","addTouchAndClickListeners","eCloseIcon","eOpenIcon","stopPropagationAction","updateIconVisibility","__extends$2y","PopupComponent","isPopup","__extends$2x","LargeTextCellEditor","focusAfterAttached","cellStartedEdit","eTextArea","setCols","setRows","parseValue","__decorate$2g","__extends$2w","__decorate$2f","SelectCellEditor","startedByEnter","eSelect","valueFormatterService","eventKey","hasValue","valueFormatted","valueListGap","valueListMaxWidth","valueListMaxHeight","stopEditing","focusIn","__extends$2v","SimpleCellEditor","cellEditorInput","getTemplate","startValue","getStartValue","highlightAllOnFocus","inputEl","setCaret","focusEl","__decorate$2e","__extends$2u","TextCellEditorInput","useFormatter","setSelectionRange","TextCellEditor","__extends$2t","AnimateShowChangeCellRenderer","refreshCount","eDelta","showDelta","absDelta","valueToUse","deltaUp","setTimerToRemoveDelta","refreshCountCopy","hideDeltaValue","lastValue","filterManager","isSuppressFlashingCellsBecauseFiltering","__decorate$2d","__extends$2s","AnimateSlideCellRenderer","eCurrent","addSlideAnimation","ePrevious","__decorate$2c","__assign$g","RowNode","childrenMapped","rowTop","oldRowTop","selectable","OBJECT_ID_SEQUENCE","__autoHeights","alreadyRendered","highlighted","hovered","setDataCommon","updateData","oldData","onDataChanged","updateDataOnDetailNode","checkRowSelectable","resetQuickFilterAggregateText","createDataChangedEvent","dispatchLocalEvent","detailNode","newData","EVENT_DATA_CHANGED","createLocalRowEvent","getRowIndexString","rowPinned","createDaemonNode","oldNode","__daemon","setDataAndId","setId","selectionService","syncInRowNode","isRowSelectableFunc","setRowSelectable","newVal","EVENT_SELECTABLE_CHANGED","calculateSelectedFromChildren","setSelectedParams","getRowIdFunc","getCallback","parentKeys","getGroupKeys","ID_PREFIX_ROW_GROUP","excludeSelf","isPixelInRange","pixel","setFirstChild","EVENT_FIRST_CHILD_CHANGED","setLastChild","EVENT_LAST_CHILD_CHANGED","setChildIndex","childIndex","EVENT_CHILD_INDEX_CHANGED","setRowTop","EVENT_TOP_CHANGED","clearRowTopAndRowIndex","setRowIndex","setDragging","EVENT_DRAGGING_CHANGED","setHighlighted","EVENT_HIGHLIGHT_CHANGED","setHovered","setAllChildrenCount","allChildrenCount","EVENT_ALL_CHILDREN_COUNT_CHANGED","setMaster","master","EVENT_MASTER_CHANGED","setGroup","updateHasChildren","EVENT_GROUP_CHANGED","setRowHeight","estimated","rowHeightEstimated","EVENT_HEIGHT_CHANGED","setRowAutoHeight","cellHeight","checkAutoHeightsDebounced","checkAutoHeights","notAllPresent","nonePresent","newRowHeight","autoHeights","activeColsForRow","getRowHeightForNode","onRowHeightChangedDebounced","EVENT_ROW_INDEX_CHANGED","setUiLevel","uiLevel","EVENT_UI_LEVEL_CHANGED","createGlobalRowEvent","rowNodeEventThrottle","dispatchExpanded","rowRenderer","setDataValue","getValueFromValueService","dispatchEventForSaveValueReadOnly","valueChanged","valueService","dispatchCellChangedEvent","lockedClosedGroup","leafGroup","isOpenGroup","groupFootersEnabled","getGroupIncludeFooter","groupAlwaysShowAggData","setGroupValue","groupData","columnId","setAggData","newAggData","colIds","aggData","oldAggData","isTreeData","isGroupFunc","stub","__hasChildren","EVENT_HAS_CHILDREN_CHANGED","isEmptyRowGroupNode","EVENT_CELL_CHANGED","quickFilterAggregateText","depthFirstSearch","atLeastOneSelected","atLeastOneDeSelected","atLeastOneMixed","childState","setSelectedInitialValue","selectThisNode","clearSelection","rangeSelect","setNodesSelected","isRowPinned","isParentOfNode","potentialParent","EVENT_MOUSE_ENTER","EVENT_MOUSE_LEAVE","getFirstChildOfFirstChild","rowGroupColumn","currentRowNode","isCandidate","foundFirstChildPath","nodeToSwapIn","parentRowNode","isFullWidthCell","isFullWidthCellFunc","getRoute","createFooter","ignoredProperties","footerNode","destroyFooter","ID_PREFIX_TOP_PINNED","ID_PREFIX_BOTTOM_PINNED","__extends$2r","__assign$f","__decorate$2b","CheckboxSelectionComponent","eCheckbox","getCheckboxId","onSelectionChanged","onSelectableChanged","showOrHideSelect","onClicked","groupSelectsFiltered","shouldHandleIndeterminateState","getIsVisible","showOrHideSelectListener","extraParams","callbackParams","removeHidden","__extends$2q","__decorate$2a","__values$4","DragSourceType","ToolPanel","HeaderCell","RowDrag","ChartPanel","AdvancedFilterBuilder","VerticalDirection","Up","Down","HorizontalDirection","Left","Right","DragAndDropService","dragSourceAndParamsList","dropTargets","DragAndDropService_1","ePinnedIcon","eHideIcon","eMoveIcon","eLeftIcon","eRightIcon","eGroupIcon","eAggregateIcon","ePivotIcon","eDropNotAllowedIcon","dragSource","allowTouch","includeTouch","sourceAndParams","clearDragSourceParamsList","nudge","eventLastTime","dragItem","getDragItem","lastDropTarget","dragSourceDropTarget","onDragStarted","createGhost","onDragStopped","draggingEvent","createDropTargetEvent","removeGhost","fromNudge","hDirection","getHorizontalDirection","vDirection","getVerticalDirection","positionGhost","validDropTargets","isMouseOnDropTarget","dropTarget","findCurrentDropTarget","leaveLastTargetIfExists","onGridExit","onGridEnter","enterDragTargetIfExists","getAllContainersFromDropTarget","secondaryContainers","getSecondaryContainers","containers","allContainersIntersect","containers_1","containers_1_1","allContainersFromDropTarget","mouseOverTarget","allContainersFromDropTarget_1","allContainersFromDropTarget_1_1","targetContainsSource","isInterestedIn","e_3","e_4","elementStack","getRootNode","elementsFromPoint","elementStack_1","elementStack_1_1","validDropTargets_1","validDropTargets_1_1","e_4_1","e_3_1","onDragEnter","dragEnterEvent","setGhostIcon","getIconName","onDragLeave","dragLeaveEvent","addDropTarget","removeDropTarget","hasExternalDropZones","zones","external","findExternalZone","eClientX","eClientY","dropZoneTarget","ghost","eGhost","ghostHeight","browserWidth","browserHeight","offsetParentSize","windowScrollY","windowScrollX","eGhostParent","GHOST_TEMPLATE","mouseEventService","stampTopLevelGridCompWithGridInstance","theme","getTheme","eGhostIcon","dragItemName","targetEl","rootNode","ShadowRoot","shake","getDefaultIconName","ICON_NOT_ALLOWED","ICON_PINNED","ICON_MOVE","ICON_LEFT","ICON_RIGHT","ICON_GROUP","ICON_AGGREGATE","ICON_PIVOT","ICON_HIDE","__extends$2p","__decorate$29","RowDragComp","cellValueFn","customGui","suppressVisibilityChange","isCustomGui","setDragElement","checkCompatibility","ManagedVisibilityStrategy","NonManagedVisibilityStrategy","dragElement","getSelectedNodes","selection","managed","defaultTextValue","getRowDragText","dragItemCount","dragSourceDomDataKey","getDomDataKey","dragAndDropService","VisibilityStrategy","setDisplayedOrVisible","neverDisplayed","displayedOptions","shown","isShownSometimes","onSuppressRowDrag","workOutVisibility","rowDragFeature","getGridBodyCtrl","getRowDragFeature","shouldPreventRowMove","suppressRowDrag","__extends$2o","__assign$e","__decorate$28","GroupCellRendererCtrl","eExpanded","eContracted","compClass","isTopLevelFooter","isEmbeddedRowMismatch","setupShowingValueForOpenedParent","findDisplayedGroupNode","addFullWidthRowDraggerIfNeeded","addExpandAndContract","addCheckboxIfNeeded","addValueElement","setupIndent","refreshAriaExpanded","expandListener","eParentOfValue","rowGroupCols","fullWidth","pinnedLeftCell","pinnedRightCell","bodyCell","showingValueForOpenedParent","displayedGroupNode","keyOfGroupingColumn","valPresent","addFooterValue","addGroupValue","addChildCount","paramsAdjusted","adjustParamsWithDetailsFromRelatedColumn","innerCompDetails","getInnerCompDetails","valueWhenNoRenderer","setInnerRenderer","relatedColumn","footerValueGetter","footerValue","paramsClone","getFullWidthGroupRowInnerCellRenderer","getInnerRendererDetails","isGroupRowRenderer","relatedColDef","relatedCompDetails","getCellRendererDetails","suppressCount","updateChildCount","showingGroupForThisNode","isShowRowGroupForThisRow","setChildCount","eExpandedIcon","eContractedIcon","eGroupCell","suppressDoubleClickExpand","onCellDblClicked","onExpandClicked","showExpandAndContractIcons","expandableChangedListener","onRowNodeIsExpandableChanged","onExpandOrContract","nextExpandState","sticky","scrollToStickyNode","getScrollFeature","setVerticalScrollPosition","stickyRowTop","reducedLeafNode","displayedGroup","setExpandedDisplayed","setContractedDisplayed","pivotModeAndLeafGroup","addExpandableCss","isTotalFooterNode","setIndent","suppressPadding","fullWithRow","treeData","paddingCount","indentClass","rowDragComp","isUserWantsSelected","paramsCheckbox","checkbox","checkboxNeeded","cbSelectionComponent_1","setCheckboxVisible","suppressEnterExpand","__extends$2n","__decorate$27","GroupCellRenderer","compProxy","compDetails","valueToDisplay","setRenderDetails","eChildCount","ctrl","componentPromise","destroyComp","innerCellRenderer","__extends$2m","__decorate$26","LoadingCellRenderer","failedLoad","setupFailed","setupLoading","eLoadingText","eLoadingIcon","__extends$2l","LoadingOverlayComponent$1","LoadingOverlayComponent","DEFAULT_LOADING_OVERLAY_TEMPLATE","localisedTemplate","__extends$2k","NoRowsOverlayComponent$1","NoRowsOverlayComponent","DEFAULT_NO_ROWS_TEMPLATE","__extends$2j","TooltipComponent$1","TooltipComponent","__extends$2i","NumberCellEditorInput","showStepperButtons","NumberCellEditor","__extends$2h","DateCellEditorInput","DateCellEditor","__extends$2g","DateStringCellEditorInput","getDataTypeService","parseDate","getDateParserFunction","getDateFormatterFunction","DateStringCellEditor","__decorate$25","__extends$2f","CheckboxCellRenderer","updateCheckbox","onCheckboxChanged","eventStarted","eventStopped","__decorate$24","__extends$2e","CheckboxCellEditor","__decorate$23","__extends$2d","__decorate$22","__read$n","__spreadArray$j","UserComponentRegistry","agGridDefaults","agDateInput","agColumnGroupHeader","agSortIndicator","agTextColumnFloatingFilter","agNumberColumnFloatingFilter","agDateColumnFloatingFilter","agReadOnlyFloatingFilter","agAnimateShowChangeCellRenderer","agAnimateSlideCellRenderer","agGroupCellRenderer","agGroupRowRenderer","agLoadingCellRenderer","agCheckboxCellRenderer","agCellEditor","agTextCellEditor","agNumberCellEditor","agDateCellEditor","agDateStringCellEditor","agSelectCellEditor","agLargeTextCellEditor","agCheckboxCellEditor","agTextColumnFilter","agNumberColumnFilter","agDateColumnFilter","agLoadingOverlay","agNoRowsOverlay","agTooltipComponent","enterpriseAgDefaultCompsModule","agSetColumnFilter","agSetColumnFloatingFilter","agMultiColumnFilter","agMultiColumnFloatingFilter","agGroupColumnFilter","agGroupColumnFloatingFilter","agRichSelect","agRichSelectCellEditor","agDetailCellRenderer","agSparklineCellRenderer","jsComps","registerJsComponent","registerDefaultComponent","retrieve","createResult","componentFromFramework","registeredViaFrameworkComp","frameworkComponent","jsComponent","isFrameworkComponent","defaultComponent","moduleForComponent","warnAboutMissingComponent","suggestions","DateComponent","HeaderComponent","HeaderGroupComponent","CellRendererComponent","CellEditorComponent","InnerRendererComponent","FilterComponent","FloatingFilterComponent","ToolPanelComponent","StatusPanelComponent","FullWidth","FullWidthLoading","FullWidthGroup","FullWidthDetail","FloatingFilterMapper","getFloatingFilterType","filterToFloatingFilterMapping","__extends$2c","__decorate$21","UserComponentFactory","getHeaderCompDetails","getCompDetails","getHeaderGroupCompDetails","getFullWidthCellRendererDetails","getFullWidthLoadingCellRendererDetails","getFullWidthGroupCellRendererDetails","getFullWidthDetailCellRendererDetails","getCellEditorDetails","getFilterDetails","getLoadingOverlayCompDetails","getNoRowsOverlayCompDetails","getSetFilterCellRendererDetails","getFloatingFilterCompDetails","defaultFloatingFilter","getToolPanelCompDetails","toolPanelDef","getStatusPanelCompDetails","defObject","defaultName","mandatory","getCompKeys","compName","jsComp","fwComp","paramsFromSelector","popupFromSelector","popupPositionFromSelector","lookupFromRegistry","userComponentRegistry","agComponentUtils","doesImplementIComponent","adaptFunction","paramsMerged","mergeParamsWithApplicationProvidedParams","defObjectAny","selectorFunc","selectorRes","assignComp","providedJsComp","popupPosition","thisComponentConfig","componentMetadataProvider","frameworkComponentWrapper","wrap","mandatoryMethodList","optionalMethodList","deferredInit","initComponent","paramsFromGrid","getDefaultFloatingFilterType","getFromDefault","defaultFloatingFilterType","ExcelFactoryMode","SINGLE_SHEET","MULTI_SHEET","__extends$2b","__decorate$20","DragService","dragEndFunctions","dragSources","removeAllListeners","dragSourceAndListener","mouseDownListener","touchEnabled","touchStartListener","isDragging","mouseListener","stopPropagationForTouch","suppressTouch","getStartTarget","startTarget","currentDragParams","touchLastTime","touchEndEvent","onTouchUp","addTemporaryEvents","onCommonMove","skipMouseEvent","_alreadyProcessedByDragService","shouldPreventMouseEvent","mouseStartEvent","currentEvent","isEventNearStartEvent","startEvent","getFirstActiveTouch","isEnableCellTextSelect","isEventFromThisGrid","isOverFormFieldElement","onUpCommon","eventOrTouch","AutoScrollService","tickingInterval","onScrollCallback","scrollHorizontally","scrollAxis","scrollVertically","scrollByTick","getVerticalPosition","setVerticalPosition","getHorizontalPosition","setHorizontalPosition","shouldSkipVerticalScroll","shouldSkipHorizontalScroll","forceSkipVerticalScroll","skipVerticalScroll","tickLeft","tickRight","tickUp","tickDown","ensureTickingStarted","ensureCleared","doTick","tickCount","tickAmount","vScrollPosition","hScrollPosition","__extends$2a","__decorate$1$","LIST_ITEM_HOVERED","RowHighlightPosition","VirtualListDragFeature","virtualList","currentDragValue","lastHoveredListItem","listItemDragStartEvent","listItemDragStart","listItemDragEndEvent","listItemDragEnd","createDropTarget","createAutoScrollService","getCurrentDragValue","moveBlocked","isMoveBlocked","dragSourceType","virtualListGui","autoScrollService","hoveredListItem","getListDragItem","getComponentAt","clearHoveredItems","getRowHeight","getScrollTop","maxLen","getNumRows","normalizedRowIndex","moveItem","Above","Below","ClientSideRowModelSteps","EVERYTHING","FILTER","SORT","MAP","AGGREGATE","FILTER_AGGREGATES","PIVOT","__decorate$1_","unwrapUserComp","getFrameworkComponentInstance","GridApi","detailGridInfoMap","destroyCalled","registerOverlayWrapperComp","overlayWrapperComp","registerSideBarComp","sideBarComp","getType","clientSideRowModel","infiniteRowModel","serverSideRowModel","whenReady","gridBodyCtrl","__getAlignedGridService","alignedGridsService","__getContext","getSetterMethod","gos","setterName","addDetailGridInfo","gridInfo","removeDetailGridInfo","getDetailGridInfo","forEachDetailGridInfo","getDataAsCsv","csvCreator","exportDataAsCsv","getExcelExportMode","baseParams","exportMode","assertNotExcelMultiSheet","excelCreator","getFactoryMode","getDataAsExcel","exportDataAsExcel","getSheetDataForExcel","setFactoryMode","getMultipleSheetsAsExcel","exportMultipleSheetsAsExcel","setTreeData","newTreeData","setGridAriaProperty","eGrid","ariaProperty","logMissingRowModel","apiMethod","requiredRowModels","setServerSideDatasource","datasource","setCacheBlockSize","blockSize","resetRootStore","setViewportDatasource","viewportDatasource","setRowData","immutableService","setPinnedTopRowData","pinnedRowModel","setPinnedBottomRowData","getPinnedTopRowCount","getPinnedBottomRowCount","getPinnedTopRow","getPinnedBottomRow","expireValueCache","getVerticalPixelRange","getVScrollPosition","getHorizontalPixelRange","getHScrollPosition","setAlwaysShowHorizontalScroll","setAlwaysShowVerticalScroll","flashCells","setFunctionsReadOnly","isAnyFilterPresent","isColumnFilterPresent","isAggregateFilterPresent","isQuickFilterPresent","setRowNodeExpanded","expandParents","onGroupExpandedOrCollapsed","refreshModel","refreshClientSideRowModel","isAnimationFrameQueueEmpty","isQueueEmpty","flushAllAnimationFrames","getSizesForCurrentTheme","getRowHeightAsNumber","expandAll","expandOrCollapseAll","collapseAll","addRenderedRowListener","getQuickFilter","setQuickFilter","newFilter","setExcludeHiddenColumnsFromQuickFilter","setIncludeHiddenColumnsInQuickFilter","setQuickFilterParser","quickFilterParser","setQuickFilterMatcher","quickFilterMatcher","getAdvancedFilterModel","setAdvancedFilterModel","advancedFilterModel","setEnableAdvancedFilter","setIncludeHiddenColumnsInAdvancedFilter","setAdvancedFilterParent","advancedFilterParent","setAdvancedFilterBuilderParams","showAdvancedFilterBuilder","selectAll","selectAllRowNodes","deselectAll","deselectAllRowNodes","selectAllFiltered","justFiltered","deselectAllFiltered","getServerSideSelectionState","setServerSideSelectionState","selectAllOnCurrentPage","justCurrentPage","deselectAllOnCurrentPage","getSelectedRows","getBestCostNodeSelection","getRenderedNodes","ensureColumnVisible","ensureIndexVisible","ensureNodeVisible","nodeSelector","forEachLeafNode","forEachNode","includeFooterNodes","forEachNodeAfterFilter","forEachNodeAfterFilterAndSort","getFilterInstance","destroyFilter","getStatusPanel","statusBarService","getColumnDef","setFilterModel","getFilterModel","getFocusedCell","clearFocusedCell","setFocusedCell","forceBrowserFocus","setSuppressRowDrag","setSuppressMoveWhenRowDragging","setSuppressRowClickSelection","addRowDropZone","removeRowDropZone","activeDropTarget","getRowDropZoneParams","getRowDropZone","setDomLayout","domLayout","setEnableCellTextSelection","setCellTextSelection","setFillHandleDirection","setFloatingFiltersHeight","setPivotHeaderHeight","setPivotGroupHeaderHeight","setAnimateRows","animateRows","setIsExternalFilterPresent","isExternalFilterPresentFunc","setDoesExternalFilterPass","doesExternalFilterPassFunc","setNavigateToNextCell","navigateToNextCellFunc","setTabToNextCell","tabToNextCellFunc","setTabToNextHeader","tabToNextHeaderFunc","setNavigateToNextHeader","navigateToNextHeaderFunc","setRowGroupPanelShow","setGetGroupRowAgg","getGroupRowAggFunc","setGetBusinessKeyForNode","getBusinessKeyForNodeFunc","setGetChildCount","getChildCountFunc","setProcessRowPostCreate","processRowPostCreateFunc","setGetRowId","setGetRowClass","rowClassFunc","setIsFullWidthRow","isFullWidthRowFunc","setIsRowSelectable","setIsRowMaster","isRowMasterFunc","setPostSortRows","postSortRowsFunc","setGetDocument","getDocumentFunc","setGetContextMenuItems","getContextMenuItemsFunc","setGetMainMenuItems","getMainMenuItemsFunc","setProcessCellForClipboard","processCellForClipboardFunc","setSendToClipboard","sendToClipboardFunc","setProcessCellFromClipboard","processCellFromClipboardFunc","setProcessSecondaryColDef","processSecondaryColDefFunc","setProcessPivotResultColDef","setProcessSecondaryColGroupDef","processSecondaryColGroupDefFunc","setProcessPivotResultColGroupDef","processPivotResultColDefFunc","processPivotResultColGroupDefFunc","setPostProcessPopup","postProcessPopupFunc","setInitialGroupOrderComparator","initialGroupOrderComparatorFunc","setGetChartToolbarItems","getChartToolbarItemsFunc","setPaginationNumberFormatter","paginationNumberFormatterFunc","setGetServerSideStoreParams","getServerSideStoreParamsFunc","setGetServerSideGroupLevelParams","getServerSideGroupLevelParamsFunc","setIsServerSideGroupOpenByDefault","isServerSideGroupOpenByDefaultFunc","setIsApplyServerSideTransaction","isApplyServerSideTransactionFunc","setIsServerSideGroup","isServerSideGroupFunc","setGetServerSideGroupKey","getServerSideGroupKeyFunc","setGetRowStyle","rowStyleFunc","setGetRowHeight","rowHeightFunc","assertSideBarLoaded","isSideBarVisible","setSideBarVisible","setSideBarPosition","openToolPanel","closeToolPanel","getOpenedToolPanel","openedItem","refreshToolPanel","isToolPanelShowing","getToolPanelInstance","getSideBar","setSideBar","setSuppressClipboardPaste","resetRowHeights","setGroupRemoveSingleChildren","setGroupRemoveLowestSingleChildren","setGroupDisplayType","setGroupIncludeFooter","setGroupIncludeTotalFooter","setRowClass","setDeltaSort","enable","setRowCount","maxRowFound","onRowHeightChanged","gridCtrl","getGridCtrl","destroyGridUi","cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid","warnIfDestroyed","resetQuickFilter","resetQuickFilterCache","getCellRanges","rangeService","addCellRange","clearRangeSelection","removeAllCellRanges","undoCellEditing","undoRedoService","undo","redoCellEditing","redo","getCurrentUndoSize","getCurrentUndoStackSize","getCurrentRedoSize","getCurrentRedoStackSize","getChartModels","chartService","getChartRef","chartId","getChartImageDataURL","downloadChart","openChartToolPanel","closeChartToolPanel","createRangeChart","createPivotChart","createCrossFilterChart","updateChart","restoreChart","chartModel","chartContainer","copyToClipboard","clipboardService","cutToClipboard","copySelectedRowsToClipboard","copySelectedRangeToClipboard","copySelectedRangeDown","copyRangeDown","pasteFromClipboard","showColumnMenuAfterButtonClick","buttonElement","showMenuAfterMouseEvent","hidePopupMenu","contextMenuFactory","hideActiveMenu","setPopupParent","ePopupParent","tabToNextCell","navigationService","tabToPreviousCell","getCellRendererInstances","getCellEditorInstances","getEditingCells","startEditingCell","cellPosition","getCellByPosition","isCellFocused","startRowOrCellEdit","addAggFunc","addAggFuncs","aggFuncs","clearAggFuncs","applyServerSideTransaction","transaction","serverSideTransactionManager","applyTransaction","applyServerSideTransactionAsync","applyTransactionAsync","applyServerSideRowData","applyRowData","successParams","retryServerSideLoads","retryLoads","flushServerSideAsyncTransactions","flushAsyncTransactions","rowDataTransaction","updateRowData","batchUpdateRowData","setSuppressModelUpdateAfterUpdateTransaction","refreshCache","purgeInfiniteCache","purgeCache","refreshServerSide","refreshStore","refreshServerSideStore","getServerSideStoreState","getServerSideGroupLevelState","getStoreState","getInfiniteRowCount","getRowCount","isLastRowIndexKnown","getCacheBlockState","rowNodeBlockLoader","getBlockState","getFirstDisplayedRow","getFirstVirtualRenderedRow","getLastDisplayedRow","getLastVirtualRenderedRow","getDisplayedRowAtIndex","getRow","getDisplayedRowCount","setDataTypeDefinitions","dataTypeDefinitions","setPagination","paginationIsLastPageFound","paginationProxy","isLastPageFound","paginationGetPageSize","getPageSize","paginationSetPageSize","paginationGetCurrentPage","getCurrentPage","paginationGetTotalPages","getTotalPages","paginationGetRowCount","getMasterRowCount","paginationGoToNextPage","goToNextPage","paginationGoToPreviousPage","goToPreviousPage","paginationGoToFirstPage","goToFirstPage","paginationGoToLastPage","goToLastPage","paginationGoToPage","goToPage","__extends$29","__decorate$1Z","QuickFilterService","quickFilter","quickFilterParts","QuickFilterService_1","onIncludeHiddenColumnsInQuickFilterChanged","parseQuickFilter","parser","setQuickFilterParts","setQuickFilterParserAndMatcher","doesRowPassQuickFilter","usingCache","doesRowPassQuickFilterMatcher","doesRowPassQuickFilterCache","doesRowPassQuickFilterNoCache","parsedFilter","EVENT_QUICK_FILTER_CHANGED","hasChanged","filterPart","getQuickFilterTextForColumn","checkGenerateQuickFilterAggregateText","getQuickFilterAggregateText","stringParts","QUICK_FILTER_SEPARATOR","__extends$28","__assign$d","__decorate$1Y","FilterManager","allColumnFilters","allColumnListeners","activeAggregateFilters","activeColumnFilters","processingFilterChange","filterModelUpdateQueue","onColumnsChanged","refreshFiltersForAggregations","updateAdvancedFilterColumns","allowShowChangeAfterFilter","externalFilterPresent","isExternalFilterPresentCallback","updateAggFiltering","onAdvancedFilterEnabledChanged","processFilterModelUpdateQueue","quickFilterService","isFilterPresent","doesExternalFilterPass","isAdvancedFilterEnabled","warnAdvancedFilters","isPendingInference","allPromises","modelKeys_1","filterWrapper","setModelOnFilterWrapper","filterPromise","getOrCreateFilterWrapper","promiseFilter","isExternalFilterPresent","isChildFilterPresent","isAdvancedFilterPresent","advancedFilterService","disposeFilterWrapper","isAdvancedFilterHeaderActive","isHeaderActive","doAggregateFiltersPass","filterToSkip","doColumnFiltersPass","updateActiveFilters","groupFilterEnabled","getGroupAggFiltering","filterComp","isShowingPrimaryColumns","isAggFilter","updateFilterFlagInColumns","targetAggregates","targetedFilters","targetedData","callOnFilterChangedOutsideRenderCycle","isRefreshInProgress","updateDependantFilters","onAnyFilterChanged","aggFiltering","isAggregateQuickFilterPresent","isNonAggregateQuickFilterPresent","doesRowPassOtherFilters","doesRowPassFilter","filterInstanceToSkip","doesRowPassAggregateFilters","createValueGetter","getFilterComponent","createIfDoesNotExist","cachedFilter","putIntoGui","createFilterWrapper","colId_1","checkDestroyFilter","getDefaultFilter","getDefaultFloatingFilter","createFilterInstance","createFilterParams","doesRowPassOtherFilter","compiledElement","guiPromise","eFilterGui","guiFromFilter","disposeColumnListener","groupColumns","groupColumn","showParentFilter","finalFilterParams","currentParentModel","getCurrentFloatingFilterParentModel","filterComponent","suppressFilterButton","columnListener","areFilterCompsDifferent","oldCompDetails","newCompDetails","oldComponentClass","newComponentClass","getCtrl","toggleFilterBuilder","updateValidity","hasFloatingFilters","getFilterInstanceImpl","unwrapped","setupAdvancedFilterHeaderComp","eCompToInsertBefore","setupHeaderComp","__extends$27","AbstractHeaderCellComp","__extends$26","__decorate$1X","HeaderFilterCellComp","setComp","cssClassName","addOrRemoveBodyCssClass","eFloatingFilterBody","setButtonWrapperDisplayed","eButtonWrapper","setCompDetails","getFloatingFilterComp","compPromise","setMenuIcon","eButtonShowMainFilter","destroyFloatingFilterComp","afterCompCreated","floatingFilterComp","__extends$25","LayoutCssClasses","AUTO_HEIGHT","NORMAL","PRINT","LayoutFeature","updateLayoutClasses","getDomLayout","print","__decorate$1W","__extends$24","__assign$c","__decorate$1V","ScrollDirection","Vertical","Horizontal","ScrollSource","FakeContainer","GridBodyScrollFeature","eBodyViewport","lastScrollSource","nextScrollTop","resetLastHScrollDebounced","resetLastVScrollDebounced","enableRtl","onDisplayedColumnsWidthChanged","centerRowContainerCtrl","addScrollListener","fakeHScroll","getFakeHScrollComp","fakeVScroll","getFakeVScrollComp","getViewportElement","onHScroll","onFakeHScroll","isDebounce","onVScroll","onFakeVScroll","horizontallyScrollHeaderCenterAndFloatingCenter","getCenterViewportScrollLeft","topCenterContainer","getTopCenterRowContainerCtrl","stickyTopCenterContainer","getStickyTopCenterRowContainerCtrl","bottomCenterContainer","getBottomCenterRowContainerCtrl","getHeaderRowContainerCtrl","setHorizontalScroll","setContainerTranslateX","centerViewport","isCenterViewportLastHorizontal","setScrollPosition","isControllingScroll","onHScrollCommon","newScrollLeft","centerContainerViewport","shouldBlockScrollUpdate","doHorizontalScroll","onVScrollCommon","setScrollTop","scrollGridIfNeeded","schedule","fakeScrollLeft","fireScrollEvent","onHorizontalViewportChanged","bodyScrollEvent","scrollTimer","bodyScrollEndEvent","touchOnly","shouldBlockVerticalScroll","shouldBlockHorizontalScroll","getCenterWidth","redrawRowsAfterScroll","checkScrollLeft","frameNeeded","setHorizontalScrollPosition","fromAlignedGridsService","maxScrollLeft","pixels","oldScrollPosition","scrollToTop","indexToSelect","goToPageWithIndex","rowGotShiftedDuringOperation","stickyTopHeight","getStickyTopHeight","startingRowTop","startingRowHeight","paginationOffset","getPixelOffset","rowTopPixel","rowBottomPixel","heightOffset","heightScaler","getDivStretchOffset","vScrollTop","vScrollBottom","viewportHeight","pxTop","getScrollPositionForPixel","pxBottom","pxMiddle","newScrollPosition","redraw","newHorizontalScroll","getPositionedHorizontalScroll","setCenterViewportScrollLeft","isColumnOutsideViewport","columnBeforeStart","columnAfterEnd","viewportTooSmallForColumn","alignColToStart","alignColToEnd","isMiddle","getColumnBounds","colLeft","colRight","colMiddle","getViewportBounds","viewportStart","viewportEnd","multiplier","colLeftPixel","__extends$23","__assign$b","__decorate$1U","RowDragFeature","isMultiRowDrag","isGridSorted","isGridFiltered","refreshStatus","onRowGroupChanged","gridBodyCon","getBodyViewportElement","lastDraggingEvent","isSortActive","rowGroups","getRowNodes","isFromThisGrid","isRowDragMultiRow","selectedNodes","__spreadArray$i","__read$m","getRowIndexNumber","currentNode","dispatchGridEvent","onEnterOrDragging","isDropZoneWithinThisGrid","getNormalisedPosition","doManagedDrag","managedDrag","highlightRowAtPixel","moveRows","moveRowAndClearHighlight","lastHighlightedRowNode","getLastHighlightedRowNode","isBelow","increment","getRowIdFunc_1","addIndex","getRowIndexAtPixel","getHighlightPosition","clearRowHighlight","ensureRowsAtPixel","processedParams","fromGrid","draggingToRowDragEvent","overNode","vDirectionString","yNormalised","overIndex","getCurrentPageHeight","stopDragging","__extends$22","__decorate$1T","RowAnimationCssClasses","ANIMATION_ON","ANIMATION_OFF","CSS_CLASS_FORCE_VERTICAL_SCROLL","GridBodyCtrl","bodyScrollFeature","eGridBody","eTop","eBottom","eStickyTop","addRowDragListener","setupRowAnimationCssClass","addFocusListeners","onGridColumnsChanged","addBodyViewportListener","setFloatingHeights","disableBrowserDragging","addStopEditingWhenGridLosesFocus","registerGridBodyCtrl","getComp","onScrollVisibilityChanged","onPinnedRowDataChanged","onHeaderHeightChanged","isFocusedElementNested","gridContainRelatedTarget","isNestedRelatedTarget","setColumnMovingCss","setCellSelectableCss","scrollVisibleService","setVerticalScrollPaddingVisible","setStickyTopWidth","setBodyViewportWidth","setColumnCount","HTMLImageElement","focusOutListener","elementWithFocus","clickInsideGrid","viewports","isElementInThisGrid","getActivePopups","isElementWithinCustomPopup","updateRowCount","headerCount","headerNavigationService","registerBodyViewportResizeListener","setPinnedTopBottomOverflowY","allowVerticalScroll","setAlwaysVerticalScrollClass","isAnimateRows","rowContainerHeightService","isStretching","setRowAnimationCssOnBodyViewport","getGridBodyElement","onBodyViewportContextMenu","mockContextMenuForIPad","onBodyViewportWheel","onStickyTopWheel","addFullWidthContainerWheelListener","fullWidthContainer","eCenterColsViewport","onFullWidthContainerWheel","scrollBy","getCenterRowContainerCtrl","onContextMenu","hasAnchoredPopup","offsetY","floatingTopHeight","getPinnedTopTotalHeight","floatingBottomHeight","getPinnedBottomTotalHeight","setTopHeight","setBottomHeight","setTopDisplay","setBottomDisplay","setStickyTopOffsetTop","setStickyTopHeight","vScrollVisible","getGridHeaderCtrl","pinnedTopHeight","setStickyTopTop","nextTimeout","scrollWidthToRemove","availableWidth","addScrollEventListener","removeScrollEventListener","SelectionHandleType","FILL","RANGE","CellRangeType","DIMENSION","CSS_CELL_RANGE_SELECTED","CellRangeFeature","cellCtrl","cellComp","onRangeSelectionChanged","rangeCount","getCellRangeCount","getCellPosition","hasChartRange","getHasChartRange","isSingleCell","updateRangeBorders","refreshHandle","rangeBorders","getRangeBorders","isMoreThanOneCell","cellRanges","updateRangeBordersIfRangeCount","leftCol","rightCol","thisCol","ranges","isCellInSpecificRange","getRangeStartRow","getRangeEndRow","rowPositionUtils","sameRow","shouldHaveSelectionHandle","selectionHandle","addSelectionHandle","rangesLen","cellRange","isFillHandleAvailable","isRangeHandleAvailable","handleIsAvailable","isEditing","isCategoryCell","isContiguousRange","isBottomRightCell","cellRangeType","selectionHandleFactory","createSelectionHandle","__extends$21","CellPositionFeature","setupColSpan","setupRowSpan","onLeftChanged","onWidthChanged","applyRowSpan","onDisplayColumnsChanged","colsSpanning","getColSpanningList","getCellWidth","modifyLeftForPrintLayout","getCellLeft","isPrintLayout","singleRowHeight","zIndex","__extends$20","CellCustomStyleFeature","staticClasses","applyUserStyles","applyCellClassRules","applyClassesFromColDef","cellClassParams","stylingService","processClassRules","cellStyleParams","cellStyleFunc","setUserStyles","getStaticCellClasses","__extends$1$","TooltipFeature","setupTooltip","setBrowserTooltip","browserTooltips","updateTooltipText","createTooltipFeatureIfNeeded","getTooltipValue","genericTooltipFeature","getTooltipShowDelayOverride","getTooltipHideDelayOverride","refreshToolTip","getRowIndex","getTooltipText","getValueFormatted","hideTooltipCallback","__decorate$1S","Beans","doingMasterDetail","__extends$1_","CellMouseListenerFeature","onMouseEvent","onMouseOver","isDoubleClickOnIPad","intersectLastRange","cellClickedEvent","nowMillis","lastIPadMouseClickEvent","cellDoubleClickedEvent","isRightClickInExistingRange","focusCell","focusedCellPosition","focusedRowCtrl","getRowByPosition","focusedCellCtrl","getCellCtrl","preventScrollOnBrowserFocus","containsWidget","thisCell","extendLatestRangeToCell","setRangeToCell","cellInRange","isCellInAnyRange","isRightClick","mouseStayingInsideCell","cellMouseOutEvent","clearMouseOver","cellMouseOverEvent","setMouseOver","cellContainsTarget","cellContainsRelatedTarget","__extends$1Z","CellKeyboardListenerFeature","rowCtrl","onEnterKeyDown","onF2KeyDown","onEscapeKeyDown","onBackspaceOrDeleteKeyDown","onNavigationKeyDown","isRangeSelectionEnabled","onShiftRangeSelect","navigateToNextCell","endCell","extendLatestRangeInDirection","ensureCellVisible","clearCellRangeCellValues","dispatchWrapperEvents","wrapperEventSource","stopEditingAndFocus","stopRowOrCellEdit","processCharacter","onSpaceKeyDown","isRowSelection","newSelection","updatedCount","__extends$1Y","DndSourceComp","eCell","checkVisibility","providedOnRowDrag","dataTransfer","setDragImage","defaultOnRowDrag","__decorate$1R","__extends$1X","__assign$a","instanceIdSequence$3","CellCtrl","cellRangeFeature","cellPositionFeature","cellCustomStyleFeature","cellMouseListenerFeature","cellKeyboardListenerFeature","suppressRefreshCell","onCellCompAttachedFuncs","colIdSanitised","isCellRenderer","createCellPosition","addFeatures","updateAndFormatValue","addTooltipFeature","eCellWrapper","printLayout","startEditing","addDomData","onCellFocused","focusEventToRestore","applyStaticCssClasses","setWrapText","onFirstRightPinnedChanged","onLastLeftPinnedChanged","onColumnHover","setupControlComps","setupAutoHeight","showValue","eParentCell","minRowHeight","measureHeight","timesCalled","destroyResizeObserver","getIncludeSelection","includeSelection","getIncludeRowDrag","includeRowDrag","getIncludeDndSource","includeDndSource","getColumnIdSanitised","getIsCellRenderer","getValueToDisplay","forceNewCellRendererInstance","createCellRendererParams","isIncludeControl","setIncludeSelection","setIncludeDndSource","setIncludeRowDrag","isForceWrapper","refreshShouldDestroy","selectionChanged","rowDragChanged","dndSourceChanged","editorParams","createCellEditorParams","setEditing","setEditDetails","stopRowEditing","onPopupEditorClosed","takeValueFromCellEditor","noValueResult","newValueExists","getCellEditor","isCancelAfterEnd","saveNewValue","refreshCell","forceRefresh","dispatchEditingStoppedEvent","editingStoppedEvent","getParentOfValue","registerRowDragger","rowDraggerElement","valueParserService","setFocusOutOnEditor","focusOut","setFocusInOnEditor","onCellChanged","valuesDifferent","flashCell","suppressNavigateAfterEdit","navigateAfterEdit","delays","animateCell","flashDelay","fadeDelay","cssName","animationFullName","onFlashCells","cellId","cellPositionUtils","createId","cells","callValueFormatter","oldValueFormatted","valuesAreEqual","setDomData","DOM_DATA_KEY_CELL_CTRL","domEvent","onDisplayedColumnsChanged","colIdx","getBeans","htmlElement","startRowEditing","getRowCtrl","getRowPosition","onRowIndexChanged","cellFocused","fullRowEdit","onColDefChanged","dispatchCellContextMenuEvent","cellContextMenuEvent","getCellRenderer","createSelectionCheckbox","cbSelectionComponent","createDndSource","dndSourceComp","customElement","customRowDragComp","newComp","createRowDragComp","rowDragManaged","clientSideRowModelActive","__extends$1W","__read$l","__spreadArray$h","RowType$1","RowType","Normal","instanceIdSequence$2","RowCtrl","animateIn","useAnimationFrameForCreate","allRowGuis","centerCellCtrls","leftCellCtrls","rightCellCtrls","slideInAnimation","fadeInAnimation","lastMouseDownOnDragger","emptyStyle","updateColumnListsPending","rowId","businessKeySanitised","paginationPage","initRowBusinessKey","rowFocused","isRowFocused","rowLevel","rowCssClassCalculator","calculateRowLevel","setRowType","setAnimateFlags","rowStyles","processStylesFromGridOptions","isFullWidth","addListeners","businessKeyForNodeFunc","updateRowBusinessKey","businessKey","getRowId","getRowStyles","isSticky","rowComp","RowContainerType","leftGui","rightGui","FULL_WIDTH","fullWidthGui","centerGui","initialiseRowComp","rowType","dispatchFirstDataRenderedEvent","unsetComp","rowGui","CENTER","isCacheable","setCached","cached","rg","listenOnDomOrder","updateRowIndexes","setFocusedClasses","setStylesFromGridOptions","onRowSelected","updateColumnLists","getInitialRowClasses","executeSlideAndFadeAnimations","setRowCompRowId","setRowCompRowBusinessKey","DOM_DATA_KEY_ROW_CTRL","createTask","addHoverFunctionality","setupFullWidth","addRowDraggerToRow","addDestroyTask","executeProcessRowPostCreateFunc","setRowBusinessKey","getBusinessKey","setRowId","onTopChanged","getPinnedForContainer","createFullWidthParams","showFullWidth","getFullWidthCellRenderer","getCellElement","areAllContainersReady","eRow","ePinnedLeftRow","ePinnedRightRow","isLeftReady","isCenterReady","isRightReady","isStub","isDetailCell","isFullWidthGroup","suppressAnimationFrame","useFlushSync","updateColumnListsImpl","createCellCtrls","prev","addCell","colInstanceId","prevCellCtrl","isCellEligibleToBeRemoved","createAllCellCtrls","setCellCtrls","cellControls","getCellCtrlsForContainer","centerCols","leftCols","rightCols","nextContainerPinned","REMOVE_CELL","column_1","getDomOrder","setDomOrder","oldRowTopExists","pinningLeft","pinningRight","editingRow","getRowType","refreshFullWidth","tryRefresh","fullWidthSuccess","centerSuccess","leftSuccess","rightSuccess","updateExpandedCss","onRowNodeDataChanged","onRowNodeCellChanged","onRowNodeHighlightChanged","onRowNodeDraggingChanged","onUiLevelChanged","onPaginationPixelOffsetChanged","onVirtualColumnsChanged","onCellFocusCleared","onPaginationChanged","onModelUpdated","onColumnMoved","addListenersForCellComps","getAllCellCtrls","redrawRow","postProcessCss","postProcessClassesFromGridOptions","postProcessRowClassRules","postProcessRowDragging","belowOn","onKeyboardNavigate","currentFullWidthComp","lastFocusedCell","currentFullWidthContainer","isFullWidthContainerFocused","onFullWidthRowFocused","isFocused","removeCellCtrl","cellCtrlToRemove","onRowDblClick","onRowClick","onRowMouseDown","createRowEvent","createRowEventWithSource","isMultiKey","isShiftKey","multiSelectOnClick","rowDeselectionWithCtrl","setupDetailRowAutoHeight","eDetailGui","checkRowSizeFunc","resizeObserverDestroyFunc","addFullWidthRowDragging","newLevel","classToAdd_1","classToRemove_1","isFirstRowOnPage","getPageFirstRow","isLastRowOnPage","getPageLastRow","refreshFirstAndLastRowStyles","newFirst","newLast","firstRowOnPage","lastRowOnPage","stoppingRowEdit","isRowEdit","fireRowEditEvent","cellControls_1","__values$3","cellControls_1_1","event_1","setEditingRow","setInlineEditingCss","sourceRenderedCell","cssClasses","processClassesFromGridOptions","classStr","processRowClassRules","updateStyles","forEachGui","rowContainerType","fadeRowIn","rowIsEven","fullWidthRow","rowStyle","rowStyleFuncResult","createAriaLabel","isUseAnimationFrameForCreate","roundRowTopToBounds","minPixel","applyPaginationOffset","maxPixel","defaultRowHeight","getDefaultRowHeight","heightFromFunc","isGetRowHeightFunction","destroyFirstPass","setupRemoveAnimation","destroySecondPass","destroyCellCtrls","ctrls","onCellFocusChanged","currentPage","topPx","afterPaginationPixels","afterScalingPixels","getRealPixelPosition","setRowTopStyle","getInitialRowTop","getInitialRowTopShared","getInitialTransform","setTop","setTransform","rowIndexStr","headerRowCount","ariaRowIndex","getPinnedLeftRowElement","getPinnedRightRowElement","getBodyRowElement","getFullWidthRowElement","__extends$1V","__decorate$1Q","RowContainerEventsFeature","addKeyboardListeners","addMouseListeners","processKeyboardEvent","processMouseEvent","getRowForEvent","getRenderedCellForEvent","handleContextMenuMouseEvent","rowCon","anchorToElement","getControlsForEventTarget","processCellKeyboardEvent","processFullWidthRowKeyboardEvent","handlePageScrollingKey","doGridOperations","cellKeyDownEvent","focusedCell","onCtrlAndA","onCtrlAndC","onCtrlAndD","onCtrlAndV","onCtrlAndX","onCtrlAndY","onCtrlAndZ","isRowsToRender","__read$k","floatingStart","floatingEnd","rowEnd","getPinnedBottomRowData","setCellRange","rowStartIndex","rowStartPinned","rowEndIndex","rowEndPinned","columnStart","columnEnd","__extends$1U","__decorate$1P","ViewportSizeFeature","centerContainerCtrl","listenForResize","onScrollbarWidthChanged","onCenterViewportResized","registerViewportResizeListener","checkViewportAndScrolls","isViewportVisible","centerWidth","bodyHeight","updateScrollVisibleService","checkBodyHeight","updateScrollVisibleServiceImpl","horizontalScrollShowing","verticalScrollShowing","setScrollsVisible","getViewportScrollLeft","__extends$1T","__decorate$1O","SetPinnedLeftWidthFeature","onPinnedLeftWidthChanged","pinnedWidthService","getPinnedLeftWidth","__extends$1S","__decorate$1N","SetPinnedRightWidthFeature","onPinnedRightWidthChanged","getPinnedRightWidth","__extends$1R","__decorate$1M","SetHeightFeature","eViewport","onHeightChanged","maxDivHeightScaler","getUiContainerHeight","heightString","__extends$1Q","__decorate$1L","DragListenerFeature","__extends$1P","__decorate$1K","CenterWidthFeature","addSpacer","totalWidth","__extends$1O","__decorate$1J","__read$j","__spreadArray$g","RowContainerName","TOP_LEFT","TOP_RIGHT","TOP_CENTER","TOP_FULL_WIDTH","STICKY_TOP_LEFT","STICKY_TOP_RIGHT","STICKY_TOP_CENTER","STICKY_TOP_FULL_WIDTH","BOTTOM_LEFT","BOTTOM_RIGHT","BOTTOM_CENTER","BOTTOM_FULL_WIDTH","ContainerCssClasses","ViewportCssClasses","RowContainerCtrl","EMPTY_CTRLS","isFullWithContainer","getRowContainerCssClasses","embedFullWidthRows","forContainers","viewportSizeFeature","registerWithCtrlsService","registerCenterRowContainerCtrl","registerLeftRowContainerCtrl","registerRightRowContainerCtrl","registerTopCenterRowContainerCtrl","registerTopLeftRowContainerCon","registerTopRightRowContainerCtrl","registerStickyTopCenterRowContainerCtrl","registerStickyTopLeftRowContainerCon","registerStickyTopRightRowContainerCtrl","registerBottomCenterRowContainerCtrl","registerBottomLeftRowContainerCtrl","registerBottomRightRowContainerCtrl","names","getContainerElement","getViewportSizeFeature","addPreventScrollWhileDragging","stopHScrollOnPinnedRows","allStickyTopNoFW","allBottomNoFW","allMiddleNoFW","allNoFW","allMiddle","allCenter","allRight","pinnedWidthFeature","onPinnedWidthChanged","setContainerWidth","refreshPaddingForFakeScrollbar","sideToCheck","pinnedWidth","onDisplayedRowsChanged","isEnsureDomOrder","unsubscribeFromResize","isContainerVisible","printLayout_1","rowsThisContainer","getRowCtrls","embedFW","setRowCtrls","getTopRowCtrls","getStickyTopRowCtrls","getBottomRowCtrls","getCentreRowCtrls","__extends$1N","__decorate$1I","GRID_BODY_TEMPLATE","GridBodyComp","eBody","ct","bodyViewportClassList","getFloatingTopBottom","__extends$1M","__decorate$1H","ScrollVisibleService","updateImpl","centerRowCtrl","__extends$1L","__decorate$1G","MouseEventService","gridInstanceId","MouseEventService_1","gridInstanceSequence","eGridDiv","GRID_DOM_KEY","getCellPositionForEvent","gridPanelHasScrolls","vRange","__extends$1K","__assign$9","__decorate$1F","NavigationService","onPageDown","onPageUp","fromFullWidth","rangeServiceShouldHandleShift","currentCell","onHomeOrEndKey","onCtrlUpDownLeftRight","handlePageUpDown","navigateTo","navigateParams","scrollIndex","scrollType","scrollColumn","focusIndex","focusColumn","gridCell","pixelsInOnePage","getViewportHeight","pagingPixelOffset","currentPageBottomRow","navigateToNextPageWithAutoHeight","navigateToNextPage","currentPageTopRow","up","firstRow","lastRow","rowPixelDiff","isRowTallerThanView","getNextFocusIndexForAutoHeight","lastRowIndex","pixelSum","currentCellHeight","cellToFocus","cellNavigationService","getNextCellToFocus","homeKey","columnToSelect","backwards","tabToNextCellCommon","focusNextGridCoreContainer","focusPreviousFromFirstCell","cellOrRow","moveToNextEditingRow","moveToNextEditingCell","moveToNextCellNotEditing","getFocusedHeader","previousCell","previousPos","nextCell","findNextCellToFocusOn","previousEditable","nextEditable","rowsMatch","cellPos","tryToFocusFullWidthRow","previousPosition","nextPosition","getLastCellOfColSpan","getNextTabbedCell","userCell","previousCellPosition","nextCellPosition","floating","headerLen","focusHeaderPosition","headerPosition","fromCell","lookupRowNodeForCell","allowUserOverride","hitEdgeOfGrid","isValidNavigateCell","normalisedPosition","focusPosition","currentCellFocused","fromBelow","before","colSpanningList","isGroupStickyEnabled","isGroupRowsSticky","__extends$1J","PopupEditorWrapper","DOM_KEY_POPUP_EDITOR_WRAPPER","addKeyDownListener","__decorate$1E","__extends$1I","CellComp","rendererVersion","editorVersion","forceWrapper","refreshWrapper","include","eCellValue","cellEditorPopupWrapper","firstRender","controlWrapperChanged","refreshEditStyles","refreshCellRenderer","destroyRenderer","createCellRendererInstance","insertValueWithoutCellRenderer","createCellEditorInstance","destroyEditor","removeControls","checkboxSelectionComp","rowDraggingComp","providingControls","usingWrapper","putWrapperIn","takeWrapperOut","usingCellValue","putCellValueIn","takeCellValueOut","templateChanged","addControls","versionCopy","cellEditorPromise","afterCellEditorCreated","escapedValue","destroyEditorAndRenderer","cellRendererGui","hideEditorPopup","cellEditorGui","compClassAndParams","cellRendererClass","displayComponentVersionCopy","createCellRendererFunc","afterCellRendererCreated","cellRendererVersion","requestVersion","isCancelBeforeStart","cellEditorInPopup","addPopupCellEditor","addInCellEditor","clearParentOfValue","ePopupGui","useModelPopup","positionToUse","getPopupPosition","positionParams","positionCallback","detach","__extends$1H","RowComp","cellComps","getInitialStyle","domOrder","cellCtrls","setFullWidthRowComp","cellsToRemove","newCellComp","cellCompsToRemove","destroyCells","elementsInOrder","destroyAllCells","cellsToDestroy","cp","fullWidthRowComponent","fullWidthCellRenderer","__extends$1G","__assign$8","__decorate$1D","RowContainerComp","templateFactory","rowComps","getRowContainerTypeForName","setViewportHeight","rowCtrls","preDestroy","oldRows","lastPlacedElement","existingRowComp","appendRow","oldRowComp","__decorate$1C","BodyDropPivotTarget","columnsToAggregate","columnsToGroup","columnsToPivot","clearColumnsList","dragColumns","__decorate$1B","MoveColumnFeature","needToMoveLeft","needToMoveRight","lastMovedInfo","centerContainer","visibleState_1","visibleState","ensureIntervalCleared","allowedCols","normaliseX","checkCenterForScrolling","xAdjustedForScroll","firstVisiblePixel","lastVisiblePixel","ensureIntervalStarted","fromEnter","fakeEvent","normaliseDirection","allMovingColumns","attemptMoveColumns","draggingLeft","draggingRight","newCols_1","movingGroup","allMovingColumnsOrdered","validMoves","calculateValidMoves","calculateOldIndex","firstValidMove","constrainDirection","potentialMoves","targetOrder","move","displayedOrder","fragCount","groupFragCount","movingCols","gridCols","firstIndex","parents","__read$i","allDisplayedCols","allGridCols","movingDisplayedCols","otherDisplayedCols","otherGridCols","displayIndex","widthOfMovingDisplayedCols_1","numberComparator","displacedCol","isColumnHidden","movingIntervalId","intervalCount","failedMoveAttempts","moveInterval","pixelsToMove","pixelsMoved","scrollFeature","columnsThatCanPin","__extends$1F","__decorate$1A","BodyDropTarget","eSecondaryContainers","leftRowContainerCtrl","bottomLeftRowContainerCtrl","topLeftRowContainerCtrl","rightRowContainerCtrl","bottomRightRowContainerCtrl","topRightRowContainerCtrl","bottomCenterRowContainerCtrl","topCenterRowContainerCtrl","moveColumnFeature","bodyDropPivotTarget","currentDropListener","isDropColumnInPivotMode","CssClassApplier","getHeaderClassesFromColDef","getColumnClassesFromCollDef","getToolPanelClassesFromColDef","getClassParams","classesOrFunc","classToUse","__spreadArray$f","__read$h","__extends$1E","__decorate$1z","HeaderCellComp","headerCompVersion","getColumnGroupChild","setUserCompDetails","getUserCompInstance","headerComp","eResize","eHeaderCompWrapper","selectAllGui","getSelectAllGui","destroyHeaderComp","headerCompGui","setDragSource","__extends$1D","__decorate$1y","HeaderGroupCellComp","setResizableDisplayed","afterHeaderCompCreated","headerGroupComp","eHeaderGroupGui","__extends$1C","__decorate$1x","HeaderRowType","COLUMN_GROUP","COLUMN","FLOATING_FILTER","HeaderRowComp","headerComps","getHeaderRowClass","getTransform","getAriaRowIndex","setHeaderCtrls","forceOrder","destroyHeaderCtrls","oldComps","createHeaderComp","comps","headerCtrl","__extends$1B","__decorate$1w","instanceIdSequence$1","AbstractHeaderCellCtrl","columnGroupChild","parentRowCtrl","lastFocusEvent","getWrapperHasFocus","wrapperHasFocus","DOM_DATA_KEY_HEADER_CTRL","getParentRowCtrl","__extends$1A","SetLeftFeature","setColsSpanning","getColumnOrGroup","setLeftFirstTime","suppressMoveAnimation","oldLeftExists","animateInLeft","colOrGroup","oldActualLeft","actualLeft","indexColumn","__decorate$1v","__extends$1z","__decorate$1u","HoverFeature","addMouseHoverListeners","__extends$1y","__decorate$1t","HeaderFilterCellCtrl","iconCreated","setupActive","setupWidth","setupLeft","setupHover","setupFocus","setupFilterButton","setupUserComp","setupSyncWithFilter","setupUi","setupFilterChangedListener","eMenuIcon","nextFocusableEl","scrollToColumn","nextFocusableColumn","findNextColumnWithFloatingFilter","columModel","nextCol","focusInto","notFromHeaderWrapper","fromWithinHeader","setFocusedHeader","setLeftFeature","userCompDetails","syncWithFilter","destroySyncListener","destroyFilterChangedListener","updateFilterButton","wasActive","becomeActive","compInstance","updateCompDetails","updateFloatingFilterParams","__extends$1x","__decorate$1s","ResizeFeature","canResize","canAutosize","destroyResizeFuncs","removeResize","resize","autoSize","finishedWithResizeFunc","horizontalResizeService","addResizeBar","eResizeBar","onResizing","skipHeaderOnAutoSize_1","autoSizeColListener_1","touchListener_1","addResize","addRefreshFunction","resizeAmount","resizeAmountNormalised","normaliseResizeAmount","resizeStartWidth","resizeWithShiftKey","dragChange","notPinningLeft","__extends$1w","__decorate$1r","SelectAllFeature","cbSelectAllVisible","processingEventFromCheckbox","filteredOnly","currentPageOnly","cbSelectAll","getCheckboxGui","headerCellCtrl","showOrHideSelectAll","onModelChanged","onCbSelectAll","refreshSelectAllLabel","isCheckboxSelection","checkRightRowModelType","checkSelectionType","updateStateOfCheckbox","allSelected","getSelectAllState","ariaStatus","setAriaDescriptionProperty","refreshAriaDescription","__extends$1v","__decorate$1q","TabGuardClassNames","TAB_GUARD","TAB_GUARD_TOP","TAB_GUARD_BOTTOM","TabGuardCtrl","skipTabGuardFocus","eTopGuard","eBottomGuard","focusInnerElement","providedFocusInnerElement","providedFocusIn","providedFocusOut","providedShouldStopEventPropagation","providedOnTabKeyDown","providedHandleKeyDown","activateTabGuards","guard","onFocus","tabGuardsAreActive","hasAttribute","setTabIndex","deactivateTabGuards","fromBottom","getNextFocusableElement","focusable","findFocusableElements","forceFocusOutOfContainer","tabGuardToFocus","__extends$1u","__assign$7","__decorate$1p","FocusService","FocusService_1","addKeyboardModeEvents","docControllers","instancesMonitored","toggleKeyboardMode","removeKeyboardModeEvents","newControllers","__spreadArray$e","__read$g","currentGridCore","isKeyboardActive","keyboardModeActive","isKeyboardEvent","controllersForDoc","clearFocusedCellListener","onColumnEverythingChanged","unregisterGridCompController","gridCompController","colFromColumnModel","isKeyboardMode","getFocusCellToUseAfterRefresh","isDomDataMissingInHierarchy","getFocusHeaderToUseAfterRefresh","focusedHeaderPosition","eBrowserCell","ePointer","isCellRestoreFocused","restoredFocusedCellPosition","setRestoreFocusedCell","renderingEngine","getFocusEventParams","gridColumn","isRowNodeFocused","isHeaderWrapperFocused","focusedColumn","clearFocusedHeader","fromTab","focusAdvancedFilter","currentPosition","previousHeaderPosition","nextHeaderPosition","focusGridView","focusHeader","focusFirstHeader","firstColumn","focusLastHeader","isAnyCellFocused","exclude","onlyUnmanaged","excludeString","excludeNodes","focusableElements","toFocus","findFocusableElementBeforeTabGuard","referenceElement","referenceIndex","lastTabGuardIndex","onlyManaged","activeEl","nextIndex","isTargetUnderManagedComponent","managedContainers","findTabbableParent","nextRow","getLastRow","getFirstRow","focusedHeader","forceOut","focusNextInnerContainer","isDetailGrid","advancedFilterFocusColumn","focusHeaderComp","focusNextFromAdvancedFilter","forceFirstColumn","clearAdvancedFilterColumn","AG_KEYBOARD_FOCUS","__extends$1t","__decorate$1o","HeaderCellCtrl","refreshFunctions","userHeaderClasses","ariaDescriptionProperties","setupMovingCss","setupMenuClass","setupSortableClass","setupWrapTextClass","refreshSpanHeaderHeight","addColumnHoverListener","setupFilterCss","setupClassesFromColDef","addActiveHeaderMouseListeners","setupSelectAll","refreshAria","addMouseDownListenerIfNeeded","onColumnValueChanged","onColumnRowGroupChanged","onColumnPivotChanged","lookupUserCompDetails","createParams","menuEnabled","multiSort","setSortForColumn","eGridHeader","selectAllFeature","isMenuEnabled","setActiveHeader","refreshHeaderClasses","oldClasses","eSource","dragSourceElement","hideColumnOnExit","moveDragSource","createDragItem","unlockedColumns","calculateDisplayName","workOutDraggable","refreshHeaderComp","attemptHeaderCompRefresh","checkDisplayName","updateSortableCssClass","refreshAriaSort","getColumnGroupPaddingInfo","numberOfParents","isSpanningTotal","extraHeight","wrapperElement","stopResizeObserver","isMeasuring","checkMeasuring","startMeasuring","stopMeasuring","refreshAriaMenu","descriptionArray","__extends$1s","__decorate$1n","GroupResizeFeature","calculateInitialValues","takeFromGroup","takeFromLeafCols","resizeTakeFromCols","resizeTakeFromStartWidth","resizeTakeFromRatios","normaliseDragChange","resizeColumns","preferredSize","getPreferredWidthForColumnGroup","resizeCols","resizeRatios","leafCols","__extends$1r","GroupWidthFeature","removeChildListenersFuncs","addListenersToChildrenColumns","onDisplayedChildrenChanged","removeListenersOnChildrenColumns","widthChangedListener","__decorate$1m","__extends$1q","__decorate$1l","HeaderGroupCellCtrl","groupResizeFeature","tooltipCtrl","providedColGroup","refreshExpanded","eHeaderGroup","isSuppressMoving","getDragItemForGroup","allColumnsOriginalOrder","allColumnsCurrentOrder","childSuppressesMoving","__extends$1p","__decorate$1k","instanceIdSequence","HeaderRowCtrl","headerCellCtrls","headerRowClass","initCompState","onColumnResized","getHeaderCellCtrl","getWidthForRow","getTopAndHeight","topOffset","sizes","numberOfFloating","groupHeight","numberOfGroups","ctrlsToDisplay","getHeaderCtrls","oldCtrls","getColumnsInViewport","idOfChild","oldCtrl","keepCtrl","isFocusedAndDisplayed","getColumnsInViewportPrintLayout","getColumnsInViewportNormalLayout","actualDepth","getActualDepth","__extends$1o","__decorate$1j","HeaderRowContainerCtrl","includeFloatingFilter","groupsRowCtrls","setupCenterWidth","setupPinnedWidth","setupDragAndDrop","registerHeaderContainer","dropContainer","bodyDropTarget","keepColumns","needNewInstance","groupRowCount","refreshColumnGroups","columnsRowCtrl","destroyPreviousComp","filtersRowCtrl","rowIndexMismatch","refreshFilters","allCtrls","getAllCtrls","setCtrls","restoreFocusOnHeader","__spreadArray$d","__read$f","setCenterWidth","setViewportScrollLeft","hiddenChanged","addPaddingForScrollbar","setPinnedContainerWidth","getHtmlElementForColumnHeader","__extends$1n","__decorate$1i","HeaderRowContainerComp","headerRowComps","rowCompsList","selectAndSetTemplate","eCenterContainer","PINNED_LEFT_TEMPLATE","PINNED_RIGHT_TEMPLATE","CENTER_TEMPLATE","eRowContainer","destroyRowComps","destroyRowComp","prevGui","oldRowComps","ctrlId","existingComp","appendEnsuringDomOrder","__extends$1m","__decorate$1h","HeaderNavigationDirection","HeaderNavigationService","centerHeaderContainer","navigateVertically","fromHeader","rowLen","headerPositionUtils","getColumnVisibleParent","getColumnVisibleChild","nextFocusColumn","skipColumn","navigateHorizontally","nextHeader","normalisedDirection","findHeader","focusNextHeaderRow","findColAtEdgeForHeaderRow","columnToScrollTo","__extends$1l","__decorate$1g","GridHeaderCtrl","onPivotModeChanged","setupHeaderHeight","registerGridHeaderCtrl","totalHeaderHeight","setHeightAndMinHeight","shouldAllowOverflow","__extends$1k","GridHeaderComp","addContainer","__decorate$1f","__extends$1j","__decorate$1e","HorizontalResizeService","dragStartX","setResizeIcons","setResizeCursor","disableUserSelect","resetIcons","__extends$1i","__decorate$1d","StandardMenuFactory","showPopup","tabListener","trapFocusWithin","focusableEl","__extends$1h","__decorate$1c","TabbedLayout","tabbedItemScrollMap","addItem","activeItem","tabbedItem","afterDetachedCallback","eHeader","isRightKey","nextItem","showItemWrapper","eHeaderButton","setAfterAttachedParams","afterAttachedParams","showFirstItem","titleLabel","showItem","itemWrapper","onItemClicked","lastScrollListener","bodyPromise","afterAttachedCallback","keepScrollPosition","scrollableContainer_1","getScrollableContainer","scrollPosition_1","onActiveItemClicked","__extends$1g","ResizeObserverService","polyfillFunctions","suppressResize","widthLastTime","heightLastTime","running","periodicallyCheckWidthAndHeight","doNextPolyfillTurn","usePolyfill","schedulePolyfill","polyfillScheduled","__decorate$1b","__extends$1f","__decorate$1a","AnimationFrameService","createTasksP1","sorted","createTasksP2","destroyTasks","ticking","scrollGoingDown","lastPage","lastScrollTop","taskCount","cancelledTasks","isPaginationActive","useAnimationFrame","isOn","verifyAnimationFrameOn","task","taskItem","createOrder","addTaskToList","cancelTask","taskList","sortTaskList","executeFrame","p1TaskList","p1Tasks","p2TaskList","p2Tasks","frameStart","noMaxMillis","stopTicking","webkitRequestAnimationFrame","__extends$1e","__decorate$19","AutoWidthCalculator","eHeaderCell","getHeaderCellForColumn","getAllCellsForColumn","addElementsToContainerAndGetWidth","eDummyContainer","eBodyContainer","cloneItemIntoDummy","dummyContainerWidth","getAutoSizePadding","eCellClone","eCloneParent","eCloneParentClassList","__extends$1d","__decorate$18","StickyRowFeature","createRowCon","destroyRowCtrls","stickyRowCtrls","isClientSide","getStickyRowCtrls","checkStickyRows","refreshNodesAndContainerHeight","stickyRows","firstPixel","getFirstVisibleVerticalPixel","addStickyRow","stickyRow","lastChildBottom","lastAncestor","childrenAfterSort","storeBounds","childStore","getStoreBounds","heightPx","stickRowBottom","thisRowLastPx","firstPixelAfterStickyRows","firstMissingParent","refreshStickyNode","stickRowNode","allStickyNodes","stickyRowsChanged","removedCtrls","addedNodes","ctrlsToDestroy","removedCtrl","__values$2","newCtrls","__spreadArray$c","__read$e","__extends$1c","__decorate$17","__read$d","__spreadArray$b","RowRenderer","destroyFuncsForColumnListeners","rowCtrlsByRowIndex","zombieRowCtrls","allRowCtrls","topRowCtrls","bottomRowCtrls","refreshInProgress","dataFirstRenderedFired","onPageLoaded","onBodyScroll","onDomLayoutChanged","stickyRowFeature","registerCellEventListeners","initialiseCache","redrawAfterModelUpdate","countProp","getKeepDetailRowsCount","cachedRowCtrls","RowCtrlCache","keepDetailRowsCount","updateAllRowCtrls","liveList","zombieList","cachedList","getFullWidthRowCtrls","refreshListenersToColumnsForCellComps","removeGridColumnListeners","forEachCellWithThisCol","leftChangedListener","firstRightPinnedChangedListener","lastLeftPinnedChangedListener","colDefChangedListener","destroyRows","domLayoutChanged","datasourceChanged","firstRenderedRow","lastRenderedRow","rowIndexesToRemove","removeRowCtrls","recycleRows","keepRenderedRows","newPage","onlyBody","getAllRowCtrls","refreshFloatingRowComps","refreshFloatingRows","getPinnedTopRowData","suppressEvent","destroyAndRecreateCtrl","dataStruct","dispatchDisplayedRowsChanged","getCellToRestoreFocusToAfterRefresh","suppressKeepFocus","cellDomData","rowDomData","getLockOnRefresh","updateContainerHeights","scrollToTopIfNewData","rowsToRecycle","getRowsToRecycle","removeAllRowComps","workOutFirstAndLastRowsToRender","restoreFocusedCell","releaseLockOnRefresh","suppressScrollToTop","setModelHeight","rowCtrlsLength","cellCtrlsLength","__values$1","getCellCtrls","refreshCellParams","cellRenderers","fullWidthRenderers","rowIdMap","mapRowNodes","isRowInMap","fullWidthRenderer","rowIdsMap","colIdsMap","stubNodeIndexes","ctrlsByIdMap","rowsToRemove","indexToRemove","oldFirstRow","oldLastRow","hasStickyRowChanges","newFocusedCell","removeRowCompsNotToDraw","indexesToDraw","indexesToDrawMap","indexesNotToDraw","calculateIndexesToDraw","checkRowToDraw","indexStr","doNotUnVirtualiseRow","currRow","createOrUpdateRowCtrl","redrawFullWidthEmbeddedRows","fullWidthCtrl","rowNodesMap","rowCtrlsMap","executeInAWhileFuncs","nodeId","addRow","getRowBuffer","rowBuffer","getRowBufferInPixels","updateOffset","refreshRowHeightVariable","bufferPixels","suppressRowVirtualisation","rowHeightsChanged","lastPixel","getCurrentPagePixelRange","pageFirstPixel","pageLastPixel","divStretchOffset","bodyVRange","bodyTopPixel","bodyBottomPixel","firstVisibleVPixel","ensureAllRowsInRangeHaveHeightsCalculated","firstRowIndex","pageFirstRow","pageLastRow","rowLayoutNormal","suppressRowCountRestriction","rowBufferMaxSize","topPixel","bottomPixel","ensureRowHeightsValid","rowHasFocus","rowIsEditing","isRowPresent","rowCtrlFromCache","renderedRows","rowPosition","gridRow","isRangeInRenderedViewport","endIndex","maxCount","entriesMap","entriesList","rowCtrlToDestroy","removeFromCache","rowNodeId","__extends$1b","__decorate$16","ValueFormatterService","suppliedFormatter","useFormatterFromColumn","__extends$1a","__decorate$15","PinnedRowModel","pinnedTopRows","pinnedBottomRows","getRowAtPixel","createNodesFromData","allData","nextRowTop_1","dataItem","getTotalHeight","forEachPinnedTopRow","forEachPinnedBottomRow","lastNode","ChangedPath","keepingColumns","nodeIdsToColumns","mapToItems","pathRoot","setInactive","depthFirstSearchChangedPath","pathItem","depthFirstSearchEverything","traverseEverything","forEachChangedNodeDepthFirst","traverseLeafNodes","includeUnchangedNodes","executeFromRootNode","createPathItems","newEntryCount","populateColumnsMap","linkPathItems","thisItem","parentItem","addParentNode","canSkip","getValueColumnsForNode","colsForThisNode","getNotValueColumnsForNode","__extends$19","RowNodeBlock","STATE_WAITING_TO_LOAD","STATE_LOADING","loadFromDatasource","getVersion","setStateWaitingToLoad","getState","pageLoadFailed","isRequestMostRecentAndLive","STATE_FAILED","processServerFail","dispatchLoadCompleted","successCommon","pageLoaded","thisIsMostRecentRequest","weAreNotDestroyed","STATE_LOADED","processServerResult","EVENT_LOAD_COMPLETE","__extends$18","__decorate$14","__param$7","RowNodeBlockLoader","activeBlockLoadsCount","blocks","RowNodeBlockLoader_1","maxConcurrentRequests","getMaxConcurrentDatasourceRequests","blockLoadDebounceMillis","checkBlockToLoadDebounce","performCheckBlocksToLoad","addBlock","loadComplete","checkBlockToLoad","removeBlock","BLOCK_LOADED_EVENT","BLOCK_LOADER_FINISHED_EVENT","printCacheStatus","loadAvailability","getAvailableLoadingCount","blocksToLoad","registerLoads","getBlockStates","getBlockStateJson","isLogging","isLoading","__extends$17","__decorate$13","PaginationProxy","topDisplayedRowIndex","bottomDisplayedRowIndex","pixelOffset","masterRowCount","paginateChildRows","isPaginateChildRows","onPaginationPageSizeChanged","startPixel","endPixel","startLimitIndex","endLimitIndex","calculatePages","modelUpdatedEvent","topRowBounds","bottomRowBounds","forEachNodeOnPage","getRowBounds","getPageForIndex","pageSize","isRowInPage","totalPages","setPageSize","calculatePagesAllRows","calculatePagesMasterRowsOnly","calculatedPagesNotActive","setPixelOffset","setZeroRows","adjustCurrentPageIfInvalid","getTopLevelRowCount","masterLastRowIndex","masterPageEndIndex","getTopLevelRowDisplayedIndex","firstIndexNotToShow","maxRowIndex","__extends$16","__decorate$12","StylingService","processAllCellClasses","onApplicableClass","onNotApplicableClass","processStaticCellClasses","classRules","classesToApply","classesToRemove","resultOfRule","rule","this_1","singleClass","classOrClasses","cssClassItem","__extends$15","AgToggleButton","__extends$14","AgInputTextArea","__extends$13","AgInputDateField","usingSafari","__extends$12","AgInputRange","setMinValue","setMaxValue","__extends$11","__decorate$11","RichSelectRow","formattedValue","populateWithRenderer","populateWithoutRenderer","highlightString","matchString","highlightEndIndex","startPart","highlightedPart","endPart","renderValueWithoutRenderer","updateHighlighted","textOverflow","childComponent","fromEnterKey","__extends$10","TabGuardComp","initialiseTabGuard","createTabGuard","tabGuards","tabGuard","addTabGuards","tabGuardCtrl","topTabGuard","bottomTabGuard","removeAllChildrenExceptTabGuards","__spreadArray$a","__read$c","__extends$$","__decorate$10","VirtualList","listName","getItemHeight","addResizeObserver","setAriaProperties","onGridStylesChanged","destroyObserver","drawVirtualRows","focusRow","lastFocusedRowIndex","getLastFocusedRow","rowNumber","renderedRow","eDiv","rowComponent","forEachRenderedRow","getListItemHeight","scrollPartialIntoView","viewportTopPixel","viewportScrolledBeforeRow","setComponentCreator","componentCreator","setComponentUpdater","componentUpdater","softRefresh","canSoftRefresh","clearVirtualRows","areRowsEqual","ensureRowsRendered","refreshRows","insertRow","isRowSelected","__extends$_","__assign$6","__decorate$$","AgRichSelect","highlightedItem","lastRowHovered","searchStringCreator","cellRowHeight","valueList","createLoadingElement","allowTyping","searchDebounceDelay","clearSearchString","renderSelectedValue","searchTextFromString","onWrapperFocus","onWrapperFocusOut","eLoading","createRowComponent","onListValueSelected","eListGui","eListAriaEl","onPickerMouseMove","listId","userCompDetailsPromise","getCurrentValueIndex","currentList","highlightFilterMatch","cmp","highlightSelectedValue","setValueList","setSearchStringCreator","searchStringFn","showCurrentValueInPicker","currentValueIndex","buildSearchStringFromKeyboardEvent","searchKey","searchTextFromCharacter","char","runSearch","buildSearchStrings","searchStrings","getSuggestionsAndFilteredValues","filteredValues","searchType","shouldFilterList","fuzzySearchResult","valueToMatch","isMatch","filterListModel","highlightMatch","filterValueLen","shouldFilter","topSuggestionIndex","selectListItem","preventUnnecessaryScroll","skipRefresh","getRowForMouseEvent","dispatchPickerEvent","__extends$Z","__decorate$_","AgSlider","eSlider","eventChanged","textValue","sliderValue","setSliderWidth","setTextFieldWidth","minValue","__extends$Y","__decorate$Z","AgGroupComponent","suppressEnabledCheckbox","suppressOpenCloseIcons","alignItems","initialItems","cbGroupEnabled","setAlignItems","hideEnabledCheckbox","hideOpenCloseIcons","setupExpandContract","refreshAriaStatus","refreshChildDisplay","eGroupClosedIcon","eGroupOpenedIcon","eTitleBar","toggleGroupExpand","showIcon","eToolbar","EVENT_EXPANDED","EVENT_COLLAPSED","hideItem","eTitle","addCssClassToTitleBar","skipToggle","refreshDisabledStyles","onEnableChange","__extends$X","__assign$5","__decorate$Y","AgMenuList","closeIfIsChild","handleNavKey","topMenu","findTopMenu","clearActiveItem","activeMenuItem","deactivate","addMenuItems","menuItemOrString","addSeparator","menuItemDef","menuItem","AgMenuItemComponent","isAnotherSubMenuOpen","isSubMenuOpen","EVENT_MENU_ITEM_SELECTED","EVENT_MENU_ITEM_ACTIVATED","activateFirstItem","currentItem","activate","nextParent","findNextItem","openChild","closeSubMenu","openSubMenu","foundCurrent","__extends$W","AgMenuPanel","wrappedComponent","__decorate$X","__extends$V","__decorate$W","subMenuIsOpen","getClassName","addIcon","addName","addShortcut","addSubMenu","addTooltip","onItemSelected","destroySubMenu","currentLevel","nextLevel","childMenu_1","cancelDeactivate","subMenu_1","menuPanel","subMenuGui_1","mouseEvent_1","mouseEnterListener_1","positionPopupForMenu","hideSubMenu","cancelActivate","onItemActivated","isCompact","shortcut","activateTimeoutId","deactivateTimeoutId","ACTIVATION_DELAY","__extends$U","__decorate$V","AgPanel","closable","hideTitleBar","setBodyComponent","setClosable","eTitleBarButtons","eContentWrapper","renderComponent","closeButtonComp","CLOSE_BTN_TEMPLATE","addTitleBarButton","onBtClose","bodyComponent","__extends$T","__assign$4","AgDialog","isMaximizable","isMaximized","maximizeListeners","resizeListenerDestroy","maximizable","bringPopupToFront","setMaximizable","alwaysOnTop","toggleMaximize","refreshMaximizeIcon","maximizeIcon","minimizeIcon","clearMaximizebleListeners","destroyListener","maximizeButtonComp","buildMaximizeAndMinimizeElements","__decorate$U","__extends$S","__assign$3","__decorate$T","DIRECTION","instanceIdSeq","PopupService","popupList","PopupService_1","popupIdx","getPopupIndex","alignedToElement","sourceRect","getParentRect","keepXYWithinBounds","maxX","xRightPosition","xLeftPosition","setAlignedStyles","nudgeX","calculatePointerAlign","postProcessCallback","callPostProcessPopup","shouldRenderUnderOrAbove","targetCompRect","spaceAvailableUnder","spaceAvailableAbove","spaceRequired","updatePopupPosition","fromResizeObserver","resizeObserverDestroyFunc_1","WAIT_FOR_POPUP_CONTENT_RESIZE","getPopupList","popupParent","sizeProperty","anchorProperty","offsetProperty","scrollPositionProperty","docElement","documentRect","isBody","offsetSize","sizeOfParent","initialisePopupPosition","createPopupWrapper","addEventListenersToPopup","addPopupToPopupList","ePopupParentRect","allThemes","__spreadArray$9","__read$b","setAlwaysOnTop","popupEl","popupHidden","hidePopupOnKeyboardEvent","hidePopupOnMouseEvent","hidePopupOnTouchEvent","isEventFromCurrentPopup","removePopupFromPopupList","isAnchored","setPopupPositionRelatedToElement","relativeElement","popupIndex","stopAnchoringPromise","destroyPositionTracker","keepPopupPositionedRelativeTo","initialDiffTop","initialDiffLeft","lastDiffTop","lastDiffLeft","leftPx","pRect","sRect","currentDiffTop","newTop","currentDiffLeft","newLeft","intervalId","indexOfThisChild","getWrapper","popupLen","alwaysOnTopList","onTopLength","innerEls","innerElsScrollMap","__extends$R","AgAutocompleteRow","hasHighlighting","updateSelected","setSearchString","keepHighlighting","lastElementChild","__extends$Q","__decorate$S","AgAutocompleteList","autocompleteEntries","eList","onConfirmed","setSelectedValue","checkSetSelectedValue","setSearch","updateSearchInList","runContainsSearch","topMatch","topMatchStartsWithSearchString","lowerCaseSearchString","allMatches","startsWithSearchString","matchingStrings","topSuggestion","useFuzzySearch","containsMatches","filteredEntries","forceLastSelection","getSelectedValue","__extends$P","__decorate$R","AgAutocomplete","isListOpen","eAutocompleteInput","onValueChanged","updatePositionAndList","autocompleteList","updateValue","updateAutocompleteList","updateLastPosition","autocompleteListParams","listGenerator","closeList","openList","onUpDownKeyDown","forceOpenList","confirmSelection","EVENT_OPTION_SELECTED","updateEntry","autocompleteType","onCompleted","setFocus","validationMessage","setCustomValidity","EVENT_VALID_CHANGED","listAriaLabel","EVENT_VALUE_CONFIRMED","setListAriaLabel","setListGenerator","setValidator","updateListOnlyIfOpen","restoreFocus","setForceLastSelection","setInputDisabled","OUTSIDE_ANGULAR_EVENTS","PASSIVE_EVENTS","VanillaFrameworkOverrides","isOutsideAngular","__extends$O","__decorate$Q","CellNavigationService","ctrlPressed","getNextCellToFocusWithCtrlPressed","getNextCellToFocusWithoutCtrlPressed","upKey","leftKey","getCellAbove","getCellBelow","getCellToLeft","getCellToRight","isCellGoodToFocusOn","lastCell","colToLeft","colToRight","getRowBelow","isLastRowInContainer","getNextStickyPosition","__spreadArray$8","__read$a","nextCtrl","rowBelow","getRowAbove","getLastBodyCell","getLastFloatingTopRow","rowAbove","getNextTabbedCellBackwards","getNextTabbedCellForwards","newRowIndex","newFloating","newColumn","__extends$N","__decorate$P","__param$6","AlignedGridsService","consuming","fireColumnEvent","fireEvent","otherGrids","otherGridOptions","alignedGridService","onEvent","onColumnEvent","onScrollEvent","getMasterColumns","getColumnIds","processColumnEvent","processGroupOpenedEvent","groupOpenedEvent","masterColumnGroup","otherColumnGroup","colEvent","masterColumn","otherColumn","masterColumns","movedEvent","destColState","visibleEvent","pinnedEvent","resizedEvent","columnWidths_1","alignedGrids","grid","__extends$M","__decorate$O","__param$5","SelectionService","groupSelectsChildren","propChange","isMultiselect","suppressFinishActions","lastSelectedNode","getLastSelectedNode","nodesChanged","selectRange","setLastSelectedNode","selectChildren","clearOtherNodes","updateGroupsFromChildrenSelections","fromNode","toNode","nodesToSelect","getNodesInRangeForSelection","childrenAfterAggFilter","selectedRows","getSelectionCount","filterFromSelection","newSelectedNodes","__read$9","changedPath","rowNodeToKeepSelected","groupsToRefresh","otherRowNode","syncInOldRowNode","syncInNewRowNode","topLevelNodes","getTopLevelNodes","traverse","rowModelClientSide","getNodesToSelect","notSelectedCount","recursivelyAddChildren_1","childrenAfterFilter","__decorate$N","ColumnApi","isPinning","getAllDisplayedVirtualColumns","setColumnWidth","getPivotResultColumn","getLeftDisplayedColumnGroups","getCenterDisplayedColumnGroups","getRightDisplayedColumnGroups","getAllDisplayedColumnGroups","setPivotResultColumns","getPivotResultColumns","getAllColumns","getPrimaryColumns","__extends$L","__decorate$M","ValueService","initialised","isSsrm","cellExpressions","callColumnCellValueChangedHandler","forFilter","ignoreAggData","groupDataExists","aggDataExists","ignoreSsrmAggData","ssrmFooterGroupCol","executeFilterValueGetter","executeValueGetter","cellValueGetter","getOpenedGroup","checkType","valueWasDifferent","setValueUsingField","valuesAreSame","fieldPieces","fieldPiece","getValueCallback","valueFromCache","getKeyForNode","__extends$K","__decorate$L","__param$4","ExpressionService","expressionToFunctionCache","evaluateExpression","createExpressionFunction","javaScriptFunction","functionBody","createFunctionBody","theFunction","__extends$J","TemplateService","templateCache","waitingCallbacks","templateFromCache","callbackList","client","handleHttpResult","httpResult","__decorate$K","__extends$I","__decorate$J","__param$3","LoggerFactory","isLoggingFunc","__extends$H","__decorate$I","GridCtrl","eGridHostDiv","addRtlSupport","addOrRemoveKeyboardFocusClass","onGridSizeChanged","registerGridCtrl","showDropZones","showSideBar","showStatusBar","showWatermark","setRtlClass","setUserSelect","focusableContainers","getFocusableContainers","nextIdx","lastColumn","__extends$G","__decorate$H","GridComp","userSelect","webkitUserSelect","createTemplate","insertGridIntoDom","eRootWrapperBodyClassList","eRootWrapperBody","gridBodyComp","__extends$F","__decorate$G","__read$8","__spreadArray$7","SortController","SortController_1","nextDirection","getNextSortDirection","columnsToUpdate","sortableRowGroupColumns","clearSortBarTheseColumns","updateSortIndex","lastColToChange","isCoupled","groupParent","lastSortIndexCol","allSortedCols","allSortedColsWithoutChanges","sortedCols","columnsToSkip","columnToClear","DEFAULT_SORTING_ORDER","getIndexedSortMap","isSortingLinked_1","isAggregated","isSecondary","isGroup","sortedRowGroupCols","isSortLinked","allColsIndexes","iA","iB","indexMap","groupDisplayCol","getSortModel","getSortOptions","canColumnDisplayMixedSort","isColumnSortCouplingActive","isGroupDisplayColumn","linkedColumns","sortableColumns","firstSort","__extends$E","ColumnHoverService","selectedColumns","__decorate$F","__extends$D","__decorate$E","ColumnAnimationService","executeNextFuncs","executeLaterFuncs","animationThreadCount","ensureAnimationCssClassPresent","executeLaterVMTurn","animationThreadCountCopy","nowFuncs","waitFuncs","__extends$C","__decorate$D","PaginationAutoPageSizeService","centerRowContainerCon","checkPageSize","notActive","update_1","newPageSize","isBodyRendered","__extends$B","__decorate$C","ValueCache","cacheVersion","neverExpires","__cacheVersion","__cacheData","__extends$A","__decorate$B","ChangeDetectionService","doChangeDetection","nodesToRefresh","onlyChangedColumns","doAggregate","__extends$z","__decorate$A","AgComponentUtils","jsCompFunc","functionAdapter","adaptCellRendererFunction","Adapter","callbackResult","candidate","__extends$y","__decorate$z","ComponentMetadataProvider","componentMetaData","dateComponent","detailCellRenderer","loadingCellRenderer","loadingOverlayComponent","noRowsOverlayComponent","floatingFilterWrapperComponent","groupRowRenderer","statusPanel","toolPanel","__extends$x","__decorate$y","HARD_CODED_SIZES","headerCellMinWidth","listItemHeight","BASE_GRID_SIZE","chartMenuPanelWidth","MAT_GRID_SIZE","BALHAM_GRID_SIZE","ALPINE_GRID_SIZE","SASS_PROPERTY_BUILDER","Environment","calculatedSizes","fireGridStylesChangedEvent","attributeFilter","getSassVariable","themeFamily","calculateValueForSassProperty","themeElement","useTheme","classesFromThemeElement","__spreadArray$6","__read$7","prevEl","currentClass","currentDiv","calculatedValue","sizeName","isThemeDark","reg","themeMatch","sassVariableName","oldRowHeight","getPropertyValue","measuredMin","__extends$w","__decorate$x","__param$2","RowContainerHeightService","uiBodyHeight","agWire","maxDivHeight","stretching","newScrollY","newBodyHeight","getUiBodyHeight","calculateOffset","setUiContainerHeight","pixelsToShave","modelHeight","uiContainerHeight","maxScrollY","scrollPercent","setDivStretchOffset","clearOffset","newOffset","newOffsetFloor","modelPixel","modelMaxScroll","__extends$v","__decorate$w","SelectableService","updateSelectableAfterGrouping","recurseDown","nextChildrenFunc","rowSelectable","__extends$u","__decorate$v","PaginationComp","previousAndFirstButtonsDisabled","nextButtonDisabled","lastButtonDisabled","areListenersSetup","btFirst","btPrevious","btNext","btLast","paginationPanelEnabled","enableOrDisableButtons","updateRowLabels","setCurrentPageLabel","setTotalLabels","onBtFirst","onBtPrevious","onBtNext","onBtLast","pagesExist","lbCurrent","strPage","strTo","strOf","strFirst","strPrevious","strNext","strLast","toggleButtonDisabled","zeroPagesToDisplay","isZeroPagesToDisplay","lbFirstRowOnPage","lbLastRowOnPage","lastPageFound","setTotalLabelsToZero","lbTotal","lbRecordCount","moreText","__extends$t","__decorate$u","LoadingType","Loading","NoRows","OverlayWrapperComponent","inProgress","destroyRequested","manuallyDisplayed","overlayWrapperClassList","eOverlayWrapper","onRowDataUpdated","onNewColumnsLoaded","setWrapperTypeClass","loadingType","showOverlay","workItem","destroyActiveOverlay","activeOverlay","showOrHideOverlay","isSuppressNoRowsOverlay","__extends$s","__decorate$t","RowPositionUtils","pinnedBottomCount","pinnedTopCount","rowA","rowB","rowMax","rowMin","__extends$r","CellPositionUtils","createIdFromValues","cellA","cellB","__decorate$s","__extends$q","UndoRedoAction","cellValueChanges","RangeUndoRedoAction","initialRange","finalRange","UndoRedoStack","maxStackSize","actionStack","DEFAULT_STACK_SIZE","getCurrentStackSize","__extends$p","__assign$2","__decorate$r","UndoRedoService","activeCellEdit","activeRowEdit","isPasting","isRangeInAction","eventCell","isCellEditing","isRowEditing","cellValueChange","clearStacks","undoStack","redoStack","undoRedoLimit","addRowEditingListeners","addCellEditingListeners","addPasteListeners","addFillListeners","addCellKeyListeners","keepUndoRedoStack","operationPerformed","undoRedo","undoRedoStack","opposingUndoRedoStack","rangeProperty","cellValueChangeProperty","undoRedoAction","processAction","processRange","processCell","valueExtractor","currentRow","startColumn","setLastFocusedCell","pushActionsToUndoStack","__spreadArray$5","__read$6","__extends$o","__decorate$q","HeaderPositionUtils","nextColumn","getHeaderRowType","isAnyChildSpanningHeaderHeight","currentRowType","isColumn","leafChild","ColumnDefFactory","colGroupDefs","addToResult","childDef","createDefFromColumn","lastPointer","parentDef","existingParentDef","createDefFromGroup","defCloned","colDefCloned","__decorate$p","__decorate$o","RowCssClassCalculator","extraCssClass","preProcessRowClassRules","rowCls","rowClass","rowClassParams","__extends$n","__decorate$n","RowNodeSorter","isAccentedSort","primaryColumnsSortGroups","doFullSort","sortOptions","sortedRowNodes","currentPos","compareRowNodes","sortedNodeA","sortedNodeB","comparatorResult","sortOption","isDescending","providedComparator","getComparator","comparatorOnCol","groupLeafField","primaryColumn","allLeafChildren","displayCol","__extends$m","CtrlsService","readyCallbacks","CtrlsService_1","checkReady","stickyTopCenterRowContainerCtrl","stickyTopLeftRowContainerCtrl","stickyTopRightRowContainerCtrl","centerHeaderRowContainerCtrl","leftHeaderRowContainerCtrl","rightHeaderRowContainerCtrl","fakeHScrollComp","fakeVScrollComp","gridHeaderCtrl","p_1","createReadyParams","registerFakeHScrollComp","registerFakeVScrollComp","__decorate$m","__extends$l","CtrlsFactory","controllerName","controllerClass","ControllerClass","__decorate$l","__extends$k","__decorate$k","AbstractFakeScrollComp","hideTimeout","initialiseInvisibleScrollbar","hideAndShowInvisibleScrollAsNeeded","addActiveListenerToggles","setScrollVisible","attemptSettingScrollPosition","getViewport","__extends$j","__decorate$j","FakeHScrollComp","spacerWidthsListener","setFakeHScrollSpacerWidths","refreshCompBottom","bottomPinnedHeight","vScrollShowing","rightSpacing","scrollOnRight","eRightSpacer","leftSpacing","eLeftSpacer","hScrollShowing","isSuppressHorizontalScroll","scrollContainerSize","__extends$i","__decorate$i","PinnedWidthService","checkContainerWidths","__extends$h","__decorate$h","RowNodeEventThrottle","dispatchExpandedDebounced","onRowGroupOpened","__assign$1","__decorate$g","__param$1","__read$5","__spreadArray$4","isTrue","GridOptionsService","domDataKey","propertyEventService","globalEventHandlerFactory","restrictToSyncOnly","alwaysSync","GridOptionsService_1","alwaysSyncGlobalEvents","callbackMethodName","gridOptionLookup","mergeGridCommonParams","mergedParams","eventParams","allowEstimate","isNumeric","getMasterDetailRowHeight","detailRowHeight","domData","getAsyncTransactionWaitMillis","asyncTransactionWaitMillis","userValue","groupAggFiltering","isGroupIncludeFooterTrueOrCallback","groupIncludeFooter","__extends$g","LocaleService","getLocaleText","variableValues","localeText","localisedText","__decorate$f","__extends$f","FakeVScrollComp","onRowContainerHeightChanged","adjustedScrollbarWidth","gridBodyViewportEl","__decorate$e","__extends$e","__decorate$d","__read$4","__spreadArray$3","MONTH_LOCALE_TEXT","january","february","march","april","may","june","july","august","september","october","november","december","MONTH_KEYS","DataTypeService","isWaitingForRowData","isColumnTypeOverrideInDataTypeDefinitions","columnStateUpdatesPendingInference","columnStateUpdateListenerDestroyFuncs","groupHideOpenParents","processDataTypeDefinitions","defaultDataTypes","getDefaultDataTypes","dataTypeDefinition","groupSafeValueFormatter","createGroupSafeValueFormatter","dataTypeMatchers","mergedDataTypeDefinition","processDataTypeDefinition","dataTypeMatcher","checkObjectValueHandlers","overriddenDataTypeMatcher","mergeDataTypeDefinitions","parentDataTypeDefinition","childDataTypeDefinition","appendColumnTypes","convertColumnTypes","alreadyProcessedDataTypes","extendsCellDataType","extendsDataType","baseDataType","baseDataTypeDefinition","validateDataTypeDefinition","extendedDataTypeDefinition","mergedExtendedDataTypeDefinition","parentCellDataType","updateColDefAndGetDataTypeDefinitionColumnType","canInferCellDataType","inferCellDataType","suppressDefaultProperties","setColDefPropertiesForBaseDataType","dataTypeDefinitionColumnType","columnStateUpdates","propsToCheckForInference","doColDefPropsPreventInference","columnTypeDefs_1","columnTypeDef","doesColDefPropPreventInference","checkProps","comparisonValue","initialData","getInitialData","initWaitForRowData","columnTypeOverridesExist","firstRowData","processColumnsPendingInference","newRowGroupColumnStateWithoutIndex","newPivotColumnStateWithoutIndex","getUpdatedColumnState","columnState","resolvedObjectDataTypeDefinition","defaultObjectDataTypeDefinition","hasObjectValueParser","hasObjectValueFormatter","getDateStringTypeDefinition","dateParser","getDataTypeDefinition","getBaseDataType","usingSetFilter","mergeFilterParams","valA","valB","_filterValues","treeList","treeListFormatter","pathKey","monthKey","convertToDate_1","treeListPathGetter","cellAsDate","defaultDateFormatMatcher","__extends$d","__decorate$c","ValueParserService","__read$3","__spreadArray$2","Grid","GridCoreCreator","gridComp","nextGridId","createUi","acceptChanges","registeredModules","getRegisteredModules","createBeansList","createProvidedBeans","contextLogger","registerModuleUserComponents","registerStackComponents","registerControllers","setColumnsAndData","dispatchGridReadyEvent","isEnterprise","controllers","ctrlsFactory","agStackComponents","createAgStackComponentsList","passedViaConstructor","registered","allModules","mapNames","addModule","currentModule","dependantModules","extractModuleEntity","userComponents","compMeta","moduleAgStackComps","rowModelModules","rowModelModuleNames","moduleBeans","beansNoDuplicates","moduleEntities","extractor","BaseComponentWrapper","OriginalConstructor","componentType","createWrapper","createMethod","unwrap","addMethod","createMethodProxy","hasMethod","callMethod","globalObj","HTMLButtonElement","HTMLSelectElement","HTMLInputElement","__read$2","__spreadArray$1","ClientSideNodeManager","allNodesMap","ROOT_NODE_ID","getCopyOfNodesMap","dispatchRowDataUpdateStartedEvent","createNode","TOP_LEVEL","rowDataTran","rowNodeTransaction","nodesToUnselect","executeRemove","executeUpdate","executeAdd","updateSelection","newNodes","normalisedAddIndex","nodesBeforeIndex","nodesAfterIndex","rowIdsRemoved","lookupRowNode","setMasterForRow","expandByDefault","__extends$c","__decorate$b","__read$1","RecursionType","AfterFilter","AfterFilterAndSort","PivotNodes","ClientSideRowModel","onRowHeightChanged_debounced","rowsToDisplay","refreshEverythingFunc","refreshEverythingAfterColsChangedFunc","afterColumnsChanged","onGridStylesChanges","refreshMapListener","refreshAggListener","nodeManager","atLeastOneChange","rowAtStartPixel","rowAtEndPixel","setRowTopAndRowIndex","nextRowTop","displayedRowsMapped","changedPathActive","clearIfNotDisplayed","recurse","indexAtPixelNow","rowNodeAtPixelNow","keepEditingRows","highlight","lastHighlightedRow","filteredChildren","topLevelIndex","primaryOrQuickFilterChanged","createChangePath","rowNodeTransactions","noTransactions","isSuppressModelUpdateAfterUpdateTransaction","transWithAddsOrDeletes","tx","buildRefreshModelParams","paramsStep","stepsMapped","everything","aggregate","paramsOrStep","doRowGrouping","doFilter","doPivot","doFilterAggregates","doSort","doRowsToDisplay","displayedNodesMapped","rowsMissing","firstInRange","lastInRange","started","groupsSelectChildren","pixelToMatch","bottomPointer","topPointer","oldBottomPointer","oldTopPointer","midPointer","isRowInPixel","recursivelyWalkNodesAndCallback","recursionType","forEachPivotNode","nodeChildren","isGroupIncludeFooter","aggregationStage","execute","filterAggregatesStage","expand","usingTreeData","usingPivotMode","recursiveExpandOrCollapse","actionRow","sortStage","groupStage","restoreGroupState","filterStage","pivotStage","getGroupState","res_1","applyAsyncTransactionsTimeout","rowDataTransactionBatch","waitMillis","executeBatchUpdateRowData","callbackFuncsBound","rowNodeTrans","forceRowNodeOrder","tranItem","rowNodeTran","commonUpdateRowData","createRowNodeOrder","orderMap","flattenStage","resetRowHeightsForAllRowNodes","__extends$b","__decorate$a","FilterStage","filterService","__extends$a","__decorate$9","SortStage","sortActive","deltaSort","sortContainsGroupColumns","sortService","__extends$9","__decorate$8","FlattenStage","skipLeafNodes","showRootNode","topList","getFlattenDetails","recursivelyAddToRowsToDisplay","groupIncludeTotalFooter","addRowNodeToRowsToDisplay","groupRemoveSingleChildren","groupRemoveLowestSingleChildren","hideOpenParents","rowsToFlatten","isParent","isRemovedSingleChildrenGroup","isRemovedLowestSingleChildrenGroup","excludedParent","uiLevelForChildren","createDetailNode","masterNode","__extends$8","__decorate$7","SortService","postSortFunc","useDeltaSort","groupMaintainOrder","groupColumnsPresent","allDirtyNodes","calculateDirtyNodes","pullDownGroupDataForHideOpenParents","skipSortingPivotLeafs","childrenToBeSorted","indexedOrders_1","row1","row2","doDeltaSort","rowNodeSorter","updateChildIndexes","updateGroupDataForHideOpenParents","dirtyNodes","addNodesFunc","tran","allTouchedNodes","unsortedRows","oldSortedRows","untouchedRowsMap","touchedRows","sortedUntouchedRows","mapNodeToSortedNode","sortedChangedRows","mergeSortedArrays","listToSort","clearOperation","childRowNode","parentToStealFrom","__extends$7","__decorate$6","FilterService","filterNodes","includeChildNodes","passBecauseChildren","passBecauseDataPasses","doingTreeDataFiltering","treeDataDepthFirstFilter_1","alreadyFoundInParent","foundInParent","__extends$6","__decorate$5","ImmutableService","getRowIdProvided","transactionAndMap","createTransactionForRowData","__read","existingNodesMap","existingNode","__extends$5","__decorate$4","InfiniteBlock","parentCache","createRowNodes","blockNumber","getStartRow","getEndRow","pageStatus","createLoadParams","failCallback","getLastAccessed","lastAccessed","dontTouchLastAccessed","lastAccessedSequence","destroyRowNodes","__extends$4","__decorate$3","__param","InfiniteCache","lastRowIndexKnown","blockCount","initialRowCount","dontCreatePage","blockId","createBlock","newBlock","purgeBlocksIfNeeded","getBlocksInOrder","destroyAllBlocks","destroyBlock","checkRowCount","onCacheUpdated","blockToExclude","blocksForPurging","maxBlocksProvided","blocksToKeep","emptyBlocksToKeep","MAX_EMPTY_BLOCKS_TO_KEEP","isBlockCurrentlyDisplayed","isBlockFocused","removeBlockFromCache","blockIndexStart","blockIndexEnd","blockToRemove","lastRowIndexPlusOverflow","overflowSize","forEachNodeDeep","destroyAllBlocksPastVirtualRowCount","blocksToDestroy","getRowNodesInRange","lastBlockId","inActiveRange","numberSequence","foundGapInSelection","hitFirstOrLast","__extends$3","__decorate$2","InfiniteRowModel","destroyCache","verifyProps","destroyDatasource","onColumnEverything","cacheParams","isSortModelDifferent","infiniteCache","createModelUpdatedEvent","defaultIfInvalid","rowIndexForPixel","BaseCreator","getFileName","getDefaultFileExtension","getDefaultFileName","serializingSession","createSerializingSession","gridSerializer","BaseGridSerializingSession","processCellCallback","processHeaderCallback","processGroupHeaderCallback","processRowGroupCallback","prepare","columnsToExport","extractHeaderValue","extractRowCellValue","accumulatedRowIndex","shouldRenderGroupSummaryCell","createValueForGroupNode","currentColumnIndex","isFooter","groupValue","valueToParse","valueToFormat","Downloader","revokeObjectURL","__extends$2","CsvSerializingSession","isFirstLine","columnSeparator","suppressQuotes","addCustomContent","beginNewLine","putInQuotes","mergeAcross","appendEmptyCells","onNewHeaderGroupingRow","onColumn","onNewHeaderGroupingRowColumn","onNewHeaderRow","onNewHeaderRowColumn","onNewBodyRow","onNewBodyRowColumn","rowCellValue","stringValue","__extends$1","__decorate$1","CsvCreator","getMergedParams","export","isExportSuppressed","packagedFile","skipDefaultParams","__decorate","GridSerializer","gridSerializingSession","getColumnsToExport","columnKeys","prepareSession","prependContent","exportColumnGroups","exportHeaders","processPinnedTopRows","processRows","processPinnedBottomRows","appendContent","serializeChain","rowSkipper","shouldRowBeSkipped","skipSingleChildrenGroup","skipLowestSingleChildrenGroup","isExplicitExportSelection","rowPositions","onlySelected","isLeafNode","shouldSkipCurrentGroup","skipGroups","skipRowGroups","skipPinnedTop","skipPinnedBottom","rowAccumulator","getCustomContentBelowRow","customFooter","skipColumnGroupHeaders","recursivelyAddHeaderGroups","skipColumnHeaders","gridRowIterator_1","usingCsrm","usingSsrm","onlySelectedNonStandardModel","exportedRows","onlySelectedAllPages","replicateSortedOrder","compareNodes","directChildrenHeaderGroups","doAddHeaderHeader","gridRowIterator","columnIndex","collapsibleGroupRanges","collapsibleGroups","currentIdx","lastGroup","crcTable","XmlFactory","createHeader","headerElement","encoding","standalone","headerStart","createXml","xmlElement","booleanTransformer","prefixedAttributes","prefixedSet","returnAttributeIfPopulated","rawMap","textNode","xmlValue","ZipContainer","addFolders","addFolder","folders","created","isBase64","addFile","getContent","mimeType","textOutput","buildFileStream","uInt8Output","buildUint8Array","clearStream","fData","totalFiles","foData","lL","cL","totalFiles_1","__values","totalFiles_1_1","getHeader","fileHeader","folderHeader","buildFolderEnd","currentFile","utfPath","isUTF8","convertTime","dt","convertDate","extraFields","uExtraFieldPath","getFromCrc32Table","getConvertedContent","convertedContent","tLen","cLen","lLen","uint8","iterable","crc","AngularFrameworkOverrides","_ngZone","setEmitterUsedCallback","isEmitterUsed","isInAngularZone","AngularFrameworkComponentWrapper","setViewContainerRef","viewContainerRef","setComponentFactoryResolver","componentFactoryResolver","DynamicAgNg2Component","BaseGuiComponent","_componentRef","createComponent","componentRef","resolveComponentFactory","ɵAngularFrameworkComponentWrapper_BaseFactory","_params","_agAwareComponent","_frameworkComponentInstance","_eGui","AgGridAngular","elementDef","angularFrameworkOverrides","_initialised","_fullyReady","statusBar","sideBar","suppressContextMenu","preventDefaultOnContextMenu","allowContextMenuWithControlKey","enableBrowserTooltips","tooltipInteraction","copyHeadersToClipboard","copyGroupHeadersToClipboard","clipboardDelimiter","suppressCopyRowsToClipboard","suppressCopySingleCellRanges","suppressLastEmptyLineOnPaste","suppressClipboardPaste","suppressClipboardApi","suppressCutToClipboard","defaultColGroupDef","maintainColumnOrder","suppressFieldDotNotation","floatingFiltersHeight","pivotHeaderHeight","pivotGroupHeaderHeight","allowDragFromColumnsToolPanel","suppressMovableColumns","suppressColumnMoveAnimation","suppressDragLeaveHidesColumns","suppressRowGroupHidesColumns","colResizeDefault","autoSizePadding","skipHeaderOnAutoSize","editType","suppressClickEdit","readOnlyEdit","stopEditingWhenCellsLoseFocus","enterNavigatesVertically","enterNavigatesVerticallyAfterEdit","enableCellEditingOnBackspace","undoRedoCellEditing","undoRedoCellEditingLimit","defaultCsvExportParams","suppressCsvExport","defaultExcelExportParams","suppressExcelExport","excelStyles","quickFilterText","cacheQuickFilter","includeHiddenColumnsInQuickFilter","excludeChildrenWhenTreeDataFiltering","enableAdvancedFilter","includeHiddenColumnsInAdvancedFilter","advancedFilterBuilderParams","enableCharts","chartThemes","customChartThemes","chartThemeOverrides","suppressChartToolPanelsButton","chartToolPanelsDef","loadingCellRendererParams","loadingCellRendererSelector","masterDetail","keepDetailRows","detailCellRendererParams","detailRowAutoHeight","valueCacheNeverExpires","enableCellExpressions","suppressFocusAfterRefresh","suppressAsyncEvents","suppressBrowserResizeObserver","suppressChangeDetection","loadingOverlayComponentParams","suppressLoadingOverlay","noRowsOverlayComponentParams","suppressNoRowsOverlay","paginationPageSize","suppressPaginationPanel","pivotPanelShow","pivotDefaultExpanded","pivotColumnGroupTotals","pivotRowTotals","pivotSuppressAutoColumn","suppressExpandablePivotGroups","functionsReadOnly","suppressAggFuncInHeader","alwaysAggregateAtRootLevel","aggregateOnlyChangedColumns","suppressAggFilteredOnly","removePivotHeaderRowWhenSingleValueColumn","cellFlashDelay","cellFadeDelay","suppressMaxRenderedRowRestriction","suppressMoveWhenRowDragging","rowDragEntireRow","rowDragMultiRow","fullWidthCellRendererParams","groupDefaultExpanded","groupSuppressBlankHeader","showOpenedGroup","groupAllowUnbalanced","groupRowRendererParams","suppressMakeColumnVisibleAfterUnGroup","rowGroupPanelSuppressSort","suppressGroupRowsSticky","pinnedTopRowData","suppressModelUpdateAfterUpdateTransaction","cacheOverflowSize","infiniteInitialRowCount","serverSideInitialRowCount","maxConcurrentDatasourceRequests","purgeClosedRowNodes","serverSideDatasource","serverSideSortAllLevels","serverSideOnlyRefreshFilteredGroups","serverSideSortOnServer","serverSideFilterOnServer","serverSidePivotResultFieldSeparator","viewportRowModelPageSize","viewportRowModelBufferSize","alwaysShowHorizontalScroll","alwaysShowVerticalScroll","debounceVerticalScrollbar","suppressHorizontalScroll","suppressScrollOnNewData","suppressScrollWhenPopupsAreOpen","suppressMiddleClickScrolls","suppressPreventDefaultOnMouseWheel","rowMultiSelectWithClick","suppressRowDeselection","suppressMultiRangeSelection","enableCellTextSelection","enableRangeSelection","enableRangeHandle","enableFillHandle","fillHandleDirection","suppressClearOnFillReduction","accentedSort","suppressMultiSort","alwaysMultiSort","multiSortKey","suppressMaintainUnsortedOrder","enableGroupEdit","getContextMenuItems","getMainMenuItems","postProcessPopup","processCellForClipboard","processHeaderForClipboard","processGroupHeaderForClipboard","processCellFromClipboard","sendToClipboard","processDataFromClipboard","getChartToolbarItems","createChartContainer","navigateToNextHeader","tabToNextHeader","paginationNumberFormatter","getGroupRowAgg","isGroupOpenByDefault","initialGroupOrderComparator","processPivotResultColDef","processPivotResultColGroupDef","getDataPath","getChildCount","getServerSideGroupLevelParams","isServerSideGroupOpenByDefault","isApplyServerSideTransaction","isServerSideGroup","getServerSideGroupKey","getBusinessKeyForNode","resetRowDataOnUpdate","processRowPostCreate","isRowSelectable","isRowMaster","fillOperation","postSortRows","getRowStyle","getRowClass","isFullWidthRow","toolPanelVisibleChanged","toolPanelSizeChanged","cutStart","cutEnd","pasteStart","pasteEnd","columnVisible","columnPinned","columnResized","columnMoved","columnValueChanged","columnPivotModeChanged","columnPivotChanged","newColumnsLoaded","gridColumnsChanged","displayedColumnsChanged","virtualColumnsChanged","columnEverythingChanged","componentStateChanged","cellValueChanged","cellEditRequest","rowValueChanged","cellEditingStarted","cellEditingStopped","rowEditingStarted","rowEditingStopped","undoStarted","undoEnded","redoStarted","redoEnded","rangeDeleteStart","rangeDeleteEnd","filterOpened","filterModified","advancedFilterBuilderVisibleChanged","chartCreated","chartRangeSelectionChanged","chartOptionsChanged","chartDestroyed","cellKeyDown","gridReady","gridPreDestroyed","firstDataRendered","gridSizeChanged","modelUpdated","virtualRowRemoved","viewportChanged","bodyScroll","bodyScrollEnd","dragStopped","paginationChanged","rowDragEnter","rowDragMove","rowDragLeave","rowDragEnd","columnRowGroupChanged","rowGroupOpened","pinnedRowDataChanged","rowDataChanged","rowDataUpdated","asyncTransactionsFlushed","storeRefreshed","cellClicked","cellDoubleClicked","cellMouseOver","cellMouseOut","cellMouseDown","rowClicked","rowDoubleClicked","rowSelected","cellContextMenu","rangeSelectionChanged","tooltipShow","tooltipHide","sortChanged","columnRowGroupChangeRequest","columnPivotChangeRequest","columnValueChangeRequest","columnAggFuncChangeRequest","_nativeElement","gridParams","emitter","hasEmitter","asEventName","__WEBPACK_AMD_DEFINE_RESULT__","getOwnPropertyDescriptors","construct","sham","Proxy","Boolean","ReferenceError","isColorHex","shadeHexColor","shadeRGBColor","LN10","log10","cos","setEasingFunctions","globals","animations","afterAll","cx","cy","animateGradually","dynamicAnimation","dataChanged","morphSVG","realIndex","comboCharts","pathFrom","pathTo","speed","delayedElements","animationEnded","showDelayedElements","animationEnd","shouldAnimate","plot","series","maxValsInArrayIndex","animationCompleted","unfilter","SVG","Filter","dropShadow","intensity","addShadow","componentTransfer","rgb","slope","filterer","_scaleFilterSize","addNormalFilter","addLightenFilter","addDarkenFilter","blur","flood","composite","sourceAlpha","gaussianBlur","blend","noUserSpaceOnUse","selectedDataPoints","sqrt","origPoint","Paper","x1","y1","x2","y2","rx","ry","circle","strokeWidth","fillOpacity","strokeOpacity","strokeLinecap","strokeDashArray","lineCap","initialSpeed","dataChangeSpeed","shouldClipToGrid","bindEventsOnPaths","drawShadow","L","I","resized","T","dashArray","drawPath","cuid","enabledOnSeries","pathMouseEnter","pathMouseLeave","pathMouseDown","animatePathsGradually","hexToRgba","gradient","at","gradientUnits","fx","fy","getTextRects","textAnchor","foreColor","isPlainText","getTextBasedOnMaxWidth","tspan","newLine","plain","pSize","shape","pRadius","drawRect","pointFillColor","pointFillOpacity","pointStrokeColor","pointStrokeWidth","pointStrokeOpacity","drawCircle","dataPointMouseEnter","seriesIndex","dataPointIndex","isTouchDevice","dataPointMouseLeave","allowMultipleDataPointsSelection","members","dataPointSelection","getBBox","drawText","getComputedTextLength","getSubStringLength","xaxis","convertedCatToNumeric","minX","discrete","sizeOffset","largestSize","seriesTotals","seriesX","seriesPercent","stackedSeriesTotals","yRange","isMultipleYAxis","minYArr","maxYArr","minY","maxY","xRange","zRange","maxZ","minZ","initialMaxX","initialMinX","MIN_VALUE","hasNegs","yRatio","invertedYRatio","zRatio","xRatio","initialXRatio","invertedXRatio","baseLineInvertedY","baseLineY","baseLineX","seriesLog","yaxis","logarithmic","getLogVal","logBase","invalidLogScale","getBaseLog","yLogRatio","logYRange","comboBarCount","extendYAxis","annotations","extendYAxisAnnotations","extendXAxisAnnotations","extendPointAnnotations","annoCtx","orientation","baseEl","graphics","rotateAroundCenter","barPadForNumericAxis","borderRadius","background","addBackgroundToAnno","mouseEnter","mouseLeave","invertAxis","categoryLabels","yAxisIndex","marker","reversed","inversedReversedAxis","dataFormatXNumeric","getStringX","getX1X2","drawLine","offsetX","rel","setOrientations","addXaxisAnnotation","getY1Y2","_getYAxisAnnotationWidth","addYaxisAnnotation","strokeColor","radius","drawMarker","customSVG","addImage","appendTo","addPointAnnotation","shortMonths","shortDays","toolbar","exportToSVG","exportToPNG","exportToCSV","selectionZoom","pan","yAxis","showAlways","showForNullSeries","seriesName","opposite","forceNiceScale","decimalsInFloat","align","rotate","colors","axisBorder","axisTicks","crosshairs","pointAnnotation","yAxisAnnotation","xAxisAnnotation","texts","images","shapes","locales","defaultLocale","beforeMount","mounted","updated","mouseMove","xAxisLabelClick","legendClick","markerClick","beforeZoom","beforeResetZoom","zoomed","brushScrolled","parentHeightOffset","redrawOnParentResize","redrawOnWindowResize","sparkline","brush","autoScaleYaxis","stacked","stackType","tools","zoomin","zoomout","customIcons","csv","columnDelimiter","headerCategory","headerValue","toDateString","png","svg","autoSelected","zoomedArea","plotOptions","area","fillTo","bar","barHeight","distributed","borderRadiusApplication","borderRadiusWhenStacked","rangeBarOverlap","rangeBarGroupRows","hideZeroBarsWhenGrouped","isDumbbell","dumbbellColors","isFunnel","isFunnel3d","backgroundBarColors","backgroundBarOpacity","backgroundBarRadius","dataLabels","maxItems","hideOverflowingLabels","bubble","zScaling","minBubbleRadius","maxBubbleRadius","candlestick","upward","downward","wick","useFillColor","boxPlot","upper","lower","heatmap","enableShades","shadeIntensity","reverseNegativeShade","useFillColorAsStroke","colorScale","inverse","treemap","radialBar","inverseOrder","startAngle","endAngle","hollow","imageWidth","imageOffsetX","imageOffsetY","imageClipped","pie","customScale","expandOnClick","minAngleToShowLabel","donut","polarArea","rings","spokes","connectorColors","radar","polygons","strokeColors","shade","gradientToColors","inverseColors","opacityFrom","opacityTo","stops","colorStops","forecastDataPoints","showForSingleSeries","showForZeroSeries","horizontalAlign","tooltipHoverFormatter","customLegendItems","useSeriesColors","fillColors","customHTML","itemMargin","onItemClick","toggleDataSeries","onItemHover","highlightDataSeries","onDblClick","showNullDataPoints","noData","verticalAlign","curve","shared","followCursor","intersect","custom","fillSeriesColor","onDatasetHover","fixed","overwriteCategories","rotateAlways","hideOverlappingLabels","showDuplicates","datetimeUTC","datetimeFormatter","second","tickPlacement","colorFrom","colorTo","palette","monochrome","shadeTo","isBarHorizontal","xAxisAnnotations","yAxisAnnotations","pointsAnnotations","xDivision","dataPoints","axisCharts","drawYAxisAnnotations","drawXAxisAnnotations","drawPointAnnotations","elGraphical","annotationsBackground","addText","addAnnotationExternal","pushToMemory","contextMethod","memory","methodsToExec","randomId","listToArray","months31","months30","daysCntOfYear","getTimeStamp","getUTCDay","minMillisecond","maxMillisecond","minSecond","maxSecond","minMinute","maxMinute","minHour","maxHour","minMonth","maxMonth","minYear","maxYear","determineDaysOfMonths","isLeapYear","monthMod","tooltipKeyFormat","yValueDecimal","xaxisTooltipFormatter","defaultGeneralFormatter","ttKeyFormatter","ttZFormatter","legendFormatter","xLabelFormatter","ttVal","yLabelFormatters","xyCharts","defaultYFormatter","yAxisScale","seriesNames","niceMax","niceMin","isTimeline","seriesRangeStart","seriesRangeEnd","xLabelFormat","ylabel","tooltipLabels","getFormatters","yLbFormatter","hideYAxis","_getBoxTooltip","seriesCandleO","seriesCandleH","seriesCandleM","seriesCandleL","seriesCandleC","responsiveOverride","chartType","extendAnnotations","funnel","stackedBars","stacked100","dumbbell","checkForDarkTheme","Apex","checkForCatToNumericXAxis","handleUserInputErrors","convertCatToNumeric","extendArray","seriesRange","seriesGoals","seriesZ","seriesColors","seriesXvalues","seriesYvalues","hasXaxisGroups","hasSeriesGroups","seriesGroups","timescaleLabels","noLabelsProvided","resizeTimer","selectionResizeTimer","pointsArray","dataLabelsRects","isXNumeric","skipLastTimelinelabel","skipFirstTimelinelabel","isDataXYZ","isMultiLineX","minXDiff","xAxisScale","xAxisTicksPositions","yLabelsCoords","yTitleCoords","padHorizontal","xTickAmount","chartID","clicked","radarPolygons","isDirty","isExecCalled","initialConfig","initialSeries","lastXAxis","lastYAxis","columnSeries","allSeriesCollapsed","collapsedSeries","collapsedSeriesIndices","ancillaryCollapsedSeries","ancillaryCollapsedSeriesIndices","risingSeries","capturedSeriesIndex","capturedDataPointIndex","goldenPadding","ignoreYAxisIndexes","yAxisSameScaleIndices","radialSize","zoomEnabled","panEnabled","selectionEnabled","lastClientPosition","visibleXRange","SVGNS","svgWidth","svgHeight","previousPaths","allSeriesHasEqualX","lastDrawnDataLabelsIndexes","hasNullValues","rotateXLabels","defaultLabels","LINE_HEIGHT_RATIO","xAxisLabelsHeight","xAxisGroupLabelsHeight","xAxisLabelsWidth","yAxisLabelsWidth","scaleX","scaleY","translateYAxisX","yAxisWidths","translateXAxisY","translateXAxisX","globalVars","initGlobalVars","R","createElementNS","setAttrs","patternID","patternUnits","setAttributeNS","xlink","preserveAspectRatio","elDefs","seriesNumber","getSeriesIndex","getFillColors","fillType","getFillType","getOpacityFromRGBA","handlePatternFill","fillConfig","patternFill","defaultColor","handleGradientFill","clippedImgArea","solid","drawPattern","shadeColor","rgb2hex","gradientFrom","gradientTo","drawGradient","H","getMarkerConfig","setSelectionFilter","addEvents","finishRadius","getMarkerStyle","pointShape","pointStrokeDashArray","initialAnim","dynamicAnim","pointsPos","elParent","drawPoint","fillPath","animateMarker","animateCircle","O","textRects","drawnextLabel","isRangeStart","centerTextInBubble","plotDataLabelsText","offsetCorrection","dataLabelsConfig","alwaysDrawDataLabel","dataLabelsCorrection","addBackgroundToDataLabel","legendInactiveClass","getSeriesByName","isSeriesHidden","legendHelpers","emptyCollapsedSeries","updateHelpers","revertDefaultAxisMinMax","_updateSeries","handlePrevBubbleScatterPaths","filteredSeriesX","W","twoDSeries","threeDSeries","twoDSeriesX","coreUtils","isFormatXY","isFormat2DArray","activeSeriesIndex","getActiveConfigSeriesIndex","parseNumber","goals","isValidDate","isRangeData","fallbackToCategory","handleRangeDataFormat","rangeUniques","overlaps","rangeName","handleCandleStickBoxDataFormat","isRangeBar","isComboCharts","handleRangeData","isMultiFormat","handleFormat2DArray","handleFormatXY","handleCandleStickBoxData","convertCatToNumericXaxis","_generateExternalLabels","excludeCollapsedSeriesInYAxis","resetGlobals","isMultipleY","parseDataAxisCharts","getLargestSeries","parseDataNonAxisCharts","setNullSeriesToZeroValues","getSeriesTotals","getStackedSeriesTotals","getPercentSeries","handleExternalLabelsData","getCategoryLabels","timeScale","textRect","isBold","isSeriesNull","pushExtraColors","G","getAttributeNS","isIE11","scaleSvgNode","XMLSerializer","serializeToString","fixSvgStringForIe11","cleanup","getSvgString","elWrap","fillStyle","fillRect","canvg","Canvg","ignoreClear","ignoreDimensions","msToBlob","imgURI","triggerDownload","svgUrl","msSaveOrOpenBlob","lineDelimiter","elgrid","axesUtils","xaxisLabels","drawnLabels","drawnLabelsRects","offY","isCategoryBarHorizontal","xaxisFontSize","xaxisFontFamily","xaxisForeColors","xaxisBorderWidth","xaxisBorderHeight","drawXAxisLabelAndGroup","elGridBorders","checkLabelBasedOnTickamount","checkForOverflowingLabels","xAxisHeight","labelIndex","getYAxisForeColor","drawYAxisTicks","placeTextWithEllipsis","renderGrid","drawGridArea","elGridRectMask","elGridRectMarkerMask","elForecastMask","elNonForecastMask","elGridRect","elGridRectMarker","xCount","_drawGridLine","drawXaxisTicks","elg","xC","_drawGridLines","elgridLinesV","elgridLinesH","_drawXYLines","_drawInvertedXYLines","drawGridBands","xAxisTickWidth","_drawGridBandRect","_adjustTicksForSmallRange","linearScale","logarithmicScale","logarithmicScaleNice","niceScale","similarIndex","alreadyExists","setYScaleForIndex","sameScaleInMultipleAxes","U","setYRange","setXRange","setZRange","isFloat","noExponents","lowestY","highestY","getMinYMaxY","_setStackedMinMax","setMultipleYScales","setXScale","_handleSingleDataPoint","_getMinXDiff","setUTCDate","axisFontFamily","xAxisoffX","isYAxisHidden","checkForReversedLabels","inversedYAxisTitleText","inversedYAxisBorder","xPaddingForYAxisTitle","xPos","padd","multipleYs","documentEvent","chartClass","eventList","setupBrushHandler","J","drawYaxisInversed","drawXaxisInversed","drawXaxis","drawYaxis","K","breakpoint","extendArrayProps","overrideResponsiveOptions","tt","isColorFn","isHeatmapDistributed","isBarDistributed","setDefaultColors","predefined","et","drawTitleSubtitle","dCtx","elLegendWrap","lgRect","getxAxisTimeScaleLabelsCoords","lgWidthForSideLegends","getLargestStringFromArr","dimHelpers","getLargestStringFromMultiArr","yAxisWidth","gridPad","overlappingXLabels","xPadLeft","xPadRight","yAxisWidthLeft","yAxisWidthRight","st","isSparkline","getTitleSubtitleCoords","dimYAxis","dimXAxis","dimGrid","getLegendsRect","setDimensionsForAxisCharts","setDimensionsForNonAxisCharts","gridPadFortitleSubtitle","gridPadForColumnsInNumericAxis","getyAxisLabelsCoords","getyAxisTitleCoords","getTotalYAxisWidth","getxAxisLabelsCoords","getxAxisGroupLabelsCoords","getxAxisTitleCoords","conditionalChecksForAxisCoords","xAxisWidth","additionalPaddingXLabels","setGridXPosForDualYAxis","setYAxisXPosition","nt","lgCtx","createTextNode","clwh","clww","elLegendForeign","getLegendStyles","csi","riseCollapsedSeries","hideSeries","seriesEl","printDataLabelsInner","baseVal","_getSeriesBasedOnCollapsedState","lt","onLegendClick","onLegendHovered","isBarsDistributed","drawLegends","appendToForeignObject","legendAlignHorizontal","legendAlignVertical","getSeriesTotalByIndex","seriesHaveSameValues","getLegendBBox","setLegendWrapXY","highlightRangeInSeries","toggleSeriesOnHover","ht","selectedClass","localeValues","elZoom","elZoomIn","elZoomOut","elPan","elSelection","elZoomReset","elMenuIcon","elMenu","elCustomIcons","moveIndexInArray","_createHamburgerMenu","addToolbarEventListeners","elMenuItems","handleZoomReset","toggleZoomSelection","handleZoomIn","handleZoomOut","togglePanning","toggleMenu","handleDownload","getSyncedCharts","toggleOtherControls","getToolbarIconsReference","_getNewMinXMaxX","disableZoomIn","zoomUpdateOptions","disableZoomOut","getBeforeZoomRange","autoScaleY","_updateOptions","zoomCallback","exportToPng","dragged","startX","endX","dragX","startY","endY","dragY","moveDirection","xyRatios","zoomRect","selectionRect","gridRect","slDraggableRect","selectionDragging","preselectedSelection","hoverArea","svgMouseEvents","shiftWasPressed","enableZoomPanFromToolbar","panDragging","zoomtype","selectionDrawing","selectionDrawn","delayedPanScrolled","hideSelectionRect","makeSelectionRectDraggable","selectize","pointSize","pointType","constraint","drawSelectionRect","panScrolled","updateScrolledChart","ttCtx","elGrid","hasBars","getElGrid","closestInMultiArray","closestInArray","capturedSeries","hoverX","hoverY","getFirstActiveXArray","getElMarkers","getElBars","allTooltipSeriesGroups","gt","tooltipUtil","ttItems","handleCustomTooltip","toggleActiveInactiveSeries","getValuesToPrint","printLabels","getElTooltip","tooltipRect","ttWidth","ttHeight","xVal","zVal","xAxisTTVal","getSeriesName","yLbTitleFormatter","attrs","DOMHandling","goalVals","pColor","showTooltipTitle","tooltipTitle","isXAxisTooltipEnabled","xaxisTooltipText","toggleAllTooltipSeriesGroups","getElXCrosshairs","xcrosshairsWidth","moveXAxisTooltip","ycrosshairs","ycrosshairsHidden","xaxisTooltip","xaxisOffY","yaxisTTEls","resetPointsSize","enlargeCurrentPoint","moveDynamicPointOnHover","getHoverMarkerSize","moveXCrosshairs","fixedTooltip","moveTooltip","getAllMarkers","dataPointsDividedWidth","tooltipPosition","newPointSize","oldPointSize","isVerticalGroupedRangeBar","getAttr","drawSeriesTexts","findAncestor","showOnIntersect","getBarTooltipXY","dataPointsDividedHeight","barWidth","xt","yaxisOffX","yaxisTooltip","yaxisTooltipText","yaxisTooltips","moveYCrosshairs","moveYAxisTooltip","tConfig","axesTooltip","isBarShared","lastHoverTime","drawXaxisTooltip","drawYaxisTooltip","setXCrosshairWidth","handleYCrosshair","getXAxisTicksPositions","drawDynamicPoints","legendLabels","createTTElements","addSVGEvents","seriesBound","tooltipEl","tooltipY","tooltipX","addPathsEventListeners","addDatapointEventsListeners","onSeriesHover","seriesHover","seriesHoverTimeout","getGroupedCharts","seriesHoverByContext","chartCtx","drawFixedTooltipRect","axisChartsTooltips","nonAxisChartsTooltips","handleMouseOut","handleStickyTooltip","handleHeatTreeTooltip","handleBarTooltip","hasMarkers","handleMarkerTooltip","drawYaxisTooltipText","decodeURIComponent","getNearestValues","handleStickyCapturedSeries","isXoverlap","isInitialSeriesSameLen","deactivateHoverFilter","enlargePoints","moveDynamicPointsOnHover","barSeriesHeight","getBarsHeight","moveStickyTooltipOverBars","moveMarkers","vt","barCtx","totalFormatter","groupIndex","barXPosition","barYPosition","visibleSeries","renderedPath","barOptions","bcx","bcy","dataLabelsX","dataLabelsY","barDataLabelsConfig","barTotalDataLabelsConfig","offX","calculateBarsDataLabelsPosition","calculateColumnsDataLabelsPosition","drawCalculatedDataLabels","drawTotalDataLabels","totalDataLabelsX","totalDataLabelsY","totalDataLabelsAnchor","getStackedTotalDataLabel","totalDataLabels","isReversed","lastActiveBarSerieIndex","mt","totalItems","seriesLen","visibleI","visibleItems","zeroSerieses","checkZeroSeries","yaxisIndex","yDivision","zeroH","zeroW","prevY","prevX","prevYF","prevXF","prevYVal","prevXVal","xArrj","xArrjF","xArrjVal","yArrj","yArrjF","yArrjVal","isNullValue","elSeries","seriesGroup","columnWidthOffset","getPreviousPath","shouldApplyRadius","roundPathCorners","barHeightOffset","getXForValue","getYForValue","strokeHeight","strokeLineCap","goalX","goalY","prevPaths","currPaths","pathArr","getBarSeriesIndices","barHelpers","getLogSeries","getLogYRatios","initVariables","addCollapsedClassToSeries","initialPositions","getStrokeWidth","bc","drawBarPaths","drawColumnPaths","getPathFillColor","drawBarShadow","drawGoalLine","renderSeries","pathFill","elDataLabelsWrap","elGoalsMarkers","elBarShadows","lineFill","renderPaths","handleBarDataLabels","getBarpaths","barBackground","getGoalValues","getColumnPaths","wt","initializeStackedPrevVars","groupCtx","initializeStackedXYVars","drawStackedBarPaths","drawStackedColumnPaths","kt","candlestickOptions","boxOptions","isBoxPlot","drawHorizontalBoxPaths","drawVerticalBoxPaths","getOHLCValue","At","determineColor","percent","colorProps","St","rectRadius","negRange","checkColorRange","getShadeColor","animateHeatMap","animateHeatColor","calculateDataLabels","animateRect","Ct","Lt","animBeginArr","animDur","donutDataLabels","lineColorArr","defaultSize","centerY","centerX","fullAngle","initialAngle","donutSize","sliceLabels","sliceSizes","prevSectorAngleArr","negToZero","drawPolarElements","drawArcs","renderInnerDataLabels","hollowSize","getChangedPath","polarToCartesian","animatePaths","prevStartAngle","prevEndAngle","animateStartingPos","shouldSetPrevPaths","dur","pieClicked","revertDataLabelsInner","animateArc","getPiePath","me","angle","during","isTrack","drawYAxisTexts","drawSpokes","printInnerLabels","makeSliceOut","printLabel","Pt","isLog","dataRadiusOfPercent","dataRadius","angleArr","yaxisLabelsTextsPos","dataPointsLen","disAngle","yaxisLabels","getDataPointsPos","createPaths","linePathsTo","linePathsFrom","areaPathsFrom","areaPathsTo","drawPolygons","drawXAxisTexts","getPolygonPos","getTextPos","newX","newY","It","totalAngle","trackStartAngle","trackEndAngle","radialDataLabels","drawTracks","colorArr","elHollow","drawHollowImage","drawHollow","loaded","Tt","rangeBarOptions","rangeBar","detectOverlappingBars","srty","initPositions","drawRangeBarPaths","srtx","drawRangeColumnPaths","getRangeValue","Mt","lineCtx","categoryAxisCorrection","pathFromLine","pathFromArea","appendPathFrom","lineYPosition","prevSeriesY","zeroY","Xt","pointsChart","scatter","noNegatives","lineHelpers","sameValueSeriesFix","_initSerieVariables","determineFirstPrevY","pX","pY","pathsFrom","_calculatePathsFrom","prevY2","linePaths","areaPaths","_iterateOverDataPoints","iterations","linePath","_handlePaths","elPointsMain","areaBottomY","checkPreviousPaths","areaPath","calculatePoints","_createPaths","handleNullDataPoints","_handleMarkersAndLabels","draw","plotChartMarkers","drawDataLabel","TreemapSquared","xoffset","yoffset","shortestEdge","getCoordinates","cutArea","zt","Et","Yt","animateTreemap","getFontSize","rotateToFitLabel","Rt","timeScaleArray","determineInterval","getTimeUnitsfromTimestamp","firstVal","currentMillisecond","currentSecond","currentMinute","currentHour","currentMonthDate","currentMonth","currentYear","daysWidthOnXAxis","hoursWidthOnXAxis","minutesWidthOnXAxis","secondsWidthOnXAxis","numberOfSeconds","numberOfMinutes","numberOfHours","numberOfDays","numberOfMonths","numberOfYears","tickInterval","generateYearScale","generateMonthScale","generateDayScale","generateHourScale","generateMinuteScale","generateSecondScale","formatDates","removeOverlappingTS","plotCoords","determineRemainingDaysOfYear","determineDaysOfYear","_getYear","createRawDateString","parseDateWithTimezone","Ht","Doc","setSVGDimensions","getDimensions","drawXCrosshairs","drawYCrosshairs","calculateTimeScaleTicks","recalcDimensionsBasedOnFormat","getCalculatedRatios","getChartByID","brushSource","updateSourceChart","Dt","getPreviousPaths","_extendSeries","xmlns","svgjs","did","inherit","invent","adopt","SVGElement","Nested","Gradient","nested","poly","polyline","native","numberAndUnit","transforms","isHex","isRgb","isCss","isImage","delimiter","hyphen","pathLetters","isPathLetter","numbersWithDots","dots","filterSVGElements","Color","toHex","toRgb","brightness","morph","isColor","PointArray","PathArray","Point","toJSON","plus","minus","times","relative","_stroke","writeDataToDom","after","put","putIn","hasClass","toggleClass","matchesSelector","oMatchesSelector","Parent","each","MorphObj","Situation","reversing","ease","loops","FX","_target","situations","situation","lastPos","absPos","_speed","timeToAbsPos","absPosToTime","startAnimFrame","stopAnimFrame","startCurrent","initAnimations","dequeue","initialTransformation","matrixify","clearQueue","clearCurrent","atEnd","_callStart","eased","eachAt","Matrix","extract","matrix","morphArray","Box","BBox","Shape","atan2","transformedX","transformedY","rotation","createSVGMatrix","ctm","getCTM","screenCTM","getScreenCTM","nodeValue","rebuild","untransform","toParent","toDoc","Transformation","inversed","Translate","cssText","hasChildNodes","_defs","ungroup","Defs","ViewBox","handlerMap","listenerId","_svgjsListenerId","Stop","Pattern","Use","Rect","Circle","Ellipse","ellipse","Line","toLine","Polyline","Polygon","_array","Path","_loaded","ratio","_error","_rebuild","_build","newLined","textPath","Tspan","dx","dy","TextPath","getTotalLength","pointAt","getPointAtLength","remember","forget","_memory","define","exports","backgroundAlpha","autoSetIn","BlendEffect","colorMatrix","ColorMatrixEffect","convolveMatrix","ConvolveMatrixEffect","ComponentTransferEffect","CompositeEffect","FloodEffect","OffsetEffect","ImageEffect","MergeEffect","GaussianBlurEffect","morphology","MorphologyEffect","diffuseLighting","DiffuseLightingEffect","displacementMap","DisplacementMapEffect","specularLighting","SpecularLightingEffect","tile","TileEffect","turbulence","TurbulenceEffect","Effect","in","ParentEffect","ChildEffect","in2","kernelMatrix","xChannelSelector","yChannelSelector","numOctaves","stitchTiles","baseFrequency","MergeNode","surfaceScale","diffuseConstant","kernelUnitLength","specularExponent","distantLight","azimuth","elevation","pointLight","spotLight","pointsAtX","pointsAtY","pointsAtZ","mergeNode","sepiatone","reflection","acos","tan","transformPoint","matrixTransform","rbox","createSVGPoint","startPoints","snapToGrid","pointSelection","rectSelection","pointsList","rb","lb","pointCoord","pointCoords","pointsExclude","deepSelect","selectPoints","selectRect","drawPoints","getPointArray","classPoints","updatePointSelection","updateRectSelection","rotationPoint","classRect","observerInst","lastUpdateCall","_extractPosition","calc","checkAspectRatio","snapToAngle","constraintToBox","saveAspectRatio","Ot","publicMethods","axes","localization","formatters","titleSubtitle","zoomPanSelection","Nt","isUpdating","clearDomElements","killSVG","Wt","Bt","initModules","windowResizeHandler","_windowResizeHandler","parentResizeHandler","_parentResizeCallback","_chartInstances","setLocale","DOCUMENT_FRAGMENT_NODE","prepend","mount","checkResponsiveConfig","setupElements","checkComboSeries","handleNoData","setupEventHandlers","parseData","setGlobalMarkerSize","setLabelFormatters","hasAllSeriesEqualX","coreCalculations","heatmapLabelFormatters","getLargestMarkerSize","xySettings","createGridMask","plotChartType","bringForward","dataLabelsBackground","shiftGraphPosition","elGraph","drawGrid","drawImageAnnos","drawTextAnnos","drawAxis","xAxisLabelCorrections","setYAxisTextAlignments","yAxisTitleRotate","drawAxesAnnotations","drawTooltip","createToolbar","resizeNonAxisCharts","resetSeries","forceXAxisUpdate","forceYAxisUpdate","clearPreviousPaths","updateThemeOptions","toggleSeries","showSeries","addXaxisAnnotationExternal","addYaxisAnnotationExternal","addPointAnnotationExternal","clearAnnotations","removeAnnotation","getSeriesTotalsXRange","toggleDataPointSelection","setCurrentLocaleValues","_windowResize","$apply","$call","$reflectApply","$TypeError","$actualApply","GetIntrinsic","callBindBasic","$indexOf","allowMissing","intrinsic","default","colorName","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","conversions","createCommonjsModule","reverseKeywords","hsl","hsv","hwb","cmyk","xyz","lab","lch","keyword","ansi16","ansi256","hcg","apple","comparativeDistance","rdif","gdif","bdif","diffc","currentClosestKeyword","currentClosestDistance","t1","t2","t3","smin","lmin","sl","vmin","wh","bl","z2","ansi","rem","colorString","integer","hue","chroma","mg","deriveBFS","fromModel","graph","buildGraph","adjacents","adjacent","wrapConversion","toModel","cur","conversion","wrapRounded","wrappedFn","wrapRaw","colorConvert","colorName$1","getRgba","getHsla","getRgb","rgba","getHsl","hsla","getHwb","getAlpha","vals","hexString","hexDouble","rgbString","alpha","rgbaString","percentString","percentaString","hslString","hslaString","hwbString","reverseNames","hexAlpha","setValues","lightness","whiteness","setSpace","rgbArray","hslArray","hsvArray","hwbArray","cmykArray","rgbaArray","hslaArray","setChannel","saturation","saturationv","blackness","rgbNumber","luminosity","lum","chan","contrast","color2","lum1","lum2","contrastRatio","dark","light","lighten","darken","saturate","desaturate","whiten","blacken","greyscale","clearer","opaquer","degrees","mix","mixinColor","color1","w1","w2","spaces","maxes","space","capped","chans","sname","svalues","chartjsColor","isNullOrUndef","valueOrDefault","valueAtIndexOrDefault","loopable","arrayEquals","ilen","v0","v1","klen","_merger","tval","sval","_mergerIf","mergeIf","merger","dst","inherits","ChartElement","Surrogate","__super__","_deprecated","helpers_core","callCallback","getValueOrDefault","getValueAtIndexOrDefault","effects","linear","easeInSine","easeOutSine","easeInOutSine","easeInExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","asin","easeInOutElastic","easeInBack","easeOutBack","easeInOutBack","easeInBounce","easeOutBounce","easeInOutBounce","helpers_easing","easingEffects","RAD_PER_DEG","DOUBLE_PI","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","exports$1","clearRect","roundedRect","arc","xOffset","yOffset","cornerRadius","rad","restore","SQRT1_2","_isPointInArea","epsilon","clipArea","clip","unclipArea","flip","stepped","steppedLine","midpoint","tension","bezierCurveTo","controlPointPreviousX","controlPointNextX","controlPointPreviousY","controlPointNextY","helpers_canvas","drawRoundedRectangle","defaultFontColor","defaultFontFamily","defaultFontSize","defaultFontStyle","defaultLineHeight","showLines","core_defaults","helpers_options","toLineHeight","toPadding","_parseFont","globalDefaults","font","family","toFontString","cacheable","exports$2","_factorize","exponent","LOG10E","powerOf10","helpers_math","helpers$1","math","getRtlAdapter","rectX","textAlign","xPlus","leftForLtr","itemWidth","_itemWidth","overrideTextDirection","getPropertyPriority","prevTextDirection","restoreTextDirection","_type","_view","_model","_start","interpolate","actual","c0","c1","core_element","exports$3","numSteps","onAnimationProgress","onAnimationComplete","core_animation","onProgress","core_animations","addAnimation","lazy","animating","cancelAnimation","requestAnimFrame","startDigest","advance","nextStep","arrayEvents","unlistenArrayEvents","_chartjs","DatasetController","datasetIndex","datasetElementType","dataElementType","_datasetElementOptions","_dataElementOptions","linkScales","getMeta","updateIndex","dataset","getDataset","scalesOpts","xAxisID","yAxisID","getDatasetMeta","getScaleForId","scaleID","_getValueScaleId","_getIndexScaleId","_getValueScale","_getIndexScale","_update","createMetaDataset","_chart","_datasetIndex","createMetaData","_index","addElementAndReset","updateElement","buildOrUpdateElements","isExtensible","listenArrayEvents","resyncElements","_configure","_cachedDataOpts","easingValue","_resolveDatasetElementOptions","_resolveDataElementOptions","readKey","datasetOpts","elementOptions","dataIndex","removeHoverStyle","$previousStyle","setHoverStyle","getHoverColor","hoverBackgroundColor","hoverBorderColor","hoverBorderWidth","_removeDatasetHoverStyle","_setDatasetHoverStyle","hoverOptions","numMeta","numData","insertElements","onDataPush","onDataPop","onDataShift","onDataSplice","onDataUnshift","core_datasetController","TAU","clipArc","pixelMargin","angleMargin","outerRadius","innerRadius","drawBorder","vm","borderAlign","lineJoin","fullCircles","drawFullCircleBorders","element_arc","inLabelRange","hoverRadius","chartX","chartY","pointRelativePosition","getAngleFromPoint","withinRadius","getCenterPoint","halfAngle","halfRadius","getArea","centreAngle","rangeFromCentre","circumference","valueOrDefault$1","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","capBezierPoints","element_line","currentVM","spanGaps","_children","globalOptionLineElements","lastDrawnIndex","_loop","previousItem","setLineDash","lineDashOffset","valueOrDefault$2","defaultColor$1","hitRadius","element_point","inXRange","inYRange","chartArea","defaultColor$2","getBarBounds","half","swap","v2","parseBorderWidth","maxW","maxH","parseBorderSkipped","borderSkipped","bounds","element_rectangle","rects","boundingRects","border","Rectangle","Arc","deprecated","valueOrDefault$3","computeFitCategoryTraits","ruler","thickness","stackCount","curr","computeMinSampleSize","_length","getTicks","getPixelForTick","categoryPercentage","chunk","offsetGridLines","controller_bar","scaleOpts","minBarLength","maxBarThickness","_ruler","getRuler","_xScale","_yScale","datasetLabel","_updateElementGeometry","vscale","getBasePixel","vpixels","calculateBarValuePixels","ipixels","calculateBarIndexPixels","_getStacks","metasets","_getMatchingVisibleMetas","stacks","getStackCount","getStackIndex","getPixelForValue","_startPixel","_endPixel","imeta","ivalue","stackLength","_parseValue","computeFlexCategoryTraits","stackIndex","indexOpts","valueOpts","valueOrDefault$4","resolve$1","xLabel","yLabel","controller_bubble","xScale","yScale","dsIndex","getPixelForDecimal","valueOrDefault$5","PI$1","DOUBLE_PI$1","HALF_PI$1","animateRotate","animateScale","legendCallback","listItem","outerHTML","generateLabels","legendItem","cutoutPercentage","tooltipItem","dataLabel","controller_doughnut","getRingIndex","ringIndex","isDatasetVisible","ratioX","ratioY","arcs","cutout","chartWeight","_getRingWeight","contains0","contains90","contains270","getMaxBorderWidth","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animationOpts","calculateCircumference","hoverWidth","ringWeightOffset","dataSetIndex","horizontalBar","controller_horizontalBar","valueOrDefault$6","resolve$2","isPointInArea","scaleClip","halfBorderWidth","tickOpts","controller_line","showLine","_showLine","lineTension","_scale","updateBezierControlPoints","lineModel","calculatePointY","lineOptions","toClip","defaultClip","dsMeta","stackedRightValue","rightValue","sumPos","sumNeg","getRightValue","_getSortedVisibleDatasetMetas","controlPoints","capControlPoint","cubicInterpolationMode","splineCurveMonotone","splineCurve","resolve$3","angleLines","circular","pointLabels","controller_polarArea","starts","_starts","angles","_angles","_updateRadius","countVisibleElements","_computeAngle","minSize","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getDistanceFromCenterForValue","resetRadius","doughnut","controller_pie","valueOrDefault$7","controller_radar","pointPosition","getPointPositionForValue","getRelativePosition","parseVisibleItems","jlen","getIntersectItems","getNearestItems","distanceMetric","minDistance","POSITIVE_INFINITY","nearestItems","getDistanceMetricForAxis","useX","pt1","pt2","indexMode","core_interaction","modes","single","nearest","intersectsItem","filterByPosition","where","sortByWeight","getCombinedMax","maxPadding","updateDims","getPadding","boxPadding","outerWidth","outerHeight","getMargins","marginForPositions","positions","fitBoxes","boxes","refit","refitBoxes","placeBoxes","userPadding","core_layouts","addBox","_layers","removeBox","layoutItem","buildLayoutBoxes","layoutBoxes","wrapBoxes","leftAndTop","rightAndBottom","verticalBoxes","horizontalBoxes","vBoxMaxWidth","hBoxMaxHeight","setLayoutDims","layouts","handleMaxPadding","updatePos","stylesheet","getCjsExportFromNamespace","EXPANDO_KEY","CSS_PREFIX","CSS_SIZE_MONITOR","CSS_RENDER_MONITOR","CSS_RENDER_ANIMATION","ANIMATION_START_EVENTS","EVENT_TYPES","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","readUsedSize","eventListenerOptions","nativeEvent","createDiv","addResizeListener","expando","resizer","createResizer","maxSize","shrink","_reset","maintainAspectRatio","watchForRender","renderProxy","animationName","reflow","removeResizeListener","unwatchForRender","platform_dom$2","disableCSSInjection","_ensureLoaded","injectCSS","containsStyles","acquireContext","initCanvas","renderHeight","renderWidth","initial","displayWidth","aspectRatio","displayHeight","releaseContext","proxies","fromNativeEvent","addEvent","removeEvent","core_plugins","_plugins","_cacheId","unregister","getAll","notify","descriptors","$plugins","_invalidate","core_scaleService","constructors","registerScaleType","scaleConstructor","scaleDefaults","getScaleConstructor","getScaleDefaults","updateScaleDefaults","additions","addScalesToLayout","valueOrDefault$8","getRtlHelper","titleFontStyle","titleSpacing","titleMarginBottom","titleFontColor","titleAlign","bodySpacing","bodyFontColor","bodyAlign","footerFontStyle","footerSpacing","footerMarginTop","footerFontColor","footerAlign","yPadding","xPadding","caretPadding","caretSize","multiKeyBackground","displayColors","beforeTitle","tooltipItems","labelCount","afterTitle","beforeBody","beforeLabel","labelColor","labelTextColor","afterLabel","afterBody","beforeFooter","afterFooter","positioners","eventPosition","nearestElement","distanceBetweenPoints","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","indexScale","valueScale","getLabelForIndex","getBaseModel","tooltipOpts","xAlign","yAlign","textDirection","_bodyFontFamily","bodyFontFamily","_bodyFontStyle","bodyFontStyle","_bodyAlign","bodyFontSize","_titleFontFamily","titleFontFamily","_titleFontStyle","titleFontSize","_titleAlign","_footerFontFamily","footerFontFamily","_footerFontStyle","footerFontSize","_footerAlign","legendColorBackground","getAlignedX","getBeforeAfterBodyLines","exports$4","_lastActive","getTitle","getBeforeBody","getBody","bodyItems","bodyItem","getAfterBody","getFooter","existingModel","_active","backgroundPoint","tooltipSize","caretX","caretY","labelColors","labelTextColors","_eventPosition","itemSort","getBackgroundPoint","paddingAndSize","radiusAndPadding","getTooltipSize","combinedBodyLength","titleLineCount","footerLineCount","widthPadding","maxLineWidth","measureText","fontString","determineAlignment","lf","olf","orf","yf","midX","midY","drawCaret","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","drawTitle","rtlHelper","textBaseline","fillText","drawBody","textColor","drawColorBoxes","xLinePadding","colorX","fillLineOfText","bodyAlignForCalculation","rtlColorX","strokeRect","drawFooter","drawBackground","quadraticCurveTo","globalAlpha","handleEvent","getElementsAtEventForMode","core_tooltip","valueOrDefault$9","mergeScaleConfig","slen","mergeConfig","nextAvailableScaleId","axesOpts","hasId","positionIsHorizontal","compare2Level","l1","l2","onHover","animationDuration","responsiveAnimationDuration","initConfig","_bufferedRender","instances","retinaScale","bindEvents","initToolTip","getMaximumWidth","getMaximumHeight","newSize","ensureScalesHaveIDs","scalesOptions","scaleOptions","xAxisOptions","yAxisOptions","buildOrUpdateScales","dtype","dposition","scaleType","scaleClass","mergeTicksOptions","hasUpdated","buildOrUpdateControllers","destroyDatasetMeta","resetElements","updateConfig","updateLayout","updateDatasets","lastActive","_bufferedRequest","_idx","updateDataset","animationObject","stepDecimal","easingFunction","layers","drawDatasets","_drawTooltip","_getSortedDatasetMetas","filterVisible","drawDataset","getElementAtEvent","getElementsAtEvent","getElementsAtXAxis","getDatasetAtEvent","_meta","generateLegend","unbindEvents","toBase64Image","_chartInstance","eventHandler","updateHoverStyle","bufferedRequest","core_controller","Controller","configMerge","scaleMerge","abstract","formats","startOf","endOf","_create","override","core_adapters","core_ticks","tickValue","logDelta","tickString","logTick","numExponential","toExponential","numDecimal","remain","valueOrDefault$a","getPixelForGridLine","validIndex","lineValue","computeLabelSizes","tickFonts","caches","tickFont","nestedLabel","widest","highest","widths","heights","major","minor","gc","valueAt","garbageCollect","gcLen","getTickMarkLength","drawTicks","tickMarkLength","getScaleLabelHeight","parseFontOptions","nestedOpts","fontColor","parseTickFontOptions","nonSkipped","ticksToFilter","filtered","spacing","majorStart","majorEnd","drawOnChartArea","zeroLineWidth","zeroLineColor","zeroLineBorderDash","zeroLineBorderDashOffset","minRotation","maxRotation","mirror","autoSkipPadding","labelOffset","Scale","zeroLineIndex","_ticks","_getLabels","xLabels","yLabels","beforeUpdate","margins","samplingEnabled","sampleSize","_labelSizes","_maxLabelLines","longestLabelWidth","longestTextCache","_gridLineItems","_labelItems","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","_convertTicksToLabels","sample","numItems","beforeCalculateTickRotation","calculateTickRotation","afterCalculateTickRotation","beforeFit","fit","afterFit","_ticksToDraw","_autoSkip","afterUpdate","reversePixels","_reversePixels","beforeTickToLabelConversion","convertTicksToLabels","afterTickToLabelConversion","labelSizes","maxLabelWidth","maxLabelHeight","tickWidth","maxLabelDiagonal","numTicks","labelRotation","_isVisible","_getLabelSizes","toDegrees","scaleLabelOpts","gridLineOpts","firstLabelSize","lastLabelSize","widestLabelSize","highestLabelSize","lineSpace","tickPadding","isRotated","angleRadians","toRadians","cosRotation","sinRotation","offsetRight","handleMargins","_getScaleLabel","getValueForPixel","getDecimalForPixel","getBaseValue","avgMajorSpacing","axisLength","ticksLimit","_tickSize","majorIndices","getMajorIndices","numMajorIndices","skipMajors","calculateSpacing","factors","factor","evenMajorSpacing","getEvenSpacing","optionTicks","rot","_computeGridLineItems","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","lineColor","ticksLength","axisWidth","axisHalfWidth","alignPixel","_alignPixel","alignBorderValue","_computeLabelItems","lineCount","textOffset","isMirrored","fonts","_drawGrid","firstLineWidth","lastLineWidth","_drawLabels","_drawTitle","scaleLabelX","scaleLabelY","scaleLabelFontColor","scaleLabelFont","scaleLabelPadding","halfLineHeight","tz","gz","_draw","core_scale","isNullOrUndef$1","scale_category","ticksOpts","minIndex","maxIndex","_startValue","_valueRange","valueCategory","_defaults","isNullOrUndef$2","scale_linearbase","handleTickRangeOptions","minSign","maxSign","getTickLimit","maxTicks","_computeTickLimit","handleDirectionalChanges","numericGeneratorOptions","fixedStepSize","generateTicks","generationOptions","dataRange","numSpaces","maxNumSpaces","rmin","rmax","niceNum","_decimalPlaces","almostWhole","almostEquals","ticksAsNumbers","_endValue","defaultConfig$1","stackData","getOrCreateStack","relativePoints","updateMinMax","scale_linear","hasStacks","NEGATIVE_INFINITY","stackValues","valueOrDefault$b","defaultConfig$2","nonNegativeOrDefault","scale_logarithmic","IDMatches","minNotZero","valuesPerStack","valuesForType","minVal","maxVal","generateTicks$1","significand","tickVal","endExp","endSignificand","lastTick","tickValues","_getFirstTickValue","_valueOffset","valueOrDefault$c","valueAtIndexOrDefault$1","resolve$4","defaultConfig$3","showLabelBackdrop","backdropColor","backdropPaddingY","backdropPaddingX","getTickBackdropHeight","measureLabelSize","longestText","determineLimits","getTextAlignForAngle","adjustPointPositionForLabelHeight","textSize","numberOrZero","scale_radialLinear","drawingArea","fitWithPointLabels","plFont","furthestLimits","furthestAngles","_pointLabelSizes","valueCount","getPointPosition","getIndexAngle","hLimits","vLimits","setReductions","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxTop","maxBottom","scalingFactor","distanceFromCenter","thisAngle","getBasePosition","angleLineOpts","drawPointLabels","pointLabelOpts","tickBackdropHeight","outerDistance","pointLabelPosition","pointLabelFontColor","drawRadiusLine","tickFontColor","deprecated$1","resolve$5","valueOrDefault$d","MIN_INTEGER","MIN_SAFE_INTEGER","MAX_INTEGER","INTERVALS","millisecond","common","quarter","UNITS","sorter","getMin","getMax","interpolate$1","table","skey","tkey","lookup","mid","toTimestamp","adapter","_adapter","determineUnitForAutoTicks","minUnit","capacity","ticksFromTimestamps","majorUnit","setMajorTicks","scale_time","adapters","displayFormats","timestamp","labelsAdded","timestamps","arrayUnique","_table","_timestamps","timeOpts","getLabelCapacity","distribution","unitStepSize","weekday","isoWeekday","_unit","determineUnitForFormatting","_majorUnit","determineMajorUnit","buildLookupTable","_offsets","computeOffsets","tooltipFormat","datetime","tickFormatFunction","majorFormat","nestedTickOpts","getPixelForOffset","_getLabelSize","tickLabelWidth","tickFontSize","getLabelWidth","exampleTime","exampleLabel","displayFormat","radialLinear","FORMATS","propagate","mappers","boundary","decodeFill","computeBoundary","computeCircularBoundary","computeLinearBoundary","scaleBottom","scaleTop","scaleZero","resolveTarget","createMapper","isDrawable","drawArea","curve0","curve1","len0","len1","doFill","mapper","p0","loopOffset","plugin_filler","afterDatasetsUpdate","$filler","beforeDatasetsDraw","getRtlHelper$1","noop$1","valueOrDefault$e","getBoxWidth","labelOpts","usePointStyle","boxWidth","onLeave","lineDash","Legend","legendHitBoxes","_hoveredItem","doughnutMode","beforeBuildLabels","buildLabels","afterBuildLabels","legendItems","labelFont","hitboxes","lineWidths","totalHeight","vPadding","columnHeights","currentColWidth","currentColHeight","lineDefault","legendHeight","legendWidth","alignmentOffset","itemHeight","textWidth","realX","SQRT2","drawLegendBox","halfFontSize","xLeft","yMiddle","_getLegendItemAt","hitBox","lh","hoveredItem","createNewLegendAndAttach","legendOpts","plugin_legend","beforeInit","afterEvent","noop$2","Title","titleX","titleY","fontOpts","createNewTitleBlockAndAttach","titleOpts","titleBlock","parseMaxStyle","styleValue","parentProperty","valueInPixels","isConstrainedValue","getConstraintDimension","domNode","maxStyle","percentageProperty","_getParentNode","constrainedNode","constrainedContainer","hasCNode","hasCContainer","infinity","collection","findNextWhere","arrayToSearch","findPreviousWhere","rounded","radians","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","aliasPixel","pixelWidth","currentDevicePixelRatio","halfWidth","firstPoint","middlePoint","afterPoint","d01","d12","s01","s12","fa","EPSILON","pointBefore","pointCurrent","pointAfter","alphaK","betaK","tauK","squaredMagnitude","pointsWithTangents","deltaK","mK","pointsLen","slopeDeltaX","fraction","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","getConstraintWidth","getConstraintHeight","_calculatePadding","parentDimension","cw","ch","currentStyle","forceRatio","pixelRatio","pixelSize","arrayOfThings","thing","nestedThing","longest","numberOfLabelLines","numberOfLines","CanvasGradient","colorValue","CanvasPattern","core_helpers","_adapters","animationService","Interaction","scaleService","Ticks","Tooltip","pluginService","PluginBase","canvasHelpers","layoutService","LinearScaleBase","klass","hasProtoAccessor","callBind","gOPD","$Object","$getPrototypeOf","$defineProperty","EvalError","RangeError","SyntaxError","URIError","__WEBPACK_AMD_DEFINE_FACTORY__","HTMLAnchorElement","webkitURL","autoBom","safari","onloadend","args_1","toStr","concatty","bound","arrLike","slicy","boundLength","boundArgs","joiner","joiny","Empty","implementation","$Error","$EvalError","$RangeError","$ReferenceError","$SyntaxError","$URIError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","ThrowTypeError","hasSymbols","getProto","$ObjectGPO","$ReflectGPO","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt","BigInt64Array","BigUint64Array","DataView","eval","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","getBaseIntrinsic","intrinsicName","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","reflectGetProto","originalGetProto","getDunderProto","isGuid","createEmpty","origSymbol","hasSymbolSham","sym","symObj","syms","$hasOwn","noGlobal","flat","class2type","fnToString","ObjectFunctionString","support","preservedScriptAttributes","noModule","DOMEval","toType","rhtmlSuffix","jQuery","isArrayLike","jquery","pushStack","elems","prevObject","even","grep","_elem","odd","copyIsArray","Ctor","isEmptyObject","globalEval","makeArray","inArray","isXMLDoc","docElem","namespaceURI","invert","callbackExpect","rtrimCSS","bup","compareDocumentPosition","rcssescape","fcssescape","asCodePoint","escapeSelector","sel","preferredDoc","pushNative","Expr","outermostContext","sortInput","hasDuplicate","documentIsHTML","rbuggyQSA","dirruns","classCache","createCache","tokenCache","compilerCache","nonnativeSelectorCache","booleans","pseudos","rwhitespace","rcomma","rleadingCombinator","rdescend","rpseudo","ridentifier","matchExpr","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rquickExpr","rsibling","runescape","funescape","escape","nonHex","high","setDocument","inDisabledFieldset","addCombinator","nid","newSelector","newContext","testContext","tokenize","toSelector","cacheLength","markFunction","assert","createInputPseudo","createButtonPseudo","createDisabledPseudo","createPositionalPseudo","matchIndexes","subWindow","getElementsByName","disconnectedMatch","cssHas","attrId","getAttributeNode","compare","sortDetached","attrHandle","uniqueSort","duplicates","sortStable","createPseudo","preFilter","excess","unquoted","nodeNameSelector","expectedNodeName","what","_argument","simple","forward","ofType","xml","outerCache","nodeIndex","useCache","pseudo","setFilters","compile","unmatched","elemLang","safeActiveElement","hasFocus","_matchIndexes","nth","radio","parseOnly","soFar","preFilters","combinator","checkNonElements","doneName","oldCache","newCache","elementMatcher","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","matcherOut","preMap","postMap","preexisting","multipleContexts","contexts","matcherIn","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","setMatchers","elementMatchers","matcherFromGroupMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","compiled","unique","getText","isXML","until","truncate","rneedsContext","rsingleTag","winnow","qualifier","rootjQuery","parseHTML","rparentsprev","guaranteedUnique","contents","prevAll","addBack","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","rnothtmlwhite","Identity","Thrower","adoptValue","noValue","Callbacks","createOptions","firing","fired","locked","firingIndex","stopOnFalse","lock","fireWith","Deferred","tuples","always","deferred","newDefer","returned","progress","onFulfilled","maxDepth","depth","special","mightThrow","notifyWith","resolveWith","exceptionHook","rejectWith","getErrorHook","getStackHook","stateString","singleValue","resolveContexts","resolveValues","updateFunc","rerrorNames","asyncError","readyException","readyList","readyWait","doScroll","chainable","emptyGet","bulk","rmsPrefix","rdashAlpha","fcamelCase","acceptData","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","removeData","_removeData","startLength","_queueHooks","pnum","rcssNum","cssExpand","isAttached","isHiddenWithinTree","adjustCSS","valueParts","tween","adjusted","maxIterations","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","showHide","rcheckableType","rtagName","rscriptType","createDocumentFragment","checkClone","noCloneChecked","wrapMap","thead","tr","td","_default","setGlobalEval","refElements","tbody","tfoot","colgroup","caption","th","optgroup","rhtml","buildFragment","scripts","ignored","attached","htmlPrefilter","rtypenamespace","returnTrue","returnFalse","one","origFn","leverageNative","isSetup","saved","delegateType","isImmediatePropagationStopped","handleObjIn","eventHandle","handleObj","origType","elemData","triggered","bindType","delegateCount","setup","mappedTypes","origCount","handlerQueue","delegateTarget","preDispatch","isPropagationStopped","rnamespace","postDispatch","matchedHandlers","matchedSelectors","addProp","noBubble","beforeunload","isDefaultPrevented","isSimulated","pointerId","toElement","focusMappedHandler","documentMode","simulate","attaches","dataHolder","related","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","udataOld","udataCur","fixInput","domManip","hasScripts","iNoClone","valueIsFunction","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","replaceWith","prependTo","insertAfter","replaceAll","insert","rnumnonpx","rcustomProp","getStyles","opener","old","rboxStyle","curCSS","computed","isCustomProp","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","pixelBoxStylesVal","boxSizingReliableVal","scrollboxSizeVal","reliableTrDimensionsVal","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","reliableTrDimensions","trChild","trStyle","cssPrefixes","vendorProps","finalPropName","cssProps","vendorPropName","capName","rdisplayswap","cssShow","cssNormalTransform","letterSpacing","setPositiveNumber","boxModelAdjustment","isBorderBox","computedVal","marginDelta","getWidthOrHeight","valueIsBorderBox","offsetProp","getClientRects","Tween","cssHooks","animationIterationCount","borderImageSlice","flexGrow","flexShrink","gridArea","gridColumnEnd","gridColumnStart","gridRowEnd","gridRowStart","orphans","widows","floodOpacity","stopOpacity","strokeMiterlimit","origName","scrollboxSizeBuggy","propHooks","swing","fxNow","rfxtypes","rrun","createFxNow","genFx","includeWidth","createTween","tweeners","stopped","prefilters","tweens","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","anim","tweener","defaultPrefilter","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","prefilter","speeds","fadeTo","optall","doAnimation","stopQueue","timers","cssFn","slideDown","fadeIn","fadeOut","fadeToggle","slow","fast","checkOn","optSelected","radioValue","boolHook","nType","attrHooks","attrNames","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","for","curValue","finalValue","stateVal","isValidValue","rreturn","valHooks","optionSet","rquery","parseXML","parserErrorElem","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","parentWindow","triggerHandler","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","valueOrFunction","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","lastModified","etag","isLocal","processData","contentType","accepts","responseFields","converters","ajaxSetup","ajaxPrefilter","ajaxTransport","cacheURL","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","requestHeadersNames","strAbort","getAllResponseHeaders","overrideMimeType","finalText","crossDomain","hasContent","ifModified","beforeSend","nativeStatusText","responses","isSuccess","modified","ajaxHandleResponses","finalDataType","firstDataType","ajaxConvert","conv2","conv","dataFilter","throws","getScript","wrapAll","wrapInner","htmlIsFunction","xhrSuccessStatus","xhrSupported","cors","errorCallback","xhrFields","binary","scriptAttrs","charset","scriptCharset","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","keepScripts","parsed","animated","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","Height","Width","defaultExtra","unbind","undelegate","fnOver","fnOut","rtrim","holdReady","hold","parseJSON","_jQuery","_$","noConflict","__WEBPACK_DEFAULT_EXPORT__","$isNaN","defineLocale","monthsShort","weekdays","weekdaysShort","weekdaysMin","meridiemParse","isPM","meridiem","isLower","longDateFormat","LT","LTS","LL","LLL","LLLL","sameDay","nextDay","nextWeek","lastWeek","sameElse","relativeTime","future","past","ss","mm","hh","yy","dayOfMonthOrdinalParse","ordinal","dow","doy","pluralForm","plurals","pluralize","withoutSuffix","weekdaysParseExact","postformat","symbolMap","preparse","numberMap","suffixes","relativeTimeWithPlural","plural","forms","isFormat","ww","lastDigit","last2Digits","meridiemHour","monthsShortRegex","monthsParseExact","relativeTimeWithMutation","mutation","softMutation","mutationTable","lastNumber","monthsParse","monthsRegex","minWeekdaysParse","weekdaysParse","fullWeekdaysParse","shortWeekdaysParse","monthsStrictRegex","monthsShortStrictRegex","longMonthsParse","shortMonthsParse","specialMutationForYears","processRelativeTime","ll","lll","llll","monthsNominativeEl","monthsGenitiveEl","momentToFormat","_monthsGenitiveEl","_monthsNominativeEl","calendarEl","mom","_calendarEl","monthsShortDot","invalidDate","numbersPast","numbersFuture","verbalNumber","monthsShortWithDots","monthsShortWithoutDots","weekEndings","eras","since","narrow","abbr","eraYearOrdinalRegex","eraYearOrdinalParse","$0","$1","$2","isUpper","ezafeNumSuffix","eifelerRegelAppliesToNumber","processFutureTime","processPastTime","units","translateSingular","translateSeconds","relativeTimeWithSingular","relativeSeconds","translator","words","correctGrammaticalCase","wordKey","relativeTimeMr","monthsNominative","monthsSubjective","numbersNouns","numberNoun","numberAsNoun","hundred","ten","translateFuture","translatePast","hm","processHoursFunction","weekdaysCaseReplace","nominative","accusative","genitive","hookCallback","hasOwnProp","isObjectEmpty","arrLen","createUTC","strict","createLocalOrUTC","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidEra","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","era","rfc2822","weekdayMismatch","parsedParts","isNowValid","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","momentProperties","updateInProgress","copyConfig","momentPropertiesLen","_isAMomentObject","_tzm","_isUTC","_offset","_locale","Moment","isMoment","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","mergeConfigs","parentConfig","childConfig","Locale","zeroFill","targetLength","forceSign","absNumber","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","localeData","removeFormattingTokens","formatMoment","expandFormat","makeFormatFunction","replaceLongDateFormatTokens","aliases","isoweekdays","isoweekday","DDD","dayofyears","dayofyear","quarters","gg","weekyears","weekyear","GG","isoweekyears","isoweekyear","weeks","isoweeks","isoweek","years","normalizeUnits","normalizeObjectUnits","inputObject","normalizedInput","priorities","dayOfYear","weekYear","isoWeekYear","isoWeek","regexes","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","match1to2NoLeadingZero","match1to2HasZero","addRegexToken","strictRegex","isStrict","getParseRegexForToken","unescapeFormat","regexEscape","p2","p3","p4","absFloor","toInt","argumentForCoercion","coercedNumber","addParseToken","tokenLen","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","parseTwoDigitYear","getSetYear","makeGetSet","keepTime","set$1","isUTC","setUTCMilliseconds","setUTCSeconds","setUTCMinutes","setUTCHours","modMonth","defaultLocaleMonths","defaultLocaleMonthsShort","MONTHS_IN_FORMAT","defaultMonthsShortRegex","defaultMonthsRegex","handleStrictParse","monthName","ii","llc","_monthsParse","_longMonthsParse","_shortMonthsParse","setUTCMonth","getSetMonth","computeMonthsParse","cmpLenRev","shortP","longP","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createDate","createUTCDate","firstWeekOffset","fwd","dayOfYearFromWeeks","resYear","resDayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","shiftWeekdays","ws","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","handleStrictParse$1","weekdayName","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","computeWeekdaysParse","minp","shortp","longp","minPieces","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","lowercase","matchMeridiem","_meridiemParse","kFormat","kInput","_isPm","_meridiem","getSetHour","globalLocale","baseConfig","localeFamilies","commonPrefix","minl","normalizeLocale","loadLocale","oldLocale","isLocaleNameSane","_abbr","aliasedRequire","getSetGlobalLocale","getLocale","parentLocale","chooseLocale","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromISO","allowTime","timeFormat","tzFormat","isoDatesLen","isoTimesLen","configFromStringAndFormat","untruncateYear","yearStr","configFromRFC2822","parsedArray","preprocessRFC2822","extractFromRFC2822Strings","monthStr","dayStr","hourStr","minuteStr","secondStr","checkWeekday","weekdayStr","parsedInput","obsOffset","militaryOffset","numOffset","configFromArray","expectedWeekday","yearToUse","currentDateArray","nowValue","_useUTC","dayOfYearFromWeekInfo","weekdayOverflow","curWeek","createLocal","_week","_dayOfYear","_nextDay","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","isPm","erasConvertYear","prepareConfig","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","validFormatFound","bestFormatIsValid","configfLen","score","configFromInput","configFromString","createFromInputFallback","configFromObject","createFromConfig","prototypeMin","prototypeMax","pickBy","moments","ordering","Duration","isDurationValid","unitHasDecimal","orderLen","_milliseconds","_days","_months","_bubble","isDuration","absRound","utcOffset","offsetFromString","chunkOffset","cloneWithOffset","local","getDateOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","momentsDifference","positiveMomentsDifference","inp","isAfter","createAdder","addSubtract","isAdding","createInvalid$1","isMomentInput","isNumberOrStringArray","arrayTest","dataTypeTest","isMomentInputObject","objectTest","propertyTest","propertyLen","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","MS_PER_MINUTE","MS_PER_HOUR","MS_PER_400_YEARS","mod$1","dividend","divisor","localStartOfDate","utcStartOfDate","matchEraAbbr","erasAbbrRegex","computeErasParse","erasName","erasAbbr","erasNarrow","abbrPieces","namePieces","narrowPieces","_erasRegex","_erasNameRegex","_erasAbbrRegex","_erasNarrowRegex","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","setWeekAll","dayOfYearData","matchEraName","erasNameRegex","matchEraNarrow","erasNarrowRegex","erasParse","matchEraYearOrdinal","_eraYearOrdinalRegex","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetMillisecond","getSetSecond","parseMs","preParsePostFormat","calendar$1","isCalendarSpec","sod","calendarFormat","asFloat","zoneDelta","startOfDate","inputString","humanize","fromNow","toNow","stringGet","invalidAt","localInput","isBetween","inclusivity","localFrom","localTo","isSame","inputMs","isSameOrAfter","isSameOrBefore","isValid$2","parsingFlags","stringSet","prioritized","getPrioritizedUnits","unitsObj","prioritizedLen","toObject","keepOffset","unix","creationData","eraName","getEraName","eraNarrow","getEraNarrow","eraAbbr","getEraAbbr","eraYear","getEraYear","getIsLeapYear","getSetWeekYear","getSetISOWeekYear","getSetQuarter","getSetWeek","isoWeeks","getSetISOWeek","getWeeksInYear","weekInfo","weeksInWeekYear","getWeeksInWeekYear","isoWeeksInYear","getISOWeeksInYear","isoWeeksInISOWeekYear","getISOWeeksInISOWeekYear","getSetDayOfWeek","parseWeekday","getSetLocaleDayOfWeek","getSetISODayOfWeek","parseIsoWeekday","getSetDayOfYear","getSetOffset","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","setOffsetToUTC","setOffsetToLocal","parseZone","setOffsetToParsedOffset","tZone","hasAlignedHourOffset","isDST","isDaylightSavingTime","isUtcOffset","zoneAbbr","getZoneAbbr","zoneName","getZoneName","getSetZone","isDSTShifted","isDaylightSavingTimeShifted","_isDSTShifted","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","proto$1","get$1","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","tok","_invalidDate","_ordinal","_relativeTime","pastFuture","localeEras","_eras","localeErasParse","localeErasConvertYear","localeMonths","localeMonthsShort","_monthsShort","localeMonthsParse","_monthsParseExact","localeWeek","firstDayOfYear","localeFirstDayOfYear","firstDayOfWeek","localeFirstDayOfWeek","localeWeekdays","_weekdays","localeWeekdaysMin","_weekdaysMin","localeWeekdaysShort","_weekdaysShort","localeWeekdaysParse","_weekdaysParseExact","_fullWeekdaysParse","localeIsPM","localeMeridiem","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asQuarters","asYears","valueOf$1","makeGetter","thresholds","substituteTimeAgo","abs$1","toISOString$1","totalSign","ymSign","daysSign","hmsSign","proto$2","isValid$1","add$1","subtract$1","monthsFromDays","clone$1","get$2","argWithSuffix","argThresholds","withSuffix","relativeTime$1","posNegDuration","toIsoString","setHookCallback","createUnix","listMonths","listWeekdays","createInZone","listMonthsShort","listWeekdaysMin","updateLocale","tmpLocale","listLocales","listWeekdaysShort","relativeTimeRounding","getSetRelativeTimeRounding","roundingFunction","relativeTimeThreshold","getSetRelativeTimeThreshold","threshold","getCalendarFormat","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","functionToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","isEnumerable","gPO","addNumericSeparator","sepRegex","intStr","dec","utilInspect","inspectCustom","inspectSymbol","quotes","double","quoteREs","wrapQuotes","quoteChar","quoteStyle","canTrustToString","isRegExp","inspect_","seen","maxStringLength","customInspect","numericSeparator","inspectString","bigIntStr","getIndent","baseIndent","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","xs","singleLineValues","indentedJoin","cause","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isBigInt","protoTag","stringTag","trailer","quoteRE","lowbyte","lineJoiner","symMap","_value","_subscribe","closed","hasError","thrownError","_throwIfClosed","lift","observable","observerOrNext","isSubscriber","Subscriber","isObserver","isSubscription","SafeSubscriber","errorContext","_trySubscribe","sink","promiseCtor","getPromiseCtor","Symbol_observable","operations","pipeFromArray","_bufferSize","_windowTime","_timestampProvider","dateTimestampProvider","_infiniteTimeWindow","isStopped","_trimBuffer","_innerSubscribe","_checkFinalizedStatuses","adjustedBufferSize","ObjectUnsubscribedError","createErrorClass","currentObservers","AnonymousSubject","observed","EMPTY_SUBSCRIPTION","arrRemove","COMPLETE_NOTIFICATION","createNotification","EMPTY_OBSERVER","handleStoppedNotification","nextNotification","errorNotification","_complete","_bind","ConsumerObserver","partialObserver","handleUnhandledError","useDeprecatedNextContext","useDeprecatedSynchronousErrorHandling","captureError","reportUnhandledError","onStoppedNotification","timeoutProvider","defaultErrorHandler","UnsubscriptionError","initialTeardown","_parentage","_finalizers","initialFinalizer","finalizer","execFinalizer","_hasParent","_addParent","_removeParent","onUnhandledError","_refCount","_connection","hasLift","getSubject","_teardown","createOperatorSubscriber","refCount","higherOrderRefCount","scheduler","popScheduler","resultSelector","popResultSelector","observables","argsArgArrayOrObject","combineLatestInit","valueTransform","identity","maybeSchedule","remainingFirstValues","hasFirstValue","createObject","mapOneOrManyArgs","executeSchedule","concatAll","mergeAll","observableFactory","forkJoin","remainingCompletions","remainingEmissions","sourceIndex","observeOn","subscribeOn","scheduleAsyncIterable","isInteropObservable","scheduleObservable","scheduleArray","isPromise","schedulePromise","isAsyncIterable","scheduleIterable","Symbol_iterator","isReadableStreamLike","scheduleReadableStreamLike","readableStreamLikeToAsyncGenerator","createInvalidObservableTypeError","nodeEventEmitterMethods","eventTargetMethods","jqueryMethods","isEventTarget","isNodeStyleEventEmitter","toCommonHandlerRegistry","isJQueryStyleEventEmitter","subTarget","fromInteropObservable","obs","fromArrayLike","fromPromise","fromAsyncIterable","fromIterable","fromReadableStreamLike","readableStream","asyncIterable","asyncIterable_1","asyncIterable_1_1","__awaiter","__asyncValues","concurrent","popNumber","race","argsOrArgArray","raceInit","subscriptions","errorOrErrorFactory","errorFactory","dueTime","intervalOrScheduler","asyncScheduler","intervalDuration","isScheduler","due","onNext","onFinalize","OperatorSubscriber","shouldUnsubscribe","auditTime","audit","durationSelector","durationSubscriber","endDuration","cleanupDuration","handledResult","innerSub","syncUnsub","project","activeTask","emitWhenIdle","targetTime","defaultIfEmpty","delayWhen","delayDurationSelector","subscriptionDelay","ignoreElements","mapTo","keySelector","defaultCompare","previousKey","currentKey","finalize","hasDefaultValue","throwIfEmpty","EmptyError","mergeInternals","onBeforeNext","innerSubScheduler","additionalFinalizer","checkComplete","outerNext","doInnerSub","innerComplete","bufferedValue","hasPrev","refCounter","sharedConnection","conn","hasSeed","emitOnNext","emitBeforeComplete","hasState","resetOnError","resetOnComplete","resetOnRefCountZero","wrapperSource","resetConnection","hasCompleted","hasErrored","cancelReset","resetAndUnsubscribe","handleReset","onSubscriber","shareReplay","configOrBufferSize","windowTime","bufferSize","innerSubscriber","innerIndex","outerIndex","notifier","tapObserver","isUnsub","defaultErrorFactory","Action","work","intervalProvider","AsyncAction","recycleAsyncId","requestAsyncId","_scheduler","_execute","errorValue","errored","Scheduler","schedulerActionCtor","AsyncScheduler","SchedulerAction","animationFrameProvider","animationFrameScheduler","AnimationFrameScheduler","flushId","_scheduled","AnimationFrameAction","nextHandle","activeHandles","findAndClearHandle","Immediate","setImmediate","clearImmediate","immediateProvider","asapScheduler","AsapScheduler","AsapAction","getSymbolIterator","getKeys","isPOJO","createImpl","ctorFunc","isRoot","errorThrown","parentSubscription","repeat","scheduleSubscription","isObservable","__asyncGenerator","getReader","__await","read","releaseLock","liftedSource","callOrApply","listGetNode","isDelete","$o","deletedNode","listDelete","listGet","listHas","listSet","callBound","$Map","$mapGet","$mapSet","$mapHas","$mapDelete","$mapSize","$m","getSideChannelMap","$WeakMap","$weakMapGet","$weakMapSet","$weakMapHas","$weakMapDelete","$wm","getSideChannelList","makeChannel","$channelData","globalState","restoreActiveElement","returnFocus","restoreFocusTimeout","previousActiveElement","RESTORE_FOCUS_TIMEOUT","privateProps","innerParams","domCache","swalPrefix","swalClasses","iconTypes","consolePrefix","capitalizeFirstLetter","previousWarnOnceMessages","warnAboutDeprecation","deprecatedParam","useInstead","callIfFunction","hasToPromiseFn","asPromise","elementBySelector","selectorString","elementByClass","getPopup","getIcon","getHtmlContainer","getImage","getProgressSteps","getValidationMessage","getConfirmButton","confirm","getCancelButton","getDenyButton","deny","getLoader","getActions","getTimerProgressBar","getCloseButton","getFocusableElements","focusableElementsWithTabindex","focusableElementsWithTabindexSorted","tabindexA","tabindexB","otherFocusableElements","otherFocusableElementsFiltered","isVisible$1","isModal","isToast","toast","setInnerHtml","HTMLVideoElement","HTMLAudioElement","applyCustomClass","removeCustomClasses","showClass","getInput$1","inputClass","focusInput","getDirectChildByClass","applyNumericalStyle","isScrollable","hasCssAnimation","animDuration","transDuration","animateTimerProgressBar","timerProgressBar","isNodeEnv","sweetHTML","resetValidationMessage$1","currentInstance","resetValidationMessage","oldContainerExisted","resetOldContainer","oldContainer","setupAccessibility","setupRTL","addInputChangeListeners","rangeOutput","oninput","onchange","parseHtmlToContainer","handleObject","handleJqueryElem","animationEndEvent","testEl","transEndEventNames","WebkitAnimation","renderActions","showConfirmButton","showDenyButton","renderButtons","denyButton","renderButton","handleButtonsStyling","styled","confirmButtonColor","denyButtonColor","cancelButtonColor","loaderHtml","buttonType","renderContainer","handleBackdropParam","backdrop","handlePositionParam","handleGrowParam","grow","growClass","inputClasses","showInput","renderInputType","inputContainer","getInputContainer","inputAutoFocus","setAttributes","inputAttributes","removeAttributes","attrName","setCustomClass","inputPlaceholder","setInputLabel","inputLabel","labelClass","checkAndSetInputValue","tel","rangeInput","checkboxContainer","initialPopupWidth","textareaResizeHandler","textareaWidth","getMargin","renderContent","htmlContainer","renderInput","rerender","applyStyles","iconType","setColor","adjustSuccessIconBackgroundColor","popupBackgroundColor","successIconParts","setContent","newContent","oldContent","iconHtml","iconContent","question","iconColor","createStepElement","stepEl","createLineElement","lineEl","progressStepsDistance","renderPopup","renderProgressSteps","progressStepsContainer","progressSteps","currentProgressStep","renderIcon","renderImage","imageUrl","imageAlt","renderTitle","titleText","renderCloseButton","closeButtonHtml","showCloseButton","closeButtonAriaLabel","renderFooter","didRender","clickConfirm","DismissReason","esc","removeKeydownHandler","keydownTarget","keydownHandlerAdded","keydownHandler","keydownListenerCapture","arrowKeysNextButton","arrowKeysPreviousButton","dismissWith","isComposing","stopKeydownPropagation","handleEnter","handleTab","handleArrows","handleEsc","allowEnterKey","getInput","btnIndex","buttonToFocus","allowEscapeKey","privateMethods","swalPromiseResolve","swalPromiseReject","unsetAriaHidden","addBottomPaddingForTallPopups","iOS","webkit","bottomPanelHeight","lockBodyScroll","preventTouchMove","ontouchstart","shouldPreventTouchMove","ontouchmove","isStylus","isZoom","touchType","previousBodyPadding","fixScrollbar","measureScrollbar","scrollDiv","removePopupAndResetState","didClose","triggerDidCloseAndDispose","undoIOSfix","iosfix","removeBodyClasses","resolveValue","prepareResolveValue","triggerClosePopup","isAwaitingPromise","isDismissed","handleAwaitingPromise","hideClass","handlePopupAnimation","rejectPromise","_destroy","isConfirmed","isDenied","animationIsSupported","willClose","animatePopup","swalCloseEventFinishedCallback","buttonToReplace","replaceButton","getCheckboxValue","getRadioValue","getFileValue","handleInputOptions","processInputOptions","inputOptions","populateInputOptions","formatInputOptions","hideLoading","handleInputValue","optionLabel","optionValue","inputOption","radioLabel","radioInput","radioLabelElement","radios","handleConfirmOrDenyWithInput","getInputValue","inputAutoTrim","inputValidator","handleInputValidator","checkValidity","enableButtons","showValidationMessage","disableInput","enableInput","showLoaderOnDeny","preDeny","preDenyValue","succeedWith","showLoaderOnConfirm","preConfirm","preConfirmValue","showRelatedButton","setButtonsDisabled","disableButtons","inputerror","confirmButtonAriaLabel","denyButtonText","denyButtonAriaLabel","cancelButtonAriaLabel","focusConfirm","focusDeny","focusCancel","returnInputValueOnDeny","willOpen","didOpen","didDestroy","scrollbarPadding","updatableParams","deprecatedParams","toastIncompatibleParams","isValidParameter","paramName","isUpdatableParameter","isDeprecatedParameter","checkIfParamIsValid","checkIfToastParamIsValid","checkIfParamIsDeprecated","isDeprecated","validUpdatableParams","filterValidParams","updatedParams","disposeSwal","disposeWeakMaps","unsetWeakMaps","disableLoading","closePopup","closeModal","closeToast","instanceMethods","handleToastClick","onclick","isAnyButtonShown","ignoreOutsideClick","handleModalMousedown","handleContainerMousedown","handleModalClick","isJqueryElement","stopTimer","stopTimerProgressBar","timerProgressBarWidth","timerProgressBarFullWidth","timerProgressBarPercent","resumeTimer","bodyClickListenerAdded","clickHandlers","bodyClickListener","staticMethods","argsToParams","bindClickHandler","clickCancel","clickDeny","enableLoading","getIconContent","getInputLabel","getTimerLeft","increaseTimer","increase","isTimerRunning","mixin","mixinParams","MixinSwal","_main","priorityMixinParams","toggleTimer","Timer","swalStringParams","getSwalParams","templateContent","swalParams","showWarningsForAttributes","getSwalFunctionParams","swalFunctions","getSwalButtons","swalButtons","getSwalImage","getSwalIcon","getSwalInput","optionName","getSwalStringParams","paramNames","showWarningsForElements","allowedElements","allowedAttributes","openPopup","initialBodyOverflow","setScrollingVisibility","fixScrollContainer","swalOpenAnimationFinished","iOSfix","MSStream","defaultInputValidators","setParameters","setDefaultInputValidators","validateCustomTargetElement","SweetAlert","outerParams","showWarningsForParams","prepareParams","populateDomCache","swalPromise","handleConfirmButtonClick","handleDenyButtonClick","handleCancelButtonClick","handlePopupClick","addKeydownHandler","handleInputOptionsAndValue","setupTimer","initFocus","templateParams","getTemplateParams","blurActiveElement","focusButton","initiationDate","ukrainianAnthem","Sweetalert2","swal","sweetAlert","styleSheet","punycode","maxInt","tMax","skew","damp","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","mapDomain","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","adapt","numPoints","basic","oldi","baseMinusT","inputLength","bias","encode","handledCPCount","basicLength","handledCPCountPlusOne","qMinusT","ucs2","toASCII","toUnicode","percentTwenties","RFC1738","RFC3986","allowDots","allowPrototypes","allowSparse","arrayLimit","charsetSentinel","comma","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictNullHandling","parseArrayValue","parseKeys","givenKey","valuesParsed","chain","cleanRoot","parseObject","normalizeParseOptions","tempObj","skipIndex","bracketEqualsPos","maybeMap","encodedVal","numberStr","combine","parseValues","newObj","compact","getSideChannel","arrayPrefixGenerators","brackets","pushToArray","valueOrArray","toISO","addQueryPrefix","encoder","encodeValuesOnly","serializeDate","skipNulls","sentinel","generateArrayPrefix","commaRoundTrip","sideChannel","tmpSc","findFlag","isNonNullishPrimitive","isBuffer","adjustedPrefix","keyPrefix","valueSideChannel","normalizeStringifyOptions","arrayFormat","joined","hexTable","arrayToObject","refs","compactQueue","compacted","strWithoutPlus","unescape","defaultEncoder","mergeTarget","targetItem","Url","slashes","hostname","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","hostlessProtocol","slashedProtocol","https","ftp","gopher","querystring","urlParse","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","rest","simplePath","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","ae","qm","resolveObject","tkeys","tk","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","isAbsolute","webpackContext","webpackContextResolve","stateChangeExpr","_position","_onStart","triggerMicrotask","AnimationGroupPlayer","_players","doneCount","destroyCount","startCount","timeAtPosition","longestPlayer","longestSoFar","DIR_DOCUMENT","DIR_DOCUMENT_FACTORY","inject","RTL_LOCALE_PATTERN","Directionality","_resolveDirectionality","coerceBooleanProperty","coerceNumberProperty","fallbackValue","_isNumberValue","coerceArray","coerceElement","elementOrRef","ScrollDispatcher","_scrolled","_globalSubscription","_scrolledCount","scrollContainers","elementScrolled","scrollableReference","auditTimeInMs","_addGlobalListener","_removeGlobalListener","ancestorScrolled","elementOrElementRef","ancestors","getAncestorScrollContainers","scrollingContainers","_scrollableContainsElement","_getWindow","scrollableElement","getElementRef","ViewportRuler","_change","_changeListener","_viewportSize","getViewportSize","_updateViewportSize","getViewportRect","getViewportScrollPosition","throttleTime","CdkScrollableModule","extendStyles","importantProperties","toggleNativeDragInteractions","toggleVisibility","combineTransforms","initialTransform","parseCssTimeUnitsToMs","parseCssPropertyValue","getMutableClientRect","clientRect","isInsideClientRect","adjustClientRect","isPointerNearClientRect","pointerX","pointerY","xThreshold","yThreshold","ParentPositionTracker","_getEventTarget","cachedPosition","viewportScrollPosition","topDifference","leftDifference","passiveEventListenerOptions","normalizePassiveListenerOptions","activeEventListenerOptions","dragImportantProperties","DragRef","_disabled","_dropContainer","_toggleNativeDragInteractions","_handles","_viewportRuler","_dragDropRegistry","_passiveTransform","_activeTransform","_hasStartedDragging","_moveEvents","_pointerMoveSubscription","_pointerUpSubscription","_resizeSubscription","_boundaryElement","_nativeInteractionsEnabled","_disabledHandles","_direction","dragStartDelay","beforeStarted","released","ended","entered","exited","dropped","_pointerDown","targetHandle","_getTargetHandle","_initializeDragSequence","_rootElement","_pointerMove","pointerPosition","_getPointerPositionOnPage","_pickupPositionOnPage","dragStartThreshold","isDelayElapsed","_dragStartTime","_getDragStartDelay","_endDragSequence","isReceiving","_startDragSequence","constrainedPointerPosition","_getConstrainedPointerPosition","_hasMoved","_lastKnownPointerPosition","_updatePointerDirectionDelta","_updateActiveDropContainer","constrainPosition","_initialClientRect","activeTransform","_applyRootElementTransform","_getDragDistance","_pointerDirectionDelta","_pointerUp","_nativeDragStart","withRootElement","withParent","parentDragRef","_parentPositions","registerDragItem","getPlaceholderElement","_placeholder","getRootElement","getVisibleElement","withHandles","handles","disabledHandles","withPreviewTemplate","_previewTemplate","withPlaceholderTemplate","_placeholderTemplate","_removeRootElementListeners","_initialTransform","_ownerSVGElement","ownerSVGElement","withBoundaryElement","boundaryElement","_containInsideBoundaryOnResize","_parentDragRef","_anchor","_destroyPreview","_destroyPlaceholder","removeDragItem","_removeSubscriptions","disableHandle","enableHandle","withDirection","_withDropContainer","getFreeDragPosition","setFreeDragPosition","withPreviewContainer","_previewContainer","_sortFromLastPointerPosition","_preview","_previewRef","_placeholderRef","webkitTapHighlightColor","_rootElementTapHighlight","_stopScrolling","_animatePreviewToPlaceholder","_cleanupDragArtifacts","_cleanupCachedDimensions","dropPoint","isTouchEvent","_lastTouchEventTime","_createPlaceholderElement","shadowRoot","_getShadowRoot","_createPreviewElement","_getPreviewInsertionPoint","_initialContainer","_initialIndex","getItemIndex","getScrollableParents","isTouchSequence","isAuxiliaryMouseButton","isSyntheticEvent","isFakeEvent","isFakeTouchstartFromScreenReader","radiusX","radiusY","isFakeMousedownFromScreenReader","rootStyles","scrollEvent","_updateOnScroll","_boundaryRect","previewTemplate","_pickupPositionInElement","matchSize","_getPointerPositionInElement","_pointerPositionAtLastDirectionChange","startDragging","_previewRect","isPointerOverContainer","_isOverContainer","previousIndex","previousContainer","rawX","rawY","newContainer","_getSiblingContainerFromPosition","exit","enter","sortingDisabled","_startScrollingIfNecessary","_sortItem","_applyPreviewTransform","previewConfig","previewClass","preview","rootRect","viewContainer","matchElementSize","placeholderRect","getTransformTransitionDurationInMs","transitionedProperties","propertyIndex","rawDurations","rawDelays","placeholderConfig","placeholderTemplate","elementRect","handleElement","referenceRect","_getViewportScrollPosition","svgMatrix","svgPoint","dropContainerLock","lockAxis","pickupX","pickupY","boundaryRect","previewWidth","previewHeight","_getPreviewRect","clamp$1","pointerPositionOnPage","positionSinceLastChange","changeX","changeY","pointerDirectionChangeThreshold","shouldEnable","pickupPosition","leftOverflow","rightOverflow","topOverflow","bottomOverflow","mouse","scrollDifference","_cachedShadowRoot","initialParent","previewContainer","msFullscreenElement","ELEMENT_NODE","moveItemInArray","SingleAxisSortStrategy","_itemPositions","_previousSwap","withItems","pointerDelta","newIndex","_getItemIndexFromPointerPosition","siblingAtNewPosition","newPosition","itemOffset","_getItemOffsetPx","siblingOffset","_getSiblingOffsetPx","oldOrder","isDraggedItem","elementToOffset","activeDraggables","_activeDraggables","newPositionReference","_shouldEnterAsFirstChild","_cacheItemPositions","withSortPredicate","_sortPredicate","getActiveItemsSnapshot","updateOnScroll","elementToMeasure","immediateSibling","itemPositions","lastItemRect","firstItemRect","DropListRef","autoScrollDisabled","autoScrollStep","enterPredicate","sortPredicate","receivingStarted","receivingStopped","_isDragging","_draggables","_siblings","_activeSiblings","_viewportScrollSubscription","_verticalScrollDirection","_horizontalScrollDirection","_stopScrollTimers","_startScrollInterval","_scrollNode","scrollStep","withScrollableParents","registerDropContainer","_sortStrategy","removeDropContainer","_draggingStarted","_notifyReceivingSiblings","_cacheParentPositions","previousItems","connectedTo","withOrientation","_scrollableElements","_clientRect","scrollNode","verticalScrollDirection","horizontalScrollDirection","getElementScrollDirections","computedVertical","getVerticalScrollDirection","computedHorizontal","getHorizontalScrollDirection","_initialScrollSnap","msScrollSnapType","scrollSnapType","_listenToScrollEvents","_stopReceiving","_canReceive","elementFromPoint","_startReceiving","activeSiblings","initiator","receiver","draggedItems","activeCapturingEventOptions","DragDropRegistry","_dropInstances","_dragInstances","_activeDragInstances","_globalListeners","_draggingPredicate","_preventDefaultWhileDragging","_persistentTouchmoveListener","_clearGlobalListeners","eventOptions","DragDrop","createDrag","createDropList","CDK_DRAG_PARENT","CDK_DRAG_HANDLE","CdkDragHandle","_stateChanges","parentDrag","_parentDrag","CDK_DRAG_PLACEHOLDER","CDK_DRAG_PREVIEW","CDK_DRAG_CONFIG","CDK_DROP_LIST","CdkDrag","_dragRef","_viewContainerRef","_dir","dragDrop","_changeDetectorRef","_selfHandle","_assignDefaults","_dropListRef","_syncInputs","_handleEvents","_updateRootElement","_setupHandlesListener","freeDragPosition","rootSelectorChange","rootElementSelector","positionChange","firstChange","_getBoundaryElement","releaseEvent","endEvent","enterEvent","exitEvent","draggingDisabled","childHandleElements","handleInstance","dragRef","contentQueries","dirIndex","CDK_DROP_LIST_GROUP","_uniqueIdCounter","CdkDropList","_group","_scrollDispatcher","_unsortedItems","_setupInputSyncSubscription","_dropLists","_items","_syncItemsWithRef","getSortedItems","DOCUMENT_POSITION_FOLLOWING","_scrollableParentsResolved","scrollableParents","listAutoScrollDisabled","listOrientation","hasV8BreakIterator","v8BreakIterator","supportsPassiveEvents","rtlScrollAxisType","shadowDomIsSupported","_platformId","EDGE","TRIDENT","CSS","IOS","FIREFOX","ANDROID","SAFARI","supportsPassiveEventListeners","getRtlScrollAxisType","containerStyle","contentStyle","_supportsShadowDom","createShadowRoot","attachShadow","_DOM","getDOM","setRootDomAdapter","DomAdapter","PlatformLocation","historyGo","relativePosition","BrowserPlatformLocation","LOCATION_INITIALIZED","getBaseHrefFromDOM","getBaseHref","onPopState","getGlobalEventTarget","onHashChange","back","joinWithSlash","stripTrailingSlash","pathEndIdx","normalizeQueryParams","LocationStrategy","PathLocationStrategy","APP_BASE_HREF","_platformLocation","_removeListenerFns","_baseHref","includeHash","externalUrl","HashLocationStrategy","locationStrategy","_urlChangeListeners","_urlChangeSubscription","_locationStrategy","baseHref","_basePath","_stripOrigin","_stripIndexHtml","isCurrentPathEqualTo","_stripBasePath","basePath","strippedUrl","_notifyUrlChangeListeners","onUrlChange","fnIndex","onThrow","onReturn","createLocation","ɵɵinject","NumberFormatStyle","Decimal","Percent","Scientific","Plural","Zero","One","Two","Few","Many","FormStyle","Format","Standalone","TranslationWidth","Narrow","Abbreviated","Wide","Short","FormatWidth","Medium","Long","Full","NumberSymbol","Group","List","PercentSign","PlusSign","MinusSign","Exponential","SuperscriptingExponent","PerMille","TimeSeparator","CurrencyDecimal","CurrencyGroup","getLocaleDayNames","formStyle","ɵfindLocaleData","getLastDefinedValue","ɵLocaleDataIndex","DaysFormat","DaysStandalone","getLocaleMonthNames","MonthsFormat","MonthsStandalone","getLocaleDateFormat","DateFormat","getLocaleTimeFormat","TimeFormat","getLocaleDateTimeFormat","dateTimeFormatData","getLocaleNumberSymbol","NumberSymbols","getLocaleNumberFormat","NumberFormats","getLocalePluralCase","ɵgetLocalePluralCase","checkFullData","ExtraData","LocaleId","extractTime","ISO8601_DATE_REGEX","NAMED_FORMATS","DATE_FORMATS_SPLIT","ZoneWidth","ShortGMT","Extended","DateType","FullYear","Hours","Minutes","Seconds","FractionalSeconds","TranslationType","DayPeriods","Days","Months","Eras","timezone","parsedNb","isoStringToDate","tzHour","tzMin","dateSetter","timeSetter","getNamedFormat","dateTimezoneOffset","timezoneToOffset","convertTimezoneToLocal","reverseValue","addDateMinutes","getDateFormatter","DATE_FORMATS","dateStrGetter","dateGetter","weekNumberingYearGetter","weekGetter","timeZoneGetter","localeId","getLocaleId","shortTime","shortDate","formatDateTime","mediumTime","mediumDate","longTime","longDate","fullTime","fullDate","opt_values","padNumber","digits","minusSign","negWrap","strNum","getDatePart","formatFractionalSeconds","localeMinus","getDateTranslation","currentHours","currentMinutes","rules","getLocaleExtraDayPeriodRules","dayPeriods","getLocaleExtraDayPeriods","afterFrom","beforeTo","getLocaleDayPeriods","amPm","DayPeriodsFormat","DayPeriodsStandalone","getLocaleEraNames","erasData","JANUARY","getThursdayThisWeek","monthBased","nbDaysBefore1stDayOfMonth","thisThurs","firstThurs","getFirstThursdayOfYear","requestedTimezoneOffset","NUMBER_FORMAT_REGEXP","formatNumberToLocaleString","groupSymbol","decimalSymbol","digitsInfo","formattedText","isZero","parsedNumber","integerLen","zeros","numStr","MAX_DIGITS","toPercent","fractionLen","minInt","minFraction","minFrac","maxFraction","maxFrac","minIntPart","minFractionPart","maxFractionPart","parseIntAutoRadix","roundNumber","fractionSize","roundAt","dropTrailingZeros","minLen","carry","reduceRight","lgSize","gSize","negPre","negSuf","posPre","posSuf","parseNumberFormat","patternParts","positive","negative","positiveParts","trunkLen","NgLocalization","NgLocaleLocalization","getPluralCategory","parseCookieValue","cookieStr","eqIndex","cookieName","WS_REGEXP","EMPTY_ARRAY","NgClass","_iterableDiffers","_keyValueDiffers","_ngEl","initialClasses","ngClass","rawClass","ngDoCheck","_updateState","_applyStateDiff","nextEnabled","stateEntry","_toggleClass","NgForOfContext","ngForOf","NgForOf","_ngForOf","_ngForOfDirty","ngForTrackBy","_trackByFn","_viewContainer","_template","_differs","_differ","ngForTemplate","_applyChanges","forEachOperation","adjustedPreviousIndex","applyViewChange","forEachIdentityChange","record","NgIf","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","_updateView","ngIfThen","assertTemplate","ngIfElse","ɵstringify","SwitchView","_templateRef","_created","enforceState","NgSwitch","_defaultViews","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","ngSwitch","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_matchCase","useDefault","NgSwitchCase","ngSwitchCase","NgStyle","_ngStyle","ngStyle","_setStyle","nameAndUnit","RendererStyleFlags2","DashCase","forEachRemovedItem","forEachAddedItem","forEachChangedItem","NgTemplateOutlet","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","ngTemplateOutletInjector","invalidPipeArgumentError","SubscribableStrategy","createSubscription","updateLatestValue","untracked","PromiseStrategy","_promiseStrategy","_subscribableStrategy","AsyncPipe","_latestValue","_obj","_strategy","_dispose","_selectStrategy","_updateLatestValue","ɵisPromise","ɵisSubscribable","UpperCasePipe","DATE_PIPE_DEFAULT_TIMEZONE","DATE_PIPE_DEFAULT_OPTIONS","defaultTimezone","_INTERPOLATION_REGEXP","_localization","pluralMap","cases","ngLocalization","isValue","strToNumber","PercentPipe","formatPercent","SlicePipe","PLATFORM_BROWSER_ID","PLATFORM_SERVER_ID","isPlatformServer","ViewportScroller","ɵɵdefineInjectable","BrowserViewportScroller","supportsScrolling","scrollToPosition","scrollToAnchor","elSelected","findAnchorFromDocument","documentResult","createTreeWalker","treeWalker","NodeFilter","SHOW_ELEMENT","nextNode","scrollToElement","setHistoryScrollRestoration","scrollRestoration","supportScrollRestoration","scrollRestorationDescriptor","getScrollRestorationProperty","XhrFactory","HttpHandler","HttpBackend","normalizedNames","lazyUpdate","lazyInit","maybeSetNormalizedName","setHeaderEntries","lcName","copyFrom","applyUpdate","toDelete","existing","headerValues","HttpUrlEncodingCodec","encodeKey","standardEncoding","encodeValue","decodeKey","decodeValue","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","valueToString","cloneFrom","fromObject","paramParser","rawParams","codec","eqIdx","appendAll","eKey","HttpContext","isBlob","isFormData","HttpRequest","third","fourth","reportProgress","mightHaveBody","urlWithParams","qIdx","serializeBody","isUrlSearchParams","URLSearchParams","detectContentTypeHeader","setHeaders","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","Response","HttpResponseBase","defaultStatus","defaultStatusText","HttpHeaderResponse","HttpErrorResponse","addBody","events$","res$","callbackParam","patch","interceptorChainEndFn","finalHandlerFn","adaptLegacyInterceptorToChain","chainTailFn","interceptor","initialRequest","downstreamRequest","HTTP_INTERCEPTOR_FNS","HTTP_ROOT_INTERCEPTOR_FNS","legacyInterceptorFnFactory","pendingTasks","ɵInitialRenderPendingTasks","taskId","HttpInterceptorHandler","backend","dedupedInterceptorFns","nextSequencedFn","interceptorFn","chainedInterceptorFn","runInContext","XSSI_PREFIX","HttpXhrBackend","xhrFactory","ɵloadImpl","detectedType","reqBody","headerResponse","partialFromXhr","getResponseUrl","originalBody","sentHeaders","onDownProgress","progressEvent","lengthComputable","partialText","onUpProgress","upload","XSRF_ENABLED","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","lastCookieString","lastToken","parseCount","getToken","cookieString","ɵparseCookieValue","xsrfInterceptorFn","lcUrl","HttpFeatureKind","Interceptors","LegacyInterceptors","CustomXsrfConfiguration","NoXsrfProtection","JsonpSupport","RequestsMadeViaParent","Fetch","makeHttpFeature","ɵkind","ɵproviders","provideHttpClient","LEGACY_INTERCEPTOR_FN","getClosureSafeProperty","objWithPropertyToExtract","fillProperties","overriddenName","newLineIndex","concatStringsWithSpace","__forward_ref__","forwardRefFn","resolveForwardRef","isForwardRef","isEnvironmentProviders","XSS_SECURITY_URL","RuntimeError","formatRuntimeError","renderStringify","throwProviderNotFoundError","injectorName","expected","comparison","ɵɵdefineInjector","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","isInjectable","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ngInjectableDef","ngInjectorDef","InjectFlags","Host","Self","SkipSelf","_injectImplementation","setInjectImplementation","impl","injectRootLimpMode","notFoundValue","injectableDef","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","SOURCE","_currentInjector","setCurrentInjector","former","injectInjectorOnly","getInjectImplementation","convertToBitFlags","skipSelf","injectArgs","getInjectFlag","attachInjectFlag","noSideEffects","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","Emulated","ShadowDom","EMPTY_OBJ","NG_COMP_DEF","NG_DIR_DEF","NG_PIPE_DEF","NG_MOD_DEF","NG_FACTORY_DEF","NG_ELEMENT_ID","__NG_ELEMENT_ID__","NG_ENV_ID","__NG_ENV_ID__","classIndexOf","classToSearch","startingIndex","foundIndex","setUpAttributes","attrVal","isAnimationProp","isNameOnlyAttributeMarker","mergeHostAttrs","srcMarker","mergeHostAttribute","markerInsertPosition","dstValue","NG_TEMPLATE_SELECTOR","isCssClassMatching","cssClassToMatch","isProjectionMode","isImplicitAttrsSection","isInlineTemplate","tNode","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","isPositive","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","compareAgainstClassName","bindingsMode","maybeAttrName","matchTemplateAttribute","isNodeMatchingSelectorList","isSelectorInSelectorList","selectorListLoop","currentSelectorInList","maybeWrapInNotSelector","isNegativeMode","stringifyCSSSelector","currentChunk","valueOrMarker","attrValue","ɵɵdefineComponent","componentDefinition","baseDef","getNgDirectiveDef","onPush","directiveDefs","pipeDefs","getStandaloneInjector","signals","schemas","tView","initFeatures","extractDefListOrFactory","getComponentId","componentDef","hashSelectors","imul","ɵɵsetComponentScope","directives","pipes","extractDirectiveDef","getComponentDef","getDirectiveDef","nonNull","ɵɵdefineNgModule","declarations","transitiveCompileScopes","invertObject","newLookup","minifiedKey","publicName","declaredName","ɵɵdefineDirective","directiveDefinition","ɵɵdefinePipe","pipeDef","getPipeDef$1","isStandalone","getNgModuleDef","throwNotFound","ngModuleDef","declaredInputs","providersResolver","inputTransforms","inputConfig","setInput","findHostDirectiveDefs","hostDirectives","definition","defExtractor","dep","HOST","TVIEW","FLAGS","PARENT","NEXT","DESCENDANT_VIEWS_TO_REFRESH","T_HOST","CLEANUP","CONTEXT","INJECTOR$1","ENVIRONMENT","RENDERER","CHILD_HEAD","CHILD_TAIL","DECLARATION_VIEW","DECLARATION_COMPONENT_VIEW","DECLARATION_LCONTAINER","PREORDER_HOOK_FLAGS","QUERIES","EMBEDDED_VIEW_INJECTOR","ON_DESTROY_HOOKS","HYDRATION","REACTIVE_TEMPLATE_CONSUMER","REACTIVE_HOST_BINDING_CONSUMER","HEADER_OFFSET","TYPE","HAS_TRANSPLANTED_VIEWS","NATIVE","MOVED_VIEWS","CONTAINER_HEADER_OFFSET","isLView","isLContainer","isContentQueryHost","isComponentHost","componentOffset","isDirectiveHost","isComponentDef","isRootView","getFactoryDef","WeakRefImpl","LeakyRef","_nextReactiveId","activeConsumer","inNotificationPhase","setActiveConsumer","consumer","ReactiveNode","newWeakRef","producers","consumers","trackingVersion","valueVersion","consumerPollProducersForChange","producerId","producer","producerNode","atTrackingVersion","producerPollStatus","seenValueVersion","producerMayHaveChanged","consumerId","consumerNode","onConsumerDependencyMayHaveChanged","producerAccessed","hasProducers","producerUpdatesAllowed","consumerAllowSignalWrites","lastSeenValueVersion","onProducerUpdateValueVersion","throwInvalidWriteToSignalErrorFn","nonReactiveReadsFn","prevConsumer","NOOP_CLEANUP_FN","Watch","watch","allowSignalWrites","cleanupFn","registerOnCleanup","SimpleChange","isFirstChange","ɵɵNgOnChangesFeature","NgOnChangesFeatureImpl","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","privateName","setSimpleChangesStore","store","SIMPLE_CHANGES_STORE","previousChange","ngInherit","profiler","hookOrListener","SVG_NAMESPACE","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","getComponentLViewByIndex","hostView","slotValue","getConstant","resetPreOrderHookFlags","markViewForRefresh","updateViewsToRefresh","clearViewRefreshFlag","viewOrContainer","instructionState","lFrame","createLFrame","bindingsEnabled","skipHydrationRootTNode","getBindingsEnabled","isInSkipHydrationBlock$1","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","ɵɵresetView","getCurrentTNode","currentTNode","getCurrentTNodePlaceholderOk","getCurrentParentTNode","setCurrentTNode","isCurrentTNodeParent","setCurrentTNodeAsNotParent","getBindingRoot","bindingRootIndex","bindingStartIndex","getBindingIndex","bindingIndex","nextBindingIndex","incrementBindingIndex","setInI18nBlock","isInI18nBlock","inI18n","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentDirectiveDef","tData","getCurrentQueryIndex","setCurrentQueryIndex","getDeclarationTNode","declTNode","enterDI","parentTNode","parentLView","allocLFrame","enterView","newView","newLFrame","currentLFrame","childLFrame","elementDepthCount","currentNamespace","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","ɵɵnamespaceSVG","ɵɵnamespaceHTML","namespaceHTMLInternal","_wasLastNodeCreated","wasLastNodeCreated","lastNodeWasCreated","registerPostOrderHooks","directiveStart","directiveEnd","lifecycleHooks","ngAfterContentInit","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentView","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","callHookInternal","directive","isInitHook","NO_PARENT_INJECTOR","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorView","startView","viewOffset","getParentInjectorViewOffset","parentView","includeViewProviders","setIncludeViewProviders","BLOOM_MASK","BLOOM_BUCKET_BITS","nextNgElementId","NOT_FOUND","getOrCreateNodeInjectorForNode","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","parentIndex","parentData","declarationViewOffset","lViewCursor","getTNodeFromLView","diPublicInInjector","bloomAdd","bloomHash","notFoundValueOrThrow","lookupTokenUsingModuleInjector","moduleInjector","previousInjectImplementation","getOrCreateInjectable","embeddedInjectorValue","lookupTokenUsingEmbeddedInjector","currentLView","nodeInjectorValue","lookupTokenUsingNodeInjector","embeddedViewInjector","embeddedViewInjectorValue","bloomHashBitOrFactory","tokenId","createNodeInjector","previousTView","hostTElementNode","shouldSearchParent","bloomHasToken","searchTokensOnInjector","currentTView","injectableIdx","locateDirectiveOrProvider","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","providerTokenOrDef","dirDef","isFactory","throwCyclicDependencyError","depPath","stringifyForError","previousIncludeViewProviders","registerPreOrderHooks","directiveIndex","directiveDef","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","injectorView","isFirstHostTNode","NodeInjector","_tNode","_lView","ɵɵgetInheritedFactory","ownConstructor","ownFactory","getFactoryOf","objectPrototype","tViewType","ɵɵinjectAttribute","attrNameToInject","injectAttributeImpl","attrsLength","PARAMETERS","makeParamDecorator","parentClass","metaCtor","makeMetadataCtor","ParamDecoratorFactory","annotationInstance","ParamDecorator","annotation","unusedKey","ngMetadataName","annotationCls","deepForEach","addToArray","newArray","keyValueArraySet","keyValueArrayIndexOf","arrayInsert2","keyValueArrayGet","_arrayIndexOfSorted","middle","hasInSkipHydrationBlockFlag","Important","COMMENT_DISALLOWED","COMMENT_DELIMITER","COMMENT_DELIMITER_ESCAPED","TRACKED_LVIEWS","uniqueIdCounter","MONKEY_PATCH_KEY_NAME","attachPatchData","registerLView","_icuContainerIterate","icuContainerIterate","tIcuContainerNode","getLViewParent","getFirstLContainer","getNearestLContainer","getNextLContainer","applyToElementOrContainer","lNodeToHandle","beforeNode","lContainer","isComponent","rNode","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","applyContainer","parentRElement","applyView","updateTextNode","createCommentNode","escapeCommentText","createElementNode","detachMovedView","declarationContainer","movedViews","declarationViewIndex","detachView","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","removeViewFromContainer","lQueries","destroyLView","destroyViewTree","rootView","lViewOrLContainer","cleanUpView","firstView","executeOnDestroys","toCall","callContext","processCleanups","tCleanup","lCleanup","targetIdx","destroyHooksFn","unregisterLView","getParentRElement","getClosestRElement","nativeAppendOrInsertBefore","nativeParentNode","getInsertInFrontOfRNode","_getInsertInFrontOfRNodeWithI18n","getInsertInFrontOfRNodeWithNoI18n","_processI18nInsertBefore","policy$1","setI18nHandling","getInsertInFrontOfRNodeWithI18n","processI18nInsertBefore","childRNode","childTNode","parentRNode","anchorNode","getFirstNativeNode","tNodeType","getBeforeNodeForView","elIcuContainerChild","rNodeOrLContainer","projectionNodes","getProjectionNodes","projection","viewIndexInContainer","nextViewIndex","firstTNodeOfView","nativeParent","nativeRemoveChild","applyNodes","isProjection","rawSlotValue","nextRNode","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","nodeToProject","projectedComponentLView","writeDirectClass","setupStaticAttributes","mergedAttrs","writeDirectStyle","trustedHTMLFromString","getPolicy$1","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","getPolicy","trustedHTMLFromStringBypass","trustedScriptURLFromStringBypass","SafeValueImpl","changingThisBreaksApplicationSecurity","SafeHtmlImpl","getTypeName","SafeStyleImpl","SafeScriptImpl","SafeUrlImpl","SafeResourceUrlImpl","unwrapSafeValue","allowSanitizationBypassAndThrow","actualType","getSanitizationBypassType","bypassSanitizationTrustHtml","trustedHtml","bypassSanitizationTrustStyle","trustedStyle","bypassSanitizationTrustScript","trustedScript","bypassSanitizationTrustUrl","trustedUrl","bypassSanitizationTrustResourceUrl","trustedResourceUrl","getInertBodyHelper","defaultDoc","inertDocumentHelper","InertDocumentHelper","isDOMParserAvailable","DOMParserHelper","getInertBodyElement","inertDocument","templateEl","SAFE_URL_PATTERN","_sanitizeUrl","tagSet","VOID_ELEMENTS","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","VALID_ELEMENTS","URI_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","SanitizingHtmlSerializer","sanitizedSomething","sanitizeChildren","traverseContent","startElement","TEXT_NODE","endElement","checkClobberedElement","elAttrs","elAttr","encodeEntities","DOCUMENT_POSITION_CONTAINED_BY","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","_sanitizeHtml","unsafeHtmlInput","inertBodyElement","unsafeHtml","mXSSAttempts","parsedHtml","getTemplateContent","isTemplateElement","SecurityContext","NONE","HTML","STYLE","RESOURCE_URL","ɵɵsanitizeHtml","getSanitizer","sanitize","ɵɵsanitizeStyle","unsafeStyle","ɵɵsanitizeUrl","unsafeUrl","ɵɵsanitizeResourceUrl","unsafeResourceUrl","ɵɵsanitizeUrlOrResourceUrl","getUrlSanitizer","_desc","ENVIRONMENT_INITIALIZER","INJECTOR","INJECTOR_DEF_TYPES","NullInjector","importProvidersFrom","internalImportProvidersFrom","ɵfromNgModule","checkForStandaloneCmp","providersOut","dedup","injectorTypesWithProviders","internalSource","walkProviderTree","processInjectorTypesWithProviders","typesWithProviders","deepForEachProvider","provider","defType","injDef","cmpDef","isDuplicate","importTypesWithProviders","imported","defProviders","USE_VALUE$1","isValueProvider","isTypeProvider","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR$1","getNullInjector","EnvironmentInjector","R3Injector","records","_ngOnDestroyHooks","_onDestroyHooks","forEachSingleProvider","processProvider","makeRecord","injectorDefTypes","assertNotDestroyed","service","onDestroyHooks","removeOnDestroy","previousInjector","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","catchInjectorError","injectorErrorName","tokenPath","resolveInjectorInitializers","providerToRecord","providerToFactory","multiRecord","hasOnDestroy","destroyCBIdx","getUndecoratedInjectableFactory","paramLength","inheritedInjectableDef","getInheritedInjectableDef","ngModuleType","unwrappedProvider","isFactoryProvider","isExistingProvider","classRef","hasDeps","APP_ID","DEFAULT_APP_ID","PLATFORM_INITIALIZER","_retrieveHydrationInfoImpl","retrieveHydrationInfo","ComponentRef$1","ComponentFactory$1","_NullComponentFactoryResolver","noComponentFactoryError","ComponentFactoryResolver$1","NULL","injectElementRef","createElementRef","unwrapElementRef","Renderer2","injectRenderer2","nodeAtIndex","Sanitizer","full","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","markViewDirty","getOriginalError","ErrorHandler","_console","handleError","originalError","_findOriginalError","PRESERVE_HOST_CONTENT","ɵɵresolveWindow","ɵɵresolveDocument","maybeUnwrapFn","ReactiveLViewConsumer","hasReadASignal","currentConsumer","getOrCreateCurrentLViewConsumer","getReactiveLViewConsumer","slot","commitLViewConsumerIfHasProducers","NO_CHANGE","ɵɵadvance","selectIndexInternal","checkNoChangesMode","createInjector","additionalProviders","createInjectorWithoutInjectorInstances","ɵɵdirectiveInject","ɵɵinvalidFactory","createLView","tHostNode","hydrationInfo","getUniqueLViewId","getOrCreateTNode","createTNodeAtIndex","createTNode","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","localNames","initialInputs","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","allocExpando","numSlotsToAlloc","allocIdx","executeTemplate","templateFn","prevSelectedIndex","isUpdatePhase","executeContentQueries","createDirectivesInstances","instantiateAllDirectives","addComponentLogic","hostTNode","getOrCreateComponentTView","lViewFlags","componentView","addToViewTree","rendererFactory","setInputsFromAttrs","invokeDirectivesHostBindings","saveResolvedLocalsInData","viewData","localRefExtractor","localIndex","incompleteFirstPass","createTView","constsOrFactory","ssrId","initialViewLength","createViewBlueprint","queries","expandoStartIndex","hostBindingOpCodes","firstUpdatePass","staticViewQueries","staticContentQueries","directiveRegistry","pipeRegistry","_applyRootElementTransformImpl","generatePropertyAliases","aliasMap","propertyAliases","hostDirectiveAliasMap","internalName","addPropertyAlias","elementPropertyInternal","nativeOnly","dataValue","setInputsForProperty","markDirtyIfOnPush","viewIndex","childComponentLView","mapPropName","resolveDirectives","localRefs","exportsMap","matchResult","findDirectiveDefMatches","hostDirectiveDefs","hostDirectiveMatches","markAsComponentHost","initializeDirectives","cacheMatchingLocalNames","initTNodeFlags","numberOfDirectives","preOrderHooksFound","preOrderCheckHooksFound","directiveIdx","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","initializeInputAndOutputAliases","hostDirectiveDefinitionMap","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","aliasData","aliasedOutputs","generateInitialInputs","elementIndex","getCurrentDirectiveIndex","invokeHostBindingsInCreationMode","directiveFactory","nodeInjectorFactory","registerHostBindingOpCodes","directiveVarsIdx","elementIndx","lastSelectedElementIdx","setElementAttribute","initialInputData","writeToDirectiveInput","inputsToStore","createLContainer","hostNative","refreshContentQueries","directiveDefIdx","executeViewQueryFn","viewQueryFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","errorHandler","textBindingInternal","hostLView","componentHostIdx","componentTView","syncViewWithBlueprint","hostRNode","renderView","renderChildComponents","EffectManager","effectFn","destroyRef","Zone","unregisterOnDestroy","computeStaticStyling","writeToHost","collectNativeNodes","lNode","lViewInAContainer","lViewFirstChildTNode","nodesInSlot","detectChangesInternal","notifyErrorHandler","refreshView","effectManager","setBindingIndex","hooksInitPhaseCompleted","markTransplantedViewsForRefresh","detectChangesInEmbeddedViews","processHostBindingOpCodes","opCode","bindingRootIndx","hostBindingFn","detectChangesInChildComponents","detectChangesInView","detectChangesInComponent","viewAttachedToChangeDetector","ViewRef$1","_cdRefInjectingView","_appRef","_attachedToViewContainer","viewRefs","storeLViewOnDestroy","onDestroyCallback","reattach","checkNoChanges","attachToViewContainerRef","detachFromAppRef","renderDetachView","attachToAppRef","RootViewRef","ComponentFactoryResolver","ComponentFactory","toRefArray","nonMinified","ChainedInjector","parentInjector","refArray","stringifyCSSSelectorList","selectorList","isBoundToModule","projectableNodes","rootSelectorOrNode","environmentInjector","realEnvironmentInjector","rootViewInjector","hostRenderer","elementName","locateHostElement","elementOrSelector","applyRootElementTransform","getNamespace","rootFlags","rootTView","rootLView","tElementNode","rootComponentDef","rootDirectives","createRootComponentTNode","createRootComponentView","applyRootComponentStyling","setRootNodeAttributes","extractAttrsAndClassesFromSelector","projectNodes","nodesforSlot","createRootComponent","hostFeatures","rootTNode","LifecycleHooksFeature","ComponentRef","_rootLView","previousInputValues","ɵɵInheritDefinitionFeature","superType","getSuperType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","defData","mergeHostAttrsAcrossInheritance","prevViewQuery","prevContentQueries","prevHostBindings","ɵɵHostDirectivesFeature","rawHostDirectives","bindingArrayToMap","currentDef","matchedDefs","hostDirectiveConfig","hostDirectiveDef","patchDeclaredInputs","bindings","exposedInputs","ɵɵInputTransformsFeature","isListLikeIterable","isJsObject","updateBinding","getBinding","bindingUpdated","bindingUpdated2","exp1","exp2","different","bindingUpdated3","exp3","bindingUpdated4","exp4","ɵɵattribute","elementAttributeInternal","interpolation1","interpolation2","ɵɵtemplate","attrsIndex","localRefsIndex","adjustedIndex","templateFirstCreatePass","tViewConsts","embeddedTView","_locateOrCreateContainerAnchor","createContainerAnchorImpl","ɵɵreference","getContextLView","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","ɵɵelementStart","elementStartFirstCreatePass","elementStart","_locateOrCreateElementNode","hasDirectives","getElementDepthCount","increaseElementDepthCount","ɵɵelementEnd","isSkipHydrationRootTNode","leaveSkipHydrationBlock","decreaseElementDepthCount","elementEnd","hasClassInput","hasStyleInput","ɵɵelement","getNamespace$1","ɵɵelementContainerStart","elementContainerStartFirstCreatePass","_locateOrCreateElementContainerNode","ɵɵelementContainerEnd","ɵɵelementContainer","ɵɵgetCurrentView","isSubscribable","ɵɵlistener","listenerFn","eventTargetResolver","listenerInternal","isTNodeDirectiveHost","processOutputs","lCleanupIndex","idxOrTargetGetter","existingListener","findExistingListener","tNodeIdx","cleanupEventName","listenerIdxInLCleanup","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","propsLength","executeListenerWithErrorHandling","wrapWithPreventDefault","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","ɵɵnextContext","nextContextImpl","walkUpViews","nestingLevel","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","getProjectAsAttrValue","ngProjectAsAttrIdx","ɵɵprojectionDef","componentNode","projectionHeads","tails","componentChild","slotIndex","ɵɵprojection","selectorIndex","applyProjection","ɵɵpropertyInterpolate","ɵɵpropertyInterpolate1","interpolatedValue","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","markDuplicates","tStylingKey","isPrevDir","isClassBinding","tStylingAtIndex","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","keyEnd","valueEnd","getLastParsedKey","parseClassNameNext","consumeClassToken","consumeWhitespace","ɵɵstyleProp","checkStylingProperty","ɵɵclassProp","ɵɵclassMap","checkStylingMap","classKeyValueArraySet","classStringParser","parseClassName","resetParserState","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","updateStylingMap","oldKeyValueArray","newKeyValueArray","oldKey","toStylingKeyValueArray","styleKeyValueArray","unwrappedValue","isHostBindings","wrapInStaticStylingKey","stylingKey","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","insertTStylingBinding","tStylingKeyWithStatic","isHostBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","setTStylingRangePrev","markDuplicateOfResidualStyling","currentDirective","desiredMarker","currentMarker","stringKey","tRange","higherPriorityValue","getTStylingRangeNextDuplicate","findStylingValue","isStylingValuePresent","getTStylingRangePrevDuplicate","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","ɵɵtext","textNative","_locateOrCreateTextNode","ɵɵtextInterpolate","ɵɵtextInterpolate1","interpolated","ɵɵtextInterpolate2","ɵɵtextInterpolate3","interpolation3","ɵɵtextInterpolate4","v3","interpolation4","ɵɵtextInterpolate5","v4","interpolation5","ɵɵtextInterpolate7","v5","v6","interpolation7","ɵɵtextInterpolate8","v7","interpolation8","ɵɵclassMapInterpolate1","ɵɵclassMapInterpolate2","ɵɵhostProperty","ɵɵsyntheticHostProperty","loadComponentRenderer","unwrapLView","localeEn","LOCALE_DATA","findLocaleData","normalizedLocale","getLocaleData","LocaleDataIndex","PluralCase","ng","FirstDayOfWeek","WeekendRange","CurrencyName","Currencies","pluralMapping","DEFAULT_LOCALE_ID","ELEMENT_MARKER","ICU_MARKER","I18nCreateOpCode","SHIFT","APPEND_EAGERLY","COMMENT","LOCALE_ID$1","setLocaleId","assertDefined","tNodeInsertBeforeIndex","i18nParent","anchorRNode","addTNodeAndUpdateInsertBeforeIndex","previousTNodes","newTNode","existingTNode","isI18nText","isNewTNodeCreatedBefore","getInsertBeforeIndex","setInsertBeforeIndex","getTIcu","createTNodePlaceholder","getCurrentICUCaseIndex","tIcu","currentCase","currentCaseLViewIndex","getParentFromIcuCreateOpCode","mergedCode","getRefFromIcuCreateOpCode","changeMask","changeMaskCounter","applyMutableOpCodes","mutableOpCodes","rootRNode","rootIdx","textNodeIndex","parentIdx","insertInFrontOf","refIdx","caseIndex","commentValue","commentNodeIndex","elementNodeIndex","applyUpdateOpCodes","updateOpCodes","bindingsStartIndex","checkBit","skipCodes","sanitizeFn","tNodeOrTagName","rText","applyIcuSwitchCase","applyIcuUpdateCase","activeCaseIndex","getCaseIndex","icuExpression","bindingValue","resolvedCase","getPluralCase","applyIcuSwitchCaseRemove","removeCodes","nodeOrIcuIndex","loadIcuContainerVisitor","_stack","_removes","enterIcu","icuContainerIteratorNext","removeOpCode","icuContainerIteratorStart","BINDING_REGEXP","NESTED_ICU","ICU_BLOCK_REGEXP","MARKER","SUBTEMPLATE_REGEXP","PH_REGEXP","NGSP_UNICODE_REGEXP","createTNodeAndAddOpCode","existingTNodes","createOpCodes","isICU","i18nNodeIdx","ensureIcuContainerVisitorLoaded","setTNodeInsertBeforeIndex","assertEqual","i18nStartFirstCreatePassProcessTextNode","hasBinding","generateBindingUpdateOpCodes","destinationNode","bindingStart","maskIndex","sizeIndex","textParts","toMaskBit","removeInnerTemplateTranslation","tagMatched","inTemplate","icuStart","bindingMask","addUpdateIcuSwitch","mainBinding","setTIcu","valueArr","nestedIcus","icuIndex","parseIcuCase","addUpdateIcuUpdate","parseICUBlock","icuType","i18nParseTextIntoPartsAndICU","binding","prevPos","braceStack","braces","caseName","unsafeCaseHtml","inertRootNode","walkIcuTree","sharedUpdateOpCodes","addCreateNodeAndAppend","lowerAttrName","addCreateAttribute","addRemoveNode","COMMENT_NODE","isNestedIcu","addRemoveNestedIcu","appendToParentIdx","createAtIdx","icuCreateOpCode","ɵɵi18nStart","messageIndex","subTemplateIndex","i18nStartFirstCreatePass","parentTNodeIndex","existingTNodeStack","getTranslationForTemplate","isRootTemplateMessage","msgParts","replaceNgsp","isClosing","tI18n","applyCreateOpCodes","appendNow","ɵɵi18n","ɵɵi18nEnd","ɵɵi18nExp","setMaskBit","hasChange","ɵɵi18nApply","applyI18n","resolveProvider","lInjectablesBlueprint","providerFactory","beginIndex","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesViewProvidersFactoryExist","multiFactory","factoryFn","componentProviders","multiFactoryAdd","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","providerIsClassProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","ɵɵProvidersFeature","viewProviders","processProvidersFn","NgModuleRef$1","NgModuleFactory$1","createNgModule","NgModuleRef","_parent","_bootstrapComponents","destroyCbs","_r3Injector","NgModuleFactory","moduleType","EnvironmentNgModuleRefAdapter","debugName","runEnvironmentInitializers","createEnvironmentInjector","StandaloneService","_injector","cachedInjectors","getOrCreateStandaloneInjector","standaloneInjector","ɵɵStandaloneFeature","ɵɵpureFunction0","slotOffset","pureFn","ɵɵpureFunction1","pureFunction1Internal","ɵɵpureFunction2","pureFunction2Internal","ɵɵpureFunction3","pureFunction3Internal","ɵɵpureFunction4","pureFunction4Internal","bindingRoot","getPureFunctionReturnValue","ɵɵpureFunction5","exp5","ɵɵpureFunction7","exp6","exp7","ɵɵpureFunctionV","exps","pureFunctionVInternal","returnValueIndex","lastReturnValue","ɵɵpipe","pipeName","getPipeDef","pipeFactory","pipeInstance","ɵɵpipeBind1","isPure","ɵɵpipeBind2","ɵɵpipeBind3","ɵɵpipeBindV","_wrapInTimeout","EventEmitter_","__isAsync","nextFn","errorFn","symbolIterator","_results","QueryList","_changes","_emitDistinctChangesOnly","_changesDetected","resultsTree","identityAccessor","newResultFlat","notifyOnChanges","setDirty","TemplateRef","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","createEmbeddedViewImpl","embeddedLView","declarationViewLQueries","createTemplateRef","ViewContainerRef","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","indexOrOptions","insertImpl","componentFactoryOrType","isComponentFactory","isType","ngModuleRef","componentFactory","contextInjector","skipDomInsertion","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","insertView","containerLength","trackMovedView","addViewToContainer","parentNativeNode","getOrCreateViewRefs","viewRefsArr","detachedView","_locateOrCreateAnchorNode","createAnchorNode","commentNode","insertAnchorNode","nativeNextSibling","LQuery_","queryList","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","TQueries_","queriesForTemplateRef","childQueryIndex","tqueryClone","tquery","TQuery_","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","matchIdx","createResultForNode","matchingIdx","createResultByTNodeType","createSpecialToken","materializeViewResults","lQuery","tQueryMatches","matchedNodeIdx","collectQueryResults","lViewResults","embeddedLViews","ɵɵqueryRefresh","isCreationMode","ɵɵviewQuery","createTQuery","createLQuery","ɵɵcontentQuery","saveContentQueryAndDirectiveIndex","tViewContentQueries","ɵɵloadQuery","loadQueryInternal","storeCleanupWithContext","ɵɵtemplateRefExtractor","isNgModule","ApplicationInitStatus","donePromise","rej","appInits","runInitializers","asyncInitPromises","initResult","observableAsPromise","Console","getGlobalLocale","$localize","DEFAULT_CURRENCY_CODE","InitialRenderPendingTasks","hasPendingTasks","ModuleWithComponentFactories","ngModuleFactory","componentFactories","Compiler","compileModuleSync","compileModuleAsync","compileModuleAndAllComponentsSync","declaration","compileModuleAndAllComponentsAsync","clearCacheFor","getModuleId","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","hasPendingMacrotasks","hasPendingMicrotasks","onUnstable","onMicrotaskEmpty","assertZonePatched","_nesting","_outer","_inner","TaskTrackingZoneSpec","longStackTraceZoneSpec","lastRequestAnimationFrameId","nativeRequestAnimationFrame","getNativeRequestAnimationFrame","nativeCancelAnimationFrame","unpatchedRequestAnimationFrame","__symbol__","unpatchedCancelAnimationFrame","forkInnerZoneWithAngularBehavior","delayChangeDetectionForEventsDelegate","delayChangeDetectionForEvents","isCheckStableRunning","fakeTopEventTask","scheduleEventTask","updateMicroTaskStatus","checkStable","isAngularZone","onInvokeTask","applyThis","applyArgs","onEnter","invokeTask","onInvoke","onHasTask","hasTaskState","hasTask","_hasPendingMicrotasks","microTask","macroTask","onHandleError","runTask","EMPTY_PAYLOAD","runGuarded","NoopNgZone","ZONE_IS_STABLE_OBSERVABLE","isStableFactory","_stable","isCurrentlyStable","stableSub","assertNotInAngularZone","unstableSub","assertInAngularZone","merge$1","TESTABILITY","TESTABILITY_GETTER","_testabilityGetter","Testability","testabilityGetter","_pendingCount","_isZoneStable","_didWork","taskTrackingZone","setTestabilityGetter","addToWindow","_watchAngularEvents","_runCallbacksIfReady","increasePendingRequestCount","decreasePendingRequestCount","doneCb","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","getPendingRequestCount","registerApplication","unregisterApplication","findProviders","exactMatch","TestabilityRegistry","_applications","testability","unregisterAllApplications","getTestability","getAllTestabilities","getAllRootElements","findTestabilityInTree","findInAncestors","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","PLATFORM_DESTROY_LISTENERS","APP_BOOTSTRAP_LISTENER","NgProbeToken","createPlatformFactory","parentPlatformFactory","extraProviders","getPlatform","platformProviders","createPlatform","publishSignalConfiguration","setThrowInvalidWriteToSignalError","PlatformRef","runPlatformInitializers","createPlatformInjector","assertPlatform","requiredToken","_modules","_destroyListeners","bootstrapModuleFactory","moduleFactory","getNgZone","ngZoneToUse","getNgZoneOptions","eventCoalescing","runCoalescing","ngZoneEventCoalescing","ngZoneRunCoalescing","moduleRef","createNgModuleRefWithProviders","internalProvideZoneChangeDetection","ngZoneFactory","ngZoneChangeDetectionScheduler","NgZoneChangeDetectionScheduler","INTERNAL_APPLICATION_ERROR_HANDLER","ngZoneApplicationErrorHandlerFactory","exceptionHandler","_callAndReportToErrorHandler","initStatus","_moduleDoBootstrap","compilerOptions","optionsReducer","compileNgModuleFactory","ngDoBootstrap","destroyListeners","objs","_bootstrapListeners","_runningTick","_views","internalErrorHandler","zoneIsStable","componentTypes","componentOrFactory","compRef","_loadComponent","attachView","viewCount","userErrorHandler","applicationRef","_onMicrotaskEmptySubscription","ChangeDetectorRef","injectChangeDetectorRef","createViewRef","isPipe","DefaultIterableDifferFactory","trackByFn","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","forEachItem","nextIt","nextRemove","addRemoveOffset","moveOffsets","getPreviousIndex","adjPreviousIndex","_nextRemoved","localMovePreviousIndex","localCurrentIndex","forEachPreviousItem","_nextPrevious","_nextAdded","forEachMovedItem","_nextMoved","_nextIdentityChange","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","previousRecord","_prev","_remove","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","_prevDup","_nextDup","_DuplicateItemRecordList","_head","_tail","atOrAfterIndex","recordList","moveOffset","DefaultKeyValueDifferFactory","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","defaultIterableDiffersFactory","IterableDiffers","copied","defaultKeyValueDiffersFactory","KeyValueDiffers","platformCore","ApplicationModule","booleanAttribute","elementInjector","reflectComponentType","isSignal","BaseControlValueAccessor","setDisabledState","BuiltInControlValueAccessor","ɵBuiltInControlValueAccessor_BaseFactory","CHECKBOX_VALUE_ACCESSOR","CheckboxControlValueAccessor","ɵCheckboxControlValueAccessor_BaseFactory","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","_isAndroid","ɵgetDOM","getUserAgent","_handleInput","_compositionStart","_compositionEnd","isEmptyInputValue","hasValidLength","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","minValidator","maxValidator","requiredValidator","requiredTrueValidator","minLengthValidator","minlength","requiredLength","actualLength","maxLengthValidator","patternValidator","composeAsync","maxlength","nullValidator","regexStr","requiredPattern","actualValue","toObservable","mergeErrors","arrayOfErrors","executeValidators","normalizeValidators","isValidatorFn","presentValidators","composeValidators","composeAsyncValidators","mergeValidators","controlValidators","dirValidator","getControlValidators","_rawValidators","getControlAsyncValidators","_rawAsyncValidators","makeValidatorsArray","hasValidator","addValidators","currentValidators","validatorsToAdd","removeValidators","AbstractControlDirective","_onDestroyCallbacks","untouched","statusChanges","_setValidators","_composedValidatorFn","_setAsyncValidators","_composedAsyncValidatorFn","asyncValidator","_registerOnDestroy","_invokeOnDestroyCallbacks","getError","ControlContainer","formDirective","NgControl","valueAccessor","AbstractControlStatus","_cd","isTouched","isUntouched","isPristine","isPending","NgControlStatus","NgControlStatusGroup","VALID","INVALID","PENDING","DISABLED","pickValidators","validatorOrOpts","isOptionsObj","pickAsyncValidators","asyncValidators","assertControlPresent","assertAllValuesPresent","_forEachChild","AbstractControl","_pendingDirty","_hasOwnPendingAsyncValidator","_pendingTouched","_onCollectionChange","_onDisabledChange","_assignValidators","_assignAsyncValidators","validatorFn","asyncValidatorFn","updateOn","_updateOn","setValidators","setAsyncValidators","addAsyncValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","markAllAsTouched","markAsUntouched","_updateTouched","_updatePristine","markAsPending","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","updateValueAndValidity","getRawValue","_setInitialStatus","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","_allControlsDisabled","_asyncValidationSubscription","_updateControlsErrors","currPath","_find","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","_registerOnCollectionChange","_setUpdateStrategy","coerceToValidator","coerceToAsyncValidator","_setUpControls","registerControl","addControl","removeControl","setControl","controlName","_reduceChildren","_syncPendingControls","subtreeUpdated","_reduceValue","FormRecord","CALL_SET_DISABLED_STATE","setDisabledStateDefault","controlPath","setUpControl","callSetDisabledState","setUpValidators","setUpViewChangePipeline","_pendingValue","_pendingChange","updateControl","setUpModelChangePipeline","emitModelEvent","viewToModelUpdate","_unregisterOnChange","setUpBlurPipeline","setUpDisabledChangeHandler","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","cleanUpControl","validateControlPresenceOnChange","cleanUpValidators","registerOnValidatorChange","onValidatorChange","isControlUpdated","updatedValidators","updatedAsyncValidators","emitModelToViewChange","setUpFormContainer","isPropertyUpdated","viewModel","syncPendingControls","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","isBuiltInAccessor","formDirectiveProvider$1","NgForm","resolvedPromise$1","_directives","ngSubmit","_findContainer","getControl","addFormGroup","removeFormGroup","getFormGroup","updateModel","onReset","resetForm","removeListItem","isFormControlState","formState","_onChange","_applyFormState","nonNullable","initialValueIsDefault","emitViewToModelChange","UntypedFormControl","AbstractFormGroupDirective","_checkParentType","ɵAbstractFormGroupDirective_BaseFactory","formControlBinding$1","NgModel","resolvedPromise","_registered","_checkForErrors","_checkName","oldName","_getPath","_setUpControl","_updateDisabled","_isStandalone","_setUpStandalone","disabledValue","ɵNgNoValidate","NUMBER_VALUE_ACCESSOR","NumberValueAccessor","ɵNumberValueAccessor_BaseFactory","RADIO_VALUE_ACCESSOR","RadioControlValueAccessor","RadioControlRegistryModule","RadioControlRegistry","_accessors","accessor","_isSameGroup","fireUncheck","controlPair","_control","_registry","setDisabledStateFired","_fn","formControlName","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding","FormControlDirective","_ngModelWarningConfig","_ngModelWarningSent","_isControlChanged","previousForm","_ngModelWarningSentOnce","formDirectiveProvider","FormGroupDirective","_updateDomValue","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","removeListItem$1","_setUpFormContainer","_cleanUpFormContainer","addFormArray","removeFormArray","getFormArray","newCtrl","isFormControl","cleanUpFormContainer","formGroupNameProvider","FormGroupName","_hasInvalidParent","formArrayNameProvider","FormArrayName","controlNameBinding","FormControlName","_added","SELECT_VALUE_ACCESSOR","_buildValueString$1","_optionMap","_compareWith","valueString","_getOptionValue","_registerOption","_extractId$1","ɵSelectControlValueAccessor_BaseFactory","NgSelectOption","_select","ngValue","_setElementValue","SELECT_MULTIPLE_VALUE_ACCESSOR","SelectMultipleControlValueAccessor","_buildValueString","optionSelectedStateSetter","ids","_setSelected","selectedOptions","_extractId","ɵSelectMultipleControlValueAccessor_BaseFactory","ɵNgSelectMultipleOption","toFloat","AbstractValidatorDirective","inputName","normalizeInput","createValidator","MAX_VALIDATOR","MaxValidator","ɵMaxValidator_BaseFactory","MIN_VALIDATOR","MinValidator","ɵMinValidator_BaseFactory","REQUIRED_VALIDATOR","RequiredValidator","ɵRequiredValidator_BaseFactory","MAX_LENGTH_VALIDATOR","MaxLengthValidator","toInteger","ɵMaxLengthValidator_BaseFactory","PATTERN_VALIDATOR","PatternValidator","ɵPatternValidator_BaseFactory","ɵInternalFormsSharedModule","FormArray","_registerControl","removeAt","isAbstractControlOptions","FormBuilder","useNonNullable","nnfb","reducedControls","_reduceControls","createdControls","_createControl","warnOnNgModelWithFormControl","MapEventManager","_clearListeners","_pending","_targetStream","getLazyEmitter","setTarget","DEFAULT_OPTIONS","mapTypeId","GoogleMap","_center","_zoom","_eventManager","mapInitialized","authFailure","boundsChanged","centerChanged","mapClick","mapDblclick","mapDrag","mapDragend","mapDragstart","headingChanged","idle","maptypeidChanged","mapMousemove","mapMouseout","mapMouseover","projectionChanged","mapRightclick","tilesloaded","tiltChanged","zoomChanged","_isBrowser","googleMapsWindow","_existingAuthFailureCallback","gm_authFailure","_setSize","googleMap","setOptions","_combineOptions","setCenter","setZoom","setMapTypeId","_mapEl","fitBounds","_assertInitialized","panBy","panTo","latLng","panToBounds","latLngBounds","getBounds","getCenter","getClickableIcons","getHeading","getMapTypeId","getProjection","getStreetView","getTilt","getZoom","mapTypes","overlayMapTypes","coerceCssPixelValue","DEFAULT_WIDTH","cssUnitsPattern","DEFAULT_MARKER_OPTIONS","MapMarker","_title","_label","clickable","_clickable","_icon","_visible","_googleMap","animationChanged","clickableChanged","cursorChanged","draggableChanged","flatChanged","iconChanged","mapMousedown","mapMouseup","positionChanged","shapeChanged","titleChanged","visibleChanged","zindexChanged","Marker","setMap","setClickable","setIcon","getAnimation","getClickable","getCursor","getDraggable","getOpacity","getShape","getVisible","getZIndex","getAnchor","MapPolyline","polylineClick","polylineDblclick","polylineDrag","polylineDragend","polylineDragstart","polylineMousedown","polylineMousemove","polylineMouseout","polylineMouseover","polylineMouseup","polylineRightclick","_watchForOptionsChanges","_watchForPathChanges","getEditable","getPath","setPath","MapGeocoder","geocode","_geocoder","Geocoder","GenericBrowserDomAdapter","ɵDomAdapter","supportsDOMEvents","BrowserDomAdapter","ɵsetRootDomAdapter","onAndCancel","getDefaultDocument","createHtmlDocument","isShadowRoot","DocumentFragment","getBaseElementHref","baseElement","relativePath","urlParsingNode","resetBaseElement","BrowserXhr","EVENT_MANAGER_PLUGINS","EventManager","_eventNameToPlugin","_findPluginFor","getZone","EventManagerPlugin","APP_ID_ATTRIBUTE_NAME","SharedStylesHost","styleRef","hostNodes","styleNodesInDOM","collectServerRenderedStyles","platformIsServer","resetHostNodes","addStyles","changeUsageCount","onStyleAdded","removeStyles","onStyleRemoved","addHost","hostNode","addStyleToHost","removeHost","styleRefValue","usage","getStyleElement","styleEl","styleElRef","NAMESPACE_URIS","xhtml","COMPONENT_REGEX","REMOVE_STYLES_ON_COMPONENT_DESTROY","shimStylesContent","DomRendererFactory2","eventManager","sharedStylesHost","removeStylesOnCompDestroy","rendererByCompId","defaultRenderer","DefaultDomRenderer2","getOrCreateRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","NoneEncapsulationDomRenderer","ShadowDomRenderer","isTemplateNode","namespaceUri","removeAttributeNS","decoratePreventDefault","hostEl","nodeOrShadowRoot","rendererUsageCount","contentAttr","shimContentAttribute","componentShortId","hostAttr","shimHostAttribute","DomEventsPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Menu","Scroll","Win","MODIFIER_KEY_GETTERS","KeyEventsPlugin","parseEventName","outsideHandler","eventCallback","fullKey","domEventName","_normalizeKey","codeIX","modifierName","fullKeyCode","keycode","modifierGetter","matchEventFullKeyCode","platformBrowser","ɵPLATFORM_BROWSER_ID","initDomAdapter","makeCurrent","ɵsetDocument","BROWSER_MODULE_PROVIDERS_MARKER","TESTABILITY_PROVIDERS","ɵTESTABILITY_GETTER","BrowserGetTestability","ɵglobal","getAngularTestability","getAllAngularTestabilities","getAllAngularRootElements","frameworkStabilizers","testabilities","didWork","decrement","didWork_","ɵTESTABILITY","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","providersAlreadyPresent","Meta","_dom","addTag","forceCreation","_getOrCreateElement","addTags","getTag","attrSelector","getTags","_parseSelector","_setMetaElementAttributes","removeTag","removeTagElement","_containsAttributes","_getMetaKeyMap","META_KEYS_MAP","createMeta","httpEquiv","newTitle","createTitle","DomSanitizer","DomSanitizerImpl","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","ɵ_sanitizeUrl","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","ɵbypassSanitizationTrustScript","bypassSecurityTrustUrl","ɵbypassSanitizationTrustUrl","ɵbypassSanitizationTrustResourceUrl","domSanitizerImplFactory","PRIMARY_OUTLET","RouteTitleKey","ParamsAsMap","convertToParamMap","defaultUrlMatcher","segmentGroup","pathMatch","posParams","consumed","shallowEqual","equalArraysOrString","aSorted","bSorted","wrapIntoObservable","pathCompareMap","exact","equalSegmentGroups","containee","matrixParams","equalPath","matrixParamsMatch","numberOfChildren","subset","containsSegmentGroup","paramCompareMap","equalParams","containsParams","containsTree","containsSegmentGroupHelper","containeePaths","containerPaths","containeeSegment","UrlTree","UrlSegmentGroup","queryParamMap","_queryParamMap","DEFAULT_SERIALIZER","serializePaths","UrlSegment","parameterMap","_parameterMap","serializePath","UrlSerializer","DefaultUrlSerializer","UrlParser","parseRootSegment","parseQueryParams","parseFragment","serializeSegment","serializeQueryParams","strParams","encodeUriQuery","encodeUriFragment","mapChildrenIntoArray","childOutlet","encodeUriString","encodeUriSegment","decodeQuery","serializeMatrixParams","SEGMENT_RE","matchSegments","MATRIX_PARAM_SEGMENT_RE","QUERY_PARAM_RE","QUERY_PARAM_VALUE_RE","consumeOptional","peekStartsWith","parseChildren","parseQueryParam","parseSegment","parseParens","parseMatrixParams","parseParam","matchMatrixKeySegments","valueMatch","matchQueryParams","matchUrlQueryParamValue","decodedKey","decodedVal","currentVal","allowPrimary","outletName","createRoot","rootCandidate","tn","squashSegmentGroup","childCandidate","grandChildOutlet","grandChild","mergeTrivialChildren","isUrlTree","createSegmentGroupFromRoute","targetGroup","rootSegmentGroup","createSegmentGroupFromRouteRecursive","currentRoute","childOutlets","childSnapshot","outlet","createUrlTreeFromSegmentGroup","relativeTo","commands","computeNavigation","Navigation","numberOfDoubleDots","cmd","cmdIdx","outlets","segmentPath","urlPart","partIndex","toRoot","findStartingPositionForTargetGroup","Position","modifier","isMatrixParams","createPositionApplyingDoubleDots","newSegmentGroup","processChildren","updateSegmentGroupChildren","updateSegmentGroup","isCommandWithOutlets","oldRoot","oldSegmentGroup","qp","replaceSegment","newRoot","oldSegment","newSegment","cmdWithOutlet","prefixedWith","currentCommandIndex","currentPathIndex","noMatch","pathIndex","commandIndex","slicedCommands","createNewSegmentGroup","getOutlets","childrenOfEmptyChild","createNewSegmentChildren","IMPERATIVE_NAVIGATION","RouterEvent","NavigationStart","navigationTrigger","restoredState","urlAfterRedirects","NavigationCancel","NavigationSkipped","NavigationError","RoutesRecognized","GuardsCheckStart","GuardsCheckEnd","shouldActivate","ResolveStart","ResolveEnd","RouteConfigLoadStart","RouteConfigLoadEnd","ChildActivationStart","routeConfig","ChildActivationEnd","ActivationStart","ActivationEnd","routerEvent","OutletContext","ChildrenOutletContexts","attachRef","onChildOutletCreated","childName","getOrCreateContext","onChildOutletDestroyed","onOutletDeactivated","onOutletReAttached","Tree","pathFromRoot","findNode","findPath","cc","TreeNode","nodeChildrenAsMap","RouterState","setRouterState","createEmptyState","urlTree","rootComponent","createEmptyStateSnapshot","ActivatedRouteSnapshot","RouterStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","ActivatedRoute","urlSubject","paramsSubject","queryParamsSubject","fragmentSubject","dataSubject","futureSnapshot","_futureSnapshot","_routerState","paramMap","_paramMap","inheritedParamsDataResolve","paramsInheritanceStrategy","inheritingStartingFrom","flattenInherited","_resolvedData","serializeNode","advanceActivatedRoute","nextSnapshot","shallowEqualArrays","equalParamsAndUrlSegments","equalUrlParams","equalSegments","RouterOutlet","_activatedRoute","activateEvents","deactivateEvents","attachEvents","detachEvents","parentContexts","changeDetector","inputBinder","INPUT_BINDER","supportsBindingToComponentInputs","activatedComponentRef","isTrackedInParentContexts","initializeOutletWithName","unsubscribeFromRouteData","attach","activateWith","isActivated","activatedRoute","activatedRouteData","bindActivatedRouteToOutletComponent","childContexts","OutletInjector","RoutedComponentInputBinder","outletDataSubscriptions","subscribeToRouteData","dataSubscription","routeReuseStrategy","prevState","shouldReuseRoute","createOrReuseChildren","shouldAttach","detachedRouteHandle","createActivatedRoute","NAVIGATION_CANCELING_ERROR","redirectingNavigationError","urlSerializer","navigationBehaviorOptions","navigationCancelingError","redirectUrl","cancellationCode","isRedirectingNavigationCancelingError$1","isNavigationCancelingError$1","ɵEmptyOutletComponent","standardizeConfig","loadComponent","getOutlet","getClosestRouteInjector","_loadedInjector","ActivateRoutes","futureState","currState","forwardEvent","inputBindingEnabled","futureRoot","currRoot","deactivateChildRoutes","activateChildRoutes","futureNode","currNode","futureChild","childOutletName","deactivateRoutes","deactivateRouteAndItsChildren","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","activateRoutes","stored","CanActivate","CanDeactivate","getAllRouteGuards","getChildRouteGuards","getTokenOrFunctionIdentity","tokenOrFunction","ɵisInjectable","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","getRouteGuards","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","isEmptyError","INITIAL_VALUE","prioritizedGuardValue","redirectIfUrlTree","NoMatch","AbsoluteRedirect","noMatch$1","absoluteRedirect","ApplyRedirects","noMatchError","lineralizeSegments","applyRedirectCommands","applyRedirectCreateUrlTree","createSegmentGroup","createQueryParams","redirectToParams","actualParams","sourceName","updatedSegments","createSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","consumedSegments","remainingSegments","positionalParamSegments","matchWithChecks","getOrCreateRouteInjectorIfNeeded","currentInjector","runCanMatchGuards","canMatchObservables","injectionToken","isCanMatch","slicedSegments","containsEmptyPathMatchesWithNamedOutlets","emptyPathMatch","createChildrenForEmptyPaths","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","primarySegment","Recognizer","configLoader","rootComponentType","allowRedirects","applyRedirects","recognize","processSegmentGroup","routeState","createUrlTreeFromSnapshot","inheritParamsAndData","routeNode","processSegment","sortedConfig","sortByMatchingOutlets","scan","outletChildren","last$1","mergedChildren","mergeEmptyPathMatches","sortActivatedRouteSnapshots","processSegmentAgainstRoute","noLeftoversInUrl","rawSegment","isImmediateMatch","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","expandWildCardWithParamsAgainstRouteUsingRedirect","expandRegularSegmentAgainstRouteUsingRedirect","newSegments","_loadedComponent","getResolve","getChildConfig","childInjector","matchedOnOutlet","_loadedRoutes","runCanLoadGuards","canLoad","canLoadObservables","isCanLoad","shouldLoadResult","canLoadFails","hasEmptyPathConfig","mergedNodes","duplicateEmptyPathNode","resultNode","mergedNode","hasStaticTitle","switchTap","nextResult","ROUTES","RouterConfigLoader","componentLoaders","childrenLoaders","compiler","onLoadStartListener","loadRunner","maybeUnwrapDefaultExport","onLoadEndListener","loadModuleFactoryOrRoutes","factoryOrRoutes","rawRoutes","isWrappedDefaultExport","NavigationTransitions","hasRequestedNavigation","navigationId","currentNavigation","lastSuccessfulNavigation","rootContexts","afterPreactivation","handleNavigationRequest","setupNavigations","currentUrlTree","currentRawUrl","extractedUrl","urlHandlingStrategy","rawUrl","routerState","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","overallTransitionState","initialUrl","previousNavigation","browserUrlTree","urlTransition","navigated","serializeUrl","rawUrlTree","shouldProcessUrl","isBrowserTriggeredNavigation","serializer","recognize$1","finalUrl","urlUpdateStrategy","setBrowserUrl","routesRecognized","navStart","replaceUrl","guardsStart","checkGuards","runCanDeactivateChecks","futureRSS","currRSS","runCanDeactivate","currARS","canDeactivateObservables","closestInjector","isCanDeactivate","runCanActivateChecks","fireChildActivationStart","fireActivationStart","runCanActivateChild","futureARS","canActivateChildGuardsMapped","getCanActivateChild","guardsMapped","isCanActivateChild","runCanActivate","canActivateObservables","isCanActivate","guardsEnd","restoreHistory","cancelNavigationTransition","resolveStart","dataResolved","resolveData","canActivateChecksResolved","runResolve","resolveNode","getDataKeys","getResolver","resolver","resolvedData","resolveEnd","loadComponents","loaders","loadedComponent","createRouterState","titleStrategy","updateTitle","navCancel","mergedTree","scheduleNavigation","navError","TitleStrategy","buildTitle","pageTitle","getResolvedTitleForRoute","DefaultTitleStrategy","RouteReuseStrategy","DefaultRouteReuseStrategy","BaseRouteReuseStrategy","detachedTree","ɵDefaultRouteReuseStrategy_BaseFactory","ROUTER_CONFIGURATION","UrlHandlingStrategy","DefaultUrlHandlingStrategy","newUrlPart","wholeUrl","NavigationResult","COMPLETE","FAILED","REDIRECTING","afterNextNavigation","defaultMalformedUriErrorHandler","exactMatchOptions","subsetMatchOptions","Router","navigationTransitions","browserPageId","canceledNavigationResolution","ɵrouterPageId","currentPageId","ɵConsole","isNgZoneEnabled","malformedUriErrorHandler","lastSuccessfulId","componentInputBindingEnabled","resetConfig","resetRootComponentType","initialNavigation","setUpLocationChangeListener","navigateToSyncWithBrowser","locationSubscription","stateCopy","getCurrentNavigation","createUrlTree","navigationExtras","queryParamsHandling","preserveFragment","relativeToUrlSegmentGroup","removeEmptyProps","validateCommands","matchOptions","priorPromise","generateNgRouterState","restoringFromCaughtError","targetPagePosition","resetState","resetUrlToCurrentUrlTree","routerPageId","RouterLink","tabIndexAttribute","onChanges","isAnchorElement","updateHref","setTabIndexIfNotOnNativeEl","newTabIndex","applyAttributeValue","routerLink","sanitizedValue","RouterLinkActive","_isActive","routerLinkActiveOptions","isActiveChange","routerEventsSubscription","subscribeToEachLinkOnChanges","linkInputChangesSubscription","allLinkChanges","isLinkActive","routerLinkActive","hasActiveLinks","ariaCurrentWhenActive","isActiveMatchOptions","isActiveCheckFn","PreloadingStrategy","RouterPreloader","preloadingStrategy","setUpPreloading","preload","processRoutes","injectorForCurrentRoute","injectorForChildren","preloadConfig","loadedChildren$","recursiveLoadChildren$","loadComponent$","ROUTER_SCROLLER","RouterScroller","viewportScroller","lastId","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","scheduleScrollEvent","routerFeature","getBootstrapListener","bootstrappedComponentRef","bootstrapDone","BOOTSTRAP_DONE","INITIAL_NAVIGATION","ROUTER_PRELOADER","withPreloading","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","rootRoute","routerNgProbeToken","provideForRootGuard","useHash","provideInitialNavigation","bindToComponentInputs","ROUTER_INITIALIZER","locationInitialized","MemoryStorage","cacheKeys","containsKey","StubbedNetworkModule","sendGetRequestAsync","createClientAuthError","methodNotImplemented","sendPostRequestAsync","StubPerformanceMeasurement","startMeasurement","endMeasurement","flushMeasurement","StubPerformanceClient","generateId","measureName","discard","eventId","PerformanceEventStatus","libraryName","libraryVersion","startTimeMs","startPerformanceMeasurement","calculateQueuedTime","addQueueMeasurement","setPreQueueTime","discardMeasurements","emitEvents","addFields","incrementFields","cacheEventByCorrelationId","NavigationClient","navigateInternal","defaultNavigateWindow","navigateExternal","noHistory","FetchClient","HTTP_REQUEST_TYPE","GET","getFetchHeaders","onLine","createBrowserAuthError","getRequestFailed","noNetworkConnectivity","getHeaderDict","failedToParseResponse","EMPTY_STRING","POST","postRequestFailed","optionsHeaders","headerDict","DEFAULT_POPUP_TIMEOUT_MS","DEFAULT_IFRAME_TIMEOUT_MS","DEFAULT_REDIRECT_TIMEOUT_MS","DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS","userInputAuth","userInputCache","userInputSystem","telemetry","userInputTelemetry","DEFAULT_AUTH_OPTIONS","DEFAULT_AUTHORITY","knownAuthorities","cloudDiscoveryMetadata","authorityMetadata","postLogoutRedirectUri","navigateToLoginRequestUrl","clientCapabilities","protocolMode","ProtocolMode","AAD","OIDCOptions","serverResponseType","ServerResponseType","FRAGMENT","defaultScopes","OPENID_SCOPE","PROFILE_SCOPE","OFFLINE_ACCESS_SCOPE","azureCloudOptions","azureCloudInstance","AzureCloudInstance","tenant","skipAuthorityMetadataCache","supportsNestedAppAuth","DEFAULT_CACHE_OPTIONS","temporaryCacheLocation","secureCookies","cacheMigrationEnabled","claimsBasedCachingEnabled","DEFAULT_LOGGER_OPTIONS","providedSystemOptions","DEFAULT_SYSTEM_OPTIONS","networkClient","loadFrameTimeout","windowHashTimeout","iframeHashTimeout","navigateFrameWait","redirectNavigationTimeout","asyncPopups","allowNativeBroker","nativeBrokerHandshakeTimeout","pollIntervalMilliseconds","BrowserConstants","DEFAULT_POLL_INTERVAL_MS","DEFAULT_TELEMETRY_OPTIONS","OIDC","createClientConfigurationError","ClientConfigurationErrorCodes","AuthorityMetadataEntity","expiresAt","TimeUtils","nowSeconds","AUTHORITY_METADATA_CONSTANTS","REFRESH_TIME_SECONDS","updateCloudDiscoveryMetadata","fromNetwork","preferred_cache","preferred_network","aliasesFromNetwork","updateEndpointMetadata","endpointsFromNetwork","jwks_uri","updateCanonicalAuthority","canonical_authority","resetExpiresAt","entity","CACHE_KEY","telemetryClient","inProgressEvent","invokeAsync","RegionDiscovery","networkInterface","performanceClient","detectRegion","environmentRegion","regionDiscoveryMetadata","PerformanceEvents","RegionDiscoveryDetectRegion","autodetectedRegionName","region_source","RegionDiscoverySources","ENVIRONMENT_VARIABLE","IMDS_OPTIONS","localIMDSVersionResponse","getRegionFromIMDS","RegionDiscoveryGetRegionFromIMDS","IMDS_VERSION","ResponseCodes","httpSuccess","IMDS","httpBadRequest","currentIMDSVersion","getCurrentVersion","RegionDiscoveryGetCurrentVersion","FAILED_AUTO_DETECTION","currentIMDSVersionResponse","IMDS_ENDPOINT","IMDS_TIMEOUT","Metadata","Authority","cacheManager","authorityOptions","canonicalAuthority","_canonicalAuthority","validateAsUri","region_used","region_outcome","regionDiscovery","getAuthorityType","authorityUri","CIAM_AUTH_URL","AuthorityType","Ciam","pathSegments","PathSegments","ADFS","Adfs","DSTS","Dsts","authorityType","canonicalAuthorityUrlComponents","urlString","_canonicalAuthorityUrlComponents","hostnameAndPort","authorizationEndpoint","discoveryComplete","replacePath","endpointResolutionError","deviceCodeEndpoint","endSessionEndpoint","endSessionEndpointNotSupported","selfSignedJwtAudience","jwksUri","canReplaceTenant","reservedTenantDomains","replaceTenant","cachedAuthorityUrlComponents","cachedAuthorityParts","currentAuthorityParts","currentPart","cachedPart","tenantId","defaultOpenIdConfigurationEndpoint","canonicalAuthorityHost","isAliasOfKnownMicrosoftAuthority","resolveEndpointsAsync","AuthorityResolveEndpointsAsync","metadataEntity","getCurrentMetadataEntity","cloudDiscoverySource","AuthorityUpdateCloudDiscoveryMetadata","endpointSource","AuthorityUpdateEndpointMetadata","updateCachedMetadata","getAuthorityMetadataByAlias","endpointMetadataResult","AuthorityMetadataSource","CACHE","generateAuthorityMetadataCacheKey","setAuthorityMetadata","localMetadata","updateEndpointMetadataFromLocalSources","HARDCODED_VALUES","azureRegionConfiguration","azureRegion","hardcodedMetadata","updateMetadataWithRegionalInformation","AuthorityUpdateMetadataWithRegionalInformation","getEndpointMetadataFromNetwork","AuthorityGetEndpointMetadataFromNetwork","NETWORK","openIdConfigError","configMetadata","getEndpointMetadataFromConfig","CONFIG","getEndpointMetadataFromHardcodedValues","metadataEntityExpired","isAuthoritySameType","invalidAuthorityMetadata","openIdConfigurationEndpoint","isOpenIdConfigResponse","EndpointMetadata","userConfiguredAzureRegion","AZURE_REGION_AUTO_DISCOVER_FLAG","RegionDiscoveryOutcomes","CONFIGURED_NO_AUTO_DETECTION","replaceWithRegionalInformation","AUTO_DETECTION_REQUESTED_SUCCESSFUL","AUTO_DETECTION_REQUESTED_FAILED","localMetadataSource","updateCloudDiscoveryMetadataFromLocalSources","getCloudDiscoveryMetadataFromNetwork","AuthorityGetCloudDiscoveryMetadataFromNetwork","untrustedAuthority","verbosePii","NOT_APPLICABLE","getCloudDiscoveryMetadataFromConfig","getCloudDiscoveryMetadataFromHardcodedValues","createCloudDiscoveryMetadataFromHost","parsedResponse","getCloudDiscoveryMetadataFromNetworkResponse","invalidCloudDiscoveryMetadata","isInKnownAuthorities","instanceDiscoveryEndpoint","AAD_INSTANCE_DISCOVERY_ENDPT","typedResponseBody","isCloudInstanceDiscoveryResponse","tenant_discovery_endpoint","isCloudInstanceDiscoveryErrorResponse","INVALID_INSTANCE","error_description","AuthError","getDomainFromUrl","authorityString","authorityAzureCloudInstance","DEFAULT_COMMON_TENANT","getPreferredCache","isAlias","InstanceDiscoveryMetadataAliases","KNOWN_PUBLIC_CLOUDS","queryString","authorityUrlInstance","authorityUrlParts","hostNameAndPort","isPublicCloudAuthority","REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX","constructAuthorityUriFromObject","regionalMetadata","buildRegionalAuthorityString","ciamAuthority","authorityUrlComponents","AAD_TENANT_DOMAIN_SUFFIX","formatAuthorityUri","FORWARD_SLASH","AADAuthorityConstants","COMMON","CONSUMERS","ORGANIZATIONS","AppMetadataEntity","generateAppMetadataKey","generateAppMetadataCacheKey","APP_METADATA","Separators","CACHE_KEY_SEPARATOR","familyId","appMetadata","ThrottlingEntity","validateKey","ThrottlingConstants","THROTTLING_PREFIX","validateEntity","ProtocolUtils","cryptoObj","userState","libraryState","generateLibraryState","RESOURCE_DELIM","noCryptoObject","stateObj","createNewGuid","base64Encode","splitState","libraryStateString","base64Decode","libraryStateObj","userRequestState","CacheRecord","accountEntity","idTokenEntity","accessTokenEntity","refreshTokenEntity","appMetadataEntity","refreshToken","BrowserStorage","validateWindowStorage","windowStorage","createBrowserConfigurationAuthError","storageNotSupported","extractBrowserRequestState","browserCrypto","parseRequestState","ClientAuthErrorCodes","BrowserCacheManager","CacheManager","cacheConfig","cryptoImpl","staticAuthorityOptions","COOKIE_LIFE_MULTIPLIER","internalStorage","setupBrowserStorage","temporaryCacheStorage","setupTemporaryCacheStorage","migrateCacheEntries","createKeyMaps","clientInfoKey","CACHE_PREFIX","PersistentCacheKeys","CLIENT_INFO","errorKey","ERROR","errorDescKey","ERROR_DESC","ID_TOKEN","migrateCacheEntry","setTemporaryCache","accountKeys","StaticCacheKeys","ACCOUNT_KEYS","tokenKeys","TOKEN_KEYS","isCredentialKey","credObj","validateAndParseJson","credentialType","CredentialType","CacheHelpers","tracePii","updateCredentialCacheKey","addTokenKey","ACCESS_TOKEN","ACCESS_TOKEN_WITH_AUTH_SCHEME","REFRESH_TOKEN","isAccountKey","accountObj","AccountEntity","isAccountEntity","addAccountKeyToMap","jsonValue","parsedJson","accountKey","removeAccountKeyFromMap","parsedAccount","setAccount","generateAccountKey","getAccountKeys","removalIndex","removeAccount","_superprop_getRemoveAccount","removeIdToken","removeTokenKey","removeAccessToken","_superprop_getRemoveAccessToken","removeRefreshToken","getTokenKeys","idRemoval","accessRemoval","refreshRemoval","getIdTokenCredential","idTokenKey","parsedIdToken","setIdTokenCredential","getAccessTokenCredential","accessTokenKey","parsedAccessToken","setAccessTokenCredential","getRefreshTokenCredential","refreshTokenKey","parsedRefreshToken","setRefreshTokenCredential","getAppMetadata","appMetadataKey","parsedMetadata","isAppMetadataEntity","setAppMetadata","getServerTelemetry","serverTelemetryKey","parsedEntity","setServerTelemetry","serverTelemetry","getAuthorityMetadata","isAuthorityMetadataEntity","getAuthorityMetadataKeys","isAuthorityMetadata","setWrapperMetadata","wrapperSKU","wrapperVersion","InMemoryCacheKeys","WRAPPER_SKU","WRAPPER_VER","getWrapperMetadata","activeAccountKeyFilters","generateCacheKey","ACTIVE_ACCOUNT_FILTERS","activeAccountValueFilters","activeAccountKeyLocal","ACTIVE_ACCOUNT","activeAccountValueLocal","activeAccount","getAccountInfoFilteredBy","localAccountId","activeAccountValueObj","activeAccountKey","getThrottlingCache","throttlingCacheKey","parsedThrottlingCache","isThrottlingEntity","setThrottlingCache","throttlingCache","getTemporaryCache","generateKey","itemCookie","getItemCookie","setItemCookie","clearItemCookie","removeAllAccounts","removeAppMetadata","clearTokensAndKeysWithClaims","ClearTokensAndKeysWithClaims","removedAccessTokens","credential","requestedClaimsHash","expires","getCookieExpirationTime","cookieList","clearMsalCookies","cookiePrefix","cookieKey","cookieLifeDays","getCache","setCache","ADAL_ID_TOKEN","generateAuthorityKey","TemporaryCacheKeys","AUTHORITY","generateNonceKey","NONCE_IDTOKEN","generateStateKey","REQUEST_STATE","getCachedAuthority","cachedState","stateCacheKey","authorityCacheKey","updateCacheEntries","authorityInstance","nonceCacheKey","CCS_CREDENTIAL","resetRequestCache","REQUEST_PARAMS","ORIGIN_URI","URL_HASH","CORRELATION_ID","NATIVE_REQUEST","setInteractionInProgress","cleanRequestByState","stateKey","cleanRequestByInteractionType","parsedState","cacheCodeRequest","authCodeRequest","encodedValue","getCachedRequest","encodedTokenRequest","noTokenRequestCacheError","parsedRequest","unableToParseTokenRequestCacheError","cachedAuthority","noCachedAuthorityError","getCachedNativeRequest","cachedRequest","isInteractionInProgress","matchClientId","getInteractionInProgress","INTERACTION_STATUS_KEY","interactionInProgress","getLegacyLoginHint","adalIdTokenString","msalIdTokenString","cachedIdTokenString","idTokenClaims","AuthToken","preferred_username","upn","currentCacheKey","updatedCacheKey","cacheItem","getRedirectRequestContext","REDIRECT_CONTEXT","setRedirectRequestContext","claimsHash","hashString","expiresOn","extExpiresOn","tokenType","sshKid","cacheRecord","saveCacheRecord","ThrottlingUtils","thumbprint","generateThrottlingStorageKey","ServerError","errorCodes","subError","checkResponseStatus","checkResponseForRetryAfter","thumbprintValue","calculateThrottleTime","RETRY_AFTER","error_codes","suberror","currentSeconds","DEFAULT_THROTTLE_TIME_SECONDS","DEFAULT_MAX_THROTTLE_TIME_SECONDS","homeAccountIdentifier","authenticationScheme","resourceRequestMethod","resourceRequestUri","shrClaims","NetworkManager","sendPostRequest","preProcess","networkError","postProcess","RequestValidator","redirectUriEmpty","prompt","promptValues","PromptValue","invalidPromptValue","invalidClaims","codeChallenge","codeChallengeMethod","pkceParamsMissing","validateCodeChallengeMethod","CodeChallengeMethodValues","PLAIN","S256","invalidCodeChallengeMethod","eQParams","RequestParameterBuilder","addResponseTypeCode","AADServerParamKeys","RESPONSE_TYPE","CODE_RESPONSE_TYPE","addResponseTypeForTokenAndIdToken","TOKEN_RESPONSE_TYPE","ID_TOKEN_RESPONSE_TYPE","addResponseMode","responseMode","RESPONSE_MODE","ResponseMode","QUERY","addNativeBroker","NATIVE_BROKER","addScopes","addOidcScopes","OIDC_DEFAULT_SCOPES","requestScopes","scopeSet","ScopeSet","SCOPE","printScopes","addClientId","CLIENT_ID","addRedirectUri","validateRedirectUri","REDIRECT_URI","addPostLogoutRedirectUri","POST_LOGOUT_URI","addIdTokenHint","idTokenHint","ID_TOKEN_HINT","addDomainHint","domainHint","SSOTypes","DOMAIN_HINT","addLoginHint","LOGIN_HINT","addCcsUpn","CCS_HEADER","addCcsOid","clientInfo","utid","addSid","sid","SID","addClaims","mergedClaims","addClientCapabilitiesToClaims","validateClaims","CLAIMS","addCorrelationId","CLIENT_REQUEST_ID","addLibraryInfo","libraryInfo","X_CLIENT_SKU","X_CLIENT_VER","X_CLIENT_OS","cpu","X_CLIENT_CPU","addApplicationTelemetry","appTelemetry","X_APP_NAME","X_APP_VER","addPrompt","validatePrompt","PROMPT","addState","STATE","addNonce","NONCE","addCodeChallengeParams","validateCodeChallengeParams","CODE_CHALLENGE","CODE_CHALLENGE_METHOD","addAuthorizationCode","CODE","addDeviceCode","DEVICE_CODE","addRefreshToken","addCodeVerifier","codeVerifier","CODE_VERIFIER","addClientSecret","CLIENT_SECRET","addClientAssertion","clientAssertion","CLIENT_ASSERTION","addClientAssertionType","clientAssertionType","CLIENT_ASSERTION_TYPE","addOboAssertion","oboAssertion","OBO_ASSERTION","addRequestTokenUse","tokenUse","REQUESTED_TOKEN_USE","addGrantType","grantType","GRANT_TYPE","addClientInfo","addExtraQueryParameters","sanitizedEQParams","sanitizeEQParams","ClaimsRequestKeys","XMS_CC","addUsername","PasswordGrantConstants","addPassword","addPopToken","cnfString","TOKEN_TYPE","AuthenticationScheme","POP","REQ_CNF","addSshJwk","sshJwkString","SSH","addServerTelemetry","serverTelemetryManager","X_CLIENT_CURR_TELEM","generateCurrentRequestHeaderValue","X_CLIENT_LAST_TELEM","generateLastRequestHeaderValue","addThrottling","X_MS_LIB_CAPABILITY","X_MS_LIB_CAPABILITY_VALUE","addLogoutHint","logoutHint","LOGOUT_HINT","createQueryString","queryParameterArray","AuthorityFactory","AuthorityFactoryCreateDiscoveredInstance","authorityUriFinal","transformCIAMAuthority","acquireTokenAuthority","createInstance","authorityUrl","urlEmptyError","BaseClient","buildClientConfiguration","cryptoUtils","cryptoInterface","storageInterface","networkManager","authOptions","createTokenRequestHeaders","ccsCred","CONTENT_TYPE","URL_FORM_CONTENT_TYPE","systemOptions","preventCorsPreflight","buildClientInfoFromHomeAccountId","executePostToTokenEndpoint","queuedEvent","refreshTokenSize","refresh_token","httpVerToken","X_MS_HTTP_VERSION","clearTelemetryCache","updateAuthority","cloudInstanceHostname","UpdateTokenEndpointAuthority","cloudInstanceAuthorityUri","cloudInstanceAuthority","createDiscoveredInstance","createTokenQueryParameters","parameterBuilder","tokenQueryParameters","PopTokenGenerator","generateCnf","PopTokenGenerateCnf","reqCnf","generateKid","reqCnfString","kid","reqCnfHash","PopTokenGenerateKid","getPublicKeyThumbprint","xms_ksl","signPopToken","keyId","signPayload","shrNonce","shrOptions","resourceUrlComponents","signJwt","client_claims","TokenCacheContext","cacheHasChanged","ResponseHandler","cacheStorage","serializableCache","persistencePlugin","validateServerAuthorizationCodeResponse","serverResponse","requestState","stateNotFound","decodedServerResponseState","decodedRequestState","stateMismatch","isInteractionRequiredError","InteractionRequiredAuthError","trace_id","correlation_id","validateTokenResponse","refreshAccessToken","serverError","HttpStatus","SERVER_ERROR_RANGE_START","SERVER_ERROR_RANGE_END","CLIENT_ERROR_RANGE_START","CLIENT_ERROR_RANGE_END","handleServerTokenResponse","serverTokenResponse","reqTimestamp","authCodePayload","userAssertionHash","handlingRefreshTokenResponse","forceCacheRefreshTokenResponse","serverRequestId","requestStateObj","HandleServerTokenResponse","id_token","extractTokenClaims","nonceMismatch","maxAge","authTime","auth_time","authTimeNotFound","checkMaxAge","generateHomeAccountId","client_info","key_id","generateCacheRecord","cacheContext","beforeCacheAccess","generateAuthenticationResult","storeInCache","afterCacheAccess","invalidCacheEnvironment","cachedIdToken","cachedAccount","createIdTokenEntity","tid","createAccount","cloudGraphHostName","cloud_graph_host_name","msGraphHost","msgraph_host","cachedAccessToken","responseScopes","expiresIn","expires_in","extExpiresIn","ext_expires_in","refreshIn","refresh_in","tokenExpirationSeconds","extendedTokenExpirationSeconds","refreshOnSeconds","createAccessTokenEntity","token_type","cachedRefreshToken","createRefreshTokenEntity","foci","cachedAppMetadata","createAppMetadataEntity","fromTokenCache","refreshOn","popTokenGenerator","keyIdMissing","asArray","extendedExpiresOn","THE_FAMILY_ID","spa_accountid","nativeAccountId","accountInfo","getAccountInfo","uniqueId","fromCache","spa_code","fromNativeBroker","AuthorizationCodeClient","includeRedirectUri","oidcDefaultScopes","getAuthCodeUrl","GetAuthCodeUrl","createAuthCodeUrlQueryString","AuthClientCreateQueryString","appendQueryString","AuthClientAcquireToken","requestCannotBeMade","executeTokenRequest","AuthClientExecuteTokenRequest","X_MS_REQUEST_ID","responseHandler","handleFragmentResponse","serverParams","authorizationCodeMissingFromServerResponse","getLogoutUri","logoutRequestEmpty","createLogoutUrlQueryString","queryParametersString","requestBody","createTokenRequestBody","AuthClientCreateTokenRequestBody","ccsCredential","buildClientInfo","CLIENT_INFO_SEPARATOR","tokenBodyParameters","AuthorizationCodeClientExecutePostToTokenEndpoint","isOidcProtocolMode","clientCredentials","assertion","assertionType","GrantType","AUTHORIZATION_CODE_GRANT","reqCnfData","sshJwk","missingSshJwk","isEmptyObj","enableSpaAuthorizationCode","RETURN_SPA_CODE","extraQueryParameters","extraScopesToConsent","SELECT_ACCOUNT","accountSid","extractAccountSid","accountLoginHintClaim","extractLoginHint","nativeBroker","login_hint","ServerTelemetryManager","telemetryRequest","cacheOutcome","CacheOutcome","apiId","wrapperVer","telemetryCacheKey","SERVER_TELEM_CONSTANTS","VALUE_SEPARATOR","platformFields","requestWithRegionDiscoveryFields","getRegionDiscoveryFields","SCHEMA_VERSION","CATEGORY_SEPARATOR","lastRequests","getLastRequests","maxErrors","maxErrorsToSend","failedRequests","errorCount","OVERFLOW_TRUE","OVERFLOW_FALSE","cacheHits","cacheFailedRequest","MAX_CACHED_ERRORS","UNKNOWN_ERROR","incrementCacheHits","numErrorsFlushed","serverTelemEntity","serverTelemetryEntity","dataSize","MAX_LAST_HEADER_BYTES","regionDiscoveryFields","regionUsed","regionSource","regionOutcome","updateRegionDiscoveryMetadata","setCacheOutcome","BaseInteractionClient","storageImpl","nativeMessageHandler","MSAL_SKU","clearCacheOnLogout","accountInfoIsEqual","generateAccountCacheKey","clearKeystore","initializeBaseRequest","InitializeBaseRequest","validateRequestAuthority","validatedRequest","BEARER","getRedirectUri","requestRedirectUri","getCurrentUri","getDiscoveredAuthority","initializeServerTelemetryManager","telemetryPayload","requestAuthority","RANDOM_BYTE_ARR_LENGTH","generatePkceCodes","_generatePkceCodes","GeneratePkceCodes","generateCodeVerifier","GenerateCodeVerifier","verifier","challenge","generateCodeChallengeFromVerifier","GenerateCodeChallengeFromVerifier","GetRandomValues","urlEncodeArr","pkceNotCreated","_x7","_generateCodeChallengeFromVerifier","pkceCodeVerifier","pkceHashedCodeVerifier","sha256Digest","Sha256Digest","StandardInteractionClient","initializeAuthorizationCodeRequest","StandardInteractionClientInitializeAuthorizationCodeRequest","generatedPkceParams","S256_CODE_CHALLENGE_METHOD","initializeLogoutRequest","validLogoutRequest","getLogoutHintFromIdTokenClaims","createAuthCodeClient","requestAzureCloudOptions","StandardInteractionClientCreateAuthCodeClient","clientConfig","getClientConfiguration","StandardInteractionClientGetClientConfiguration","discoveredAuthority","StandardInteractionClientGetDiscoveredAuthority","tokenRenewalOffsetSeconds","cacheOptions","builtAuthority","generateAuthority","initializeAuthorizationRequest","StandardInteractionClientInitializeAuthorizationRequest","setRequestState","legacyLoginHint","userSwitch","NativeAuthErrorMessages","NativeAuthError","isFatalNativeAuthError","createNativeAuthError","createInteractionRequiredAuthError","InteractionRequiredAuthErrorCodes","userCancelled","RefreshTokenClient","RefreshTokenClientAcquireToken","RefreshTokenClientExecuteTokenRequest","forceCache","acquireTokenByRefreshToken","tokenRequestEmpty","RefreshTokenClientAcquireTokenByRefreshToken","noAccountInSilentRequest","isAppMetadataFOCI","acquireTokenWithCachedRefreshToken","RefreshTokenClientAcquireTokenWithCachedRefreshToken","noTokensFound","Errors","INVALID_GRANT_ERROR","CLIENT_MISMATCH_ERROR","getRefreshToken","CacheManagerGetRefreshToken","refreshTokenRequest","RefreshTokenClientCreateTokenRequestBody","RefreshTokenClientExecutePostToTokenEndpoint","REFRESH_TOKEN_GRANT","SilentFlowClient","authResponse","acquireCachedToken","PROACTIVELY_REFRESHED","ClientAuthError","tokenRefreshRequired","SilentFlowClientAcquireCachedToken","lastCacheOutcome","FORCE_REFRESH_OR_CLAIMS","readCacheRecord","NO_CACHED_ACCESS_TOKEN","wasClockTurnedBack","cachedAt","isTokenExpired","CACHED_ACCESS_TOKEN_EXPIRED","generateResultFromCacheRecord","SilentFlowClientGenerateResultFromCacheRecord","SilentCacheClient","SilentCacheClientAcquireToken","ApiId","acquireTokenSilent_silentFlow","silentAuthClient","createSilentFlowClient","BrowserAuthError","cryptoKeyNotFound","initializeSilentRequest","InitializeSilentRequest","baseRequest","NativeInteractionClient","nativeStorageImpl","nativeStorageManager","silentCacheClient","NativeInteractionClientAcquireToken","nativeATMeasurement","nativeRequest","initializeNativeRequest","acquireTokensFromCache","isNativeBroker","messageBody","NativeExtensionMethod","GetToken","validatedResponse","validateNativeResponse","handleNativeResponse","subErrorCode","createSilentCacheRequest","getBaseAccountInfo","fullAccount","navigationOptions","createHomeAccountIdentifier","cacheAccount","cacheNativeTokens","generateScopes","generatePopAccessToken","shr","shrParameters","mats","addTelemetryFromNativeResponse","accountProperties","UID","TenantId","responseAccessToken","isResponseFromCache","removeAccountContext","SHR_NONCE_VALIDITY","nativeCacheRecord","getMATSFromResponse","extensionId","getExtensionId","extensionVersion","getExtensionVersion","matsBrokerVersion","broker_version","matsAccountJoinOnStart","account_join_on_start","matsAccountJoinOnEnd","account_join_on_end","matsDeviceJoin","device_join","matsPromptBehavior","prompt_behavior","matsApiErrorCode","api_error_code","matsUiVisible","ui_visible","matsSilentCode","silent_code","matsSilentBiSubCode","silent_bi_sub_code","matsSilentMessage","silent_message","matsSilentStatus","silent_status","matsHttpStatus","http_status","matsHttpEventCount","http_event_count","createAuthError","AuthErrorCodes","MATS","is_cached","_this8","remainingProperties","appendScopes","getPrompt","CONSENT","LOGIN","nativePromptNotSupported","windowTitleSubstring","extraParameters","extendedExpiryToken","handleExtraBrokerParams","NativeConstants","MATS_TELEMETRY","brk_redirect_uri","child_client_id","child_redirect_uri","NativeMessageHandler","handshakeTimeoutMs","resolvers","handshakeResolvers","messageChannel","MessageChannel","windowListener","onWindowMessage","handshakeEvent","NativeMessageHandlerHandshake","CHANNEL_ID","responseId","port1","preferredProvider","PREFERRED_EXTENSION_ID","sendHandshakeRequest","backupProvider","HandshakeRequest","extensionHandshakeTimeoutMs","onChannelMessage","port2","extensionHandshakeTimedOut","nativeHandshakeTimeout","handshakeResolver","extensionInstalled","nativeExtensionNotInstalled","HandshakeResponse","nativeExtensionProvider","InteractionHandler","authCodeModule","authModule","handleCodeResponse","authCodeResponse","HandleCodeResponse","handleCodeResponseFromServer","HandleCodeResponseFromServer","validateNonce","cloud_instance_host_name","createCcsCredentials","deserializeResponse","responseString","responseLocation","UrlUtils","hashDoesNotContainKnownProperties","hashEmptyError","PopupClient","unloadWindow","nativeStorage","popupName","generatePopupName","popupWindowAttributes","acquireTokenPopupAsync","openSizedPopup","generateLogoutPopupName","mainWindowRedirectUri","logoutPopupAsync","validRequest","preconnect","authClient","isNativeAvailable","fetchNativeAccountIdMeasurement","FetchAccountIdWithNativeBroker","navigateUrl","interactionHandler","popupWindow","initiateAuthRequest","POPUP_OPENED","monitorPopupForHash","DeserializeResponse","removeThrottle","nativeConnectionNotEstablished","nativeInteractionClient","setCorrelationId","logoutUri","LOGOUT_SUCCESS","LOGOUT_FAILURE","emptyNavigateUri","cleanPopup","urlNavigate","emptyWindowError","currentWindow","popupWindowError","winLeft","screenLeft","winTop","screenTop","winWidth","winHeight","popupSize","POPUP_WIDTH","POPUP_HEIGHT","POPUP_NAME_PREFIX","RedirectHandler","redirectTimeout","onRedirectNavigate","nonceKey","cachedNonce","cachedCcsCred","checkCcsCredentials","tokenResponse","RedirectClient","handleBackButton","persisted","getRedirectStartPage","getRedirectResponse","loginRequestUrl","removeHashFromUrl","replaceHash","handleResponse","isInIframe","processHashOnRedirect","homepage","getHomepage","userProvidedResponse","validateInteractionType","noStateInHash","platformStateObj","unableToParseState","stateInteractionTypeMismatch","clearHash","cachedHash","currentAuthority","requestStartPage","_initiateAuthRequest","SilentHandlerInitiateAuthRequest","loadFrame","SilentHandlerLoadFrame","loadFrameSync","SilentHandlerLoadFrameSync","monitorIframeForHash","_x8","_x9","_x10","_x11","_x12","_monitorIframeForHash","SilentHandlerMonitorIframeForHash","monitorWindowTimeout","contentWindow","removeHiddenIframe","RemoveHiddenIframe","frameHandle","createHiddenIframe","authFrame","SilentIframeClient","SilentIframeClientAcquireToken","NO_SESSION","silentPromptValueError","Silent","silentTokenHelper","SilentIframeClientTokenHelper","silentLogoutUnsupported","msalFrame","SilentRefreshClient","SilentRefreshClientAcquireToken","refreshTokenClient","createRefreshTokenClient","TokenCache","loadExternalTokens","unableToLoadToken","cacheRecordAccount","createFromAccountInfo","loadIdToken","loadRefreshToken","loadAccount","requestHomeAccountId","HybridSpaAuthorizationCodeClient","SilentAuthCodeClient","authCodeRequired","cloudInstanceHostName","operatingContext","atsAsyncMeasurement","redirectResponse","hybridAuthCodeResponses","CryptoOps","DEFAULT_CRYPTO_IMPLEMENTATION","EventHandler","buildStaticAuthorityOptions","rawCloudDiscoveryMetadata","DEFAULT_BROWSER_CACHE_MANAGER","nativeInternalStorage","activeSilentTokenRequests","trackPageVisibility","trackPageVisibilityWithMeasurement","visibilityChangeCount","initMeasurement","InitializeClientApplication","INITIALIZE_START","createProvider","INITIALIZE_END","blockAPICallsBeforeInitialize","loggedInAccounts","redirectResponseKey","createRedirectClient","getRequestCorrelationId","preflightBrowserEnvironmentCheck","canUseNative","getNativeAccountId","getBrowserStorage","atPopupMeasurement","AcquireTokenPopup","acquireTokenNative","createPopupClient","accessTokenSize","idTokenSize","ssoSilentMeasurement","acquireTokenByCodeAsyncMeasurement","createSilentIframeClient","ACQUIRE_TOKEN_BY_CODE_START","atbcMeasurement","AcquireTokenByCode","spaCodeAndNativeAccountIdPresent","hybridAuthCode","acquireTokenByCodeAsync","ACQUIRE_TOKEN_BY_CODE_SUCCESS","ACQUIRE_TOKEN_BY_CODE_FAILURE","unableToAcquireTokenFromNativePlatform","authCodeOrNativeAccountIdRequired","AcquireTokenByCodeAsync","createSilentAuthCodeClient","tokenRenewalError","acquireTokenFromCache","commonRequest","cacheLookupPolicy","AcquireTokenFromCache","CacheLookupPolicy","AccessTokenAndRefreshToken","AcquireTokenByRefreshToken","RefreshTokenAndNetwork","silentRefreshClient","createSilentRefreshClient","acquireTokenBySilentIframe","_this9","AcquireTokenBySilentIframe","silentIframeClient","_this10","_this11","_this12","createSilentCacheClient","_this13","isAppEmbedded","blockNonBrowserEnvironment","blockRedirectInIframe","blockReloadInHiddenIframes","blockAcquireTokenInPopups","inMemRedirectUnavailable","preflightInteractiveRequest","_this14","getPerformanceClient","isBrowserEnv","getEventHandler","_this15","DEFAULT_REQUEST","_this16","atsMeasurement","AcquireTokenSilent","noAccountError","silentRequestKey","cachedResponse","acquireTokenSilentAsync","AcquireTokenSilentAsync","_this17","cacheError","ACQUIRE_TOKEN_NETWORK_START","refreshTokenError","Skip","S256_HASH_ALG","PUBLIC_EXPONENT","keygenAlgorithmOptions","modulusLength","publicExponent","validateCryptoAvailable","cryptoNonExistent","_sha256Digest","dataString","TextEncoder","subtle","dataBuffer","randomUUID","generateKeyPair","_generateKeyPair","extractable","usages","exportJwk","_exportJwk","exportKey","KEY_FORMAT_JWK","importJwk","_importJwk","importKey","_sign","missingKidError","missingAlgError","JoseHeaderErrorMessages","JoseHeaderError","createJoseHeaderError","JoseHeader","typ","alg","shrHeaderOptions","shrHeader","JsonWebTokenTypes","Pop","DatabaseStorage","dbName","DB_NAME","DB_VERSION","tableName","DB_TABLE_NAME","dbOpen","openDB","indexedDB","createObjectStore","db","databaseUnavailable","closeConnection","validateDbIsOpen","databaseNotOpen","dbGet","objectStore","dbPut","dbDelete","dbGetKeys","getAllKeys","dbContainsKey","deleteDatabase","deleteDbRequest","AsyncMemoryStorage","storeName","inMemoryCache","indexedDBCache","handleDatabaseAccessError","clearInMemory","clearPersistent","dbDeleted","CryptoKeyStore","asymmetricKeys","symmetricKeys","publicKeyThumbMeasurement","CryptoOptsGetPublicKeyThumbprint","keyPair","EXTRACTABLE","POP_KEY_USAGES","publicKeyJwk","publicKey","publicJwkString","getSortedObjectString","kty","publicJwkHash","privateKeyJwk","privateKey","unextractablePrivateKey","requestMethod","requestUri","removeTokenBindingKey","signJwtMeasurement","CryptoOptsSignJwt","cachedKeyPair","publicKeyJwkString","encodedKeyIdThumbprint","urlEncode","getShrHeaderString","encodedShrHeader","cnf","jwk","tokenString","encodedPayload","tokenBuffer","signatureBuffer","signedJwt","encodedSignature","plainText","hashBuffer","hashBytes","TextDecoder","base64DecToArr","base64String","encodedString","invalidBase64String","binString","codePointAt","inputArr","base64EncArr","aBytes","fromCodePoint","ErrorLink","BrowserAuthErrorMessages","monitorPopupTimeout","redirectInIframe","blockIframeReload","blockNestedPopups","iframeClosedPrematurely","authRequestNotSetError","invalidCacheType","nonBrowserEnvironment","uninitializedPublicClientApplication","BrowserConfigurationAuthErrorMessages","stubbedPublicClientApplicationCalled","eventCallbacks","listeningToStorageEvents","handleAccountCacheChange","cacheValue","ACCOUNT_ADDED","ACCOUNT_REMOVED","INTERACTION_IN_PROGRESS_VALUE","ACQUIRE_TOKEN_ACCOUNT","SESSION_STATE","RENEW_STATUS","SCOPES","acquireTokenSilent_authCode","React","urlParts","urlComponents","Protocol","isIframedApp","isInPopup","encodedToken","jswPayload","getJWSPayload","authToken","nullOrEmptyToken","tokenParsingError","base64Decoded","fiveMinuteSkew","maxAgeTranspired","rawClientInfo","clientInfoEmptyError","decodedClientInfo","clientInfoDecodingError","clientInfoParts","token_endpoint_auth_methods_supported","response_modes_supported","subject_types_supported","id_token_signing_alg_values_supported","response_types_supported","scopes_supported","request_uri_parameter_supported","device_authorization_endpoint","http_logout_supported","frontchannel_logout_supported","claims_supported","kerberos_endpoint","tenant_region_scope","cloud_instance_name","rbac_url","InstanceDiscoveryMetadata","getAliasesFromStaticSources","staticAliases","authorityHost","getAliasesFromMetadata","metadataEntry","AzurePublic","AzurePpe","AzureChina","AzureGermany","AzureUsGovernment","commonLogger","validAccounts","getAccountsFilteredBy","getAccountInfoFromEntity","allAccounts","accountEntities","getIdToken","idTokenClaimsMatchAccountFilter","matchLoginHint","matchSid","invalidCacheRecord","saveAccessToken","accessTokenFilter","realm","currentScopes","accessTokenKeyMatchesFilter","tokenEntity","credentialMatchesFilter","intersectingScopeSets","allAccountKeys","matchingAccounts","matchHomeAccountId","matchLocalAccountId","matchUsername","matchEnvironment","matchRealm","matchNativeAccountId","matchAuthorityType","matchName","lowerCaseKey","familyIdValidation","matchUserAssertionHash","matchCredentialType","matchFamilyId","matchTarget","matchTokenType","matchKeyId","getAppMetadataFilteredBy","getAppMetadataFilteredByInternal","allCacheKeys","matchingAppMetadata","isAppMetadata","matchedEntity","removedAccounts","allTokenKeys","generateAccountId","removedCredentials","bindingKeyNotRemoved","readAccountFromCache","readAppMetadataFromCache","idTokens","getIdTokensByFilter","numIdTokens","generateCredentialKey","multiMatchedID","idTokenKeys","idTokenKeyMatchesFilter","inputKey","createSearchScopes","authScheme","accessTokenKeys","accessTokens","numAccessTokens","multiMatchedAT","keyMustContainAllScopes","getAccessTokensByFilter","familyRT","refreshTokenFilter","refreshTokenKeys","refreshTokens","refreshTokenKeyMatchesFilter","numRefreshTokens","multiMatchedRT","appMetadataEntries","numAppMetadata","multipleMatchingAppMetadata","cloudMetadata","containsScopeSet","DefaultStorageClass","accountInterface","accountDetails","CacheAccountType","ADFS_ACCOUNT_TYPE","MSSTS_ACCOUNT_TYPE","GENERIC_ACCOUNT_TYPE","emails","serverClientInfo","authType","accountA","accountB","compareClaims","claimsMatch","accountAClaims","accountBClaims","iat","credentialEntity","generateCredentialId","generateTarget","generateClaimsHash","generateScheme","requestedClaims","atEntity","tokenClaims","tokenClaimsCnfRequiredForSignedJwt","rtEntity","isCredentialEntity","isAccessTokenEntity","isIdTokenEntity","isRefreshTokenEntity","isServerTelemetryEntity","DEFAULT_LOGGER_IMPLEMENTATION","DEFAULT_NETWORK_IMPLEMENTATION","DEFAULT_LIBRARY_INFO","SKU","DEFAULT_CLIENT_CREDENTIALS","DEFAULT_AZURE_CLOUD_OPTIONS","userAuthOptions","userSystemOptions","userLoggerOption","userCacheOptions","storageImplementation","networkImplementation","cryptoImplementation","buildAuthOptions","AuthErrorMessages","unexpectedError","additionalMessage","ClientAuthErrorMessages","hashNotDeserialized","multipleMatchingTokens","multipleMatchingAccounts","cannotRemoveEmptyScope","cannotAppendScopeSet","emptyInputScopeSet","deviceCodePollingCancelled","deviceCodeExpired","deviceCodeUnknownError","noAccountFound","unexpectedCredentialType","invalidAssertion","invalidClientCredential","userTimeoutReached","userCanceled","missingTenantIdError","nestedAppAuthBridgeDisabled","ClientConfigurationErrorMessages","claimsRequestParsingError","authorityUriInsecure","urlParseError","emptyInputScopesError","missingSshKid","missingNonceAuthenticationHeader","invalidAuthenticationHeader","cannotSetOIDCOptions","cannotAllowNativeBroker","authorityMismatch","ClientConfigurationError","InteractionRequiredServerErrorMessage","interactionRequired","consentRequired","loginRequired","InteractionRequiredAuthSubErrorMessage","InteractionRequiredAuthErrorMessages","nativeAccountUnavailable","isInteractionRequiredErrorCode","isInteractionRequiredSubError","isInteractionRequiredErrorDesc","irErrorCode","Verbose","packageName","packageVersion","setLoggerOptions","createDefaultLoggerOptions","localCallback","defaultLoggerCallback","containsPii","executeCallback","warningPii","isPiiLoggingEnabled","inputScopes","scopeArr","trimArrayEntries","filteredInput","removeEmptyStringsFromArray","validateInputScopes","inputScopeString","containsOnlyOIDCScopes","removeScope","removeOIDCScopes","containsScope","lowerCaseScopes","printScopesLowerCase","lowerCaseScopesSet","defaultScopeCount","OIDC_SCOPES","defaultScope","appendScope","newScope","newScopes","unionScopeSets","otherScopes","unionScopes","sizeOtherScopes","getScopeCount","sizeThisScopes","BaseClientCreateTokenRequestHeaders","BrokerHandhshake","AcquireTokenByRefreshTokenInBroker","AcquireTokenByBroker","AuthorityResolveEndpointsFromLocalSources","GetEndpointMetadataFromNetwork","GetCloudDiscoveryMetadataFromNetworkMeasurement","HandleRedirectPromiseMeasurement","UpdateCloudDiscoveryMetadataMeasurement","UsernamePasswordClientAcquireToken","NativeGenerateAuthResult","_urlString","canonicalizeUri","lowerCaseUrl","replaceTenantPath","urlObject","pathArray","regEx","relativeUrl","baseComponents","getDeserializedResponse","LIBRARY_NAME","DEFAULT_AUTHORITY_HOST","NO_ACCOUNT","CONSUMER_UTID","EMAIL_SCOPE","CODE_GRANT_TYPE","RT_GRANT_TYPE","FRAGMENT_RESPONSE_MODE","AUTHORIZATION_PENDING","NOT_DEFINED","SUCCESS_RANGE_START","SUCCESS_RANGE_END","REDIRECT","WWWAuthenticate","AuthenticationInfo","ERROR_DESCRIPTION","EXPIRES_IN","ON_BEHALF_OF","FOCI","CREATE","ACCOUNT","ACCOUNT_ID","HOMEACCOUNT_ID","FORM_POST","IMPLICIT_GRANT","CLIENT_CREDENTIALS_GRANT","RESOURCE_OWNER_PASSWORD_GRANT","DEVICE_CODE_GRANT","JWT_BEARER","MSAV1_ACCOUNT_TYPE","MAX_CUR_HEADER_BYTES","INTERNAL_CACHE","CONFIGURED_MATCHES_DETECTED","CONFIGURED_NOT_DETECTED","Jwt","Jwk","strObj","expirationSec","stripLeadingHashOrQuery","normalizedResponse","deserializedHash","zip","buffers","withLatestFrom","otherValues","getOppositePlacement","getBasePlacement","getOppositeVariationPlacement","auto","basePlacements","popper","variationPlacements","placements","modifierPhases","isHTMLElement","getDocumentElement","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","visualViewport","addVisualOffsets","getWindowScroll","getWindowScrollBarX","getNodeName","getParentNode","assignedSlot","isScrollParent","_getComputedStyle","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","getContainingBlock","perspective","contain","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","layoutViewport","getInnerBoundingClientRect","getDocumentRect","winScroll","getVariation","getMainAxisFromPlacement","basePlacement","variation","commonX","commonY","mainAxis","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","popperRect","clippingClientRect","getClippingRect","mainClippingParents","getClippingParents","clippingParents","clipperElement","clippingRect","accRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","modifiers_flip","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","getExpandedFallbackPlacements","oppositePlacement","computeAutoPlacement","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","fittingPlacement","requiresIfExists","within","mathMin","getLayoutRect","modifiers_preventOverflow","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","getAltAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","arrowElement","arrow","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","modifiers_arrow","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerOffset","effect","_ref2","_options$element","requires","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","getHTMLElementScroll","modifiers","depModifier","areValidElements","popperGenerator","generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","orderedModifiers","effectCleanupFns","setOptionsAction","cleanupModifierEffects","scrollParents","orderModifiers","mergeByName","merged","runModifierEffects","_ref$options","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","unsetSides","mapToStyles","_Object$assign2","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","roundOffsetsByDPR","dpr","createPopper","_options$scroll","_options$resize","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","modifiers_offset","_options$offset","distanceAndSkiddingToXY","invertDistance","skidding","_data$state$placement","NgbPopoverWindow_h3_1_ng_template_1_Template","NgbPopoverWindow_h3_1_ng_template_3_Template","NgbPopoverWindow_h3_1_Template","isTitleTemplate","NgbProgressbar_span_1_Template","transitionTimerDelayMs","noopFn","runningTransitions","ngbRunTransition","startFn","runningTransition","transition$","endFn","transitionProperty","runInZone","finishTransition$","stop$","endWith","transitionDurationMs","getTransitionDurationMs","transitionDelay","transitionDuration","transitionEnd$","timer$","NgbConfig","NgbAlertModule","Key","Tab","Enter","Escape","Space","PageUp","PageDown","ArrowLeft","ArrowUp","ArrowRight","ArrowDown","isContainedIn","matchesSelectorIfAny","isMobile","ngbAutoClose","closed$","insideElements","insideSelector","wrapAsyncForMobile","escapes$","mouseDowns$","closeableClicks$","shouldClose","FOCUSABLE_ELEMENTS_SELECTOR","getFocusableBoundaryElements","NgbRTL","isRTL","placementSeparator","spacesRegExp","bootstrapPopperMatches","popperStartPrimaryPlacement","popperEndPrimaryPlacement","popperStartSecondaryPlacement","popperEndSecondaryPlacement","getPopperOptions","placementVals","hasAuto","popperPlacements","_placement","getPopperClassPlacement","leftClass","rightClass","bsClassRegExp","popperElement","popperPlacement","getBootstrapBaseClassPlacement","newPrimary","classnames","newSecondary","classname","ngbPositioning","popperInstance","positioningOption","popperOptions","updatePopperOptions","createPopperLite","NgbDatepickerModule","ContentRef","_componentType","_applicationRef","_windowRef","_contentRef","templateContext","_getContentRef","NgbModalBackdrop","_el","backdropClass","NgbActiveModal","WINDOW_ATTRIBUTES","BACKDROP_ATTRIBUTES","NgbModalRef","_applyWindowOptions","windowInstance","_applyBackdropOptions","backdropInstance","_windowCmptRef","_backdropCmptRef","componentInstance","_closed","_hidden","dismissed","_dismissed","_beforeDismiss","dismissEvent","_removeModalElements","_dismiss","windowTransition$","backdropTransition$","ModalDismissReasons","BACKDROP_CLICK","ESC","NgbModalWindow","_elRef","_closed$","_elWithFocus","keyboard","fullscreenClass","_show","_disableEventHandling","transitions$","_dialogEl","_restoreFocus","_enableEventHandling","_setFocus","_bumpBackdrop","preventClose","autoFocusable","firstFocusable","elWithFocus","elementToFocus","ariaLabelledBy","ariaDescribedBy","windowClass","modalDialogClass","ScrollBar","bodyStyle","actualPadding","NgbModalStack","_environmentInjector","_scrollBar","_rendererFactory","_activeWindowCmptHasChanged","_ariaHiddenValues","_scrollBarRestoreFn","_modalRefs","_windowCmpts","_activeInstances","activeWindowCmpt","ngbFocusTrap","stopFocusTrap$","refocusOnClick","lastFocusedElement$","tabEvent","focusedElement","lastFocusedElement","_revertAriaHidden","_setAriaHidden","_restoreScrollBar","scrollBarRestoreFn","_hideScrollBar","contentInjector","containerEl","activeModal","contentRef","backdropCmptRef","_attachBackdrop","windowCmptRef","_attachWindowComponent","ngbModalRef","beforeDismiss","_registerModalRef","_registerWindowCmpt","activeInstances","dismissAll","hasOpenModals","_createFromTemplateRef","_createFromString","_createFromComponent","componentNativeEl","unregisterModalRef","ngbWindowCmpt","NgbModalConfig","_ngbConfig","_animation","NgbModal","_modalStack","combinedOptions","NgbModalModule","NgbPaginationModule","Trigger","DEFAULT_ALIASES","delayOrNoop","listenToTriggers","triggers","isOpenedFn","openFn","closeFn","openDelay","closeDelay","parsedTriggers","parseTriggers","trimmedTriggers","triggerPair","manualTriggers","observeTriggers","toggleFn","unsubscribeFn","triggerDelay","input$","filteredInput$","currentlyOpen","delayedOpen$","delayedClose$","NgbPopoverConfig","autoClose","disablePopover","nextId$1","NgbPopoverWindow","popoverClass","NgbPopover","_isDisabled","popoverTitle","_changeDetector","_ngbPopoverWindowId","_positioning","_popupService","_getPositionTargetElement","addPopperOffset","offset$1","_zoneSubscription","isOpen","_unregisterListenersFn","positionTarget","NgbProgressbarConfig","striped","NgbProgressbar","textType","getValueInRange","getPercentValue","i18n_55","NgbRatingModule","NgbTimepickerModule","NgbToastModule","NgbTooltipConfig","disableTooltip","NgbTooltipWindow","tooltipClass","NgbTooltip","_ngbTooltipWindowId","ngbTooltip","_ngbTooltip","ARIA_LIVE_DELAY_FACTORY","NgbTypeaheadModule","NgbOffcanvasModule","NGB_MODULES","searchTerm","NgDropdownPanelComponent_div_0_Template","filterValue","NgDropdownPanelComponent_div_8_Template","footerTemplate","NgSelectComponent_ng_container_4_div_1_ng_template_1_Template","unselect","escapeHTML","NgSelectComponent_ng_container_4_div_1_ng_template_3_Template","NgSelectComponent_ng_container_4_div_1_Template","labelTemplate","clearItem","NgSelectComponent_ng_container_4_Template","trackByOption","NgSelectComponent_5_ng_template_0_Template","NgSelectComponent_5_Template","multiLabelTemplate","selectedValues","NgSelectComponent_ng_container_9_ng_template_1_Template","NgSelectComponent_ng_container_9_ng_template_3_Template","NgSelectComponent_ng_container_9_Template","loadingSpinnerTemplate","NgSelectComponent_span_10_Template","clearAllText","NgSelectComponent_ng_dropdown_panel_13_div_2_ng_template_1_Template","item_r24","NgSelectComponent_ng_dropdown_panel_13_div_2_ng_template_3_Template","item$","NgSelectComponent_ng_dropdown_panel_13_div_2_Template","toggleItem","itemsList","markedItem","htmlId","optgroupTemplate","optionTemplate","NgSelectComponent_ng_dropdown_panel_13_div_3_ng_template_1_Template","addTagText","NgSelectComponent_ng_dropdown_panel_13_div_3_ng_template_3_Template","NgSelectComponent_ng_dropdown_panel_13_div_3_Template","unmarkItem","selectTag","tagTemplate","NgSelectComponent_ng_dropdown_panel_13_ng_container_4_ng_template_1_Template","notFoundText","NgSelectComponent_ng_dropdown_panel_13_ng_container_4_ng_template_3_Template","NgSelectComponent_ng_dropdown_panel_13_ng_container_4_Template","notFoundTemplate","NgSelectComponent_ng_dropdown_panel_13_ng_container_5_ng_template_1_Template","typeToSearchText","NgSelectComponent_ng_dropdown_panel_13_ng_container_5_ng_template_3_Template","NgSelectComponent_ng_dropdown_panel_13_ng_container_5_Template","typeToSearchTemplate","NgSelectComponent_ng_dropdown_panel_13_ng_container_6_ng_template_1_Template","loadingText","NgSelectComponent_ng_dropdown_panel_13_ng_container_6_ng_template_3_Template","NgSelectComponent_ng_dropdown_panel_13_ng_container_6_Template","loadingTextTemplate","NgSelectComponent_ng_dropdown_panel_13_Template","viewPortItems","scrollToEnd","virtualScroll","bufferAmount","dropdownPosition","filteredItems","dropdownId","showAddTag","showNoItemsFound","showTypeToSearch","unescapedHTMLExp","hasUnescapedHTMLExp","htmlEscapes","NgItemLabelDirective","ngItemLabel","NgOptionTemplateDirective","NgOptgroupTemplateDirective","NgLabelTemplateDirective","NgMultiLabelTemplateDirective","NgHeaderTemplateDirective","NgFooterTemplateDirective","NgNotFoundTemplateDirective","NgTypeToSearchTemplateDirective","NgLoadingTextTemplateDirective","NgTagTemplateDirective","NgLoadingSpinnerTemplateDirective","diacritics","stripSpecialChars","ItemsList","_ngSelect","_selectionModel","_filteredItems","_markedIndex","markedIndex","noItemsToSelect","hideSelected","maxItemsSelected","maxSelectedItems","lastSelectedItem","setItems","mapItem","groupBy","_groups","_groupBy","_flatten","clearSelected","selectableGroupAsModel","_hideSelected","_showSelected","findItem","findBy","bindValue","resolveNested","bindLabel","keepDisabled","marked","resetFilteredItems","findByLabel","term","searchFn","_defaultSearchFn","matchedItems","markNextItem","_stepToItem","markPreviousItem","markItem","markSelectedOrDefault","markDefault","lastMarkedIndex","_getLastMarkedIndex","$ngOptionLabel","$ngOptionValue","mapSelectedItems","_getNextItemIndex","isFnKey","keyFn","isGroupByFn","withoutGroup","isObjectKey","selectableGroup","groupKey","Pi","Backspace","NgDropdownPanelService","_dimensions","panelHeight","itemsPerViewport","calculateItems","itemsLength","indexByScrollTop","maxStart","topPadding","getScrollTo","itemTop","lastScroll","itemBottom","CSS_POSITIONS","SCROLL_SCHEDULER","NgDropdownPanelComponent","_panelService","outsideClick","_destroy$","_scrollToEndFired","_updateScrollHeight","_lastScrollPosition","_dropdown","_currentPosition","_itemsLength","_onItemsLengthChanged","_startOffset","_virtualPadding","paddingElementRef","_scrollablePanel","scrollElementRef","_contentPanel","contentElementRef","_handleScroll","_handleOutsideClick","_appendDropdown","_setupMousedownListener","_onItemsChange","startFromOption","scrollToTag","adjustPosition","_updateYPosition","_handleDropdownPosition","_calculateCurrentPosition","_updateDropdownClass","REMOVE_CSS_CLASS","ADD_CSS_CLASS","_onContentScrolled","_checkToClose","_updateItemsRange","_setVirtualHeight","_updateItems","_measureDimensions","_renderItemsRange","_fireScrollToEnd","_updateVirtualHeight","optionHeight","dropdownEl","_updateXPosition","NgOptionComponent","stateChange$","_previousLabel","NgSelectConfig","disableVirtualScroll","openOnEnter","appearance","ConsoleService","SELECTION_MODEL_FACTORY","NgSelectComponent","_itemsAreUsed","clearSearchOnAdd","_clearSearchOnAdd","closeOnSelect","deselectOnClick","_deselectOnClick","searchable","_isComposing","_editableSearchTerm","editableSearchTerm","autoFocus","newSelectionModel","markFirst","selectOnTab","clearOnBackspace","labelForId","inputAttrs","searchWhileComposing","minTermLength","keyDownFn","clearable","blurEvent","focusEvent","changeEvent","openEvent","closeEvent","searchEvent","clearEvent","useDefaultClass","_defaultLabel","_pressedKeys","_keyPress$","_onTouched","_mergeGlobalConfig","currentPanelPosition","dropdownPanel","_handleKeyPresses","_setInputAttributes","_setItems","_manualOpen","_setItemsFromNgOptions","handleKeyCode","_handleArrowDown","_handleArrowUp","_handleSpace","_handleEnter","_handleTab","_handleBackspace","handleMousedown","handleClearClick","handleArrowClick","_updateNgModel","_clearSearch","_onSelectionChanged","clearModel","_handleWriteValue","_isTypeahead","_setSearchTermFromItems","searchInput","_primitive","handleTag","showClear","_validTerm","onCompositionStart","onCompositionEnd","typeahead","onInputFocus","onInputBlur","firstItem","mapNgOptions","handleOptionChange","changedOrDestroyed","ngOptions","_isValidWriteValue","validateBinding","ngModel","isValObject","_scrollToMarked","autocorrect","autocapitalize","autocomplete","_changeSearch","_scrollToTag","_nextItemIsTag","DefaultSelectionModelFactory","DefaultSelectionModel","_selected","groupAsModel","childrenCount","_setChildrenSelectedState","_removeChildren","_activeChildren","FormlyField_ng_template_0_Template","FormlyGroup_formly_field_0_Template","getFieldId","formId","hasKey","isNil","getKeyPath","_keyPath","defineHiddenProp","FORMLY_VALIDATORS","assignFieldValue","resetOnHide","assignModelValue","getFieldValue","reverseDeepMerge","srcArg","isBlankString","objAndSameType","observeDeep","_observers","markFieldForCheck","_componentRefs","FORMLY_CONFIG","FormlyConfig","renderFormlyFieldElement","parentForm","presets","extensionsByPriority","addConfig","setType","setWrapper","validationMessages","addValidatorMessage","setSortedExtensions","throwIfNotFound","mergeExtendedType","getMergedField","extendDefaults","optionsTypes","resolveFieldTypeRef","setTypeWrapper","getValidator","getValidatorMessage","extensionOptions","extensionOption","prio","extendedType","FormlyFormBuilder","buildForm","_setOptions","disableTreeValidityCall","checkExpressions","_detectChanges","prePopulate","onPopulate","_buildForm","_fields","disabledObserver","_hide","clearControl","FormlyTemplate","FormlyFieldTemplates","FormlyField","hostObservers","componentRefs","hooksObservers","detectFieldBuild","valueChangesUnsubscribe","containerRef","triggerHook","resetRefs","hostObserver","renderField","wps","attachComponentRef","inlineType","templates","_localFields","subscribes","_expressions","expressionObserver","value$","fieldObserver","modelOptions","parsers","parserFn","templateFieldsSubs","FormlyForm","fieldTemplates","modelChange","_modelChangeValue","immutable","setField","checkExpressionChange","FormlyAttributes","uiAttributesCache","uiEvents","onBlur","fieldAttrElements","_elementRefs","detachElementRef","attachElementRef","focusObserver","toggleFocus","uiAttributes","onHostChange","_formlyControls","FormlyGroup","ɵFormlyGroup_BaseFactory","i2$1","FormlyValidationMessage","EXPR_VALIDATORS","errorMessage$","fieldForm","errorPath","_staticContent","fieldComponent","ɵFieldWrapper_BaseFactory","FormlyTemplateType","innerHtml","safeHtml","FieldExpressionExtension","_hiddenFieldsForCheck","parseExpressions","evalExpr","checkLocked","ignoreCache","fieldChanged","changeHideState","_checkField","parentExpression","rootValue","evalStringExpression","argNames","exprValue","evalExpression","argVal","changeDisabledState","unregisterControl","fieldIndex","_evalExpressionPath","emitExpressionChanges","arrayPath","FieldValidationExtension","initFieldValidation","getPredefinedFieldValidation","validatorName","wrapNgValidatorFn","VALIDATORS","minLengthResult","minLengthKey","maxLengthResult","maxLengthKey","validatorOption","handleResult","jt","_childrenErrors","childCtrl","_errorPath","_toDelete","childErrors","FieldFormExtension","addFormControl","findControl","shareFormControl","controlOptions","hasValidators","CoreExtension","initRootOptions","initFieldProps","getFieldComponentInstance","initFieldOptions","_markForCheck","resetModel","_initialModel","updateInitialValue","setDefaultValue","componentRefInstance","fieldComponentRef","_proxyInstance","defaultFormlyConfig","configService","configs","TranslateFakeLoader","ɵTranslateFakeLoader_BaseFactory","MissingTranslationHandler","FakeMissingTranslationHandler","keySet","vn","TranslateParser","TranslateDefaultParser","interpolateString","interpolateFunction","templateMatcher","ɵTranslateDefaultParser_BaseFactory","TranslateCompiler","TranslateFakeCompiler","compileTranslations","translations","ɵTranslateFakeCompiler_BaseFactory","TranslateStore","defaultLang","USE_STORE","USE_DEFAULT_LANG","DEFAULT_LANGUAGE","USE_EXTEND","TranslateService","onTranslationChange","isolate","_onTranslationChange","onLangChange","_onLangChange","onDefaultLangChange","_onDefaultLangChange","_defaultLang","currentLang","_currentLang","langs","_langs","_translations","currentLoader","missingTranslationHandler","useDefaultLang","defaultLanguage","setDefaultLang","retrieveTranslations","changeDefaultLang","getDefaultLang","changeLang","_translationRequests","loadingTranslations","updateLangs","setTranslation","shouldMerge","getLangs","addLangs","getParsedResult","translateService","getStreamOnTranslationChange","reloadLang","resetLang","languages","browserLanguage","userLanguage","getBrowserCultureLang","browserCultureLang","TranslatePipe","onTranslation","lastParams","validArgs","timeoutErrorFactory","NullValidationHandler","validateSignature","validationParams","validateAtHash","OAuthModuleConfig","DateTimeProvider","SystemDateTimeProvider","new","ɵSystemDateTimeProvider_BaseFactory","OAuthLogger","OAuthStorage","OAuthEvent","OAuthSuccessEvent","OAuthInfoEvent","OAuthErrorEvent","b64DecodeUnicode","base64","base64UrlEncode","AuthConfig","redirectUriAsPostLogoutRedirectUriFallback","loginUrl","resource","rngUrl","requestAccessToken","logoutUrl","clearHashAfterLogin","revocationEndpoint","customTokenParameters","userinfoEndpoint","silentRefreshMessagePrefix","silentRefreshShowIFrame","siletRefreshTimeout","silentRefreshTimeout","requireHttps","strictDiscoveryDocumentValidation","jwks","customQueryParams","silentRefreshIFrameName","timeoutFactor","sessionCheckIntervall","sessionCheckIFrameUrl","sessionCheckIFrameName","disableAtHashCheck","skipSubjectCheck","useIdTokenHintForSilentRefresh","skipIssuerCheck","nonceStateSeparator","useHttpBasicAuth","decreaseExpirationBySec","waitForTokenInMsec","disablePKCE","preserveRequestedRoute","disableIdTokenTimer","checkOrigin","openUri","WebHttpUrlEncodingCodec","ValidationHandler","UrlHelperService","getHashFragmentParams","customHashFragment","questionMarkPosition","pairs","escapedKey","hashBlocks","Hash","digestLength","bufferLength","bytesHashed","clean","dataLength","dataPos","bitLenHi","bitLenLo","padLength","_saveState","_restoreState","HashHandler","DefaultHashHandler","calcHash","valueToHash","algorithm","encodeUTF8","decodeUTF8","toHashString2","byteArray","toHashString","OAuthService","tokenValidationHandler","urlHelper","dateTimeService","discoveryDocumentLoaded","discoveryDocumentLoadedSubject","grantTypesSupported","inImplicitFlow","saveNoncesInLocalStorage","discoveryDocumentLoaded$","setStorage","checkLocalStorageAccessable","setupRefreshTimer","setupSessionCheck","configChanged","restartSessionChecksIfStillLoggedIn","hasValidIdToken","initSessionCheck","restartRefreshTimerIfStillLoggedIn","setupExpirationTimers","listenTo","noPrompt","shouldRunSilentRefresh","clearAutomaticRefreshTimer","automaticRefreshSubscription","refreshInternal","useSilentRefresh","silentRefresh","loadDiscoveryDocumentAndTryLogin","tryLogin","loadDiscoveryDocumentAndLogin","initLoginFlow","validateUrlFromDiscoveryDocument","httpsCheck","validateUrlForHttps","issuerCheck","validateUrlAgainstIssuer","assertUrlNotNullAndCorrectProtocol","clearAccessTokenTimer","clearIdTokenTimer","tokenReceivedSubscription","setupAccessTokenTimer","setupIdTokenTimer","expiration","storedAt","getAccessTokenStoredAt","calcTimeout","accessTokenTimeoutSubscription","getIdTokenExpiration","getIdTokenStoredAt","idTokenTimeoutSubscription","stopAutomaticRefresh","maxTimeoutValue","_storage","fullUrl","validateDiscoveryDocument","grant_types_supported","check_session_iframe","loadJwks","discoveryDocument","fetchTokenUsingPasswordFlow","loadUserProfile","getIdentityClaims","fetchTokenUsingGrant","storeAccessTokenResponse","fallbackAccessTokenExpirationTimeInSec","extractRecognizedCustomParameters","processIdToken","storeIdToken","removeSilentRefreshEventListener","silentRefreshPostMessageEventListener","setupSilentRefreshEventListener","processMessageEventMessage","preventClearHashAfterLogin","customRedirectUri","id_token_hint","existingIframe","silentRefreshSubject","createLoginUrl","initImplicitFlowInPopup","initLoginFlowInPopup","checkForPopupClosedTimer","calculatePopupFeatures","checkForPopupClosed","checkForPopupClosedInterval","storageListener","expectedPrefix","prefixedMessage","canPerformSessionCheck","getSessionState","setupSessionCheckEventListener","removeSessionCheckEventListener","sessionCheckEventListener","handleSessionUnchanged","handleSessionChange","handleSessionError","stopSessionCheckTimer","waitForSilentRefreshAfterSessionChange","logOut","startSessionCheckTimer","sessionCheckTimer","checkSession","sessionState","createAndSaveNonce","seperationChar","createChallangeVerifierPairForPKCE","initImplicitFlowInternal","additionalState","addParams","initImplicitFlow","resetImplicitFlow","callOnTokenReceivedIfExists","onTokenReceived","tokenParams","idClaims","grantedScopes","customParameters","expiresInMilliSeconds","tryLoginCodeFlow","tryLoginImplicitFlow","querySource","getCodePartsFromUrl","session_state","nonceInState","parseState","handleLoginError","disableNonceCheck","saveRequestedRoute","disableOAuth2StateCheck","storeSessionState","getTokenFromCode","restoreRequestedRoute","requestedRoute","PKCEVerifier","fetchAndProcessToken","validationHandler","clearLocationHash","savedNonce","idTokenClaimsJson","idTokenExpiresAt","onLoginError","getClockSkewInMsec","defaultSkewMsc","clockSkewInSec","skipNonceCheck","tokenParts","headerJson","padBase64","claimsJson","aud","iss","at_hash","issuedAtMSec","expiresAtMSec","clockSkewInMSec","idTokenHeader","loadKeys","checkSignature","idTokenHeaderJson","checkAtHash","atHashValid","getGrantedScopes","getCustomTokenResponseProperty","requestedProperty","noRedirectToLogoutUrl","customParam","postLogoutUrl","createNonce","silentRefreshFrame","sessionCheckFrame","unreserved","msCrypto","initCodeFlow","initCodeFlowInternal","foundParameters","recognizedParameter","revokeTokenAndLogout","ignoreCorsIssues","revokeEndpoint","revokeAccessToken","revokeRefreshToken","revokationParams","OAuthResourceServerErrorHandler","OAuthNoopResourceServerErrorHandler","DefaultOAuthInterceptor","oAuthService","moduleConfig","checkUrl","resourceServer","customUrlValidation","allowedUrls","sendAccessToken","schedulerArg","with","_with","originalSourceSubscription","timerSubscription","createDefaultLogger","createDefaultStorage","provideOAuthClient","validationHandlerClass","listToExtend","chrMap","m1","m2","buildRankedDictionary","orderedList","DATE_SPLITS","START_UPPER","END_UPPER","ALL_UPPER","ALL_UPPER_INVERTED","ALL_LOWER","ALL_LOWER_INVERTED","ONE_LOWER","ONE_UPPER","ALPHA_INVERTED","ALL_DIGIT","REFERENCE_YEAR","REGEXEN","recentYear","MatchDate","getMatchesWithoutSeparator","getMatchesWithSeparator","filteredMatches","filterNoise","maybeDateWithSeparator","regexMatch","dmy","mapIntegersToDayMonthYear","maybeDateNoSeparator","candidates","bestCandidate","isSubmatch","matchesLength","otherMatch","integers","over12","over31","under1","getDayMonth","possibleYearSplits","possibleYearSplitsLength","mapIntegersToDayMonth","twoToFourDigitYear","peq","findLevenshteinDistance","rankedDictionary","foundDistance","usedThreshold","getUsedThreshold","foundEntryDistance","myers_32","lst","pv","mv","sc","xv","myers_x","mhc","phc","hsize","vsize","vlen","pb","mb","ph","mh","isInThreshold","levenshteinDistance","levenshteinDistanceEntry","l33tTable","translationKeys","straightRow","keyPattern","simpleRepeat","extendedRepeat","sequences","recentYears","topTen","topHundred","similarToCommon","wordByItself","namesByThemselves","commonNames","userInputs","pwned","l33t","reverseWords","allUppercase","capitalization","associatedYears","repeated","longerKeyboardPattern","anotherWord","useWords","noNeed","timeEstimation","ltSecond","centuries","zxcvbnOptions","Options","dictionary","rankedDictionaries","rankedDictionariesMaxWordSize","graphs","useLevenshteinDistance","levenshteinThreshold","l33tMaxSubstitutions","setRankedDictionaries","setTranslations","checkCustomTranslations","translationType","rankedDictionariesMaxWorkSize","getRankedDictionary","getRankedDictionariesMaxWordSize","sanitizedInputs","extendUserInputsDictionary","addMatcher","MatchReverse","defaultMatch","passwordReversed","MatchL33t","enumeratedSubs","enumerateL33tSubs","relevantL33tSubtable","subbedPassword","matchedWord","matchSub","subbedChr","subDisplay","passwordChars","subTable","relevantSubs","tableKeys","getSubs","subDict","l33tChr","subs","firstKey","restKeys","nextSubs","dupL33tIndex","subExtension","subAlternative","newSubs","deduped","assoc","MatchDictionary","passwordLength","passwordLower","dictionaryName","rankedDict","searchWidth","searchEnd","usedPassword","isInDictionary","foundLevenshteinDistance","isLevenshteinMatch","rank","MatchRegex","regexName","nCk","coEff","log2","factorial","rval","bruteforce","bruteforceMatcher","minGuesses","guesses","MIN_SUBMATCH_GUESSES_SINGLE_CHAR","MIN_SUBMATCH_GUESSES_MULTI_CHAR","dateMatcher","dictionaryMatcher","baseGuesses","uppercaseVariations","cleanedWord","commonCases","commonCasesLength","wordArray","upperCaseCount","lowerCaseCount","variations","variationLength","getVariations","uppercaseVariant","l33tVariations","l33tVariant","subbed","subbedCount","unsubbedCount","getCounts","unsubbed","chrs","possibilities","calculation","regexMatcher","charClassBases","alphaLower","alphaUpper","alphanumeric","symbols","repeatMatcher","repeatCount","sequenceMatcher","ascending","firstChr","spatial","spatialMatcher","shiftedCount","turns","estimatePossiblePatterns","startingPosition","averageDegree","calcAverageDegree","tokenLength","possibleTurns","unShiftedCount","shiftedVariations","scoringHelper","optimal","excludeAdditive","fillArray","makeBruteforceMatch","sequenceLength","estimatedMatch","estimateGuesses","extraData","getMinGuesses","estimationResult","getScoring","scoring","matchGuesses","guessesLog10","pi","shouldSkip","competingPatternLength","competingMetricMatch","bruteforceUpdate","passwordCharIndex","unwind","optimalMatchSequence","candidateSequenceLength","candidateMetricMatch","mostGuessableMatchSequence","matchesByCoordinateJ","getGuesses","optimalSequenceLength","MatchRepeat","omniMatch","greedyMatch","getGreedyMatch","lazyMatch","getLazyMatch","baseToken","setMatchToken","getBaseGuesses","normalizeMatch","baseMatch","resolvedBaseGuesses","greedy","resolvedMatches","MatchSequence","MAX_DELTA","lastDelta","absoluteDelta","sequenceName","sequenceSpace","getSequence","MatchSpatial","SHIFTED_RX","graphName","helper","checkIfShifted","lastDirection","foundDirection","curDirection","curChar","adjacentsLength","adjacentIndex","Matching","DAY","century","TimeEstimates","displayStr","estimateAttackTimes","crackTimesSeconds","onlineThrottling100PerHour","onlineNoThrottling10PerSecond","offlineSlowHashing1e4PerSecond","offlineFastHashing1e10PerSecond","crackTimesDisplay","scenario","displayTime","guessesToScore","timeKeys","isSoleMatch","getDictionaryWarning","dictName","isAName","getDictionaryWarningPassword","getDictionaryWarningWikipedia","getDictionaryWarningNames","defaultFeedback","Feedback","setDefaultSuggestions","getFeedback","extraFeedback","longestMatch","getLongestMatch","feedback","getMatchFeedback","slicedSequence","zxcvbn","main","createReturnValue","timeEstimates","matchSequence","calcTime","attackTimes","commonWords","firstnames","lastnames","wikipedia","PasswordStrengthMeterComponent_ng_container_3_small_1_Template","PasswordStrengthMeterComponent_ng_container_3_small_2_ng_container_1_Template","suggestion_r4","isLast_r5","PasswordStrengthMeterComponent_ng_container_3_small_2_Template","PasswordStrengthMeterComponent_ng_container_3_Template","PSM_CONFIG","IPasswordStrengthMeterService","zxcvbnEnPackage","PasswordStrengthMeterService","scoreWithFeedback","PSMProgressBarDirective","minProgressVal","maxProgressVal","currentProgressVal","dataPasswordStrength","defaultColors","progressBar","numberOfProgressBarItems","setProgressBarItems","setProgressBar","progressBarItemContainer","progressBarItem","progressBarOverlayWidth","getFillMeterWidth","passwordStrength","progressBarOverlayWidthInPx","progressBarOverlayColor","getMeterFillColor","overlayElement","strength","getRoundedStrength","progressLevel","roundTo","PasswordStrengthMeterComponent","passwordStrengthMeterService","minPasswordLength","enableFeedback","strengthChange","prevPasswordStrength","calculatePasswordStrength","serviceClass","HOOKS","_disable","allowInput","allowInvalidPreload","altInputClass","ariaDateFormat","autoFillDefaultTime","clickOpens","conjunction","defaultHour","defaultMinute","defaultSeconds","disableMobile","enableSeconds","enableTime","getWeek","givenDate","week1","hourIncrement","ignoredFocusElements","inline","minuteIncrement","monthSelectorType","nextArrow","noCalendar","onClose","onDayCreate","onMonthChange","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","positionElement","prevArrow","shorthandCurrentMonth","showMonths","time_24hr","weekNumbers","english","shorthand","longhand","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","l10n_default","arrayify","clearNode","findParent","createNumberInput","inputClassName","numInput","arrowUp","arrowDown","getEventTarget","doNothing","monthToStr","monthNumber","revFormat","dateObj","shortMonth","unixSeconds","weekNum","weekNumber","ISODate","unixMillSeconds","tokenRegex","createDateFormatter","l10n","frmt","overrideLocale","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","datestr","ops","matchIndex","isBackSlash","compareDates","ts1","ts2","calculateSecondsSinceMidnight","parseSeconds","secondsSinceMidnight","getDefaultHours","minMinutes","minSeconds","maxHr","maxMinutes","__spreadArrays","jl","DEBOUNCED_CHANGE_MS","FlatpickrInstance","instanceConfig","English","getClosestActiveElement","calendarContainer","bindToInstance","setCalendarWidth","daysContainer","daysWidth","weekWrapper","updateTime","selectedDates","latestSelectedDateObj","timeWrapper","isKeyDown","isHourElem","hourElement","isMinuteElem","minuteElement","incrementNumInput","prevValue","_input","setHoursFromInputs","_debouncedChange","secondElement","ampm2military","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxDateHasTime","minBound","maxBound","setHoursFromDate","onYearInput","changeYear","_handlers","triggerChange","triggerEvent","jumpToDate","jumpDate","jumpTo","oldYear","oldMonth","buildMonthSwitch","timeIncrement","inputElem","createDay","_dayNumber","dateIsEnabled","dayElement","$i","todayDateElem","isDateSelected","selectedDateElem","isDateInRange","focusOnDayElem","getFirstAvailableDay","endMonth","focusOnDay","dayFocused","isInView","startElem","getNextAvailableDay","givenMonth","loopDelta","numMonthDays","changeMonth","buildMonthDays","firstOfMonth","prevMonthDays","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayIndex","dayNum","dayContainer","buildDays","frag","monthsDropdownContainer","buildMonth","monthElement","monthNavFragment","selectedMonth","yearInput","yearElement","buildMonths","monthNav","prevMonthNav","yearElements","monthElements","nextMonthNav","buildWeekdays","weekdayContainer","updateWeekdays","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","updateNavigationCurrentMonth","isCalendarElem","documentClick","eventTarget_1","isCalendarElement","lostFocus","isIgnored","timeContainer","newYear","isNewYear","dateToCheck","isInput","getDateStr","allowKeydown","allowInlineKeydown","isTimeObj","focusAndClose","selectDate","delta_1","currentYearElement","pluginElements","hoverDate","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","rContainer","dayElem","outOfRange","positionCalendar","minMaxDateSetter","inverseDateObj","getInputElem","setupLocale","l10ns","customPositionElement","_positionElement","calendarHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","distanceFromBottom","showOnTop","isCenter","rightMost","centerMost","getDocumentStyleSheet","editableSheet","styleSheets","cssRules","createStyleSheet","centerLeft","centerIndex","centerStyle","centerBefore","shouldChangeMonth","loadedPlugins","_setHoursFromDate","_positionCalendar","triggerChangeEvent","toInitial","mobileInput","_initialDate","_createElement","wasOpen","CALLBACKS","setSelectedDate","updatePositionElement","inputDate","parseDateRules","specificFormat","dObj","mobileFormatStr","onMonthNavClick","isPrevMonth","isNextMonth","parseConfig","boolOpts","userConfig","_enable","timeMode","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","pluginConf","setupInputs","setupDates","preloadedDate","setupHelperFunctions","yr","buildMonthNav","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","buildWeeks","buildTime","hourInput","minuteInput","military2ampm","secondInput","customAppend","setupMobile","debouncedResize","_flatpickr","HTMLCollection","NodeList","en","localize","setDefaults","fp_incr","esm","FlatpickrDefaults","time24hr","convertModelValue","FLATPICKR_CONTROL_VALUE_ACCESSOR","FlatpickrDirective","flatpickrReady","flatpickrChange","flatpickrValueUpdate","flatpickrOpen","flatpickrClose","flatpickrMonthChange","flatpickrYearChange","flatpickrDayCreate","onChangeFn","onTouchedFn","convertedValue","inputChanged","USER_DEFAULTS","defaultsFactory","userDefaults","WindowRef","nativeWindow","AutosizeDirective","onlyGrow","useImportant","autosize","retries","_findNestedTextArea","textAreaEl","_onTextAreaFound","minRows","_minRows","_autosize","textArea","adjust","_addWindowResizeHandler","inputsChanged","currentText","_oldContent","_oldWidth","_getLineHeight","rowsCount","maxRows","documentIsAccessible","escapedName","encodedURIComponent","getCookieRegExp","safeDecodeURIComponent","currentCookie","expiresOrOptions","secure","sameSite","deleteAll","EllipsisDirective","removeResizeListeners$","ellipsisContent","moreClickEmitter","changeEmitter","low","best","ellipsisCharacters","moreAnchor","ellipsisWordBoundaries","ellipsisSubstrFn","originalText","convertEllipsisInputToString","innerElem","previousDimensions","moreAnchorRequiresChange","applyEllipsis","destroyMoreClickListener","triggerNow","resizeDetectionStrategy","addWindowResizeListener","addElementResizeListener","removeWindowResizeListener","getTruncatedText","truncatedText","truncateText","addMoreListener","truncatedLength","textTruncated","showMoreLink","numericBinarySearch","curLength","finalLength","currentOverflow","PdfSidebarContentComponent_div_1_ng_content_2_Template","PdfSidebarContentComponent_div_1_Template","customThumbnail","PdfSidebarContentComponent_div_2_ng_content_2_Template","PdfSidebarContentComponent_div_2_Template","PdfSidebarContentComponent_ng_template_7_Template","PdfSidebarContentComponent_ng_template_9_Template","PdfSidebarComponent_ng_content_1_Template","PdfSidebarComponent_ng_template_2_Template","thumbnailDrawn","sidebarPositionTop","hideSidebarToolbar","mobileFriendlyZoomScale","PdfZoomDropdownComponent_option_3_Template","level_r2","dataL10nId","dataL10nArgs","PdfRotatePageComponent_button_0_Template","rotateCW","showRotateButton","disableRotate","PdfRotatePageComponent_button_1_Template","rotateCCW","PdfEditorComponent_div_0_Template","showTextEditor","showDrawEditor","PdfEditorComponent_div_1_Template","PdfToolbarComponent_ng_content_2_Template","PdfToolbarComponent_ng_template_6_Template","showSidebarButton","showFindButton","textLayer","showPagingButtons","showZoomButtons","zoomLevels","showHandToolButton","showPresentationModeButton","showOpenFileButton","showPrintButton","showDownloadButton","showSecondaryToolbarButton","PdfSecondaryToolbarComponent_ng_template_1_Template","previousPage","nextPage","onSpreadChange","secondaryToolbarTop","disablePreviousPage","disableNextPage","showScrollingButton","showSpreadButton","showPropertiesButton","PdfFindInputAreaComponent_div_0_Template","PdfFindbarComponent_ng_template_1_Template","findbarLeft","findbarTop","customFindbarButtons","PdfFindbarComponent_ng_template_3_Template","customFindbarInputArea","showFindHighlightAll","showFindMatchCase","showFindCurrentPageOnly","showFindPageRange","showFindEntireWord","showFindEntirePhrase","showFindIgnoreAccents","showFindFuzzySearch","showFindResultsCount","showFindMessages","NgxExtendedPdfViewerComponent_pdf_dark_theme_0_Template","NgxExtendedPdfViewerComponent_pdf_light_theme_1_Template","NgxExtendedPdfViewerComponent_ng_content_4_Template","NgxExtendedPdfViewerComponent_ng_template_5_div_5_ng_content_1_Template","NgxExtendedPdfViewerComponent_ng_template_5_div_5_Template","customFreeFloatingBar","NgxExtendedPdfViewerComponent_ng_template_5_div_40_Template","NgxExtendedPdfViewerComponent_ng_template_5_Template","onToolbarLoaded","onSecondaryMenuIsEmpty","zoomToPageWidth","majorMinorPdfJsVersion","showFreeFloatingBar","sidebarVisible","customSidebar","primaryMenuVisible","serverSideRendering","customToolbar","enablePrint","pageViewMode","hideKebabMenuForSecondaryToolbar","toolbarMarginTop","toolbarWidth","customSecondaryToolbar","viewerPositionTop","hasSignature","showUnverifiedSignatures","NgxExtendedPdfViewerComponent_ng_template_7_Template","FindState","FOUND","WRAPPED","PdfCursorTools","SELECT","HAND","ZOOM","_isIE11","MSInputMethodContext","isEdge","needsES5","ReadableStream","allSettled","getVersionSuffix","folder","assetsUrl","postfixIfPathIsRelativ","pdfDefaultOptions","annotationEditorMode","annotationMode","defaultZoomDelay","cursorToolOnLoad","defaultUrl","defaultZoomValue","disableHistory","disablePageLabels","enablePermissions","docBaseUrl","enablePrintAutoRotate","externalLinkRel","externalLinkTarget","historyUpdateUrl","ignoreDestinationZoom","imageResourcesPath","maxCanvasPixels","forcePageColors","pageColorsBackground","pageColorsForeground","pdfBugEnabled","printResolution","rangeChunkSize","removePageBorders","renderForms","enableXfa","fontExtraProperties","sidebarViewOnLoad","scrollModeOnLoad","spreadModeOnLoad","textLayerMode","useOnlyCssZoom","viewOnLoad","cMapPacked","cMapUrl","assetsFolder","disableAutoFetch","disableFontFace","disableRange","disableStream","isEvalSupported","isOffscreenCanvasSupported","maxImageSize","pdfBug","postMessageTransfers","verbosity","workerPort","sandboxBundleSrc","workerSrc","standardFontDataUrl","doubleTapZoomFactor","doubleTapZoomsInHandMode","doubleTapZoomsInTextSelectionMode","doubleTapResetsZoomOnSecondDoubleTap","enableScripting","defaultCacheSize","passwordPrompt","getDefaultLanguage","activateWillReadFrequentlyFlag","ScrollModeType","wrapped","VerbosityLevel","ERRORS","WARNINGS","INFOS","requiredIds","PdfDummyComponentsComponent","addMissingStandardWidgets","dummyComponentsContainer","needsDummyWidget","dummy","UnitToPx","con","pxPerUnitCache","initElements","pxPerUnit","NgxFormSupport","formIdToFullFieldName","formIdToField","radioButtons","formDataChange","registerFormSupportWithPdfjs","getFormValueFromAngular","updateAngularFormValue","updateAngularFormValueCalledByPdfjs","registerAcroformField","radioButtonValueName","registerXFAField","groupName","getValueOfASelectField","fullFieldName","findFullXFAName","HTMLTextAreaElement","selectElement","findXFAName","xfaName","doUpdateAngularFormValue","shortFieldName","exportValue","updateFormFieldsInPdfCalledByNgOnChanges","previousFormData","PDFViewerApplication","pdfDocument","annotationStorage","setFieldValueAndUpdateAnnotationStorage","hasPreviousValue","findRadioButtonGroup","activeValue","updateFromAngular","fieldId","findFormIdFromFieldName","htmlField","populateSelectField","newValueArray","matchingEntries","PdfSidebarView","UNKNOWN","THUMBS","OUTLINE","ATTACHMENTS","LAYERS","PDFNotificationService","onPDFJSInit","pdfjsVersion","NgxExtendedPdfViewerService","recalculateSize$","findMultiple","findMultipleSearchTexts","NgxExtendedPdfViewerComponent","ngxExtendedPdfViewerInitialized","highlightAllCheckbox","highlightAll","findPageRange","pageRange","findCurrentPageCheckbox","matchCaseCheckbox","matchCase","entireWordCheckbox","wholeWords","findIgnoreAccentsCheckbox","ignoreAccents","multipleSearchTerms","findMultipleSearchTextsCheckbox","individualWordsModeCheckbox","fuzzySearchCheckbox","fuzzySearch","inputField","findNext","findPrevious","printRange","alreadyThere","isInPDFPrintRange","setPrintRange","printPDF","eventBus","removePrintRange","filteredPageCount","pagesCount","pageCount","pageIndex","included","getPageAsLines","snippets","getPage","getTextContent","countLTR","countRTL","currentSnippet","hasEOL","getPageAsText","textSnippets","convertTextInfoToText","textInfoItems","getPageAsImage","backgroundColorToReplace","pdfPage","zoomFactor","getPageDrawContext","drawViewport","canvasContext","dataUrlPromise","getCurrentDocumentAsBlob","getFormData","currentFormValues","pdf","numPages","getAnnotations","subtype","fieldRect","convertToViewportRectangle","radioButton","fieldAnnotation","addPageToRenderQueue","pdfViewer","isRenderQueueEmpty","renderingQueue","getHighestPriority","_getVisiblePages","_pages","scrolledDown","renderExtra","hasPageBeenRendered","pages","renderingState","currentlyRenderedPages","numberOfPages","getCurrentlyVisiblePageNumbers","views","recalculateSize","listLayers","optionalContentConfig","optionalContentConfigPromise","getOrder","layerId","getGroup","toggleLayer","setVisibility","scrollPageIntoView","pageSpot","scrollPagePosIntoView","getSerializedAnnotations","addEditorAnnotation","serializedAnnotation","removeEditorAnnotations","addTrustedHTML","ttWindow","PdfDarkThemeComponent","injectStyle","PdfLightThemeComponent","PdfAcroformDefaultThemeComponent","PdfBreakpoints","sm","md","lg","xxl","ResponsiveCSSClassPipe","defaultClass","NegativeResponsiveCSSClassPipe","DynamicCssComponent","xxs","scaleFactor","PdfSidebarToolbarComponent","PdfSidebarContentComponent","pdfJsVersion","pdfThumbnailGeneratorReady","pdfThumbnailGenerator","pdfThumbnailView","linkService","thumbPageTitlePromise","createThumbnail","thumbnailViewTemplate","thumbnailViewTemplate35","thumbnailViewTemplate37","widthOfRing","canvasWidth","heightOfRing","canvasHeight","newHtml","newElement","createElementFromHTML","getAnchorUrl","ring","thumbnail","pageId","getTrustedHtml","htmlString","PdfSidebarComponent","showToolbarWhenNecessary","PdfToggleSidebarComponent","PdfFindButtonComponent","PdfFirstPageComponent","disableFirstPage","onPdfJsInit","firstPage","updateUIState","PdfPreviousPageComponent","PdfPageNumberComponent","PdfNextPageComponent","PdfLastPageComponent","disableLastPage","PdfPagingAreaComponent","PdfZoomOutComponent","PdfZoomInComponent","PdfZoomDropdownComponent","_zoomLevels","levels","valueToZoomLevel","numericalValue","snakeToCamel","sizeSelector","PdfZoomToolbarComponent","PdfHandToolComponent","tool","PdfSelectToolComponent","showSelectToolButton","PdfRotatePageComponent","clockwise","counterClockwise","button1","button2","PdfPresentationModeComponent","PdfOpenFileComponent","PdfPrintComponent","PdfDownloadComponent","PdfEditorComponent","PdfToggleSecondaryToolbarComponent","PdfToolbarComponent","showBookmarkButton","PdfSecondaryToolbarComponent","spreadChange","secondaryMenuIsEmpty","currentPageNumber","previousButton","nextButton","newSpread","mutationList","visibleButtons","checkVisibilityRecursively","PdfFindbarService","multipleSearchTexts","_individualWordsMode","individualWordsMode","multilineInput","wordsInput","findBar","PdfSearchInputFieldComponent","pdfFindbarService","PdfFindPreviousComponent","PdfFindNextComponent","PdfFindInputAreaComponent","PdfFindHighlightAllComponent","PdfFindMatchCaseComponent","PdfFindCurrentPageOnlyComponent","PdfFindRangeComponent","PdfFindEntireWordComponent","PdfFindMultipleSearchTextsComponent","PdfFindIgnoreAccentsComponent","PdfFindFuzzilyComponent","PdfFindResultsCountComponent","PdfFindbarMessageContainerComponent","PdfFindbarComponent","customFindbar","PdfContextMenuComponent","PdfErrorMessageComponent","PdfPasswordDialogComponent","PdfDocumentPropertiesDialogComponent","PdfPreparePrintingDialogComponent","englishText","platformLocation","ngxExtendedPdfViewerIncompletelyInitialized","formSupport","enableDragAndDrop","disableForms","_pageViewMode","srcChangeTriggeredByUser","pageViewModeChange","srcChange","_scrollMode","scrollModeChange","authorization","contextMenuAllowed","afterPrint","beforePrint","currentZoomFactor","delayFirstView","relativeCoordsOptions","minifiedJSLibraries","rotationChange","annotationLayerRendered","annotationEditorLayerRendered","xfaLayerRendered","outlineLoaded","attachmentsloaded","layersloaded","_height","_useBrowserLocale","forceUsingLegacyES5","filenameForDownload","ignoreKeyboard","ignoreKeys","acceptKeys","localeFolderPath","listenToURL","nameddest","replaceBrowserPrint","_showSidebarButton","sidebarVisibleChange","activeSidebarView","activeSidebarViewChange","findbarVisible","findbarVisibleChange","propertiesDialogVisible","propertiesDialogVisibleChange","showToolbar","_handTool","handToolChange","_showScrollingButton","_showSpreadButton","showBorders","_page","pageChange","pageLabel","pageLabelChange","pagesLoaded","pageRender","pageRendered","pdfDownloaded","pdfLoaded","pdfLoadingStarts","pdfLoadingFailed","textLayerRendered","annotationEditorModeChanged","updateFindMatchesCount","updateFindState","zoomChange","maxZoom","minZoom","_mobileFriendlyZoom","toolbarWidthInPixels","shuttingDown","viewMode","mustRedraw","PDFViewerApplicationOptions","findController","scrollMode","ngx","viewerContainer","viewer","openPDF2","_src","openPDF","readAsArrayBuffer","base64Src","binary_string","checkHeight","useBrowserLocale","handTool","toolbarElement","mobileFriendlyZoom","fullVersion","calcViewerPositionTop","findButton","containerPositionLeft","iOSVersionRequiresES5","isIOs13OrBelow","supportsOptionalChaining","addScriptOpChainingSupport","createScriptElement","sourcePath","getPdfJsPath","artifact","assets","loadViewer","ngxZone","viewerPath","setNgxExtendedPdfViewerSource","addTranslationsUnlessProvidedByTheUser","loadPdfJs","hideToolbarIfItIsEmpty","pdfJsPath","webViewerLoad","doInitPDFViewer","assignTabindexes","startTabindex","showElementsRecursively","collectElementPositions","elementAndPos","initTimeout","afterLibraryInit","overrideDefaultSettings","activateTextlayerIfNecessary","dummyComponents","appConfig","isViewerEmbedded","printKeyDownListener","topLevelElements","pc","langLinks","langCount","dict","userProvidesTranslations","isPrimaryMenuVisible","maximumHeight","calculateBorderMargin","toPx","viewFind","findbar","spread","spreadMode","ServiceWorkerOptions","pdfLinkService","setHash","selectCursorTool","removeScrollbarInInfiniteScrollMode","pagesRotation","goToDestination","currentPageLabel","presetValue","previousScale","previousPresetValue","sidebarComponent","pdfLoadedEvent","scrollSignatureWarningIntoView","pdfDocumentProperties","enableOrDisableForms","destroyBookMode","matchesCount","_pageMatches","_pageMatchesLength","matchesColor","_pageMatchesColor","restoreHeight","stopRendering","pdfThumbnailViewer","resetModified","originalPrint","printContainer","registerAcroformAnnotations","_cleanup","_boundEvents","unbindWindowEvents","bus","openFileInput","pdfSidebar","switchView","zoomEvent","messageHandler","zoomAsNumber","userSetting","scaleDropdownField","currentScaleValue","secondaryToolbarComponent","hideKebabButton","desiredCenterY","currentScale","previousZoom","scaleCorrectionFactor","doNotEnable","xfaLayers","acroFormLayers","layer","customPdfViewer","NgxExtendedPdfViewerCommonModule","ngxConsoleFilter","_level","NgxConsole","isKeyInList","keyDef","isKey","cmdDef","ngxConsole","isKeyIgnored","DOC_ORIENTATION","UpMirrored","DownMirrored","LeftMirrored","RightMirrored","NotJpeg","NotDefined","ImageCompress","getOrientation","getUint16","getUint32","little","uploadFile","rejectOnCancel","onlyNative","generateUploadInputNative","generateUploadInputRenderer","filesList","orientationPromises","readerPromises","fileToDataURL","orientationsResult","orientations","readerResult","resultArray","parsedFile","dataUrl","documentNativeApi","compress","imageDataUrlSource","quality","maxwidth","maxheight","sourceImage","TO_RADIANS","mime","byteCount","imgString","getImageMaxSize","maxSizeMb","debugMode","bytesToMB","myFile","compressedFile","MAX_TRIES","previousSize","NgxImageCompressService","uploadMultipleFiles","uploadFileOrReject","uploadMultipleFilesOrReject","uploadAndGetImageWithMaxSize","uploadResponse","uploadAndGetImageWithMaxSizeAndMetas","resolveContainerElement","defaultElement","fromRoot","findElement","customRoot","inputPropChanged","VerticalProps","HorizontalProps","AxisResolver","propsMap","clientHeightKey","offsetHeightKey","scrollHeightKey","pageYOffsetKey","offsetTopKey","scrollTopKey","topKey","isElementWindow","windowElement","isContainerWindow","extractHeightForElement","extractHeightPropKeys","getElementHeight","calculatePointsForWindow","getElementPageYOffset","nativeElementHeight","totalToScroll","getElementOffsetTop","calculatePointsForElement","shouldFireScrollEvent","scrollingDown","containerBreakpoint","scrolledUntilNow","ScrollState","lastScrollPosition","lastTotalToScroll","updateScrollPosition","updateTotalToScroll","updateScroll","updateTriggeredFlag","isScrollingDown","isTriggeredScroll","createScroller","createResolver","createResolverWithContainer","scrollState","upDistance","downDistance","attachScrollEvent","duration$","sendValue","endThrottling","cleanupThrottling","startThrottle","positionStats","toInfiniteScrollParams","stats","scrollDown","getScrollStats","isScrollingDownwards","shouldTriggerEvents","alwaysCallback","isTriggeredCurrentTotal","toInfiniteScrollAction","InfiniteScrollActions","currentScrollPosition","InfiniteScrollDirective","scrolledUp","infiniteScrollDistance","infiniteScrollUpDistance","infiniteScrollThrottle","infiniteScrollDisabled","infiniteScrollContainer","immediateCheck","containerChanged","disabledChanged","distanceChanged","shouldSetup","destroyScroller","hasWindowDefined","disposeScroller","handleOnScroll","hasObservers","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","LinearEasing","bezier","mX1","mY1","mX2","mY2","sampleValues","getTForX","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","newtonRaphsonIterate","aGuessT","currentSlope","binarySubdivide","aA","aB","currentX","currentT","SMOOTH_SCROLL_OPTIONS","SmoothScrollManager","_now","customDefaultOptions","_onGoingScrolls","_defaultOptions","_scrollElement","_getElement","_initSmoothScroll","_isFinished","currentY","_interrupted","_step","elapsed","_applyScrollToOptions","takeWhile","inclusive","currContext","scrollableEl","NgScrollbar_ng_container_5_scrollbar_x_1_Template","isHorizontallyScrollable","verticalUsed","NgScrollbar_ng_container_5_scrollbar_y_2_Template","isVerticallyScrollable","horizontalUsed","NgScrollbar_ng_container_5_Template","NgAttr","ngAttr","preventSelection","onselectstart","enableSelection","ScrollViewport","scrollMaxX","scrollMaxY","contentHeight","contentWrapperElement","contentWidth","viewPort","activatePointerEvents","mouseMoveStream","mouseDown","mouseUp","setAsWrapper","setAsViewport","customClassName","scrollYTo","scrollXTo","NgScrollbarBase","TrackAdapter","trackElement","onTrackClicked","thumbSize","pageProperty","pageOffset","mapToScrollToOption","trackClickScrollDuration","TrackXDirective","TrackYDirective","ThumbAdapter","trackMax","thumbElement","_dragging","calculateThumbSize","minThumbSize","viewportScrollSize","calculateThumbPosition","scrollMax","viewportScrollOffset","viewportScrollMax","handleDirection","trackMaxStart","scrollMaxStart","dragStartOffset","mouseDownOffset","clientProperty","mouseOffset","handleDrag","ThumbXDirective","horizontalDragging","ThumbYDirective","verticalDragging","Scrollbar","thumbDragEvent","trackClickEvent","trackHoveredEvent","pointerEventsMethod","viewportTrackClicked","viewportThumbClicked","viewportPropagateMouseMove","thumb","setClicked","pointerEventsDisabled","ScrollbarY","verticalHovered","trackClass","thumbClass","ScrollbarX","horizontalHovered","NG_SCROLLBAR_OPTIONS","viewClass","windowResizeDebounce","sensorDebounce","scrollAuditTime","autoHeightDisabled","autoWidthDisabled","sensorDisabled","ScrollbarManager","globalOptions","NativeScrollbarSizeFactory","_scrollbarSize","getNativeScrollbarSize","HideNativeScrollbar","_subscriber","ResizeSensor","_debounce","_unsubscribe","_currentSubscription","_resizeObserver","_sensorDisabled","_pointerEventsDisabled","_viewportPropagateMouseMove","_autoHeightDisabled","_autoWidthDisabled","smoothScroll","deactivated","getScrolledByDirection","scrollbarClicked","customViewPort","defaultViewPort","scrollStream","horizontalScrolled","updateHeight","updateWidth","scrollbarX","scrollbarY","NgScrollbarModule","Toast_button_0_Template","Toast_div_1_ng_container_2_Template","duplicatesCount","Toast_div_1_Template","titleClass","Toast_div_2_Template","messageClass","Toast_div_3_Template","Toast_div_4_Template","ComponentPortal","newestOnTop","_attachedHost","setAttachedHost","BasePortalHost","portal","_attachedPortal","attachComponentPortal","_disposeFn","setDisposeFn","ToastRef","_overlayRef","manualClose","_manualClose","manualClosed","timeoutReset","_resetTimeout","countDuplicate","_countDuplicate","_afterClosed","_activate","afterClosed","isInactive","afterActivate","onDuplicate","resetTimeout","ToastPackage","toastType","toastRef","_onAction","_onTap","triggerTap","tapToDismiss","onTap","triggerAction","onAction","TOAST_CONFIG","DomPortalHost","_hostDomElement","_componentFactoryResolver","_getComponentRootNode","OverlayContainer","_containerElement","_createContainer","OverlayRef","_portalHost","Overlay","overlayContainer","_createOverlayRef","getPaneElement","_paneElements","_createPaneElement","pane","_overlayContainer","_createPortalHost","ToastrService","overlay","toastrConfig","iconClasses","_preBuildNotification","applyConfig","toasts","_findToast","activeToast","currentlyActive","maxOpened","findDuplicate","resetOnDuplicate","countDuplicates","includeTitleDuplicates","onActivateTick","_buildNotification","toastComponent","resetTimeoutOnDuplicate","previousToastMessage","keepInactive","autoDismiss","overlayRef","sanitizedMessage","enableHtml","toastPackage","toastInjector","ins","onShown","onHidden","DefaultGlobalConfig","disableTimeOut","extendedTimeOut","toastClass","easeTime","progressAnimation","Toast","displayStyle","toastrService","originalTimeout","toastClasses","activateToast","sub1","sub2","sub3","outsideTimeout","hideTime","outsideInterval","updateProgress","tapToast","stickAround","delayedHideToast","runInsideAngular","provideToastr","NgxTrimDirective","trimOption","_trim","eleValue","ngControl","trimOnWriteValue","_valueAccessor","_writeValue","selectionEnd","TrimOption","getCaret","NgxUiLoaderComponent_div_0_Template","pbThickness","pbColor","loaderId","masterLoaderId","showForeground","foregroundClosing","fastFadeOut","pbDirection","NgxUiLoaderComponent_img_2_Template","logoSize","logoTop","logoPosition","trustedLogoUrl","NgxUiLoaderComponent_div_4_div_1_Template","NgxUiLoaderComponent_div_4_Template","fgSpinnerClass","fgDivs","NgxUiLoaderComponent_ng_template_5_ng_container_0_Template","NgxUiLoaderComponent_ng_template_5_Template","fgsTemplate","NgxUiLoaderComponent_div_11_div_1_Template","NgxUiLoaderComponent_div_11_Template","bgSpinnerClass","bgDivs","NgxUiLoaderComponent_ng_template_12_ng_container_0_Template","NgxUiLoaderComponent_ng_template_12_Template","bgsTemplate","SPINNER","ballScaleMultiple","ballSpin","ballSpinClockwise","ballSpinClockwiseFadeRotating","ballSpinFadeRotating","chasingDots","cubeGrid","doubleBounce","fadingCircle","foldingCube","pulse","rectangleBounce","rectangleBounceParty","rectangleBouncePulseOut","rectangleBouncePulseOutRapid","rotatingPlane","squareJellyBox","squareLoader","threeBounce","threeStrings","wanderingCubes","POSITION","bottomCenter","centerCenter","centerRight","topCenter","PB_DIRECTION","leftToRight","rightToLeft","DEFAULT_FG_TASK_ID","DEFAULT_BG_TASK_ID","DEFAULT_TIME","BACKGROUND","FOREGROUND","SPINNER_CONFIG","divs","bgsColor","bgsOpacity","bgsPosition","bgsSize","bgsType","fgsColor","fgsPosition","fgsSize","fgsType","logoUrl","overlayBorderRadius","overlayColor","hasProgressBar","textPosition","NGX_UI_LOADER_CONFIG_TOKEN","NgxUiLoaderService","isShow","showForeground$","showBackground","showBackground$","fgClosing","foregroundClosing$","bgClosing","backgroundClosing$","bindLoaderData","isMaster","isBound","hasRunningTask","createLoaderData","destroyLoaderData","stopAllLoader","getDefaultConfig","getLoaders","startLoader","readyToStart","tasks","isOtherRunning","backgroundCloseout","startBackgroundLoader","startBackground","stopLoader","readyToStop","foregroundCloseout","stopBackgroundLoader","stopBackground","clearAllTimers","stopAll","isForeground","clearTimers","delayTimer","maxTimer","minTimer","setDelayTimer","setMaxTimer","isDelayed","setMinTimer","NgxUiLoaderComponent","domSanitizer","initializeSpinners","determinePositions","showForegroundWatcher","showEvent","showBackgroundWatcher","foregroundClosingWatcher","backgroundClosingWatcher","backgroundClosing","logoUrlChange","spinnerTop","textTop","ngxUiLoaderConfig","asyncGeneratorStep","_throw","_toPropertyKey","_toPrimitive","hint","prim","_arguments","generator","fulfilled","verb","fulfill","settle","SuppressedError"],"sourceRoot":"webpack:///","sources":["./src/app/Icons/WorkflowPanel/category-icons/category-icons.component.html","./src/app/Icons/WorkflowPanel/category-icons/category-icons.component.ts","./src/app/Icons/activate-plus-icon/activate-plus-icon.component.ts","./src/app/Icons/activate-plus-icon/activate-plus-icon.component.html","./src/app/Icons/calendar/calendar.component.ts","./src/app/Icons/calendar/calendar.component.html","./src/app/Icons/deactivate-minus-icon/deactivate-minus-icon.component.ts","./src/app/Icons/deactivate-minus-icon/deactivate-minus-icon.component.html","./src/app/Icons/log-icon/log-icon.component.ts","./src/app/Icons/log-icon/log-icon.component.html","./src/app/_directives/block-cut-copy-paste.directive.ts","./src/app/_directives/commonnumber.directive.ts","./src/app/_directives/file.directive.ts","./src/app/_directives/mark-asterisk.directive.ts","./src/app/_directives/six-digit-before-and-two-digit-after-decimal-number.ts","./src/app/_directives/two-digit-decima-number.directive.ts","./src/app/_guards/canDeactivate.guard.ts","./node_modules/jsencrypt/lib/lib/jsbn/util.js","./node_modules/jsencrypt/lib/lib/jsbn/base64.js","./node_modules/jsencrypt/lib/lib/asn1js/hex.js","./node_modules/jsencrypt/lib/lib/asn1js/base64.js","./node_modules/jsencrypt/lib/lib/asn1js/int10.js","./node_modules/jsencrypt/lib/lib/asn1js/asn1.js","./node_modules/jsencrypt/lib/lib/jsbn/jsbn.js","./node_modules/jsencrypt/lib/lib/jsbn/prng4.js","./node_modules/jsencrypt/lib/lib/jsbn/rng.js","./node_modules/jsencrypt/lib/lib/jsbn/rsa.js","./node_modules/jsencrypt/lib/lib/jsrsasign/yahoo.js","./node_modules/jsencrypt/lib/lib/jsrsasign/asn1-1.0.js","./node_modules/jsencrypt/lib/JSEncryptRSAKey.js","./node_modules/jsencrypt/lib/JSEncrypt.js","./src/app/_helpers/RSAHelper.ts","./src/app/_models/common/rsa-keys.ts","./src/app/_helpers/no-comman.pipe.ts","./src/app/_helpers/pipe.module.ts","./src/app/_helpers/setRequestHeader.ts","./src/app/_models/Dashboard/dashboardAPI.ts","./src/app/_models/NrFc/fcget-report-response.ts","./src/app/_models/NrFc/fcreceipt-response.ts","./src/app/_models/NrFc/nrreceipt-response.ts","./src/app/_models/NrFc/nrget-dashboard-claimaint-response.ts","./src/app/_models/NrFc/nrdashboard-receipt-response.ts","./src/app/_models/NrFc/nrget-dashboard-claimaint-detail.ts","./src/app/_models/NrFc/claimant-list-for-nrfcapproval.ts","./src/app/_models/NrFc/nrfcconfig-model.ts","./src/app/_models/NrFc/org-vehicles-nrfcresponse.ts","./src/app/_models/Workflow/workflow-request.ts","./src/app/_models/advance-mileage/mileagewizardrequest.ts","./src/app/_models/advance-mileage/org-ukmileage-rate-info.ts","./src/app/_models/billing-pricing/FunctionDetail.ts","./src/app/_models/claimant-on-web/claimant-on-web.ts","./src/app/_models/claimant/expense-category-request.ts","./src/app/_models/common/EmailModel.ts","./src/app/_models/common/LoggingPanelModel.ts","./src/app/_models/common/OrgSubscription.ts","./src/app/_models/common/alertPanelModel.ts","./src/app/_models/common/background-task.ts","./src/app/_models/common/claims.ts","./src/app/_models/common/email.model.ts","./src/app/_models/common/grid/grid-config.ts","./src/app/_models/common/manage-emp-enum.enum.ts","./src/app/_models/common/marketing-popup.ts","./src/app/_models/common/notification.ts","./src/app/_models/common/request-response/api-request.ts","./src/app/_models/common/request-response/default-params.ts","./src/app/_models/common/request-response/device-info.ts","./src/app/_models/common/request-response/paging-detail.ts","./src/app/_models/common/solo-check-func-purchase-list-request.ts","./src/app/_models/common/wizard.ts","./src/app/_models/container/container.ts","./src/app/_models/costCentre/costCentre.ts","./src/app/_models/credit-card/credit-card.ts","./src/app/_models/customer/customer.ts","./src/app/_models/enum/solo-enum.ts","./src/app/_models/fxRate/fx-rate.model.ts","./src/app/_models/google-mapping/google-mapping.ts","./src/app/_models/grade/grade.ts","./src/app/_models/location/location.ts","./src/app/_models/manage-emp/manage-emp.ts","./src/app/_models/organisation-setting/organisation-setting.ts","./src/app/_models/policy/policy-data.ts","./src/app/_models/pricing/pricing.ts","./src/app/_models/project-budget/project-budget.ts","./src/app/_models/stripe/SubscriptionCardDetailsRequest.ts","./src/app/_models/stripe/stripe.ts","./src/app/_models/twostepapproval/claimant-expense-detail.ts","./src/app/_models/universal-importer/universal-importer.ts","./src/app/_models/user/userrequestdto.ts","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-form-field.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-input.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-textarea.mjs","./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core-select.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-radio.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-checkbox.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-multicheckbox.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-select.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap-addons.mjs","./node_modules/@ngx-formly/bootstrap/fesm2020/ngx-formly-bootstrap.mjs","./src/app/shared/forms/form-controls/formly-tag-input/formly-tag-input.component.html","./src/app/shared/forms/form-controls/formly-tag-input/formly-tag-input.component.ts","./src/app/shared/forms/form-controls/formly-advance-balance-input/formly-advance-balance-input.component.html","./src/app/shared/forms/form-controls/formly-advance-balance-input/formly-advance-balance-input.component.ts","./src/app/shared/forms/form-controls/formly-text-input/formly-text-input.component.html","./src/app/shared/forms/form-controls/formly-text-input/formly-text-input.component.ts","./src/app/shared/forms/form-controls/formly-integer-input/formly-integer-input.component.html","./src/app/shared/forms/form-controls/formly-integer-input/formly-integer-input.component.ts","./src/app/shared/forms/form-controls/formly-textarea-input/formly-textarea-input.component.html","./src/app/shared/forms/form-controls/formly-textarea-input/formly-textarea-input.component.ts","./src/app/shared/forms/form-controls/formly-number-input/formly-number-input.component.html","./src/app/shared/forms/form-controls/formly-number-input/formly-number-input.component.ts","./src/app/shared/forms/form-controls/formly-disabled-input/formly-disabled-input.component.ts","./src/app/shared/forms/form-controls/formly-disabled-input/formly-disabled-input.component.html","./src/app/shared/forms/form-controls/formly-calendar-input/formly-calendar-input.component.html","./src/app/shared/forms/form-controls/formly-calendar-input/formly-calendar-input.component.ts","./src/app/shared/forms/form-controls/formly-input-panel/formly-input-panel.component.html","./src/app/shared/forms/form-controls/formly-input-panel/formly-input-panel.component.ts","./src/app/shared/forms/selection-panels/select-category-panel/select-category-panel.component.html","./src/app/shared/forms/selection-panels/select-category-panel/select-category-panel.component.ts","./src/app/shared/forms/selection-panels/select-customer-panel/select-customer-panel.component.html","./src/app/shared/forms/selection-panels/select-customer-panel/select-customer-panel.component.ts","./src/app/shared/forms/selection-panels/select-cost-centre-panel/select-cost-centre-panel.component.html","./src/app/shared/forms/selection-panels/select-cost-centre-panel/select-cost-centre-panel.component.ts","./src/app/shared/forms/selection-panels/select-project-panel/select-project-panel.component.html","./src/app/shared/forms/selection-panels/select-project-panel/select-project-panel.component.ts","./src/app/shared/forms/selection-panels/select-pre-approval-tag-panel/select-pre-approval-tag-panel.component.html","./src/app/shared/forms/selection-panels/select-pre-approval-tag-panel/select-pre-approval-tag-panel.component.ts","./src/app/shared/forms/selection-panels/create-detour-panel/create-detour-panel.component.html","./src/app/shared/forms/selection-panels/create-detour-panel/create-detour-panel.component.ts","./src/app/shared/forms/selection-panels/select-business-purpose-panel/select-business-purpose-panel.component.html","./src/app/shared/forms/selection-panels/select-business-purpose-panel/select-business-purpose-panel.component.ts","./src/app/shared/forms/selection-panels/select-receipt-type-panel/select-receipt-type-panel.component.html","./src/app/shared/forms/selection-panels/select-receipt-type-panel/select-receipt-type-panel.component.ts","./src/app/shared/forms/selection-panels/select-state-panel/select-state-panel.component.html","./src/app/shared/forms/selection-panels/select-state-panel/select-state-panel.component.ts","./src/app/shared/forms/selection-panels/select-additional-field-data-panel/select-additional-field-data-panel.component.html","./src/app/shared/forms/selection-panels/select-additional-field-data-panel/select-additional-field-data-panel.component.ts","./src/app/shared/forms/selection-panels/associate-credit-card-expense-panel/associate-credit-card-expense-panel.component.html","./src/app/shared/forms/selection-panels/associate-credit-card-expense-panel/associate-credit-card-expense-panel.component.ts","./src/app/shared/forms/selection-panels/create-tag-panel/create-tag-panel.component.html","./src/app/shared/forms/selection-panels/create-tag-panel/create-tag-panel.component.ts","./src/app/shared/forms/selection-panels/select-recent-journeys-panel/select-recent-journeys-panel.component.html","./src/app/shared/forms/selection-panels/select-recent-journeys-panel/select-recent-journeys-panel.component.ts","./src/app/shared/forms/selection-panels/advance-passbook-panel/advance-passbook-panel.component.html","./src/app/shared/forms/selection-panels/advance-passbook-panel/advance-passbook-panel.component.ts","./src/app/shared/forms/form-controls/formly-ng-select-input/formly-ng-select-input.component.html","./src/app/shared/forms/form-controls/formly-ng-select-input/formly-ng-select-input.component.ts","./src/app/shared/forms/form-controls/formly-ng-select-description-input/formly-ng-select-description-input.component.html","./src/app/shared/forms/form-controls/formly-ng-select-description-input/formly-ng-select-description-input.component.ts","./src/app/shared/forms/form-controls/formly-ul/formly-ul.component.html","./src/app/shared/forms/form-controls/formly-ul/formly-ul.component.ts","./src/app/shared/forms/form-controls/formly-radio-button/formly-radio-button.component.html","./src/app/shared/forms/form-controls/formly-radio-button/formly-radio-button.component.ts","./src/app/shared/forms/form-controls/formly-vehicle-button/formly-vehicle-button.component.html","./src/app/shared/forms/form-controls/formly-vehicle-button/formly-vehicle-button.component.ts","./src/app/shared/forms/form-controls/formly-checkbox-input/formly-checkbox-input.component.html","./src/app/shared/forms/form-controls/formly-checkbox-input/formly-checkbox-input.component.ts","./src/app/shared/forms/validators/validators.ts","./src/app/shared/forms/form-controls/formly-receipt/formly-receipt.component.html","./src/app/shared/forms/form-controls/formly-receipt/formly-receipt.component.ts","./src/app/shared/forms/form-controls/formly-justification/formly-notes.component.html","./src/app/shared/forms/form-controls/formly-justification/formly-notes.component.ts","./src/app/shared/forms/form-controls/formly-advance-policy/formly-advance-policy.component.html","./src/app/shared/forms/form-controls/formly-advance-policy/formly-advance-policy.component.ts","./src/app/shared/forms/form-controls/formly-policy-violation/formly-policy-violation.component.html","./src/app/shared/forms/form-controls/formly-policy-violation/formly-policy-violation.component.ts","./src/app/shared/forms/form-controls/formly-advance-policy-violation/formly-advance-policy-violation.component.html","./src/app/shared/forms/form-controls/formly-advance-policy-violation/formly-advance-policy-violation.component.ts","./src/app/shared/forms/form-controls/formly-toggle-input/formly-toggle-input.component.html","./src/app/shared/forms/form-controls/formly-toggle-input/formly-toggle-input.component.ts","./src/app/shared/forms/form-controls/formly-radio-input/formly-radio-input.component.html","./src/app/shared/forms/form-controls/formly-radio-input/formly-radio-input.component.ts","./src/app/shared/forms/form-controls/formly-ng-multi-select-input/formly-ng-multi-select-input.component.html","./src/app/shared/forms/form-controls/formly-ng-multi-select-input/formly-ng-multi-select-input.component.ts","./src/app/shared/forms/form-controls/formly-currency-image-uploder/formly-currency-image-uploder.component.html","./src/app/shared/forms/form-controls/formly-currency-image-uploder/formly-currency-image-uploder.component.ts","./src/app/shared/forms/form-controls/formly-button/formly-button.component.html","./src/app/shared/forms/form-controls/formly-button/formly-button.component.ts","./src/app/shared/forms/form-controls/formly-calendar-date-month-input/formly-calendar-date-month-input.component.html","./src/app/shared/forms/form-controls/formly-calendar-date-month-input/formly-calendar-date-month-input.component.ts","./src/app/shared/forms/form-controls/formly-toggle-input-left-aligned/formly-toggle-input-left-aligned.component.html","./src/app/shared/forms/form-controls/formly-toggle-input-left-aligned/formly-toggle-input-left-aligned.component.ts","./src/app/shared/forms/form-controls/formly-category-view/formly-category-view.component.html","./src/app/shared/forms/form-controls/formly-category-view/formly-category-view.component.ts","./src/app/shared/forms/form-controls/formly-two-decimal-number-input/formly-two-decimal-number-input.component.html","./src/app/shared/forms/form-controls/formly-two-decimal-number-input/formly-two-decimal-number-input.component.ts","./src/app/_directives/three-digit-before-and-two-digit-after-decimal-number.ts","./src/app/shared/forms/form-controls/formly-three-digit-decimal-input/formly-three-digit-decimal-input.component.html","./src/app/shared/forms/form-controls/formly-three-digit-decimal-input/formly-three-digit-decimal-input.component.ts","./src/app/shared/forms/form-controls/formly-expense-amount-input/formly-expense-amount-input.component.html","./src/app/shared/forms/form-controls/formly-expense-amount-input/formly-expense-amount-input.component.ts","./src/app/shared/forms/form-controls/formly-radio-description-input/formly-radio-description-input.component.html","./src/app/shared/forms/form-controls/formly-radio-description-input/formly-radio-description-input.component.ts","./src/app/shared/forms/form-controls/formly-logo-uploader/formly-logo-uploader.component.html","./src/app/shared/forms/form-controls/formly-logo-uploader/formly-logo-uploader.component.ts","./src/app/shared/forms/form-controls/formly-calendar-date-input/formly-calendar-date-input.component.html","./src/app/shared/forms/form-controls/formly-calendar-date-input/formly-calendar-date-input.component.ts","./src/app/shared/forms/form-controls/formly-location-input/formly-location-input.component.html","./src/app/shared/forms/form-controls/formly-location-input/formly-location-input.component.ts","./src/app/shared/forms/form-controls/formly-mileage-details/formly-mileage-details.component.html","./src/app/shared/forms/form-controls/formly-mileage-details/formly-mileage-details.component.ts","./src/app/shared/forms/form-controls/formly-nr-display/formly-nr-display.component.ts","./src/app/shared/forms/form-controls/formly-nr-display/formly-nr-display.component.html","./src/app/shared/forms/form-controls/formly-google-purchase/formly-google-purchase.component.html","./src/app/shared/forms/form-controls/formly-google-purchase/formly-google-purchase.component.ts","./src/app/shared/forms/form-controls/formly-link-component/formly-link-component.component.html","./src/app/shared/forms/form-controls/formly-link-component/formly-link-component.component.ts","./src/app/shared/forms/selection-panels/select-vehicle-panel/select-vehicle-panel.component.html","./src/app/shared/forms/selection-panels/select-vehicle-panel/select-vehicle-panel.component.ts","./src/app/shared/forms/form-controls/formly-radio-input-with-side-description/formly-radio-input-with-side-description.component.html","./src/app/shared/forms/form-controls/formly-radio-input-with-side-description/formly-radio-input-with-side-description.component.ts","./src/app/shared/forms/form-controls/formly-toggle-rule/formly-toggle-rule.component.ts","./src/app/shared/forms/form-controls/formly-toggle-rule/formly-toggle-rule.component.html","./src/app/shared/forms/selection-panels/add-journey-panel/add-journey-panel.component.html","./src/app/shared/forms/selection-panels/add-journey-panel/add-journey-panel.component.ts","./src/app/claimant-on-web/office-address-panel/office-address-panel.component.html","./src/app/claimant-on-web/office-address-panel/office-address-panel.component.ts","./src/app/shared/forms/form-controls/formly-google-location-input/formly-google-location-input.component.html","./src/app/shared/forms/form-controls/formly-google-location-input/formly-google-location-input.component.ts","./src/app/shared/forms/form-controls/formly-text-with-toggle/formly-text-with-toggle.component.ts","./src/app/shared/forms/form-controls/formly-text-with-toggle/formly-text-with-toggle.component.html","./src/app/shared/forms/form-controls/formly-img-upload/formly-img-upload.component.html","./src/app/shared/forms/form-controls/formly-img-upload/formly-img-upload.component.ts","./src/app/shared/forms/form-controls/formly-six-digit-before-after-decimal-input/formly-six-digit-before-after-decimal-input.component.html","./src/app/shared/forms/form-controls/formly-six-digit-before-after-decimal-input/formly-six-digit-before-after-decimal-input.component.ts","./src/app/shared/forms/form-controls/formly-dynamic-radio-input/formly-dynamic-radio-input.component.html","./src/app/shared/forms/form-controls/formly-dynamic-radio-input/formly-dynamic-radio-input.component.ts","./src/app/shared/forms/form-controls/formly-image-uploader2/formly-image-uploader2.component.html","./src/app/shared/forms/form-controls/formly-image-uploader2/formly-image-uploader2.component.ts","./src/app/shared/forms/form-controls/formly-image-uploader/formly-image-uploader.component.html","./src/app/shared/forms/form-controls/formly-image-uploader/formly-image-uploader.component.ts","./src/app/shared/forms/form-controls/formly-left-text-with-toggle/formly-left-text-with-toggle.component.ts","./src/app/shared/forms/form-controls/formly-left-text-with-toggle/formly-left-text-with-toggle.component.html","./src/app/shared/forms/form-controls/formly-plus-button/formly-plus-button.component.ts","./src/app/shared/forms/form-controls/formly-plus-button/formly-plus-button.component.html","./src/app/shared/forms/form-controls/formly-date-format/formly-date-format.component.html","./src/app/shared/forms/form-controls/formly-date-format/formly-date-format.component.ts","./src/app/container/container-list-panel/container-list-panel.component.html","./src/app/container/container-list-panel/container-list-panel.component.ts","./src/app/manage-category/generic-policy-violation-panel/generic-policy-violation-panel.component.html","./src/app/manage-category/generic-policy-violation-panel/generic-policy-violation-panel.component.ts","./src/app/shared/forms/selection-panels/select-location-panel/select-location-panel.component.html","./src/app/shared/forms/selection-panels/select-location-panel/select-location-panel.component.ts","./src/app/shared/forms/form-controls/formly-input-selection/formly-input-selection.component.html","./src/app/shared/forms/form-controls/formly-input-selection/formly-input-selection.component.ts","./src/app/_modules/modules/dynamic-forms.module.ts","./src/app/grade/grade-import-export-panel/grade-import-export-panel.component.html","./src/app/grade/grade-import-export-panel/grade-import-export-panel.component.ts","./src/app/grade/setup-grade-wizard/setup-grade-wizard.component.html","./src/app/_modules/routingModules/grade-routing.module.ts","./src/app/grade/setup-grade-wizard/setup-grade-wizard.component.ts","./src/app/_modules/modules/grade.module.ts","./src/app/_modules/modules/grid.module.ts","./src/app/_modules/modules/import-common-module/import-common-module.module.ts","./src/app/_services/Accounting/accounting-integration.service.ts","./src/app/_services/NrFc/nr-fc-logics.service.ts","./src/app/_services/advance-mileage/mileage-wizard-service.ts","./src/app/_services/advance-mileage/uk-mileage-rate-setting.service.ts","./src/app/_services/advances/advance-service.ts","./src/app/_services/billing-pricing/Org-BasicFunction-Subscription.service.ts","./src/app/_services/billing-pricing/Org-Subscription-Function.service.ts","./src/app/_services/billing-pricing/Organisation-Subscription-Invoice.service.ts","./src/app/_services/billing-pricing/Payment-Method.service.ts","./src/app/_services/cart-order/SaveOrder-Cart-Details.service.ts","./src/app/_services/change-password/change-password.service.ts","./src/app/_services/claimant-on-web/claimant-on-web.service.ts","./src/app/_services/claimant/currency.service.ts","./node_modules/@nevware21/ts-utils/dist-es5/internal/global.js","./node_modules/@nevware21/ts-utils/dist-es5/internal/constants.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/safe_get.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/base.js","./node_modules/@nevware21/ts-utils/dist-es5/object/get_own_prop_desc.js","./node_modules/@nevware21/ts-utils/dist-es5/object/has_own_prop.js","./node_modules/@nevware21/ts-utils/dist-es5/object/has_own.js","./node_modules/@nevware21/ts-utils/dist-es5/object/for_each_key.js","./node_modules/@nevware21/ts-utils/dist-es5/object/define.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/lazy.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/safe_lazy.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/environment.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/throw.js","./node_modules/@microsoft/dynamicproto-js/dist-es5/DynamicProto.js","./node_modules/@nevware21/ts-utils/dist-es5/object/object.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/diagnostics.js","./node_modules/@nevware21/ts-utils/dist-es5/object/create.js","./node_modules/@microsoft/applicationinsights-shims/dist-es5/Constants.js","./node_modules/@microsoft/applicationinsights-shims/dist-es5/TsLibShims.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/__DynamicConstants.js","./node_modules/@nevware21/ts-utils/dist-es5/string/as_string.js","./node_modules/@nevware21/ts-utils/dist-es5/internal/unwrapFunction.js","./node_modules/@nevware21/ts-utils/dist-es5/string/index_of.js","./node_modules/@nevware21/ts-utils/dist-es5/array/forEach.js","./node_modules/@nevware21/ts-utils/dist-es5/funcs/fnCall.js","./node_modules/@nevware21/ts-utils/dist-es5/object/is_plain_object.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InternalConstants.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/HelperFuncs.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/date.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EnvUtils.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/RandomHelper.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DataCacheHelper.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaults.js","./node_modules/@nevware21/ts-utils/dist-es5/array/indexOf.js","./node_modules/@nevware21/ts-utils/dist-es5/internal/map.js","./node_modules/@nevware21/ts-utils/dist-es5/symbol/well_known.js","./node_modules/@nevware21/ts-utils/dist-es5/polyfills/symbol.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/enum.js","./node_modules/@nevware21/ts-utils/dist-es5/symbol/symbol.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicSupport.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicProperty.js","./node_modules/@nevware21/ts-utils/dist-es5/array/slice.js","./node_modules/@nevware21/ts-utils/dist-es5/object/set_proto.js","./node_modules/@nevware21/ts-utils/dist-es5/funcs/fnApply.js","./node_modules/@nevware21/ts-utils/dist-es5/timer/handler.js","./node_modules/@nevware21/ts-utils/dist-es5/timer/timeout.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/customError.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AggregationError.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicState.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicConfig.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DbgExtensionUtils.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DiagnosticLogger.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Enums.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/StorageHelperFuncs.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/applicationinsights-common.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Constants.js","./node_modules/@nevware21/ts-utils/dist-es5/polyfills/trim.js","./node_modules/@nevware21/ts-utils/dist-es5/string/trim.js","./node_modules/@nevware21/ts-utils/dist-es5/math/min_max.js","./node_modules/@nevware21/ts-utils/dist-es5/string/slice.js","./node_modules/@nevware21/ts-utils/dist-es5/string/substring.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataSanitizer.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/TelemetryItemCreator.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Event.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Trace.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataPoint.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Metric.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/HelperFuncs.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageView.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageViewPerformance.js","./node_modules/@nevware21/ts-utils/dist-es5/array/map.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Exception.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/perf.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CoreUtils.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/W3cTraceParent.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/RequestResponseHeaders.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/UrlHelperFuncs.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Util.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/RemoteDependencyData.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/DomHelperFuncs.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaultHelpers.js","./node_modules/@nevware21/ts-utils/dist-es5/string/ends_with.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CookieMgr.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EventHelpers.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/PerfManager.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryHelpers.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js","./node_modules/@nevware21/ts-utils/dist-es5/iterator/forOf.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InstrumentHooks.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js","./node_modules/@nevware21/ts-utils/dist-es5/iterator/iterator.js","./node_modules/@nevware21/ts-utils/dist-es5/array/append.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHookContainer.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js","./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewManager.js","./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/AnalyticsPlugin.js","./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Timing.js","./node_modules/@nevware21/ts-async/dist-es5/promise/await.js","./node_modules/@nevware21/ts-utils/dist-es5/object/copy.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/extend.js","./node_modules/@nevware21/ts-utils/dist-es5/string/split.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/get_set_value.js","./node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncHelperFuncs.js","./node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncPlugin.js","./node_modules/@nevware21/ts-async/dist-es5/promise/debug.js","./node_modules/@nevware21/ts-async/dist-es5/promise/event.js","./node_modules/@nevware21/ts-async/dist-es5/promise/base.js","./node_modules/@nevware21/ts-async/dist-es5/internal/state.js","./node_modules/@nevware21/ts-async/dist-es5/internal/constants.js","./node_modules/@nevware21/ts-async/dist-es5/promise/itemProcessor.js","./node_modules/@nevware21/ts-async/dist-es5/promise/nativePromise.js","./node_modules/@nevware21/ts-async/dist-es5/promise/promise.js","./node_modules/@nevware21/ts-async/dist-es5/promise/asyncPromise.js","./node_modules/@nevware21/ts-utils/dist-es5/helpers/length.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AsyncUtils.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/ContextTagKeys.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/PartAExtensions.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Envelope.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Data.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/InternalConstants.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/EnvelopeCreator.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Offline.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/SendBuffer.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Sender.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Serializer.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/Sample.js","./node_modules/@nevware21/ts-utils/dist-es5/array/reduce.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/ConnectionStringParser.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/ThrottleMgr.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/NotificationManager.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AppInsightsCore.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryInitializerPlugin.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/Constants.js","./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/InternalConstants.js","./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajaxRecord.js","./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajax.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Application.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Device.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Internal.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Location.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Session.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/TelemetryTrace.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/User.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/TelemetryContext.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/PropertiesPlugin.js","./node_modules/@microsoft/applicationinsights-web/dist-es5/InternalConstants.js","./node_modules/@microsoft/applicationinsights-web/dist-es5/AISku.js","./node_modules/@microsoft/applicationinsights-web/dist-es5/__DynamicConstants.js","./src/app/_services/common/logging/monitoring.service.ts","./src/app/_services/common/authentication.service.ts","./src/app/_services/common/authguard.service.ts","./src/app/_services/common/claims.service.ts","./src/app/_services/common/dashboard.service.ts","./src/app/_services/common/email.service.ts","./src/app/_services/common/excel-export.service.ts","./src/app/_services/common/export-to-csv.service.ts","./src/app/_services/common/file-size.service.ts","./node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js","./node_modules/@microsoft/signalr/dist/esm/HeaderNames.js","./node_modules/@microsoft/signalr/dist/esm/HttpClient.js","./node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js","./node_modules/@microsoft/signalr/dist/esm/Errors.js","./node_modules/@microsoft/signalr/dist/esm/ILogger.js","./node_modules/@microsoft/signalr/dist/esm/Loggers.js","./node_modules/@microsoft/signalr/dist/esm/Utils.js","./node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js","./node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","./node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js","./node_modules/@microsoft/signalr/dist/esm/ITransport.js","./node_modules/@microsoft/signalr/dist/esm/AbortController.js","./node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js","./node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js","./node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js","./node_modules/@microsoft/signalr/dist/esm/HttpConnection.js","./node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js","./node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js","./node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js","./node_modules/@microsoft/signalr/dist/esm/Subject.js","./node_modules/@microsoft/signalr/dist/esm/HubConnection.js","./node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js","./node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js","./src/app/_services/common/signalr/signalr.service.ts","./src/app/_services/common/notification.service.ts","./src/app/_services/common/version-history.service.ts","./src/app/_services/common/wizard.service.ts","./src/app/_services/common/workflow.service.ts","./src/app/_services/container/container.service.ts","./src/app/_services/costCentre/costCentre.service.ts","./src/app/_services/counter-approver/counter-approver.service.ts","./src/app/_services/country-currency-mapping/country-currency-mapping.service.ts","./src/app/_services/credit-card/credit-card.service.ts","./src/app/_services/customer/customer.service.ts","./src/app/_services/delegate/delegate.service.ts","./src/app/_services/google-mapping/google-mapping.service.ts","./src/app/_services/common/user.service.ts","./src/app/_services/claimant/expense-category.service.ts","./src/app/_services/claimant/state.service.ts","./src/app/_services/mileage-settings/basic-mileage.service.ts","./src/app/_services/grade/grade.service.ts","./src/app/_services/location/location.service.ts","./src/app/_services/logging-panel/logging-panel.service.ts","./src/app/_services/manage-emp/manage-emp.service.ts","./src/app/_models/secondary-fm/function-privilege.ts","./src/app/_services/organisation-setting/organisation-function.service.ts","./src/app/_services/organisation-setting/organisation-setting.service.ts","./src/app/_services/policy/policy-data.service.ts","./src/app/_services/pricing/pricing.service.ts","./src/app/_services/project-budget/project-budget.service.ts","./src/app/_services/secondary-fm/function-privilege.service.ts","./src/app/_services/stripe/stripe.service.ts","./src/app/_services/universal-importer/universal-importer.service.ts","./src/app/alert-panel/alert-panel.component.html","./src/app/alert-panel/alert-panel.component.ts","./src/app/alert-panel/alert.module.ts","./src/app/alert-panel/alert.service.ts","./src/app/auth-password-flow.config.ts","./src/app/shared/logging-panel/logging-panel.component.html","./src/app/shared/logging-panel/logging-panel.component.ts","./src/app/app.component.html","./src/app/app.component.ts","./src/app/build-details.ts","./src/app/build-details.service.ts","./src/app/common/commonvariables.ts","./src/app/container/add-container-panel/add-container-panel.component.html","./src/app/container/add-container-panel/add-container-panel.component.ts","./src/app/container/container-policy-panel/container-policy-panel.component.html","./src/app/container/container-policy-panel/container-policy-panel.component.ts","./src/app/grade/add-grade-panel/add-grade-panel.component.html","./src/app/grade/add-grade-panel/add-grade-panel.component.ts","./src/app/grade/claimant-details-component/claimant-details-component.component.ts","./src/app/grade/claimant-details-component/claimant-details-component.component.html","./src/app/grade/grade-assign-category/grade-assign-category-panel/grade-assign-category-panel.component.ts","./src/app/grade/grade-assign-category/grade-assign-category-panel/grade-assign-category-panel.component.html","./src/app/grade/grade-assign-category/grade-assign-category-list-panel/grade-assign-category-list-panel.component.html","./src/app/grade/grade-assign-category/grade-assign-category-list-panel/grade-assign-category-list-panel.component.ts","./src/app/grade/grade/grade.component.html","./src/app/grade/grade/grade.component.ts","./src/app/grade/assign-grade-panel/assign-grade-panel.component.html","./src/app/grade/assign-grade-panel/assign-grade-panel.component.ts","./src/app/grade/grade-assign-employee/grade-assign-employee.component.html","./src/app/grade/grade-assign-employee/grade-assign-employee.component.ts","./src/app/_models/Dashboard/dashboard-expense-status-summary.ts","./src/app/_models/Dashboard/approval-summary.ts","./src/app/_services/Recommendation/recommendation.service.ts","./node_modules/angular-google-tag-manager/fesm2022/angular-google-tag-manager.mjs","./src/app/shared/panels/stripe-invoice-failed-details-panel/stripe-invoice-failed-details-panel.component.html","./src/app/shared/panels/stripe-invoice-failed-details-panel/stripe-invoice-failed-details-panel.component.ts","./src/app/shared/panels/basic-function-explore-alert-panel/basic-function-explore-alert-panel.component.ts","./src/app/shared/panels/basic-function-explore-alert-panel/basic-function-explore-alert-panel.component.html","./src/app/home/preset-export/preset-export.component.html","./src/app/home/preset-export/preset-export.component.ts","./src/app/manage-employees/approvers/approval-items-panel/approval-items-panel.component.html","./src/app/manage-employees/approvers/approval-items-panel/approval-items-panel.component.ts","./src/app/_models/Dashboard/pay-step.ts","./src/app/home/setup-pay-step-panel/setup-pay-step-panel.component.html","./src/app/home/setup-pay-step-panel/setup-pay-step-panel.component.ts","./src/app/_models/feedback/feedback.ts","./src/app/shared/panels/feedback-panel/feedback-panel.component.html","./src/app/shared/panels/feedback-panel/feedback-panel.component.ts","./src/app/home/home.component.html","./src/app/home/home.component.ts","./src/app/manage-category/multiple-tab-policy-violation-screen/multiple-tab-policy-violation-screen.component.html","./src/app/manage-category/multiple-tab-policy-violation-screen/multiple-tab-policy-violation-screen.component.ts","./src/app/manage-employees/approvers/assign-approver-panel/assign-approver-panel.component.html","./src/app/manage-employees/approvers/assign-approver-panel/assign-approver-panel.component.ts","./src/app/manage-employees/approvers/employee-status-panel/employee-status-panel.component.ts","./src/app/manage-employees/approvers/employee-status-panel/employee-status-panel.component.html","./node_modules/countup.js/dist/countUp.min.js","./node_modules/ngx-countup/fesm2020/ngx-countup.mjs","./node_modules/@nicky-lenaers/ngx-scroll-to/fesm2020/nicky-lenaers-ngx-scroll-to.mjs","./node_modules/ng-apexcharts/fesm2020/ng-apexcharts.mjs","./node_modules/date-fns/toDate.mjs","./node_modules/date-fns/constructFrom.mjs","./node_modules/date-fns/addDays.mjs","./node_modules/date-fns/addMilliseconds.mjs","./node_modules/date-fns/constants.mjs","./node_modules/date-fns/addHours.mjs","./node_modules/date-fns/addMinutes.mjs","./node_modules/date-fns/addSeconds.mjs","./node_modules/date-fns/startOfDay.mjs","./node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.mjs","./node_modules/date-fns/differenceInDays.mjs","./node_modules/date-fns/differenceInCalendarDays.mjs","./node_modules/date-fns/_lib/getRoundingMethod.mjs","./node_modules/date-fns/differenceInMilliseconds.mjs","./node_modules/date-fns/differenceInMinutes.mjs","./node_modules/date-fns/differenceInSeconds.mjs","./node_modules/date-fns/endOfDay.mjs","./node_modules/date-fns/endOfMonth.mjs","./node_modules/date-fns/_lib/defaultOptions.mjs","./node_modules/date-fns/endOfWeek.mjs","./node_modules/date-fns/getDay.mjs","./node_modules/date-fns/getMonth.mjs","./node_modules/date-fns/isSameDay.mjs","./node_modules/date-fns/isSameMonth.mjs","./node_modules/date-fns/startOfSecond.mjs","./node_modules/date-fns/isSameSecond.mjs","./node_modules/date-fns/max.mjs","./node_modules/date-fns/setHours.mjs","./node_modules/date-fns/setMinutes.mjs","./node_modules/date-fns/startOfMinute.mjs","./node_modules/date-fns/startOfMonth.mjs","./node_modules/date-fns/startOfWeek.mjs","./node_modules/date-fns/getHours.mjs","./node_modules/date-fns/getMinutes.mjs","./node_modules/calendar-utils/date-adapters/esm/date-fns/index.js","./node_modules/date-fns/addWeeks.mjs","./node_modules/date-fns/addMonths.mjs","./node_modules/date-fns/subDays.mjs","./node_modules/date-fns/subWeeks.mjs","./node_modules/date-fns/subMonths.mjs","./node_modules/date-fns/startOfISOWeek.mjs","./node_modules/date-fns/getISOWeek.mjs","./node_modules/date-fns/startOfISOWeekYear.mjs","./node_modules/date-fns/getISOWeekYear.mjs","./node_modules/date-fns/setDate.mjs","./node_modules/date-fns/setMonth.mjs","./node_modules/date-fns/getDaysInMonth.mjs","./node_modules/date-fns/setYear.mjs","./node_modules/date-fns/getDate.mjs","./node_modules/date-fns/getYear.mjs","./node_modules/angular-calendar/date-adapters/esm/date-fns/index.js","./node_modules/positioning/dist/positioning.js","./node_modules/calendar-utils/calendar-utils.js","./node_modules/@mattlewis92/dom-autoscroller/dist/bundle.es.js","./node_modules/angular-draggable-droppable/fesm2020/angular-draggable-droppable.mjs","./node_modules/rxjs/dist/esm/internal/operators/count.js","./node_modules/rxjs/dist/esm/internal/operators/reduce.js","./node_modules/angular-resizable-element/fesm2020/angular-resizable-element.mjs","./node_modules/angular-calendar/fesm2020/angular-calendar.mjs","./node_modules/date-fns/isBefore.mjs","./node_modules/@angular/cdk/fesm2022/layout.mjs","./node_modules/angular-calendar-scheduler/fesm2022/angular-calendar-scheduler.mjs","./src/app/_models/claimant/expense-category.ts","./node_modules/date-fns/startOfHour.mjs","./node_modules/date-fns/subHours.mjs","./node_modules/date-fns/subMinutes.mjs","./src/app/_services/common/app.service.ts","./src/app/calander-scheduler/calander-scheduler.component.html","./src/app/calander-scheduler/calander-scheduler.component.ts","./src/app/pages/pages-routing.modules.ts","./src/app/pages/pages.module.ts","./src/app/shared/panels/marketing-popup/marketing-popup.module.ts","./src/app/shared/panels/information-alert-panel/information-alert-panel.module.ts","./src/app/shared.module.ts","./src/app/shared/base/base-component.ts","./src/app/shared/claimsHeader/claims-header.service.ts","./src/app/shared/forms/dynamic-form/dynamic-form.component.ts","./src/app/shared/forms/dynamic-form/dynamic-form.component.html","./src/app/shared/forms/dynamic-form/dynamic-form.service.ts","./src/app/shared/forms/form-functions/form-functions.ts","./src/app/shared/forms/selection-panels/add-passenger-load-panel/add-passenger-load-panel.component.html","./src/app/shared/forms/selection-panels/add-passenger-load-panel/add-passenger-load-panel.component.ts","./src/app/shared/forms/selection-panels/advance-policy-violation-panel/advance-policy-violation-panel.component.html","./src/app/shared/forms/selection-panels/advance-policy-violation-panel/advance-policy-violation-panel.component.ts","./src/app/shared/forms/selection-panels/attach-receipt-options-panel/attach-receipt-options-panel.component.html","./src/app/shared/forms/selection-panels/attach-receipt-options-panel/attach-receipt-options-panel.component.ts","./src/app/shared/forms/selection-panels/expense-merge-panel/expense-merge-panel.component.html","./src/app/shared/forms/selection-panels/expense-merge-panel/expense-merge-panel.component.ts","./src/app/shared/forms/selection-panels/multiple-legs-panel/multiple-legs-panel.component.html","./src/app/shared/forms/selection-panels/multiple-legs-panel/multiple-legs-panel.component.ts","./src/app/shared/forms/selection-panels/policy-violation-panel/policy-violation-panel.component.html","./src/app/shared/forms/selection-panels/policy-violation-panel/policy-violation-panel.component.ts","./src/app/_directives/six-digit-before-and-after-decimal-number.ts","./src/app/shared/forms/selection-panels/select-foreign-currency-panel/select-foreign-currency-panel.component.html","./src/app/shared/forms/selection-panels/select-foreign-currency-panel/select-foreign-currency-panel.component.ts","./src/app/shared/forms/selection-panels/view-expense-policy-panel/view-expense-policy-panel.component.html","./src/app/shared/forms/selection-panels/view-expense-policy-panel/view-expense-policy-panel.component.ts","./src/app/shared/forms/selection-panels/view-tag-panel/view-tag-panel.component.html","./src/app/shared/forms/selection-panels/view-tag-panel/view-tag-panel.component.ts","./src/app/shared/grid/controls/log-icon-renderer/log-icon-renderer.component.ts","./src/app/shared/grid/controls/log-icon-renderer/log-icon-renderer.component.html","./src/app/shared/grid/controls/checkbox-renderer/checkbox-renderer.component.ts","./src/app/shared/grid/controls/checkbox-renderer/checkbox-renderer.component.html","./src/app/shared/grid/controls/actions-renderer/actions-renderer.component.html","./src/app/shared/grid/controls/actions-renderer/actions-renderer.component.ts","./src/app/shared/grid/controls/header-component/custom-header.component.html","./src/app/shared/grid/controls/header-component/custom-header.component.ts","./src/app/shared/grid/controls/status-renderer/status-renderer.component.ts","./src/app/shared/grid/controls/status-renderer/status-renderer.component.html","./src/app/shared/grid/controls/chevron-renderer/chevron-renderer.component.ts","./src/app/shared/grid/controls/chevron-renderer/chevron-renderer.component.html","./src/app/shared/grid/controls/pre-approval-renderer/pre-approval-renderer.component.ts","./src/app/shared/grid/controls/pre-approval-renderer/pre-approval-renderer.component.html","./src/app/shared/grid/controls/receipt-icon-renderer/receipt-icon-renderer.component.ts","./src/app/shared/grid/controls/receipt-icon-renderer/receipt-icon-renderer.component.html","./src/app/shared/grid/controls/field-value-renderer/field-value-renderer.component.ts","./src/app/shared/grid/controls/field-value-renderer/field-value-renderer.component.html","./src/app/shared/grid/controls/date-renderer/date-renderer.component.html","./src/app/shared/grid/controls/date-renderer/date-renderer.component.ts","./src/app/shared/grid/controls/date-time-renderer/date-time-renderer.component.html","./src/app/shared/grid/controls/date-time-renderer/date-time-renderer.component.ts","./src/app/shared/grid/controls/amount-renderer/amount-renderer.component.html","./src/app/shared/grid/controls/amount-renderer/amount-renderer.component.ts","./src/app/shared/grid/controls/policy-name-renderer/policy-name-renderer.component.html","./src/app/shared/grid/controls/policy-name-renderer/policy-name-renderer.component.ts","./src/app/shared/grid/controls/policy-amount-renderer/policy-amount-renderer.component.html","./src/app/shared/grid/controls/policy-amount-renderer/policy-amount-renderer.component.ts","./src/app/shared/grid/controls/check-icon-renderer/check-icon-renderer.component.ts","./src/app/shared/grid/controls/check-icon-renderer/check-icon-renderer.component.html","./src/app/shared/grid/controls/pricing-text-renderer/pricing-text-renderer.component.html","./src/app/shared/grid/controls/pricing-text-renderer/pricing-text-renderer.component.ts","./src/app/shared/grid/controls/receipts-icon-renderer/receipts-icon-renderer.component.ts","./src/app/shared/grid/controls/receipts-icon-renderer/receipts-icon-renderer.component.html","./src/app/shared/grid/controls/safe-text-renderer/safe-text-renderer.component.ts","./src/app/shared/grid/controls/safe-text-renderer/safe-text-renderer.component.html","./src/app/shared/grid/controls/starter-mobile-support-icon-renderer/starter-mobile-support-icon-renderer.component.html","./src/app/shared/grid/controls/starter-mobile-support-icon-renderer/starter-mobile-support-icon-renderer.component.ts","./src/app/shared/grid/controls/starter-web-support-icon-renderer/starter-web-support-icon-renderer.component.html","./src/app/shared/grid/controls/starter-web-support-icon-renderer/starter-web-support-icon-renderer.component.ts","./src/app/shared/grid/controls/ng-select-renderer/ng-select-renderer.component.html","./src/app/shared/grid/controls/ng-select-renderer/ng-select-renderer.component.ts","./src/app/shared/grid/controls/tooltip-renderer/tooltip-renderer.component.ts","./src/app/shared/grid/controls/tooltip-renderer/tooltip-renderer.component.html","./src/app/shared/grid/controls/text-tooltip-right-renderer/text-tooltip-right-renderer.component.html","./src/app/shared/grid/controls/text-tooltip-right-renderer/text-tooltip-right-renderer.component.ts","./src/app/shared/grid/controls/card-number-renderer/card-number-renderer.component.ts","./src/app/shared/grid/controls/card-number-renderer/card-number-renderer.component.html","./src/app/shared/grid/controls/card-assigned-username-renderer/card-assigned-username-renderer.component.html","./src/app/shared/grid/controls/card-assigned-username-renderer/card-assigned-username-renderer.component.ts","./src/app/shared/grid/controls/text-tooltip-renderer/text-tooltip-renderer.component.html","./src/app/shared/grid/controls/text-tooltip-renderer/text-tooltip-renderer.component.ts","./src/app/shared/grid/controls/text-tooltip-renderer2/text-tooltip-renderer2.component.html","./src/app/shared/grid/controls/text-tooltip-renderer2/text-tooltip-renderer2.component.ts","./src/app/shared/grid/controls/click-to-setup-renderer/click-to-setup-renderer.component.html","./src/app/shared/grid/controls/click-to-setup-renderer/click-to-setup-renderer.component.ts","./src/app/shared/grid/controls/toggle-renderer/toggle-renderer.component.html","./src/app/shared/grid/controls/toggle-renderer/toggle-renderer.component.ts","./src/app/shared/grid/controls/textbox-renderer/textbox-renderer.component.ts","./src/app/shared/grid/controls/textbox-renderer/textbox-renderer.component.html","./src/app/shared/grid/controls/text-renderer/text-renderer.component.html","./src/app/shared/grid/controls/text-renderer/text-renderer.component.ts","./src/app/shared/grid/controls/checkbox-ingrid-renderer/checkbox-ingrid-renderer.component.ts","./src/app/shared/grid/controls/checkbox-ingrid-renderer/checkbox-ingrid-renderer.component.html","./src/app/shared/grid/controls/buttons-renderer/buttons-renderer.component.html","./src/app/shared/grid/controls/buttons-renderer/buttons-renderer.component.ts","./src/app/shared/grid/controls/import-errors-count-renderer/import-errors-count-renderer.component.ts","./src/app/shared/grid/controls/import-errors-count-renderer/import-errors-count-renderer.component.html","./src/app/shared/grid/controls/formatted-text-renderer/formatted-text-renderer.component.ts","./src/app/shared/grid/controls/formatted-text-renderer/formatted-text-renderer.component.html","./src/app/shared/grid/controls/approver-renderer/approver-renderer.component.html","./src/app/shared/grid/controls/approver-renderer/approver-renderer.component.ts","./src/app/shared/grid/controls/default-message-renderer/default-message-renderer.component.html","./src/app/shared/grid/controls/default-message-renderer/default-message-renderer.component.ts","./src/app/shared/grid/controls/suspension-message-renderer/suspension-message-renderer.component.ts","./src/app/shared/grid/controls/suspension-message-renderer/suspension-message-renderer.component.html","./src/app/shared/grid/controls/text-with-description-renderer/text-with-description-renderer.component.ts","./src/app/shared/grid/controls/text-with-description-renderer/text-with-description-renderer.component.html","./src/app/shared/grid/controls/approval-data-renderer/approval-data-renderer.component.html","./src/app/shared/grid/controls/approval-data-renderer/approval-data-renderer.component.ts","./src/app/shared/grid/controls/info-step-renderer/info-step-renderer.component.html","./src/app/shared/grid/controls/info-step-renderer/info-step-renderer.component.ts","./src/app/shared/grid/controls/privilege-count-renderer/privilege-count-renderer.component.html","./src/app/shared/grid/controls/privilege-count-renderer/privilege-count-renderer.component.ts","./src/app/shared/grid/controls/status-data-renderer/status-data-renderer.component.html","./src/app/shared/grid/controls/status-data-renderer/status-data-renderer.component.ts","./src/app/shared/grid/controls/grid-ng-select-or-text-renderer/grid-ng-select-or-text-renderer.component.html","./src/app/shared/grid/controls/grid-ng-select-or-text-renderer/grid-ng-select-or-text-renderer.component.ts","./src/app/shared/grid/controls/grid-textbox-or-text-renderer/grid-textbox-or-text-renderer.component.html","./src/app/shared/grid/controls/grid-textbox-or-text-renderer/grid-textbox-or-text-renderer.component.ts","./src/app/shared/grid/controls/check-box-with-text/check-box-with-text.component.ts","./src/app/shared/grid/controls/check-box-with-text/check-box-with-text.component.html","./src/app/shared/grid/controls/percentage-renderer/percentage-renderer.component.ts","./src/app/shared/grid/controls/percentage-renderer/percentage-renderer.component.html","./src/app/shared/grid/controls/discount-renderer/discount-renderer.component.ts","./src/app/shared/grid/controls/discount-renderer/discount-renderer.component.html","./src/app/shared/grid/controls/multi-color-text-renderer/multi-color-text-renderer.component.html","./src/app/shared/grid/controls/multi-color-text-renderer/multi-color-text-renderer.component.ts","./src/app/shared/grid/controls/text-two-decimal-number-renderer/text-two-decimal-number-renderer.component.html","./src/app/shared/grid/controls/text-two-decimal-number-renderer/text-two-decimal-number-renderer.component.ts","./src/app/shared/grid/controls/grid-textbox-renderer/grid-textbox-renderer.component.html","./src/app/shared/grid/controls/grid-textbox-renderer/grid-textbox-renderer.component.ts","./src/app/shared/grid/controls/toggle-renderer-second/toggle-renderer-second.component.html","./src/app/shared/grid/controls/toggle-renderer-second/toggle-renderer-second.component.ts","./src/app/shared/grid/controls/progress-bar-renderer/progress-bar-renderer.component.html","./src/app/shared/grid/controls/progress-bar-renderer/progress-bar-renderer.component.ts","./src/app/shared/grid/controls/count-with-checkbox-renderer/count-with-checkbox-renderer.component.ts","./src/app/shared/grid/controls/count-with-checkbox-renderer/count-with-checkbox-renderer.component.html","./src/app/shared/grid/controls/ng-select-description-rendrer/ng-select-description-rendrer.component.html","./src/app/shared/grid/controls/ng-select-description-rendrer/ng-select-description-rendrer.component.ts","./src/app/shared/grid/controls/result-renderer/result-renderer.component.html","./src/app/shared/grid/controls/result-renderer/result-renderer.component.ts","./src/app/shared/grid/controls/grid-dropdown-renderer/grid-dropdown-renderer.component.html","./src/app/shared/grid/controls/grid-dropdown-renderer/grid-dropdown-renderer.component.ts","./src/app/shared/grid/controls/receipts-text-renderer/receipts-text-renderer.component.ts","./src/app/shared/grid/controls/receipts-text-renderer/receipts-text-renderer.component.html","./src/app/shared/grid/controls/two-decimal-number-input-renderer/two-decimal-number-input-renderer.component.html","./src/app/shared/grid/controls/two-decimal-number-input-renderer/two-decimal-number-input-renderer.component.ts","./src/app/shared/grid/controls/action-buttons-renderer/action-buttons-renderer.component.html","./src/app/shared/grid/controls/action-buttons-renderer/action-buttons-renderer.component.ts","./src/app/shared/grid/controls/rate-renderer/rate-renderer.component.ts","./src/app/shared/grid/controls/rate-renderer/rate-renderer.component.html","./src/app/shared/grid/controls/count-link-renderer/count-link-renderer.component.html","./src/app/shared/grid/controls/count-link-renderer/count-link-renderer.component.ts","./src/app/shared/grid/controls/translated-text-renderer/translated-text-renderer.component.ts","./src/app/shared/grid/controls/translated-text-renderer/translated-text-renderer.component.html","./src/app/shared/grid/controls/radio-renderer/radio-renderer.component.html","./src/app/shared/grid/controls/radio-renderer/radio-renderer.component.ts","./src/app/shared/grid/controls/multiple-button-renderer/multiple-button-renderer.component.html","./src/app/shared/grid/controls/multiple-button-renderer/multiple-button-renderer.component.ts","./src/app/shared/grid/controls/status-supporting-text-renderer/status-supporting-text-renderer.component.html","./src/app/shared/grid/controls/status-supporting-text-renderer/status-supporting-text-renderer.component.ts","./src/app/shared/grid/controls/custom-actions-renderer/custom-actions-renderer.component.html","./src/app/shared/grid/controls/custom-actions-renderer/custom-actions-renderer.component.ts","./src/app/shared/grid/controls/grid-toggle-renderer/grid-toggle-renderer.component.html","./src/app/shared/grid/controls/grid-toggle-renderer/grid-toggle-renderer.component.ts","./src/app/shared/grid/controls/multiple-card-number-renderer/multiple-card-number-renderer.component.html","./src/app/shared/grid/controls/multiple-card-number-renderer/multiple-card-number-renderer.component.ts","./src/app/shared/grid/controls/view-renderer/view-renderer.component.ts","./src/app/shared/grid/controls/view-renderer/view-renderer.component.html","./src/app/shared/grid/controls/day-policy-renderer/day-policy-renderer.component.ts","./src/app/shared/grid/controls/day-policy-renderer/day-policy-renderer.component.html","./src/app/shared/grid/controls/pre-approval-tag-renderer/pre-approval-tag-renderer.component.html","./src/app/shared/grid/controls/pre-approval-tag-renderer/pre-approval-tag-renderer.component.ts","./src/app/shared/grid/controls/pre-approval-count-renderer/pre-approval-count-renderer.component.html","./src/app/shared/grid/controls/pre-approval-count-renderer/pre-approval-count-renderer.component.ts","./src/app/shared/grid/controls/pre-approval-link-renderer/pre-approval-link-renderer.component.html","./src/app/shared/grid/controls/pre-approval-link-renderer/pre-approval-link-renderer.component.ts","./src/app/shared/grid/controls/export-log-status-renderer/export-log-status-renderer.component.html","./src/app/shared/grid/controls/export-log-status-renderer/export-log-status-renderer.component.ts","./src/app/shared/grid/controls/export-log-action-renderer/export-log-action-renderer.component.html","./src/app/shared/grid/controls/export-log-action-renderer/export-log-action-renderer.component.ts","./src/app/shared/grid/grid-component/grid.component.html","./src/app/shared/grid/grid-component/grid.component.ts","./src/app/shared/panels/action-panel/action-panel.component.html","./src/app/shared/panels/action-panel/action-panel.component.ts","./src/app/shared/panels/img-preview/img-preview.component.ts","./src/app/shared/panels/img-preview/img-preview.component.html","./src/app/shared/panels/marketing-popup/marketing-popup.component.html","./src/app/shared/panels/marketing-popup/marketing-popup.component.ts","./src/app/shared/panels/mileage-detail/mileage-detail.component.html","./src/app/shared/panels/mileage-detail/mileage-detail.component.ts","./src/app/shared/panels/pdf-viewer/pdf-viewer.component.html","./src/app/shared/panels/pdf-viewer/pdf-viewer.component.ts","./src/app/shared/panels/stripe-agreement-panel/stripe-agreement-panel.component.html","./src/app/shared/panels/stripe-agreement-panel/stripe-agreement-panel.component.ts","./src/app/shared/panels/view-form-receipt/view-form-receipt.component.html","./src/app/shared/panels/view-form-receipt/view-form-receipt.component.ts","./src/app/shared/panels/view-receipt/view-receipt.component.html","./src/app/shared/panels/view-receipt/view-receipt.component.ts","./src/app/shared/panels/wizard/wizard.component.html","./src/app/shared/panels/wizard/wizard.component.ts","./src/app/shared/widget/widget.module.ts","./src/app/two-step-approval/common/finance-approval/duplicate-receipt-panel/duplicate-receipt-panel.component.ts","./src/app/two-step-approval/common/finance-approval/duplicate-receipt-panel/duplicate-receipt-panel.component.html","./src/app/universal-import/import-checklist-panel/import-checklist-panel.component.html","./src/app/universal-import/import-checklist-panel/import-checklist-panel.component.ts","./src/app/universal-import/import-employees/import-employee-error-panel/import-employee-error-panel.component.ts","./src/app/universal-import/import-employees/import-employee-error-panel/import-employee-error-panel.component.html","./src/app/up-to-date.service.ts","./src/app/user/onboarding/login-new/login-new.component.html","./src/app/user/onboarding/login-new/login-new.component.ts","./src/app/user/onboarding/register/register.component.html","./src/app/user/onboarding/register/register.component.ts","./src/app/user/onboarding/onboarding-banner/onboarding-banner.component.html","./src/app/user/onboarding/onboarding-banner/onboarding-banner.component.ts","./src/app/user/onboarding/otp-verification/otp-verification.component.html","./src/app/user/onboarding/otp-verification/otp-verification.component.ts","./src/app/user/onboarding/organisation-details/organisation-details.component.html","./src/app/user/onboarding/organisation-details/organisation-details.component.ts","./src/app/user/onboarding/invite-employees/invite-employees.component.html","./src/app/user/onboarding/invite-employees/invite-employees.component.ts","./src/app/user/onboarding/app-download/app-download.component.ts","./src/app/user/onboarding/app-download/app-download.component.html","./src/app/user/onboarding/onboarding.component.html","./src/app/user/onboarding/onboarding.component.ts","./src/app/validators/email-validator.ts","./src/app/video-icon/video-icon.component.html","./src/app/video-icon/video-icon.component.ts","./src/environments/environment.devops.ts","./src/app/layouts/layouts.model.ts","./src/app/core/services/event.service.ts","./node_modules/rxjs/dist/esm/internal/observable/never.js","./node_modules/rxjs/dist/esm/internal/operators/connect.js","./node_modules/rxjs/dist/esm/internal/observable/fromSubscribable.js","./node_modules/@angular/service-worker/fesm2022/service-worker.mjs","./node_modules/rxjs/dist/esm/internal/operators/publish.js","./node_modules/rxjs/dist/esm/internal/operators/multicast.js","./src/app/shared/panels/basicFunctionTrialEndsAlertPanel/basicFunctionTrialEndsAlertPanel.component.html","./src/app/shared/panels/basicFunctionTrialEndsAlertPanel/basicFunctionTrialEndsAlertPanel.component.ts","./src/app/shared/panels/notification-panel/notification-panel.component.html","./src/app/shared/panels/notification-panel/notification-panel.component.ts","./src/app/nav-menu/nav/nav-menu.component.html","./src/app/nav-menu/nav/nav-menu.component.ts","./src/app/layouts/topbar/topbar.component.html","./src/app/layouts/topbar/topbar.component.ts","./node_modules/lodash-es/isObject.js","./node_modules/lodash-es/_freeGlobal.js","./node_modules/lodash-es/_root.js","./node_modules/lodash-es/now.js","./node_modules/lodash-es/_trimmedEndIndex.js","./node_modules/lodash-es/_baseTrim.js","./node_modules/lodash-es/_Symbol.js","./node_modules/lodash-es/_getRawTag.js","./node_modules/lodash-es/_objectToString.js","./node_modules/lodash-es/_baseGetTag.js","./node_modules/lodash-es/toNumber.js","./node_modules/lodash-es/isSymbol.js","./node_modules/lodash-es/isObjectLike.js","./node_modules/lodash-es/debounce.js","./node_modules/simplebar-core/dist/index.mjs","./node_modules/lodash-es/throttle.js","./node_modules/simplebar-angular/fesm2015/simplebar-angular.js","./src/app/layouts/rightsidebar/rightsidebar.component.html","./src/app/layouts/rightsidebar/rightsidebar.component.ts","./node_modules/metismenujs/dist/index.mjs","./src/app/layouts/sidebar/menu.ts","./src/app/layouts/sidebar/sidebar.component.html","./src/app/layouts/sidebar/sidebar.component.ts","./src/app/layouts/vertical/vertical.component.html","./src/app/layouts/vertical/vertical.component.ts","./src/app/layouts/horizontaltopbar/horizontaltopbar.component.html","./src/app/layouts/horizontaltopbar/horizontaltopbar.component.ts","./src/app/layouts/horizontal/horizontal.component.ts","./src/app/layouts/horizontal/horizontal.component.html","./src/app/layouts/layout.component.html","./src/app/layouts/layout.component.ts","./node_modules/@azure/msal-browser/dist/event/EventMessage.mjs","./node_modules/@azure/msal-angular/fesm2020/azure-msal-angular.mjs","./src/app/user/org-login/org-login.component.ts","./src/app/user/org-login/org-login.component.html","./src/app/_models/common/info-model-popup.ts","./src/app/shared/panels/info-model-popup/info-model-popup.component.ts","./src/app/shared/panels/info-model-popup/info-model-popup.component.html","./src/app/pricing/pricing-summary/pricing-summary.component.html","./src/app/pricing/pricing-summary/pricing-summary.component.ts","./src/app/pricing/pricing-external/pricing-external-list/pricing-external-list.component.html","./src/app/pricing/pricing-external/pricing-external-list/pricing-external-list.component.ts","./src/app/app-routing.module.ts","./src/app/shared/application-down/application-down.component.ts","./src/app/shared/application-down/application-down.component.html","./node_modules/@angular/animations/fesm2022/browser.mjs","./node_modules/@angular/platform-browser/fesm2022/animations.mjs","./src/app/layouts/layouts.module.ts","./src/app/TranslationLoader.service.ts","./node_modules/ng-recaptcha/fesm2022/ng-recaptcha.mjs","./src/app/build-details.http.service.ts","./node_modules/@azure/msal-browser/dist/operatingcontext/BaseOperatingContext.mjs","./node_modules/@azure/msal-browser/dist/operatingcontext/StandardOperatingContext.mjs","./node_modules/@azure/msal-browser/dist/controllers/ControllerFactory.mjs","./node_modules/@azure/msal-browser/dist/app/PublicClientApplication.mjs","./src/app/_helpers/error.interceptor.ts","./src/app/app.module.ts","./src/main.ts","./src/util/constants.ts","./node_modules/ag-grid-community/dist/ag-grid-community.auto.esm.js","./node_modules/ag-grid-angular/fesm2015/ag-grid-angular.js","./node_modules/apexcharts/dist/apexcharts.common.js","./node_modules/call-bind-apply-helpers/actualApply.js","./node_modules/call-bind-apply-helpers/functionApply.js","./node_modules/call-bind-apply-helpers/functionCall.js","./node_modules/call-bind-apply-helpers/index.js","./node_modules/call-bind-apply-helpers/reflectApply.js","./node_modules/call-bound/index.js","./node_modules/can-use-dom/index.js","./node_modules/chart.js/dist/Chart.js","./node_modules/dunder-proto/get.js","./node_modules/es-define-property/index.js","./node_modules/es-errors/eval.js","./node_modules/es-errors/index.js","./node_modules/es-errors/range.js","./node_modules/es-errors/ref.js","./node_modules/es-errors/syntax.js","./node_modules/es-errors/type.js","./node_modules/es-errors/uri.js","./node_modules/es-object-atoms/index.js","./node_modules/file-saver/dist/FileSaver.min.js","./node_modules/flatpickr/dist/esm/utils/polyfills.js","./node_modules/function-bind/implementation.js","./node_modules/function-bind/index.js","./node_modules/get-intrinsic/index.js","./node_modules/get-proto/Object.getPrototypeOf.js","./node_modules/get-proto/Reflect.getPrototypeOf.js","./node_modules/get-proto/index.js","./node_modules/gopd/gOPD.js","./node_modules/gopd/index.js","./node_modules/guid-typescript/dist/guid.js","./node_modules/has-symbols/index.js","./node_modules/has-symbols/shams.js","./node_modules/hasown/index.js","./node_modules/jquery/dist/jquery.js","./node_modules/jwt-decode/build/jwt-decode.esm.js","./node_modules/math-intrinsics/abs.js","./node_modules/math-intrinsics/floor.js","./node_modules/math-intrinsics/isNaN.js","./node_modules/math-intrinsics/max.js","./node_modules/math-intrinsics/min.js","./node_modules/math-intrinsics/pow.js","./node_modules/math-intrinsics/round.js","./node_modules/math-intrinsics/sign.js","./node_modules/moment/locale/af.js","./node_modules/moment/locale/ar-dz.js","./node_modules/moment/locale/ar-kw.js","./node_modules/moment/locale/ar-ly.js","./node_modules/moment/locale/ar-ma.js","./node_modules/moment/locale/ar-ps.js","./node_modules/moment/locale/ar-sa.js","./node_modules/moment/locale/ar-tn.js","./node_modules/moment/locale/ar.js","./node_modules/moment/locale/az.js","./node_modules/moment/locale/be.js","./node_modules/moment/locale/bg.js","./node_modules/moment/locale/bm.js","./node_modules/moment/locale/bn-bd.js","./node_modules/moment/locale/bn.js","./node_modules/moment/locale/bo.js","./node_modules/moment/locale/br.js","./node_modules/moment/locale/bs.js","./node_modules/moment/locale/ca.js","./node_modules/moment/locale/cs.js","./node_modules/moment/locale/cv.js","./node_modules/moment/locale/cy.js","./node_modules/moment/locale/da.js","./node_modules/moment/locale/de-at.js","./node_modules/moment/locale/de-ch.js","./node_modules/moment/locale/de.js","./node_modules/moment/locale/dv.js","./node_modules/moment/locale/el.js","./node_modules/moment/locale/en-au.js","./node_modules/moment/locale/en-ca.js","./node_modules/moment/locale/en-gb.js","./node_modules/moment/locale/en-ie.js","./node_modules/moment/locale/en-il.js","./node_modules/moment/locale/en-in.js","./node_modules/moment/locale/en-nz.js","./node_modules/moment/locale/en-sg.js","./node_modules/moment/locale/eo.js","./node_modules/moment/locale/es-do.js","./node_modules/moment/locale/es-mx.js","./node_modules/moment/locale/es-us.js","./node_modules/moment/locale/es.js","./node_modules/moment/locale/et.js","./node_modules/moment/locale/eu.js","./node_modules/moment/locale/fa.js","./node_modules/moment/locale/fi.js","./node_modules/moment/locale/fil.js","./node_modules/moment/locale/fo.js","./node_modules/moment/locale/fr-ca.js","./node_modules/moment/locale/fr-ch.js","./node_modules/moment/locale/fr.js","./node_modules/moment/locale/fy.js","./node_modules/moment/locale/ga.js","./node_modules/moment/locale/gd.js","./node_modules/moment/locale/gl.js","./node_modules/moment/locale/gom-deva.js","./node_modules/moment/locale/gom-latn.js","./node_modules/moment/locale/gu.js","./node_modules/moment/locale/he.js","./node_modules/moment/locale/hi.js","./node_modules/moment/locale/hr.js","./node_modules/moment/locale/hu.js","./node_modules/moment/locale/hy-am.js","./node_modules/moment/locale/id.js","./node_modules/moment/locale/is.js","./node_modules/moment/locale/it-ch.js","./node_modules/moment/locale/it.js","./node_modules/moment/locale/ja.js","./node_modules/moment/locale/jv.js","./node_modules/moment/locale/ka.js","./node_modules/moment/locale/kk.js","./node_modules/moment/locale/km.js","./node_modules/moment/locale/kn.js","./node_modules/moment/locale/ko.js","./node_modules/moment/locale/ku-kmr.js","./node_modules/moment/locale/ku.js","./node_modules/moment/locale/ky.js","./node_modules/moment/locale/lb.js","./node_modules/moment/locale/lo.js","./node_modules/moment/locale/lt.js","./node_modules/moment/locale/lv.js","./node_modules/moment/locale/me.js","./node_modules/moment/locale/mi.js","./node_modules/moment/locale/mk.js","./node_modules/moment/locale/ml.js","./node_modules/moment/locale/mn.js","./node_modules/moment/locale/mr.js","./node_modules/moment/locale/ms-my.js","./node_modules/moment/locale/ms.js","./node_modules/moment/locale/mt.js","./node_modules/moment/locale/my.js","./node_modules/moment/locale/nb.js","./node_modules/moment/locale/ne.js","./node_modules/moment/locale/nl-be.js","./node_modules/moment/locale/nl.js","./node_modules/moment/locale/nn.js","./node_modules/moment/locale/oc-lnc.js","./node_modules/moment/locale/pa-in.js","./node_modules/moment/locale/pl.js","./node_modules/moment/locale/pt-br.js","./node_modules/moment/locale/pt.js","./node_modules/moment/locale/ro.js","./node_modules/moment/locale/ru.js","./node_modules/moment/locale/sd.js","./node_modules/moment/locale/se.js","./node_modules/moment/locale/si.js","./node_modules/moment/locale/sk.js","./node_modules/moment/locale/sl.js","./node_modules/moment/locale/sq.js","./node_modules/moment/locale/sr-cyrl.js","./node_modules/moment/locale/sr.js","./node_modules/moment/locale/ss.js","./node_modules/moment/locale/sv.js","./node_modules/moment/locale/sw.js","./node_modules/moment/locale/ta.js","./node_modules/moment/locale/te.js","./node_modules/moment/locale/tet.js","./node_modules/moment/locale/tg.js","./node_modules/moment/locale/th.js","./node_modules/moment/locale/tk.js","./node_modules/moment/locale/tl-ph.js","./node_modules/moment/locale/tlh.js","./node_modules/moment/locale/tr.js","./node_modules/moment/locale/tzl.js","./node_modules/moment/locale/tzm-latn.js","./node_modules/moment/locale/tzm.js","./node_modules/moment/locale/ug-cn.js","./node_modules/moment/locale/uk.js","./node_modules/moment/locale/ur.js","./node_modules/moment/locale/uz-latn.js","./node_modules/moment/locale/uz.js","./node_modules/moment/locale/vi.js","./node_modules/moment/locale/x-pseudo.js","./node_modules/moment/locale/yo.js","./node_modules/moment/locale/zh-cn.js","./node_modules/moment/locale/zh-hk.js","./node_modules/moment/locale/zh-mo.js","./node_modules/moment/locale/zh-tw.js","./node_modules/moment/moment.js","./node_modules/object-inspect/index.js","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.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/operators/concatAll.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/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.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/race.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/auditTime.js","./node_modules/rxjs/dist/esm/internal/operators/audit.js","./node_modules/rxjs/dist/esm/internal/operators/catchError.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/delayWhen.js","./node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","./node_modules/rxjs/dist/esm/internal/operators/delay.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/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/pairwise.js","./node_modules/rxjs/dist/esm/internal/operators/refCount.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/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/tap.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/scheduler/Action.js","./node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","./node_modules/rxjs/dist/esm/internal/Scheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrame.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/dist/esm/internal/util/Immediate.js","./node_modules/rxjs/dist/esm/internal/scheduler/immediateProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/asap.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsapAction.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/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/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/esm/internal/util/argsOrArgArray.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/side-channel-list/index.js","./node_modules/side-channel-map/index.js","./node_modules/side-channel-weakmap/index.js","./node_modules/side-channel/index.js","./node_modules/sweetalert2/dist/sweetalert2.all.js","./node_modules/url/node_modules/punycode/punycode.js","./node_modules/url/node_modules/qs/lib/formats.js","./node_modules/url/node_modules/qs/lib/index.js","./node_modules/url/node_modules/qs/lib/parse.js","./node_modules/url/node_modules/qs/lib/stringify.js","./node_modules/url/node_modules/qs/lib/utils.js","./node_modules/url/url.js","./node_modules/moment/locale/ sync ^\\.\\/.*$","./node_modules/@angular/animations/fesm2022/animations.mjs","./node_modules/@angular/cdk/fesm2022/bidi.mjs","./node_modules/@angular/cdk/fesm2022/coercion.mjs","./node_modules/@angular/cdk/fesm2022/scrolling.mjs","./node_modules/@angular/cdk/fesm2022/drag-drop.mjs","./node_modules/@angular/cdk/fesm2022/a11y.mjs","./node_modules/rxjs/dist/esm/internal/observable/interval.js","./node_modules/@angular/cdk/fesm2022/platform.mjs","./node_modules/@angular/common/fesm2022/common.mjs","./node_modules/@angular/common/fesm2022/http.mjs","./node_modules/@angular/core/fesm2022/core.mjs","./node_modules/@angular/forms/fesm2022/forms.mjs","./node_modules/@angular/google-maps/fesm2022/google-maps.mjs","./node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs","./node_modules/@angular/router/fesm2022/router.mjs","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/@azure/msal-browser/dist/cache/MemoryStorage.mjs","./node_modules/@azure/msal-common/dist/network/INetworkModule.mjs","./node_modules/@azure/msal-common/dist/telemetry/performance/StubPerformanceClient.mjs","./node_modules/@azure/msal-browser/dist/navigation/NavigationClient.mjs","./node_modules/@azure/msal-browser/dist/network/FetchClient.mjs","./node_modules/@azure/msal-browser/dist/config/Configuration.mjs","./node_modules/@azure/msal-common/dist/cache/entities/AuthorityMetadataEntity.mjs","./node_modules/@azure/msal-common/dist/utils/FunctionWrappers.mjs","./node_modules/@azure/msal-common/dist/authority/RegionDiscovery.mjs","./node_modules/@azure/msal-common/dist/authority/Authority.mjs","./node_modules/@azure/msal-common/dist/authority/OpenIdConfigResponse.mjs","./node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryResponse.mjs","./node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs","./node_modules/@azure/msal-common/dist/cache/entities/AppMetadataEntity.mjs","./node_modules/@azure/msal-common/dist/cache/entities/ThrottlingEntity.mjs","./node_modules/@azure/msal-common/dist/utils/ProtocolUtils.mjs","./node_modules/@azure/msal-common/dist/cache/entities/CacheRecord.mjs","./node_modules/@azure/msal-browser/dist/cache/BrowserStorage.mjs","./node_modules/@azure/msal-browser/dist/utils/BrowserProtocolUtils.mjs","./node_modules/@azure/msal-browser/dist/cache/BrowserCacheManager.mjs","./node_modules/@azure/msal-common/dist/account/CcsCredential.mjs","./node_modules/@azure/msal-common/dist/network/ThrottlingUtils.mjs","./node_modules/@azure/msal-common/dist/network/NetworkManager.mjs","./node_modules/@azure/msal-common/dist/request/RequestValidator.mjs","./node_modules/@azure/msal-common/dist/request/RequestParameterBuilder.mjs","./node_modules/@azure/msal-common/dist/authority/AuthorityFactory.mjs","./node_modules/@azure/msal-common/dist/client/BaseClient.mjs","./node_modules/@azure/msal-common/dist/crypto/PopTokenGenerator.mjs","./node_modules/@azure/msal-common/dist/cache/persistence/TokenCacheContext.mjs","./node_modules/@azure/msal-common/dist/response/ResponseHandler.mjs","./node_modules/@azure/msal-common/dist/client/AuthorizationCodeClient.mjs","./node_modules/@azure/msal-common/dist/telemetry/server/ServerTelemetryManager.mjs","./node_modules/@azure/msal-browser/dist/interaction_client/BaseInteractionClient.mjs","./node_modules/@azure/msal-browser/dist/crypto/PkceGenerator.mjs","./node_modules/@azure/msal-browser/dist/interaction_client/StandardInteractionClient.mjs","./node_modules/@azure/msal-browser/dist/error/NativeAuthErrorCodes.mjs","./node_modules/@azure/msal-browser/dist/error/NativeAuthError.mjs","./node_modules/@azure/msal-browser/dist/broker/nativeBroker/NativeStatusCodes.mjs","./node_modules/@azure/msal-common/dist/client/RefreshTokenClient.mjs","./node_modules/@azure/msal-common/dist/client/SilentFlowClient.mjs","./node_modules/@azure/msal-browser/dist/interaction_client/SilentCacheClient.mjs","./node_modules/@azure/msal-browser/dist/interaction_client/NativeInteractionClient.mjs","./node_modules/@azure/msal-browser/dist/broker/nativeBroker/NativeMessageHandler.mjs","./node_modules/@azure/msal-browser/dist/interaction_handler/InteractionHandler.mjs","./node_modules/@azure/msal-browser/dist/response/ResponseHandler.mjs","./node_modules/@azure/msal-browser/dist/interaction_client/PopupClient.mjs","./node_modules/@azure/msal-browser/dist/interaction_handler/RedirectHandler.mjs","./node_modules/@azure/msal-browser/dist/interaction_client/RedirectClient.mjs","./node_modules/@azure/msal-browser/dist/interaction_handler/SilentHandler.mjs","./node_modules/@azure/msal-browser/dist/interaction_client/SilentIframeClient.mjs","./node_modules/@azure/msal-browser/dist/interaction_client/SilentRefreshClient.mjs","./node_modules/@azure/msal-browser/dist/cache/TokenCache.mjs","./node_modules/@azure/msal-browser/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs","./node_modules/@azure/msal-browser/dist/interaction_client/SilentAuthCodeClient.mjs","./node_modules/@azure/msal-browser/dist/controllers/StandardController.mjs","./node_modules/@azure/msal-browser/dist/crypto/BrowserCrypto.mjs","./node_modules/@azure/msal-common/dist/error/JoseHeaderErrorCodes.mjs","./node_modules/@azure/msal-common/dist/error/JoseHeaderError.mjs","./node_modules/@azure/msal-common/dist/crypto/JoseHeader.mjs","./node_modules/@azure/msal-browser/dist/cache/DatabaseStorage.mjs","./node_modules/@azure/msal-browser/dist/cache/AsyncMemoryStorage.mjs","./node_modules/@azure/msal-browser/dist/cache/CryptoKeyStore.mjs","./node_modules/@azure/msal-browser/dist/crypto/CryptoOps.mjs","./node_modules/@azure/msal-browser/dist/encode/Base64Decode.mjs","./node_modules/@azure/msal-browser/dist/encode/Base64Encode.mjs","./node_modules/@azure/msal-browser/dist/error/BrowserAuthError.mjs","./node_modules/@azure/msal-browser/dist/error/BrowserAuthErrorCodes.mjs","./node_modules/@azure/msal-browser/dist/error/BrowserConfigurationAuthError.mjs","./node_modules/@azure/msal-browser/dist/error/BrowserConfigurationAuthErrorCodes.mjs","./node_modules/@azure/msal-browser/dist/event/EventHandler.mjs","./node_modules/@azure/msal-browser/dist/event/EventType.mjs","./node_modules/@azure/msal-browser/dist/packageMetadata.mjs","./node_modules/@azure/msal-browser/dist/utils/BrowserConstants.mjs","./node_modules/@azure/msal-browser/dist/utils/BrowserUtils.mjs","./node_modules/@azure/msal-common/dist/account/AuthToken.mjs","./node_modules/@azure/msal-common/dist/account/ClientInfo.mjs","./node_modules/@azure/msal-common/dist/authority/AuthorityMetadata.mjs","./node_modules/@azure/msal-common/dist/authority/AuthorityOptions.mjs","./node_modules/@azure/msal-common/dist/authority/AuthorityType.mjs","./node_modules/@azure/msal-common/dist/authority/ProtocolMode.mjs","./node_modules/@azure/msal-common/dist/cache/CacheManager.mjs","./node_modules/@azure/msal-common/dist/cache/entities/AccountEntity.mjs","./node_modules/@azure/msal-common/dist/cache/utils/CacheHelpers.mjs","./node_modules/@azure/msal-common/dist/config/ClientConfiguration.mjs","./node_modules/@azure/msal-common/dist/crypto/ICrypto.mjs","./node_modules/@azure/msal-common/dist/error/AuthError.mjs","./node_modules/@azure/msal-common/dist/error/AuthErrorCodes.mjs","./node_modules/@azure/msal-common/dist/error/ClientAuthError.mjs","./node_modules/@azure/msal-common/dist/error/ClientAuthErrorCodes.mjs","./node_modules/@azure/msal-common/dist/error/ClientConfigurationError.mjs","./node_modules/@azure/msal-common/dist/error/ClientConfigurationErrorCodes.mjs","./node_modules/@azure/msal-common/dist/error/InteractionRequiredAuthError.mjs","./node_modules/@azure/msal-common/dist/error/InteractionRequiredAuthErrorCodes.mjs","./node_modules/@azure/msal-common/dist/error/ServerError.mjs","./node_modules/@azure/msal-common/dist/logger/Logger.mjs","./node_modules/@azure/msal-common/dist/packageMetadata.mjs","./node_modules/@azure/msal-common/dist/request/ScopeSet.mjs","./node_modules/@azure/msal-common/dist/telemetry/performance/PerformanceEvent.mjs","./node_modules/@azure/msal-common/dist/url/UrlString.mjs","./node_modules/@azure/msal-common/dist/utils/Constants.mjs","./node_modules/@azure/msal-common/dist/utils/StringUtils.mjs","./node_modules/@azure/msal-common/dist/utils/TimeUtils.mjs","./node_modules/@azure/msal-common/dist/utils/UrlUtils.mjs","./node_modules/rxjs/dist/esm/internal/observable/zip.js","./node_modules/rxjs/dist/esm/internal/operators/withLatestFrom.js","./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","./node_modules/@popperjs/core/lib/enums.js","./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","./node_modules/@popperjs/core/lib/utils/math.js","./node_modules/@popperjs/core/lib/utils/userAgent.js","./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.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/getComputedStyle.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","./node_modules/@popperjs/core/lib/dom-utils/contains.js","./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","./node_modules/@popperjs/core/lib/utils/getVariation.js","./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","./node_modules/@popperjs/core/lib/utils/computeOffsets.js","./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","./node_modules/@popperjs/core/lib/utils/detectOverflow.js","./node_modules/@popperjs/core/lib/modifiers/flip.js","./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","./node_modules/@popperjs/core/lib/utils/within.js","./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","./node_modules/@popperjs/core/lib/utils/getAltAxis.js","./node_modules/@popperjs/core/lib/modifiers/arrow.js","./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","./node_modules/@popperjs/core/lib/utils/orderModifiers.js","./node_modules/@popperjs/core/lib/utils/debounce.js","./node_modules/@popperjs/core/lib/createPopper.js","./node_modules/@popperjs/core/lib/utils/mergeByName.js","./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","./node_modules/@popperjs/core/lib/popper-lite.js","./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","./node_modules/@popperjs/core/lib/modifiers/offset.js","./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs","./node_modules/rxjs/dist/esm/internal/operators/endWith.js","./node_modules/@ng-select/ng-select/fesm2022/ng-select-ng-select.mjs","./node_modules/@ngx-formly/core/fesm2020/ngx-formly-core.mjs","./node_modules/@ngx-translate/core/dist/fesm2022/ngx-translate-core.mjs","./node_modules/rxjs/dist/esm/internal/operators/timeout.js","./node_modules/angular-oauth2-oidc/fesm2020/angular-oauth2-oidc.mjs","./node_modules/@zxcvbn-ts/core/dist/helper.esm.js","./node_modules/@zxcvbn-ts/core/dist/data/const.esm.js","./node_modules/@zxcvbn-ts/core/dist/data/dateSplits.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/date/matching.esm.js","./node_modules/fastest-levenshtein/esm/mod.js","./node_modules/@zxcvbn-ts/core/dist/levenshtein.esm.js","./node_modules/@zxcvbn-ts/core/dist/data/l33tTable.esm.js","./node_modules/@zxcvbn-ts/core/dist/data/translationKeys.esm.js","./node_modules/@zxcvbn-ts/core/dist/Options.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/variants/matching/reverse.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/variants/matching/l33t.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/matching.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/regex/matching.esm.js","./node_modules/@zxcvbn-ts/core/dist/scoring/utils.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/spatial/scoring.esm.js","./node_modules/@zxcvbn-ts/core/dist/scoring/estimate.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/bruteforce/scoring.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/date/scoring.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/scoring.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/variants/scoring/uppercase.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/variants/scoring/l33t.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/regex/scoring.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/repeat/scoring.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/sequence/scoring.esm.js","./node_modules/@zxcvbn-ts/core/dist/scoring/index.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/repeat/matching.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/sequence/matching.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/spatial/matching.esm.js","./node_modules/@zxcvbn-ts/core/dist/Matching.esm.js","./node_modules/@zxcvbn-ts/core/dist/TimeEstimates.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/bruteforce/feedback.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/date/feedback.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/dictionary/feedback.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/regex/feedback.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/repeat/feedback.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/sequence/feedback.esm.js","./node_modules/@zxcvbn-ts/core/dist/matcher/spatial/feedback.esm.js","./node_modules/@zxcvbn-ts/core/dist/Feedback.esm.js","./node_modules/@zxcvbn-ts/core/dist/index.esm.js","./node_modules/@zxcvbn-ts/language-en/dist/commonWords.esm.js","./node_modules/@zxcvbn-ts/language-en/dist/index.esm.js","./node_modules/@zxcvbn-ts/language-en/dist/firstnames.esm.js","./node_modules/@zxcvbn-ts/language-en/dist/lastnames.esm.js","./node_modules/@zxcvbn-ts/language-en/dist/wikipedia.esm.js","./node_modules/@zxcvbn-ts/language-en/dist/translations.esm.js","./node_modules/angular-password-strength-meter/fesm2020/angular-password-strength-meter.mjs","./node_modules/flatpickr/dist/esm/types/options.js","./node_modules/flatpickr/dist/esm/l10n/default.js","./node_modules/flatpickr/dist/esm/utils/index.js","./node_modules/flatpickr/dist/esm/utils/dom.js","./node_modules/flatpickr/dist/esm/utils/formatting.js","./node_modules/flatpickr/dist/esm/utils/dates.js","./node_modules/flatpickr/dist/esm/index.js","./node_modules/angularx-flatpickr/fesm2020/angularx-flatpickr.mjs","./node_modules/ngx-autosize/fesm2020/ngx-autosize.mjs","./node_modules/ngx-cookie-service/fesm2022/ngx-cookie-service.mjs","./node_modules/ngx-ellipsis/fesm2020/ngx-ellipsis.mjs","./node_modules/ngx-extended-pdf-viewer/fesm2020/ngx-extended-pdf-viewer.mjs","./node_modules/ngx-image-compress/fesm2020/ngx-image-compress.mjs","./node_modules/ngx-infinite-scroll/fesm2022/ngx-infinite-scroll.mjs","./node_modules/rxjs/dist/esm/internal/operators/throttleTime.js","./node_modules/rxjs/dist/esm/internal/operators/throttle.js","./node_modules/ngx-scrollbar/fesm2022/ngx-scrollbar-smooth-scroll.mjs","./node_modules/rxjs/dist/esm/internal/operators/expand.js","./node_modules/rxjs/dist/esm/internal/operators/takeWhile.js","./node_modules/ngx-scrollbar/fesm2022/ngx-scrollbar.mjs","./node_modules/ngx-toastr/fesm2022/ngx-toastr.mjs","./node_modules/ngx-trim-directive/fesm2022/ngx-trim-directive.mjs","./node_modules/ngx-ui-loader/fesm2020/ngx-ui-loader.mjs","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","./node_modules/@babel/runtime/helpers/esm/typeof.js","./node_modules/@babel/runtime/helpers/esm/defineProperty.js","./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","./node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["\n\n \n\n\n\n\n \n\n\n\n\n \n \n\n \n\n\n\n \n \n \n \n \n \n \n\n\n\n \n \n \n\n \n \n \n\n \n \n \n\n \n \n\n\n\n \n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n\n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n\n \n \n\n \n\n \n\n\n\n \n \n\n \n\n\n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n \n\n\n\n \n\n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n\n\n \n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n \n\n\n\"cash\"\n\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-category-icons',\n templateUrl: './category-icons.component.html',\n styleUrls: ['./category-icons.component.scss']\n})\nexport class CategoryIconsComponent implements OnInit {\n @Input('expenseCategoryId') expenseCategoryId: any;\n @Input('className') className: string;\n constructor() { }\n ngOnInit() { }\n}\n","import { Component, OnInit } from \"@angular/core\";\n\n@Component({\n selector: \"app-activate-plus-icon\",\n templateUrl: \"./activate-plus-icon.component.html\",\n styleUrls: [\"./activate-plus-icon.component.scss\"]\n})\nexport class ActivatePlusIconComponent implements OnInit {\n param: any;\n constructor() {}\n\n ngOnInit() {}\n}\n","\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-calendar-icon',\n templateUrl: './calendar.component.html',\n styleUrls: ['./calendar.component.scss']\n})\nexport class CalendarComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","\n \n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-deactivate-minus-icon',\n templateUrl: './deactivate-minus-icon.component.html',\n styleUrls: ['./deactivate-minus-icon.component.scss']\n})\nexport class DeactivateMinusIconComponent implements OnInit {\n param: any;\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-log-icon',\n templateUrl: './log-icon.component.html',\n styleUrls: ['./log-icon.component.scss']\n})\nexport class LogIconComponent implements OnInit {\n public param: string;\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","{{\"label_log\" | translate:param }}\n","import { Directive, HostListener } from \"@angular/core\";\n\n@Directive({\n selector: \"[appBlockCopyPaste]\",\n})\nexport class BlockCutCopyPasteDirective {\n constructor() {}\n\n @HostListener(\"paste\", [\"$event\"]) blockPaste(e: KeyboardEvent) {\n e.preventDefault();\n }\n\n @HostListener(\"copy\", [\"$event\"]) blockCopy(e: KeyboardEvent) {\n e.preventDefault();\n }\n\n @HostListener(\"cut\", [\"$event\"]) blockCut(e: KeyboardEvent) {\n e.preventDefault();\n }\n @HostListener(\"drop\", [\"$event\"]) blockDrop(e: MouseEvent) {\n e.preventDefault();\n }\n}\n","import { Directive, Input, forwardRef, HostListener, ElementRef } from \"@angular/core\";\nimport {\n Validator, AbstractControl, NG_VALIDATORS, Validators, ValidatorFn\n} from \"@angular/forms\";\n\n@Directive({\n selector: \"[min][formControlName],[min][formControl],[min][ngModel]\",\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MinDirective),\n multi: true\n }\n ]\n})\nexport class MinDirective implements Validator {\n private _validator: ValidatorFn;\n @Input() public set min(value: string) {\n this._validator = Validators.min(parseFloat(value));\n }\n\n public validate(control: AbstractControl): { [key: string]: any } {\n return this._validator(control);\n }\n}\n\n@Directive({\n selector: \"[max][formControlName],[max][formControl],[max][ngModel]\",\n providers: [\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => MaxDirective),\n multi: true\n }\n ]\n})\nexport class MaxDirective implements Validator {\n private _validator: ValidatorFn;\n @Input() public set max(value: string) {\n this._validator = Validators.max(parseFloat(value));\n }\n\n public validate(control: AbstractControl): { [key: string]: any } {\n return this._validator(control);\n }\n}\n\n@Directive({\n selector: '[numeric]'\n})\n\nexport class NumericDirective {\n\n @Input('decimals') decimals: number = 0;\n\n private check(value: string, decimals: number) {\n if (decimals <= 0) {\n return String(value).match(new RegExp(/^\\d+$/));\n } else {\n var regExpString = \"^\\\\s*((\\\\d+(\\\\.\\\\d{0,\" + decimals + \"})?)|((\\\\d*(\\\\.\\\\d{1,\" + decimals + \"}))))\\\\s*$\"\n return String(value).match(new RegExp(regExpString));\n }\n }\n\n private specialKeys = [\n 'Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Delete', 'Del'\n ];\n\n constructor(private el: ElementRef) {\n }\n\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n if (this.specialKeys.indexOf(event.key) !== -1 || this.check(event.key, this.decimals)) {\n return;\n }\n let current: string = this.el.nativeElement.value;\n let next: string = current.concat(event.key);\n if (next && !this.check(next, this.decimals)) {\n event.preventDefault();\n }\n }\n}\n","import {\n Directive,\n HostListener,\n ElementRef,\n forwardRef,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\ndeclare interface HTMLInputElement {\n files: FileList | null;\n}\n\n@Directive({\n /* tslint:disable:directive-selector */\n selector: 'input[type=file]',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => FileDirective),\n multi: true\n }\n ]\n})\nexport class FileDirective implements ControlValueAccessor {\n public onChange = (_) => { };\n public onTouched = () => { };\n\n constructor(private element: ElementRef) { }\n\n private get inputElement(): HTMLInputElement {\n return this.element.nativeElement;\n }\n\n public get file(): File {\n return this.inputElement.files[0];\n }\n\n public get files(): FileList {\n return this.inputElement.files;\n }\n\n public set files(files: FileList) {\n this.inputElement.files = files;\n }\n\n public writeValue(files: FileList) {\n if (files) {\n this.files = files;\n }\n }\n\n public registerOnChange(fn) { this.onChange = fn; }\n public registerOnTouched(fn) { this.onTouched = fn; }\n\n @HostListener('change', ['$event.target.files'])\n public handleChange(files: FileList) {\n this.onChange(files);\n }\n\n @HostListener('blur')\n public handleTouched() {\n this.onTouched();\n }\n}\n","import { Directive, OnInit, ElementRef, Renderer2 } from \"@angular/core\";\n\n@Directive({\n selector: \"[required-field]\",\n})\nexport class MarkAsteriskDirective implements OnInit {\n constructor(private renderer: Renderer2, private el: ElementRef) {}\n\n ngOnInit() {\n const parent = this.renderer.parentNode(this.el.nativeElement);\n\n if (parent.getElementsByClassName(\"ng-placeholder\").length) {\n parent.getElementsByClassName(\"ng-placeholder\")[0].innerHTML =\n this.el.nativeElement.getAttribute(\"placeholder\") +\n '*';\n }\n }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\n@Directive({\n selector: '[dynamicDigitBeforeAndDynamicDigitAfterDecimalNumber]'\n})\nexport class dynamicDigitBeforeAndDynamicDigitAfterDecimalNumberDirective {\n @Input() beforeDecimal: number;\n @Input() afterDecimal: number;\n // Allow decimal numbers and negative values\n private regex: RegExp = new RegExp(/^\\d{1,6}(\\.$|\\.\\d{1,2}$|$)/);\n // Allow key codes for special events. Reflect :\n // Backspace, tab, end, home\n private specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\n\n constructor(private el: ElementRef) {}\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n this.regex = new RegExp('^\\\\d{1,'+this.beforeDecimal+'}(\\\\.$|\\\\.\\\\d{1,'+this.afterDecimal+'}$|$)','g');\n // Allow Backspace, tab, end, and home keys\n if (this.specialKeys.indexOf(event.key) !== -1) {\n return;\n }\n let current: string = this.el.nativeElement.value;\n const position = this.el.nativeElement.selectionStart;\n const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join('');\n if (next && !String(next).match(this.regex)) {\n event.preventDefault();\n }\n }\n}","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[twoDigitDecimaNumber]'\n})\nexport class TwoDigitDecimaNumberDirective {\n // Allow decimal numbers and negative values\n private regex: RegExp = new RegExp(/^\\d*\\.?\\d{0,2}$/g);\n // Allow key codes for special events. Reflect :\n // Backspace, tab, end, home\n private specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', '-', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\n\n constructor(private el: ElementRef) {\n }\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n // Allow Backspace, tab, end, and home keys\n if (this.specialKeys.indexOf(event.key) !== -1) {\n return;\n }\n let current: string = this.el.nativeElement.value;\n const position = this.el.nativeElement.selectionStart;\n const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join('');\n if (next && !String(next).match(this.regex)) {\n event.preventDefault();\n }\n }\n}","import { Injectable } from \"@angular/core\";\nimport { CanDeactivate } from \"@angular/router\";\nimport { BaseComponent } from \"../shared/base/base-component\";\nimport { AlertService } from \"../alert-panel/alert.service\";\nimport { Observable } from \"rxjs\";\n\n\n@Injectable()\nexport class CanDeactivateGuard implements CanDeactivate {\n\n constructor(private alertService: AlertService) {\n }\n\n canDeactivate(component: BaseComponent): boolean | Observable {\n if (!component.canDeactivate()) {\n this.alertService.onFormClosed();\n return this.alertService.getUserActionEvent();\n }\n return true;\n }\n}","var BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nexport function int2char(n) {\n return BI_RM.charAt(n);\n}\n//#region BIT_OPERATIONS\n// (public) this & a\nexport function op_and(x, y) {\n return x & y;\n}\n// (public) this | a\nexport function op_or(x, y) {\n return x | y;\n}\n// (public) this ^ a\nexport function op_xor(x, y) {\n return x ^ y;\n}\n// (public) this & ~a\nexport function op_andnot(x, y) {\n return x & ~y;\n}\n// return index of lowest 1-bit in x, x < 2^31\nexport function lbit(x) {\n if (x == 0) {\n return -1;\n }\n var r = 0;\n if ((x & 0xffff) == 0) {\n x >>= 16;\n r += 16;\n }\n if ((x & 0xff) == 0) {\n x >>= 8;\n r += 8;\n }\n if ((x & 0xf) == 0) {\n x >>= 4;\n r += 4;\n }\n if ((x & 3) == 0) {\n x >>= 2;\n r += 2;\n }\n if ((x & 1) == 0) {\n ++r;\n }\n return r;\n}\n// return number of 1 bits in x\nexport function cbit(x) {\n var r = 0;\n while (x != 0) {\n x &= x - 1;\n ++r;\n }\n return r;\n}\n//#endregion BIT_OPERATIONS\n","import { int2char } from \"./util\";\nvar b64map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\nvar b64pad = \"=\";\nexport function hex2b64(h) {\n var i;\n var c;\n var ret = \"\";\n for (i = 0; i + 3 <= h.length; i += 3) {\n c = parseInt(h.substring(i, i + 3), 16);\n ret += b64map.charAt(c >> 6) + b64map.charAt(c & 63);\n }\n if (i + 1 == h.length) {\n c = parseInt(h.substring(i, i + 1), 16);\n ret += b64map.charAt(c << 2);\n }\n else if (i + 2 == h.length) {\n c = parseInt(h.substring(i, i + 2), 16);\n ret += b64map.charAt(c >> 2) + b64map.charAt((c & 3) << 4);\n }\n while ((ret.length & 3) > 0) {\n ret += b64pad;\n }\n return ret;\n}\n// convert a base64 string to hex\nexport function b64tohex(s) {\n var ret = \"\";\n var i;\n var k = 0; // b64 state, 0-3\n var slop = 0;\n for (i = 0; i < s.length; ++i) {\n if (s.charAt(i) == b64pad) {\n break;\n }\n var v = b64map.indexOf(s.charAt(i));\n if (v < 0) {\n continue;\n }\n if (k == 0) {\n ret += int2char(v >> 2);\n slop = v & 3;\n k = 1;\n }\n else if (k == 1) {\n ret += int2char((slop << 2) | (v >> 4));\n slop = v & 0xf;\n k = 2;\n }\n else if (k == 2) {\n ret += int2char(slop);\n ret += int2char(v >> 2);\n slop = v & 3;\n k = 3;\n }\n else {\n ret += int2char((slop << 2) | (v >> 4));\n ret += int2char(v & 0xf);\n k = 0;\n }\n }\n if (k == 1) {\n ret += int2char(slop << 2);\n }\n return ret;\n}\n// convert a base64 string to a byte/number array\nexport function b64toBA(s) {\n // piggyback on b64tohex for now, optimize later\n var h = b64tohex(s);\n var i;\n var a = [];\n for (i = 0; 2 * i < h.length; ++i) {\n a[i] = parseInt(h.substring(2 * i, 2 * i + 2), 16);\n }\n return a;\n}\n","// Hex JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini \n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nexport var Hex = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var hex = \"0123456789ABCDEF\";\n var ignore = \" \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = {};\n for (i = 0; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n hex = hex.toLowerCase();\n for (i = 10; i < 16; ++i) {\n decoder[hex.charAt(i)] = i;\n }\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 2) {\n out[out.length] = bits;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 4;\n }\n }\n if (char_count) {\n throw new Error(\"Hex encoding incomplete: 4 bits missing\");\n }\n return out;\n }\n};\n","// Base64 JavaScript decoder\n// Copyright (c) 2008-2013 Lapo Luchini \n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar decoder;\nexport var Base64 = {\n decode: function (a) {\n var i;\n if (decoder === undefined) {\n var b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var ignore = \"= \\f\\n\\r\\t\\u00A0\\u2028\\u2029\";\n decoder = Object.create(null);\n for (i = 0; i < 64; ++i) {\n decoder[b64.charAt(i)] = i;\n }\n decoder['-'] = 62; //+\n decoder['_'] = 63; //-\n for (i = 0; i < ignore.length; ++i) {\n decoder[ignore.charAt(i)] = -1;\n }\n }\n var out = [];\n var bits = 0;\n var char_count = 0;\n for (i = 0; i < a.length; ++i) {\n var c = a.charAt(i);\n if (c == \"=\") {\n break;\n }\n c = decoder[c];\n if (c == -1) {\n continue;\n }\n if (c === undefined) {\n throw new Error(\"Illegal character at offset \" + i);\n }\n bits |= c;\n if (++char_count >= 4) {\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n out[out.length] = bits & 0xFF;\n bits = 0;\n char_count = 0;\n }\n else {\n bits <<= 6;\n }\n }\n switch (char_count) {\n case 1:\n throw new Error(\"Base64 encoding incomplete: at least 2 bits missing\");\n case 2:\n out[out.length] = (bits >> 10);\n break;\n case 3:\n out[out.length] = (bits >> 16);\n out[out.length] = (bits >> 8) & 0xFF;\n break;\n }\n return out;\n },\n re: /-----BEGIN [^-]+-----([A-Za-z0-9+\\/=\\s]+)-----END [^-]+-----|begin-base64[^\\n]+\\n([A-Za-z0-9+\\/=\\s]+)====/,\n unarmor: function (a) {\n var m = Base64.re.exec(a);\n if (m) {\n if (m[1]) {\n a = m[1];\n }\n else if (m[2]) {\n a = m[2];\n }\n else {\n throw new Error(\"RegExp out of sync\");\n }\n }\n return Base64.decode(a);\n }\n};\n","// Big integer base-10 printing library\n// Copyright (c) 2014 Lapo Luchini \n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\nvar max = 10000000000000; // biggest integer that can still fit 2^53 when multiplied by 256\nvar Int10 = /** @class */ (function () {\n function Int10(value) {\n this.buf = [+value || 0];\n }\n Int10.prototype.mulAdd = function (m, c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] * m + c;\n if (t < max) {\n c = 0;\n }\n else {\n c = 0 | (t / max);\n t -= c * max;\n }\n b[i] = t;\n }\n if (c > 0) {\n b[i] = c;\n }\n };\n Int10.prototype.sub = function (c) {\n // assert(m <= 256)\n var b = this.buf;\n var l = b.length;\n var i;\n var t;\n for (i = 0; i < l; ++i) {\n t = b[i] - c;\n if (t < 0) {\n t += max;\n c = 1;\n }\n else {\n c = 0;\n }\n b[i] = t;\n }\n while (b[b.length - 1] === 0) {\n b.pop();\n }\n };\n Int10.prototype.toString = function (base) {\n if ((base || 10) != 10) {\n throw new Error(\"only base 10 is supported\");\n }\n var b = this.buf;\n var s = b[b.length - 1].toString();\n for (var i = b.length - 2; i >= 0; --i) {\n s += (max + b[i]).toString().substring(1);\n }\n return s;\n };\n Int10.prototype.valueOf = function () {\n var b = this.buf;\n var v = 0;\n for (var i = b.length - 1; i >= 0; --i) {\n v = v * max + b[i];\n }\n return v;\n };\n Int10.prototype.simplify = function () {\n var b = this.buf;\n return (b.length == 1) ? b[0] : this;\n };\n return Int10;\n}());\nexport { Int10 };\n","// ASN.1 JavaScript decoder\n// Copyright (c) 2008-2014 Lapo Luchini \n// Permission to use, copy, modify, and/or distribute this software for any\n// purpose with or without fee is hereby granted, provided that the above\n// copyright notice and this permission notice appear in all copies.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\n// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\n// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\n// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\n// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\n// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF\n// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n/*jshint browser: true, strict: true, immed: true, latedef: true, undef: true, regexdash: false */\n/*global oids */\nimport { Int10 } from \"./int10\";\nvar ellipsis = \"\\u2026\";\nvar reTimeS = /^(\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nvar reTimeL = /^(\\d\\d\\d\\d)(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])([01]\\d|2[0-3])(?:([0-5]\\d)(?:([0-5]\\d)(?:[.,](\\d{1,3}))?)?)?(Z|[-+](?:[0]\\d|1[0-2])([0-5]\\d)?)?$/;\nfunction stringCut(str, len) {\n if (str.length > len) {\n str = str.substring(0, len) + ellipsis;\n }\n return str;\n}\nvar Stream = /** @class */ (function () {\n function Stream(enc, pos) {\n this.hexDigits = \"0123456789ABCDEF\";\n if (enc instanceof Stream) {\n this.enc = enc.enc;\n this.pos = enc.pos;\n }\n else {\n // enc should be an array or a binary string\n this.enc = enc;\n this.pos = pos;\n }\n }\n Stream.prototype.get = function (pos) {\n if (pos === undefined) {\n pos = this.pos++;\n }\n if (pos >= this.enc.length) {\n throw new Error(\"Requesting byte offset \".concat(pos, \" on a stream of length \").concat(this.enc.length));\n }\n return (\"string\" === typeof this.enc) ? this.enc.charCodeAt(pos) : this.enc[pos];\n };\n Stream.prototype.hexByte = function (b) {\n return this.hexDigits.charAt((b >> 4) & 0xF) + this.hexDigits.charAt(b & 0xF);\n };\n Stream.prototype.hexDump = function (start, end, raw) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n if (raw !== true) {\n switch (i & 0xF) {\n case 0x7:\n s += \" \";\n break;\n case 0xF:\n s += \"\\n\";\n break;\n default:\n s += \" \";\n }\n }\n }\n return s;\n };\n Stream.prototype.isASCII = function (start, end) {\n for (var i = start; i < end; ++i) {\n var c = this.get(i);\n if (c < 32 || c > 176) {\n return false;\n }\n }\n return true;\n };\n Stream.prototype.parseStringISO = function (start, end) {\n var s = \"\";\n for (var i = start; i < end; ++i) {\n s += String.fromCharCode(this.get(i));\n }\n return s;\n };\n Stream.prototype.parseStringUTF = function (start, end) {\n var s = \"\";\n for (var i = start; i < end;) {\n var c = this.get(i++);\n if (c < 128) {\n s += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n s += String.fromCharCode(((c & 0x1F) << 6) | (this.get(i++) & 0x3F));\n }\n else {\n s += String.fromCharCode(((c & 0x0F) << 12) | ((this.get(i++) & 0x3F) << 6) | (this.get(i++) & 0x3F));\n }\n }\n return s;\n };\n Stream.prototype.parseStringBMP = function (start, end) {\n var str = \"\";\n var hi;\n var lo;\n for (var i = start; i < end;) {\n hi = this.get(i++);\n lo = this.get(i++);\n str += String.fromCharCode((hi << 8) | lo);\n }\n return str;\n };\n Stream.prototype.parseTime = function (start, end, shortYear) {\n var s = this.parseStringISO(start, end);\n var m = (shortYear ? reTimeS : reTimeL).exec(s);\n if (!m) {\n return \"Unrecognized time: \" + s;\n }\n if (shortYear) {\n // to avoid querying the timer, use the fixed range [1970, 2069]\n // it will conform with ITU X.400 [-10, +40] sliding window until 2030\n m[1] = +m[1];\n m[1] += (+m[1] < 70) ? 2000 : 1900;\n }\n s = m[1] + \"-\" + m[2] + \"-\" + m[3] + \" \" + m[4];\n if (m[5]) {\n s += \":\" + m[5];\n if (m[6]) {\n s += \":\" + m[6];\n if (m[7]) {\n s += \".\" + m[7];\n }\n }\n }\n if (m[8]) {\n s += \" UTC\";\n if (m[8] != \"Z\") {\n s += m[8];\n if (m[9]) {\n s += \":\" + m[9];\n }\n }\n }\n return s;\n };\n Stream.prototype.parseInteger = function (start, end) {\n var v = this.get(start);\n var neg = (v > 127);\n var pad = neg ? 255 : 0;\n var len;\n var s = \"\";\n // skip unuseful bits (not allowed in DER)\n while (v == pad && ++start < end) {\n v = this.get(start);\n }\n len = end - start;\n if (len === 0) {\n return neg ? -1 : 0;\n }\n // show bit length of huge integers\n if (len > 4) {\n s = v;\n len <<= 3;\n while (((+s ^ pad) & 0x80) == 0) {\n s = +s << 1;\n --len;\n }\n s = \"(\" + len + \" bit)\\n\";\n }\n // decode the integer\n if (neg) {\n v = v - 256;\n }\n var n = new Int10(v);\n for (var i = start + 1; i < end; ++i) {\n n.mulAdd(256, this.get(i));\n }\n return s + n.toString();\n };\n Stream.prototype.parseBitString = function (start, end, maxLength) {\n var unusedBit = this.get(start);\n var lenBit = ((end - start - 1) << 3) - unusedBit;\n var intro = \"(\" + lenBit + \" bit)\\n\";\n var s = \"\";\n for (var i = start + 1; i < end; ++i) {\n var b = this.get(i);\n var skip = (i == end - 1) ? unusedBit : 0;\n for (var j = 7; j >= skip; --j) {\n s += (b >> j) & 1 ? \"1\" : \"0\";\n }\n if (s.length > maxLength) {\n return intro + stringCut(s, maxLength);\n }\n }\n return intro + s;\n };\n Stream.prototype.parseOctetString = function (start, end, maxLength) {\n if (this.isASCII(start, end)) {\n return stringCut(this.parseStringISO(start, end), maxLength);\n }\n var len = end - start;\n var s = \"(\" + len + \" byte)\\n\";\n maxLength /= 2; // we work in bytes\n if (len > maxLength) {\n end = start + maxLength;\n }\n for (var i = start; i < end; ++i) {\n s += this.hexByte(this.get(i));\n }\n if (len > maxLength) {\n s += ellipsis;\n }\n return s;\n };\n Stream.prototype.parseOID = function (start, end, maxLength) {\n var s = \"\";\n var n = new Int10();\n var bits = 0;\n for (var i = start; i < end; ++i) {\n var v = this.get(i);\n n.mulAdd(128, v & 0x7F);\n bits += 7;\n if (!(v & 0x80)) { // finished\n if (s === \"\") {\n n = n.simplify();\n if (n instanceof Int10) {\n n.sub(80);\n s = \"2.\" + n.toString();\n }\n else {\n var m = n < 80 ? n < 40 ? 0 : 1 : 2;\n s = m + \".\" + (n - m * 40);\n }\n }\n else {\n s += \".\" + n.toString();\n }\n if (s.length > maxLength) {\n return stringCut(s, maxLength);\n }\n n = new Int10();\n bits = 0;\n }\n }\n if (bits > 0) {\n s += \".incomplete\";\n }\n return s;\n };\n return Stream;\n}());\nexport { Stream };\nvar ASN1 = /** @class */ (function () {\n function ASN1(stream, header, length, tag, sub) {\n if (!(tag instanceof ASN1Tag)) {\n throw new Error(\"Invalid tag value.\");\n }\n this.stream = stream;\n this.header = header;\n this.length = length;\n this.tag = tag;\n this.sub = sub;\n }\n ASN1.prototype.typeName = function () {\n switch (this.tag.tagClass) {\n case 0: // universal\n switch (this.tag.tagNumber) {\n case 0x00:\n return \"EOC\";\n case 0x01:\n return \"BOOLEAN\";\n case 0x02:\n return \"INTEGER\";\n case 0x03:\n return \"BIT_STRING\";\n case 0x04:\n return \"OCTET_STRING\";\n case 0x05:\n return \"NULL\";\n case 0x06:\n return \"OBJECT_IDENTIFIER\";\n case 0x07:\n return \"ObjectDescriptor\";\n case 0x08:\n return \"EXTERNAL\";\n case 0x09:\n return \"REAL\";\n case 0x0A:\n return \"ENUMERATED\";\n case 0x0B:\n return \"EMBEDDED_PDV\";\n case 0x0C:\n return \"UTF8String\";\n case 0x10:\n return \"SEQUENCE\";\n case 0x11:\n return \"SET\";\n case 0x12:\n return \"NumericString\";\n case 0x13:\n return \"PrintableString\"; // ASCII subset\n case 0x14:\n return \"TeletexString\"; // aka T61String\n case 0x15:\n return \"VideotexString\";\n case 0x16:\n return \"IA5String\"; // ASCII\n case 0x17:\n return \"UTCTime\";\n case 0x18:\n return \"GeneralizedTime\";\n case 0x19:\n return \"GraphicString\";\n case 0x1A:\n return \"VisibleString\"; // ASCII subset\n case 0x1B:\n return \"GeneralString\";\n case 0x1C:\n return \"UniversalString\";\n case 0x1E:\n return \"BMPString\";\n }\n return \"Universal_\" + this.tag.tagNumber.toString();\n case 1:\n return \"Application_\" + this.tag.tagNumber.toString();\n case 2:\n return \"[\" + this.tag.tagNumber.toString() + \"]\"; // Context\n case 3:\n return \"Private_\" + this.tag.tagNumber.toString();\n }\n };\n ASN1.prototype.content = function (maxLength) {\n if (this.tag === undefined) {\n return null;\n }\n if (maxLength === undefined) {\n maxLength = Infinity;\n }\n var content = this.posContent();\n var len = Math.abs(this.length);\n if (!this.tag.isUniversal()) {\n if (this.sub !== null) {\n return \"(\" + this.sub.length + \" elem)\";\n }\n return this.stream.parseOctetString(content, content + len, maxLength);\n }\n switch (this.tag.tagNumber) {\n case 0x01: // BOOLEAN\n return (this.stream.get(content) === 0) ? \"false\" : \"true\";\n case 0x02: // INTEGER\n return this.stream.parseInteger(content, content + len);\n case 0x03: // BIT_STRING\n return this.sub ? \"(\" + this.sub.length + \" elem)\" :\n this.stream.parseBitString(content, content + len, maxLength);\n case 0x04: // OCTET_STRING\n return this.sub ? \"(\" + this.sub.length + \" elem)\" :\n this.stream.parseOctetString(content, content + len, maxLength);\n // case 0x05: // NULL\n case 0x06: // OBJECT_IDENTIFIER\n return this.stream.parseOID(content, content + len, maxLength);\n // case 0x07: // ObjectDescriptor\n // case 0x08: // EXTERNAL\n // case 0x09: // REAL\n // case 0x0A: // ENUMERATED\n // case 0x0B: // EMBEDDED_PDV\n case 0x10: // SEQUENCE\n case 0x11: // SET\n if (this.sub !== null) {\n return \"(\" + this.sub.length + \" elem)\";\n }\n else {\n return \"(no elem)\";\n }\n case 0x0C: // UTF8String\n return stringCut(this.stream.parseStringUTF(content, content + len), maxLength);\n case 0x12: // NumericString\n case 0x13: // PrintableString\n case 0x14: // TeletexString\n case 0x15: // VideotexString\n case 0x16: // IA5String\n // case 0x19: // GraphicString\n case 0x1A: // VisibleString\n // case 0x1B: // GeneralString\n // case 0x1C: // UniversalString\n return stringCut(this.stream.parseStringISO(content, content + len), maxLength);\n case 0x1E: // BMPString\n return stringCut(this.stream.parseStringBMP(content, content + len), maxLength);\n case 0x17: // UTCTime\n case 0x18: // GeneralizedTime\n return this.stream.parseTime(content, content + len, (this.tag.tagNumber == 0x17));\n }\n return null;\n };\n ASN1.prototype.toString = function () {\n return this.typeName() + \"@\" + this.stream.pos + \"[header:\" + this.header + \",length:\" + this.length + \",sub:\" + ((this.sub === null) ? \"null\" : this.sub.length) + \"]\";\n };\n ASN1.prototype.toPrettyString = function (indent) {\n if (indent === undefined) {\n indent = \"\";\n }\n var s = indent + this.typeName() + \" @\" + this.stream.pos;\n if (this.length >= 0) {\n s += \"+\";\n }\n s += this.length;\n if (this.tag.tagConstructed) {\n s += \" (constructed)\";\n }\n else if ((this.tag.isUniversal() && ((this.tag.tagNumber == 0x03) || (this.tag.tagNumber == 0x04))) && (this.sub !== null)) {\n s += \" (encapsulates)\";\n }\n s += \"\\n\";\n if (this.sub !== null) {\n indent += \" \";\n for (var i = 0, max = this.sub.length; i < max; ++i) {\n s += this.sub[i].toPrettyString(indent);\n }\n }\n return s;\n };\n ASN1.prototype.posStart = function () {\n return this.stream.pos;\n };\n ASN1.prototype.posContent = function () {\n return this.stream.pos + this.header;\n };\n ASN1.prototype.posEnd = function () {\n return this.stream.pos + this.header + Math.abs(this.length);\n };\n ASN1.prototype.toHexString = function () {\n return this.stream.hexDump(this.posStart(), this.posEnd(), true);\n };\n ASN1.decodeLength = function (stream) {\n var buf = stream.get();\n var len = buf & 0x7F;\n if (len == buf) {\n return len;\n }\n // no reason to use Int10, as it would be a huge buffer anyways\n if (len > 6) {\n throw new Error(\"Length over 48 bits not supported at position \" + (stream.pos - 1));\n }\n if (len === 0) {\n return null;\n } // undefined\n buf = 0;\n for (var i = 0; i < len; ++i) {\n buf = (buf * 256) + stream.get();\n }\n return buf;\n };\n /**\n * Retrieve the hexadecimal value (as a string) of the current ASN.1 element\n * @returns {string}\n * @public\n */\n ASN1.prototype.getHexStringValue = function () {\n var hexString = this.toHexString();\n var offset = this.header * 2;\n var length = this.length * 2;\n return hexString.substr(offset, length);\n };\n ASN1.decode = function (str) {\n var stream;\n if (!(str instanceof Stream)) {\n stream = new Stream(str, 0);\n }\n else {\n stream = str;\n }\n var streamStart = new Stream(stream);\n var tag = new ASN1Tag(stream);\n var len = ASN1.decodeLength(stream);\n var start = stream.pos;\n var header = start - streamStart.pos;\n var sub = null;\n var getSub = function () {\n var ret = [];\n if (len !== null) {\n // definite length\n var end = start + len;\n while (stream.pos < end) {\n ret[ret.length] = ASN1.decode(stream);\n }\n if (stream.pos != end) {\n throw new Error(\"Content size is not correct for container starting at offset \" + start);\n }\n }\n else {\n // undefined length\n try {\n for (;;) {\n var s = ASN1.decode(stream);\n if (s.tag.isEOC()) {\n break;\n }\n ret[ret.length] = s;\n }\n len = start - stream.pos; // undefined lengths are represented as negative values\n }\n catch (e) {\n throw new Error(\"Exception while decoding undefined length content: \" + e);\n }\n }\n return ret;\n };\n if (tag.tagConstructed) {\n // must have valid content\n sub = getSub();\n }\n else if (tag.isUniversal() && ((tag.tagNumber == 0x03) || (tag.tagNumber == 0x04))) {\n // sometimes BitString and OctetString are used to encapsulate ASN.1\n try {\n if (tag.tagNumber == 0x03) {\n if (stream.get() != 0) {\n throw new Error(\"BIT STRINGs with unused bits cannot encapsulate.\");\n }\n }\n sub = getSub();\n for (var i = 0; i < sub.length; ++i) {\n if (sub[i].tag.isEOC()) {\n throw new Error(\"EOC is not supposed to be actual content.\");\n }\n }\n }\n catch (e) {\n // but silently ignore when they don't\n sub = null;\n }\n }\n if (sub === null) {\n if (len === null) {\n throw new Error(\"We can't skip over an invalid tag with undefined length at offset \" + start);\n }\n stream.pos = start + Math.abs(len);\n }\n return new ASN1(streamStart, header, len, tag, sub);\n };\n return ASN1;\n}());\nexport { ASN1 };\nvar ASN1Tag = /** @class */ (function () {\n function ASN1Tag(stream) {\n var buf = stream.get();\n this.tagClass = buf >> 6;\n this.tagConstructed = ((buf & 0x20) !== 0);\n this.tagNumber = buf & 0x1F;\n if (this.tagNumber == 0x1F) { // long tag\n var n = new Int10();\n do {\n buf = stream.get();\n n.mulAdd(128, buf & 0x7F);\n } while (buf & 0x80);\n this.tagNumber = n.simplify();\n }\n }\n ASN1Tag.prototype.isUniversal = function () {\n return this.tagClass === 0x00;\n };\n ASN1Tag.prototype.isEOC = function () {\n return this.tagClass === 0x00 && this.tagNumber === 0x00;\n };\n return ASN1Tag;\n}());\nexport { ASN1Tag };\n","// Copyright (c) 2005 Tom Wu\n// All Rights Reserved.\n// See \"LICENSE\" for details.\n// Basic JavaScript BN library - subset useful for RSA encryption.\nimport { cbit, int2char, lbit, op_and, op_andnot, op_or, op_xor } from \"./util\";\n// Bits per digit\nvar dbits;\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary & 0xffffff) == 0xefcafe);\n//#region\nvar lowprimes = [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];\nvar lplim = (1 << 26) / lowprimes[lowprimes.length - 1];\n//#endregion\n// (public) Constructor\nvar BigInteger = /** @class */ (function () {\n function BigInteger(a, b, c) {\n if (a != null) {\n if (\"number\" == typeof a) {\n this.fromNumber(a, b, c);\n }\n else if (b == null && \"string\" != typeof a) {\n this.fromString(a, 256);\n }\n else {\n this.fromString(a, b);\n }\n }\n }\n //#region PUBLIC\n // BigInteger.prototype.toString = bnToString;\n // (public) return string representation in given radix\n BigInteger.prototype.toString = function (b) {\n if (this.s < 0) {\n return \"-\" + this.negate().toString(b);\n }\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n return this.toRadix(b);\n }\n var km = (1 << k) - 1;\n var d;\n var m = false;\n var r = \"\";\n var i = this.t;\n var p = this.DB - (i * this.DB) % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) {\n m = true;\n }\n if (m) {\n r += int2char(d);\n }\n }\n }\n return m ? r : \"0\";\n };\n // BigInteger.prototype.negate = bnNegate;\n // (public) -this\n BigInteger.prototype.negate = function () {\n var r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n };\n // BigInteger.prototype.abs = bnAbs;\n // (public) |this|\n BigInteger.prototype.abs = function () {\n return (this.s < 0) ? this.negate() : this;\n };\n // BigInteger.prototype.compareTo = bnCompareTo;\n // (public) return + if this > a, - if this < a, 0 if equal\n BigInteger.prototype.compareTo = function (a) {\n var r = this.s - a.s;\n if (r != 0) {\n return r;\n }\n var i = this.t;\n r = i - a.t;\n if (r != 0) {\n return (this.s < 0) ? -r : r;\n }\n while (--i >= 0) {\n if ((r = this[i] - a[i]) != 0) {\n return r;\n }\n }\n return 0;\n };\n // BigInteger.prototype.bitLength = bnBitLength;\n // (public) return the number of bits in \"this\"\n BigInteger.prototype.bitLength = function () {\n if (this.t <= 0) {\n return 0;\n }\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM));\n };\n // BigInteger.prototype.mod = bnMod;\n // (public) this mod a\n BigInteger.prototype.mod = function (a) {\n var r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n a.subTo(r, r);\n }\n return r;\n };\n // BigInteger.prototype.modPowInt = bnModPowInt;\n // (public) this^e % m, 0 <= e < 2^32\n BigInteger.prototype.modPowInt = function (e, m) {\n var z;\n if (e < 256 || m.isEven()) {\n z = new Classic(m);\n }\n else {\n z = new Montgomery(m);\n }\n return this.exp(e, z);\n };\n // BigInteger.prototype.clone = bnClone;\n // (public)\n BigInteger.prototype.clone = function () {\n var r = nbi();\n this.copyTo(r);\n return r;\n };\n // BigInteger.prototype.intValue = bnIntValue;\n // (public) return value as integer\n BigInteger.prototype.intValue = function () {\n if (this.s < 0) {\n if (this.t == 1) {\n return this[0] - this.DV;\n }\n else if (this.t == 0) {\n return -1;\n }\n }\n else if (this.t == 1) {\n return this[0];\n }\n else if (this.t == 0) {\n return 0;\n }\n // assumes 16 < DB < 32\n return ((this[1] & ((1 << (32 - this.DB)) - 1)) << this.DB) | this[0];\n };\n // BigInteger.prototype.byteValue = bnByteValue;\n // (public) return value as byte\n BigInteger.prototype.byteValue = function () {\n return (this.t == 0) ? this.s : (this[0] << 24) >> 24;\n };\n // BigInteger.prototype.shortValue = bnShortValue;\n // (public) return value as short (assumes DB>=16)\n BigInteger.prototype.shortValue = function () {\n return (this.t == 0) ? this.s : (this[0] << 16) >> 16;\n };\n // BigInteger.prototype.signum = bnSigNum;\n // (public) 0 if this == 0, 1 if this > 0\n BigInteger.prototype.signum = function () {\n if (this.s < 0) {\n return -1;\n }\n else if (this.t <= 0 || (this.t == 1 && this[0] <= 0)) {\n return 0;\n }\n else {\n return 1;\n }\n };\n // BigInteger.prototype.toByteArray = bnToByteArray;\n // (public) convert to bigendian byte array\n BigInteger.prototype.toByteArray = function () {\n var i = this.t;\n var r = [];\n r[0] = this.s;\n var p = this.DB - (i * this.DB) % 8;\n var d;\n var k = 0;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) != (this.s & this.DM) >> p) {\n r[k++] = d | (this.s << (this.DB - p));\n }\n while (i >= 0) {\n if (p < 8) {\n d = (this[i] & ((1 << p) - 1)) << (8 - p);\n d |= this[--i] >> (p += this.DB - 8);\n }\n else {\n d = (this[i] >> (p -= 8)) & 0xff;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if ((d & 0x80) != 0) {\n d |= -256;\n }\n if (k == 0 && (this.s & 0x80) != (d & 0x80)) {\n ++k;\n }\n if (k > 0 || d != this.s) {\n r[k++] = d;\n }\n }\n }\n return r;\n };\n // BigInteger.prototype.equals = bnEquals;\n BigInteger.prototype.equals = function (a) {\n return (this.compareTo(a) == 0);\n };\n // BigInteger.prototype.min = bnMin;\n BigInteger.prototype.min = function (a) {\n return (this.compareTo(a) < 0) ? this : a;\n };\n // BigInteger.prototype.max = bnMax;\n BigInteger.prototype.max = function (a) {\n return (this.compareTo(a) > 0) ? this : a;\n };\n // BigInteger.prototype.and = bnAnd;\n BigInteger.prototype.and = function (a) {\n var r = nbi();\n this.bitwiseTo(a, op_and, r);\n return r;\n };\n // BigInteger.prototype.or = bnOr;\n BigInteger.prototype.or = function (a) {\n var r = nbi();\n this.bitwiseTo(a, op_or, r);\n return r;\n };\n // BigInteger.prototype.xor = bnXor;\n BigInteger.prototype.xor = function (a) {\n var r = nbi();\n this.bitwiseTo(a, op_xor, r);\n return r;\n };\n // BigInteger.prototype.andNot = bnAndNot;\n BigInteger.prototype.andNot = function (a) {\n var r = nbi();\n this.bitwiseTo(a, op_andnot, r);\n return r;\n };\n // BigInteger.prototype.not = bnNot;\n // (public) ~this\n BigInteger.prototype.not = function () {\n var r = nbi();\n for (var i = 0; i < this.t; ++i) {\n r[i] = this.DM & ~this[i];\n }\n r.t = this.t;\n r.s = ~this.s;\n return r;\n };\n // BigInteger.prototype.shiftLeft = bnShiftLeft;\n // (public) this << n\n BigInteger.prototype.shiftLeft = function (n) {\n var r = nbi();\n if (n < 0) {\n this.rShiftTo(-n, r);\n }\n else {\n this.lShiftTo(n, r);\n }\n return r;\n };\n // BigInteger.prototype.shiftRight = bnShiftRight;\n // (public) this >> n\n BigInteger.prototype.shiftRight = function (n) {\n var r = nbi();\n if (n < 0) {\n this.lShiftTo(-n, r);\n }\n else {\n this.rShiftTo(n, r);\n }\n return r;\n };\n // BigInteger.prototype.getLowestSetBit = bnGetLowestSetBit;\n // (public) returns index of lowest 1-bit (or -1 if none)\n BigInteger.prototype.getLowestSetBit = function () {\n for (var i = 0; i < this.t; ++i) {\n if (this[i] != 0) {\n return i * this.DB + lbit(this[i]);\n }\n }\n if (this.s < 0) {\n return this.t * this.DB;\n }\n return -1;\n };\n // BigInteger.prototype.bitCount = bnBitCount;\n // (public) return number of set bits\n BigInteger.prototype.bitCount = function () {\n var r = 0;\n var x = this.s & this.DM;\n for (var i = 0; i < this.t; ++i) {\n r += cbit(this[i] ^ x);\n }\n return r;\n };\n // BigInteger.prototype.testBit = bnTestBit;\n // (public) true iff nth bit is set\n BigInteger.prototype.testBit = function (n) {\n var j = Math.floor(n / this.DB);\n if (j >= this.t) {\n return (this.s != 0);\n }\n return ((this[j] & (1 << (n % this.DB))) != 0);\n };\n // BigInteger.prototype.setBit = bnSetBit;\n // (public) this | (1< 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n var j = e.t - 1;\n var w;\n var is1 = true;\n var r2 = nbi();\n var t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1) {\n w = (e[j] >> (i - k1)) & km;\n }\n else {\n w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i);\n if (j > 0) {\n w |= e[j - 1] >> (this.DB + i - k1);\n }\n }\n n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) { // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n }\n else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0) {\n z.sqrTo(r, r2);\n }\n else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & (1 << i)) == 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n return z.revert(r);\n };\n // BigInteger.prototype.modInverse = bnModInverse;\n // (public) 1/this % m (HAC 14.61)\n BigInteger.prototype.modInverse = function (m) {\n var ac = m.isEven();\n if ((this.isEven() && ac) || m.signum() == 0) {\n return BigInteger.ZERO;\n }\n var u = m.clone();\n var v = this.clone();\n var a = nbv(1);\n var b = nbv(0);\n var c = nbv(0);\n var d = nbv(1);\n while (u.signum() != 0) {\n while (u.isEven()) {\n u.rShiftTo(1, u);\n if (ac) {\n if (!a.isEven() || !b.isEven()) {\n a.addTo(this, a);\n b.subTo(m, b);\n }\n a.rShiftTo(1, a);\n }\n else if (!b.isEven()) {\n b.subTo(m, b);\n }\n b.rShiftTo(1, b);\n }\n while (v.isEven()) {\n v.rShiftTo(1, v);\n if (ac) {\n if (!c.isEven() || !d.isEven()) {\n c.addTo(this, c);\n d.subTo(m, d);\n }\n c.rShiftTo(1, c);\n }\n else if (!d.isEven()) {\n d.subTo(m, d);\n }\n d.rShiftTo(1, d);\n }\n if (u.compareTo(v) >= 0) {\n u.subTo(v, u);\n if (ac) {\n a.subTo(c, a);\n }\n b.subTo(d, b);\n }\n else {\n v.subTo(u, v);\n if (ac) {\n c.subTo(a, c);\n }\n d.subTo(b, d);\n }\n }\n if (v.compareTo(BigInteger.ONE) != 0) {\n return BigInteger.ZERO;\n }\n if (d.compareTo(m) >= 0) {\n return d.subtract(m);\n }\n if (d.signum() < 0) {\n d.addTo(m, d);\n }\n else {\n return d;\n }\n if (d.signum() < 0) {\n return d.add(m);\n }\n else {\n return d;\n }\n };\n // BigInteger.prototype.pow = bnPow;\n // (public) this^e\n BigInteger.prototype.pow = function (e) {\n return this.exp(e, new NullExp());\n };\n // BigInteger.prototype.gcd = bnGCD;\n // (public) gcd(this,a) (HAC 14.54)\n BigInteger.prototype.gcd = function (a) {\n var x = (this.s < 0) ? this.negate() : this.clone();\n var y = (a.s < 0) ? a.negate() : a.clone();\n if (x.compareTo(y) < 0) {\n var t = x;\n x = y;\n y = t;\n }\n var i = x.getLowestSetBit();\n var g = y.getLowestSetBit();\n if (g < 0) {\n return x;\n }\n if (i < g) {\n g = i;\n }\n if (g > 0) {\n x.rShiftTo(g, x);\n y.rShiftTo(g, y);\n }\n while (x.signum() > 0) {\n if ((i = x.getLowestSetBit()) > 0) {\n x.rShiftTo(i, x);\n }\n if ((i = y.getLowestSetBit()) > 0) {\n y.rShiftTo(i, y);\n }\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x);\n x.rShiftTo(1, x);\n }\n else {\n y.subTo(x, y);\n y.rShiftTo(1, y);\n }\n }\n if (g > 0) {\n y.lShiftTo(g, y);\n }\n return y;\n };\n // BigInteger.prototype.isProbablePrime = bnIsProbablePrime;\n // (public) test primality with certainty >= 1-.5^t\n BigInteger.prototype.isProbablePrime = function (t) {\n var i;\n var x = this.abs();\n if (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) {\n for (i = 0; i < lowprimes.length; ++i) {\n if (x[0] == lowprimes[i]) {\n return true;\n }\n }\n return false;\n }\n if (x.isEven()) {\n return false;\n }\n i = 1;\n while (i < lowprimes.length) {\n var m = lowprimes[i];\n var j = i + 1;\n while (j < lowprimes.length && m < lplim) {\n m *= lowprimes[j++];\n }\n m = x.modInt(m);\n while (i < j) {\n if (m % lowprimes[i++] == 0) {\n return false;\n }\n }\n }\n return x.millerRabin(t);\n };\n //#endregion PUBLIC\n //#region PROTECTED\n // BigInteger.prototype.copyTo = bnpCopyTo;\n // (protected) copy this to r\n BigInteger.prototype.copyTo = function (r) {\n for (var i = this.t - 1; i >= 0; --i) {\n r[i] = this[i];\n }\n r.t = this.t;\n r.s = this.s;\n };\n // BigInteger.prototype.fromInt = bnpFromInt;\n // (protected) set from integer value x, -DV <= x < DV\n BigInteger.prototype.fromInt = function (x) {\n this.t = 1;\n this.s = (x < 0) ? -1 : 0;\n if (x > 0) {\n this[0] = x;\n }\n else if (x < -1) {\n this[0] = x + this.DV;\n }\n else {\n this.t = 0;\n }\n };\n // BigInteger.prototype.fromString = bnpFromString;\n // (protected) set from string and radix\n BigInteger.prototype.fromString = function (s, b) {\n var k;\n if (b == 16) {\n k = 4;\n }\n else if (b == 8) {\n k = 3;\n }\n else if (b == 256) {\n k = 8;\n /* byte array */\n }\n else if (b == 2) {\n k = 1;\n }\n else if (b == 32) {\n k = 5;\n }\n else if (b == 4) {\n k = 2;\n }\n else {\n this.fromRadix(s, b);\n return;\n }\n this.t = 0;\n this.s = 0;\n var i = s.length;\n var mi = false;\n var sh = 0;\n while (--i >= 0) {\n var x = (k == 8) ? (+s[i]) & 0xff : intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\") {\n mi = true;\n }\n continue;\n }\n mi = false;\n if (sh == 0) {\n this[this.t++] = x;\n }\n else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh;\n this[this.t++] = (x >> (this.DB - sh));\n }\n else {\n this[this.t - 1] |= x << sh;\n }\n sh += k;\n if (sh >= this.DB) {\n sh -= this.DB;\n }\n }\n if (k == 8 && ((+s[0]) & 0x80) != 0) {\n this.s = -1;\n if (sh > 0) {\n this[this.t - 1] |= ((1 << (this.DB - sh)) - 1) << sh;\n }\n }\n this.clamp();\n if (mi) {\n BigInteger.ZERO.subTo(this, this);\n }\n };\n // BigInteger.prototype.clamp = bnpClamp;\n // (protected) clamp off excess high words\n BigInteger.prototype.clamp = function () {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c) {\n --this.t;\n }\n };\n // BigInteger.prototype.dlShiftTo = bnpDLShiftTo;\n // (protected) r = this << n*DB\n BigInteger.prototype.dlShiftTo = function (n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + n] = this[i];\n }\n for (i = n - 1; i >= 0; --i) {\n r[i] = 0;\n }\n r.t = this.t + n;\n r.s = this.s;\n };\n // BigInteger.prototype.drShiftTo = bnpDRShiftTo;\n // (protected) r = this >> n*DB\n BigInteger.prototype.drShiftTo = function (n, r) {\n for (var i = n; i < this.t; ++i) {\n r[i - n] = this[i];\n }\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n };\n // BigInteger.prototype.lShiftTo = bnpLShiftTo;\n // (protected) r = this << n\n BigInteger.prototype.lShiftTo = function (n, r) {\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << cbs) - 1;\n var ds = Math.floor(n / this.DB);\n var c = (this.s << bs) & this.DM;\n for (var i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = (this[i] >> cbs) | c;\n c = (this[i] & bm) << bs;\n }\n for (var i = ds - 1; i >= 0; --i) {\n r[i] = 0;\n }\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n };\n // BigInteger.prototype.rShiftTo = bnpRShiftTo;\n // (protected) r = this >> n\n BigInteger.prototype.rShiftTo = function (n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n var bs = n % this.DB;\n var cbs = this.DB - bs;\n var bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (var i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0) {\n r[this.t - ds - 1] |= (this.s & bm) << cbs;\n }\n r.t = this.t - ds;\n r.clamp();\n };\n // BigInteger.prototype.subTo = bnpSubTo;\n // (protected) r = this - a\n BigInteger.prototype.subTo = function (a, r) {\n var i = 0;\n var c = 0;\n var m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = (c < 0) ? -1 : 0;\n if (c < -1) {\n r[i++] = this.DV + c;\n }\n else if (c > 0) {\n r[i++] = c;\n }\n r.t = i;\n r.clamp();\n };\n // BigInteger.prototype.multiplyTo = bnpMultiplyTo;\n // (protected) r = this * a, r != this,a (HAC 14.12)\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyTo = function (a, r) {\n var x = this.abs();\n var y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = 0; i < y.t; ++i) {\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n }\n r.s = 0;\n r.clamp();\n if (this.s != a.s) {\n BigInteger.ZERO.subTo(r, r);\n }\n };\n // BigInteger.prototype.squareTo = bnpSquareTo;\n // (protected) r = this^2, r != this (HAC 14.16)\n BigInteger.prototype.squareTo = function (r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0) {\n r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n }\n r.s = 0;\n r.clamp();\n };\n // BigInteger.prototype.divRemTo = bnpDivRemTo;\n // (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n // r != q, this != m. q or r may be null.\n BigInteger.prototype.divRemTo = function (m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) {\n return;\n }\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null) {\n q.fromInt(0);\n }\n if (r != null) {\n this.copyTo(r);\n }\n return;\n }\n if (r == null) {\n r = nbi();\n }\n var y = nbi();\n var ts = this.s;\n var ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]); // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n }\n else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n var ys = y.t;\n var y0 = y[ys - 1];\n if (y0 == 0) {\n return;\n }\n var yt = y0 * (1 << this.F1) + ((ys > 1) ? y[ys - 2] >> this.F2 : 0);\n var d1 = this.FV / yt;\n var d2 = (1 << this.F1) / yt;\n var e = 1 << this.F2;\n var i = r.t;\n var j = i - ys;\n var t = (q == null) ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y); // \"negative\" y so we can replace sub with am later\n while (y.t < ys) {\n y[y.t++] = 0;\n }\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = (r[--i] == y0) ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) { // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd) {\n r.subTo(t, r);\n }\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) {\n BigInteger.ZERO.subTo(q, q);\n }\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0) {\n r.rShiftTo(nsh, r);\n } // Denormalize remainder\n if (ts < 0) {\n BigInteger.ZERO.subTo(r, r);\n }\n };\n // BigInteger.prototype.invDigit = bnpInvDigit;\n // (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n // justification:\n // xy == 1 (mod m)\n // xy = 1+km\n // xy(2-xy) = (1+km)(1-km)\n // x[y(2-xy)] = 1-k^2m^2\n // x[y(2-xy)] == 1 (mod m^2)\n // if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n // should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n // JS multiply \"overflows\" differently from C/C++, so care is needed here.\n BigInteger.prototype.invDigit = function () {\n if (this.t < 1) {\n return 0;\n }\n var x = this[0];\n if ((x & 1) == 0) {\n return 0;\n }\n var y = x & 3; // y == 1/x mod 2^2\n y = (y * (2 - (x & 0xf) * y)) & 0xf; // y == 1/x mod 2^4\n y = (y * (2 - (x & 0xff) * y)) & 0xff; // y == 1/x mod 2^8\n y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff; // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y * (2 - x * y % this.DV)) % this.DV; // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return (y > 0) ? this.DV - y : -y;\n };\n // BigInteger.prototype.isEven = bnpIsEven;\n // (protected) true iff this is even\n BigInteger.prototype.isEven = function () {\n return ((this.t > 0) ? (this[0] & 1) : this.s) == 0;\n };\n // BigInteger.prototype.exp = bnpExp;\n // (protected) this^e, e < 2^32, doing sqr and mul with \"r\" (HAC 14.79)\n BigInteger.prototype.exp = function (e, z) {\n if (e > 0xffffffff || e < 1) {\n return BigInteger.ONE;\n }\n var r = nbi();\n var r2 = nbi();\n var g = z.convert(this);\n var i = nbits(e) - 1;\n g.copyTo(r);\n while (--i >= 0) {\n z.sqrTo(r, r2);\n if ((e & (1 << i)) > 0) {\n z.mulTo(r2, g, r);\n }\n else {\n var t = r;\n r = r2;\n r2 = t;\n }\n }\n return z.revert(r);\n };\n // BigInteger.prototype.chunkSize = bnpChunkSize;\n // (protected) return x s.t. r^x < DV\n BigInteger.prototype.chunkSize = function (r) {\n return Math.floor(Math.LN2 * this.DB / Math.log(r));\n };\n // BigInteger.prototype.toRadix = bnpToRadix;\n // (protected) convert to radix string\n BigInteger.prototype.toRadix = function (b) {\n if (b == null) {\n b = 10;\n }\n if (this.signum() == 0 || b < 2 || b > 36) {\n return \"0\";\n }\n var cs = this.chunkSize(b);\n var a = Math.pow(b, cs);\n var d = nbv(a);\n var y = nbi();\n var z = nbi();\n var r = \"\";\n this.divRemTo(d, y, z);\n while (y.signum() > 0) {\n r = (a + z.intValue()).toString(b).substr(1) + r;\n y.divRemTo(d, y, z);\n }\n return z.intValue().toString(b) + r;\n };\n // BigInteger.prototype.fromRadix = bnpFromRadix;\n // (protected) convert from radix string\n BigInteger.prototype.fromRadix = function (s, b) {\n this.fromInt(0);\n if (b == null) {\n b = 10;\n }\n var cs = this.chunkSize(b);\n var d = Math.pow(b, cs);\n var mi = false;\n var j = 0;\n var w = 0;\n for (var i = 0; i < s.length; ++i) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\" && this.signum() == 0) {\n mi = true;\n }\n continue;\n }\n w = b * w + x;\n if (++j >= cs) {\n this.dMultiply(d);\n this.dAddOffset(w, 0);\n j = 0;\n w = 0;\n }\n }\n if (j > 0) {\n this.dMultiply(Math.pow(b, j));\n this.dAddOffset(w, 0);\n }\n if (mi) {\n BigInteger.ZERO.subTo(this, this);\n }\n };\n // BigInteger.prototype.fromNumber = bnpFromNumber;\n // (protected) alternate constructor\n BigInteger.prototype.fromNumber = function (a, b, c) {\n if (\"number\" == typeof b) {\n // new BigInteger(int,int,RNG)\n if (a < 2) {\n this.fromInt(1);\n }\n else {\n this.fromNumber(a, c);\n if (!this.testBit(a - 1)) {\n // force MSB set\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this);\n }\n if (this.isEven()) {\n this.dAddOffset(1, 0);\n } // force odd\n while (!this.isProbablePrime(b)) {\n this.dAddOffset(2, 0);\n if (this.bitLength() > a) {\n this.subTo(BigInteger.ONE.shiftLeft(a - 1), this);\n }\n }\n }\n }\n else {\n // new BigInteger(int,RNG)\n var x = [];\n var t = a & 7;\n x.length = (a >> 3) + 1;\n b.nextBytes(x);\n if (t > 0) {\n x[0] &= ((1 << t) - 1);\n }\n else {\n x[0] = 0;\n }\n this.fromString(x, 256);\n }\n };\n // BigInteger.prototype.bitwiseTo = bnpBitwiseTo;\n // (protected) r = this op a (bitwise)\n BigInteger.prototype.bitwiseTo = function (a, op, r) {\n var i;\n var f;\n var m = Math.min(a.t, this.t);\n for (i = 0; i < m; ++i) {\n r[i] = op(this[i], a[i]);\n }\n if (a.t < this.t) {\n f = a.s & this.DM;\n for (i = m; i < this.t; ++i) {\n r[i] = op(this[i], f);\n }\n r.t = this.t;\n }\n else {\n f = this.s & this.DM;\n for (i = m; i < a.t; ++i) {\n r[i] = op(f, a[i]);\n }\n r.t = a.t;\n }\n r.s = op(this.s, a.s);\n r.clamp();\n };\n // BigInteger.prototype.changeBit = bnpChangeBit;\n // (protected) this op (1<>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = (c < 0) ? -1 : 0;\n if (c > 0) {\n r[i++] = c;\n }\n else if (c < -1) {\n r[i++] = this.DV + c;\n }\n r.t = i;\n r.clamp();\n };\n // BigInteger.prototype.dMultiply = bnpDMultiply;\n // (protected) this *= n, this >= 0, 1 < n < DV\n BigInteger.prototype.dMultiply = function (n) {\n this[this.t] = this.am(0, n - 1, this, 0, 0, this.t);\n ++this.t;\n this.clamp();\n };\n // BigInteger.prototype.dAddOffset = bnpDAddOffset;\n // (protected) this += n << w words, this >= 0\n BigInteger.prototype.dAddOffset = function (n, w) {\n if (n == 0) {\n return;\n }\n while (this.t <= w) {\n this[this.t++] = 0;\n }\n this[w] += n;\n while (this[w] >= this.DV) {\n this[w] -= this.DV;\n if (++w >= this.t) {\n this[this.t++] = 0;\n }\n ++this[w];\n }\n };\n // BigInteger.prototype.multiplyLowerTo = bnpMultiplyLowerTo;\n // (protected) r = lower n words of \"this * a\", a.t <= n\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyLowerTo = function (a, n, r) {\n var i = Math.min(this.t + a.t, n);\n r.s = 0; // assumes a,this >= 0\n r.t = i;\n while (i > 0) {\n r[--i] = 0;\n }\n for (var j = r.t - this.t; i < j; ++i) {\n r[i + this.t] = this.am(0, a[i], r, i, 0, this.t);\n }\n for (var j = Math.min(a.t, n); i < j; ++i) {\n this.am(0, a[i], r, i, 0, n - i);\n }\n r.clamp();\n };\n // BigInteger.prototype.multiplyUpperTo = bnpMultiplyUpperTo;\n // (protected) r = \"this * a\" without lower n words, n > 0\n // \"this\" should be the larger one if appropriate.\n BigInteger.prototype.multiplyUpperTo = function (a, n, r) {\n --n;\n var i = r.t = this.t + a.t - n;\n r.s = 0; // assumes a,this >= 0\n while (--i >= 0) {\n r[i] = 0;\n }\n for (i = Math.max(n - this.t, 0); i < a.t; ++i) {\n r[this.t + i - n] = this.am(n - i, a[i], r, 0, 0, this.t + i - n);\n }\n r.clamp();\n r.drShiftTo(1, r);\n };\n // BigInteger.prototype.modInt = bnpModInt;\n // (protected) this % n, n < 2^26\n BigInteger.prototype.modInt = function (n) {\n if (n <= 0) {\n return 0;\n }\n var d = this.DV % n;\n var r = (this.s < 0) ? n - 1 : 0;\n if (this.t > 0) {\n if (d == 0) {\n r = this[0] % n;\n }\n else {\n for (var i = this.t - 1; i >= 0; --i) {\n r = (d * r + this[i]) % n;\n }\n }\n }\n return r;\n };\n // BigInteger.prototype.millerRabin = bnpMillerRabin;\n // (protected) true if probably prime (HAC 4.24, Miller-Rabin)\n BigInteger.prototype.millerRabin = function (t) {\n var n1 = this.subtract(BigInteger.ONE);\n var k = n1.getLowestSetBit();\n if (k <= 0) {\n return false;\n }\n var r = n1.shiftRight(k);\n t = (t + 1) >> 1;\n if (t > lowprimes.length) {\n t = lowprimes.length;\n }\n var a = nbi();\n for (var i = 0; i < t; ++i) {\n // Pick bases at random, instead of starting at 2\n a.fromInt(lowprimes[Math.floor(Math.random() * lowprimes.length)]);\n var y = a.modPow(r, this);\n if (y.compareTo(BigInteger.ONE) != 0 && y.compareTo(n1) != 0) {\n var j = 1;\n while (j++ < k && y.compareTo(n1) != 0) {\n y = y.modPowInt(2, this);\n if (y.compareTo(BigInteger.ONE) == 0) {\n return false;\n }\n }\n if (y.compareTo(n1) != 0) {\n return false;\n }\n }\n }\n return true;\n };\n // BigInteger.prototype.square = bnSquare;\n // (public) this^2\n BigInteger.prototype.square = function () {\n var r = nbi();\n this.squareTo(r);\n return r;\n };\n //#region ASYNC\n // Public API method\n BigInteger.prototype.gcda = function (a, callback) {\n var x = (this.s < 0) ? this.negate() : this.clone();\n var y = (a.s < 0) ? a.negate() : a.clone();\n if (x.compareTo(y) < 0) {\n var t = x;\n x = y;\n y = t;\n }\n var i = x.getLowestSetBit();\n var g = y.getLowestSetBit();\n if (g < 0) {\n callback(x);\n return;\n }\n if (i < g) {\n g = i;\n }\n if (g > 0) {\n x.rShiftTo(g, x);\n y.rShiftTo(g, y);\n }\n // Workhorse of the algorithm, gets called 200 - 800 times per 512 bit keygen.\n var gcda1 = function () {\n if ((i = x.getLowestSetBit()) > 0) {\n x.rShiftTo(i, x);\n }\n if ((i = y.getLowestSetBit()) > 0) {\n y.rShiftTo(i, y);\n }\n if (x.compareTo(y) >= 0) {\n x.subTo(y, x);\n x.rShiftTo(1, x);\n }\n else {\n y.subTo(x, y);\n y.rShiftTo(1, y);\n }\n if (!(x.signum() > 0)) {\n if (g > 0) {\n y.lShiftTo(g, y);\n }\n setTimeout(function () { callback(y); }, 0); // escape\n }\n else {\n setTimeout(gcda1, 0);\n }\n };\n setTimeout(gcda1, 10);\n };\n // (protected) alternate constructor\n BigInteger.prototype.fromNumberAsync = function (a, b, c, callback) {\n if (\"number\" == typeof b) {\n if (a < 2) {\n this.fromInt(1);\n }\n else {\n this.fromNumber(a, c);\n if (!this.testBit(a - 1)) {\n this.bitwiseTo(BigInteger.ONE.shiftLeft(a - 1), op_or, this);\n }\n if (this.isEven()) {\n this.dAddOffset(1, 0);\n }\n var bnp_1 = this;\n var bnpfn1_1 = function () {\n bnp_1.dAddOffset(2, 0);\n if (bnp_1.bitLength() > a) {\n bnp_1.subTo(BigInteger.ONE.shiftLeft(a - 1), bnp_1);\n }\n if (bnp_1.isProbablePrime(b)) {\n setTimeout(function () { callback(); }, 0); // escape\n }\n else {\n setTimeout(bnpfn1_1, 0);\n }\n };\n setTimeout(bnpfn1_1, 0);\n }\n }\n else {\n var x = [];\n var t = a & 7;\n x.length = (a >> 3) + 1;\n b.nextBytes(x);\n if (t > 0) {\n x[0] &= ((1 << t) - 1);\n }\n else {\n x[0] = 0;\n }\n this.fromString(x, 256);\n }\n };\n return BigInteger;\n}());\nexport { BigInteger };\n//#region REDUCERS\n//#region NullExp\nvar NullExp = /** @class */ (function () {\n function NullExp() {\n }\n // NullExp.prototype.convert = nNop;\n NullExp.prototype.convert = function (x) {\n return x;\n };\n // NullExp.prototype.revert = nNop;\n NullExp.prototype.revert = function (x) {\n return x;\n };\n // NullExp.prototype.mulTo = nMulTo;\n NullExp.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n };\n // NullExp.prototype.sqrTo = nSqrTo;\n NullExp.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n };\n return NullExp;\n}());\n// Modular reduction using \"classic\" algorithm\nvar Classic = /** @class */ (function () {\n function Classic(m) {\n this.m = m;\n }\n // Classic.prototype.convert = cConvert;\n Classic.prototype.convert = function (x) {\n if (x.s < 0 || x.compareTo(this.m) >= 0) {\n return x.mod(this.m);\n }\n else {\n return x;\n }\n };\n // Classic.prototype.revert = cRevert;\n Classic.prototype.revert = function (x) {\n return x;\n };\n // Classic.prototype.reduce = cReduce;\n Classic.prototype.reduce = function (x) {\n x.divRemTo(this.m, null, x);\n };\n // Classic.prototype.mulTo = cMulTo;\n Classic.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Classic.prototype.sqrTo = cSqrTo;\n Classic.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Classic;\n}());\n//#endregion\n//#region Montgomery\n// Montgomery reduction\nvar Montgomery = /** @class */ (function () {\n function Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << (m.DB - 15)) - 1;\n this.mt2 = 2 * m.t;\n }\n // Montgomery.prototype.convert = montConvert;\n // xR mod m\n Montgomery.prototype.convert = function (x) {\n var r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) {\n this.m.subTo(r, r);\n }\n return r;\n };\n // Montgomery.prototype.revert = montRevert;\n // x/R mod m\n Montgomery.prototype.revert = function (x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n };\n // Montgomery.prototype.reduce = montReduce;\n // x = x/R mod m (HAC 14.32)\n Montgomery.prototype.reduce = function (x) {\n while (x.t <= this.mt2) {\n // pad x so am has enough room later\n x[x.t++] = 0;\n }\n for (var i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n var j = x[i] & 0x7fff;\n var u0 = (j * this.mpl + (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) & x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0) {\n x.subTo(this.m, x);\n }\n };\n // Montgomery.prototype.mulTo = montMulTo;\n // r = \"xy/R mod m\"; x,y != r\n Montgomery.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Montgomery.prototype.sqrTo = montSqrTo;\n // r = \"x^2/R mod m\"; x != r\n Montgomery.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Montgomery;\n}());\n//#endregion Montgomery\n//#region Barrett\n// Barrett modular reduction\nvar Barrett = /** @class */ (function () {\n function Barrett(m) {\n this.m = m;\n // setup Barrett\n this.r2 = nbi();\n this.q3 = nbi();\n BigInteger.ONE.dlShiftTo(2 * m.t, this.r2);\n this.mu = this.r2.divide(m);\n }\n // Barrett.prototype.convert = barrettConvert;\n Barrett.prototype.convert = function (x) {\n if (x.s < 0 || x.t > 2 * this.m.t) {\n return x.mod(this.m);\n }\n else if (x.compareTo(this.m) < 0) {\n return x;\n }\n else {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n }\n };\n // Barrett.prototype.revert = barrettRevert;\n Barrett.prototype.revert = function (x) {\n return x;\n };\n // Barrett.prototype.reduce = barrettReduce;\n // x = x mod m (HAC 14.42)\n Barrett.prototype.reduce = function (x) {\n x.drShiftTo(this.m.t - 1, this.r2);\n if (x.t > this.m.t + 1) {\n x.t = this.m.t + 1;\n x.clamp();\n }\n this.mu.multiplyUpperTo(this.r2, this.m.t + 1, this.q3);\n this.m.multiplyLowerTo(this.q3, this.m.t + 1, this.r2);\n while (x.compareTo(this.r2) < 0) {\n x.dAddOffset(1, this.m.t + 1);\n }\n x.subTo(this.r2, x);\n while (x.compareTo(this.m) >= 0) {\n x.subTo(this.m, x);\n }\n };\n // Barrett.prototype.mulTo = barrettMulTo;\n // r = x*y mod m; x,y != r\n Barrett.prototype.mulTo = function (x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n };\n // Barrett.prototype.sqrTo = barrettSqrTo;\n // r = x^2 mod m; x != r\n Barrett.prototype.sqrTo = function (x, r) {\n x.squareTo(r);\n this.reduce(r);\n };\n return Barrett;\n}());\n//#endregion\n//#endregion REDUCERS\n// return new, unset BigInteger\nexport function nbi() { return new BigInteger(null); }\nexport function parseBigInt(str, r) {\n return new BigInteger(str, r);\n}\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\nvar inBrowser = typeof navigator !== \"undefined\";\nif (inBrowser && j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n // am2 avoids a big mult-and-extract completely.\n // Max digit bits should be <= 30 because we do bitwise ops\n // on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\n BigInteger.prototype.am = function am2(i, x, w, j, c, n) {\n var xl = x & 0x7fff;\n var xh = x >> 15;\n while (--n >= 0) {\n var l = this[i] & 0x7fff;\n var h = this[i++] >> 15;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n };\n dbits = 30;\n}\nelse if (inBrowser && j_lm && (navigator.appName != \"Netscape\")) {\n // am1: use a single mult and divide to get the high bits,\n // max digit bits should be 26 because\n // max internal value = 2*dvalue^2-2*dvalue (< 2^53)\n BigInteger.prototype.am = function am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n var v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n };\n dbits = 26;\n}\nelse { // Mozilla/Netscape seems to prefer am3\n // Alternately, set max digit bits to 28 since some\n // browsers slow down when dealing with 32-bit numbers.\n BigInteger.prototype.am = function am3(i, x, w, j, c, n) {\n var xl = x & 0x3fff;\n var xh = x >> 14;\n while (--n >= 0) {\n var l = this[i] & 0x3fff;\n var h = this[i++] >> 14;\n var m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n };\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = ((1 << dbits) - 1);\nBigInteger.prototype.DV = (1 << dbits);\nvar BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n// Digit conversions\nvar BI_RC = [];\nvar rr;\nvar vv;\nrr = \"0\".charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv) {\n BI_RC[rr++] = vv;\n}\nrr = \"a\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\nrr = \"A\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv) {\n BI_RC[rr++] = vv;\n}\nexport function intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return (c == null) ? -1 : c;\n}\n// return bigint initialized to value\nexport function nbv(i) {\n var r = nbi();\n r.fromInt(i);\n return r;\n}\n// returns bit length of the integer x\nexport function nbits(x) {\n var r = 1;\n var t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\n","// prng4.js - uses Arcfour as a PRNG\nvar Arcfour = /** @class */ (function () {\n function Arcfour() {\n this.i = 0;\n this.j = 0;\n this.S = [];\n }\n // Arcfour.prototype.init = ARC4init;\n // Initialize arcfour context from key, an array of ints, each from [0..255]\n Arcfour.prototype.init = function (key) {\n var i;\n var j;\n var t;\n for (i = 0; i < 256; ++i) {\n this.S[i] = i;\n }\n j = 0;\n for (i = 0; i < 256; ++i) {\n j = (j + this.S[i] + key[i % key.length]) & 255;\n t = this.S[i];\n this.S[i] = this.S[j];\n this.S[j] = t;\n }\n this.i = 0;\n this.j = 0;\n };\n // Arcfour.prototype.next = ARC4next;\n Arcfour.prototype.next = function () {\n var t;\n this.i = (this.i + 1) & 255;\n this.j = (this.j + this.S[this.i]) & 255;\n t = this.S[this.i];\n this.S[this.i] = this.S[this.j];\n this.S[this.j] = t;\n return this.S[(t + this.S[this.i]) & 255];\n };\n return Arcfour;\n}());\nexport { Arcfour };\n// Plug in your RNG constructor here\nexport function prng_newstate() {\n return new Arcfour();\n}\n// Pool size must be a multiple of 4 and greater than 32.\n// An array of bytes the size of the pool will be passed to init()\nexport var rng_psize = 256;\n","// Random number generator - requires a PRNG backend, e.g. prng4.js\nimport { prng_newstate, rng_psize } from \"./prng4\";\nvar rng_state;\nvar rng_pool = null;\nvar rng_pptr;\n// Initialize the pool with junk if needed.\nif (rng_pool == null) {\n rng_pool = [];\n rng_pptr = 0;\n var t = void 0;\n if (typeof window !== 'undefined' && window.crypto && window.crypto.getRandomValues) {\n // Extract entropy (2048 bits) from RNG if available\n var z = new Uint32Array(256);\n window.crypto.getRandomValues(z);\n for (t = 0; t < z.length; ++t) {\n rng_pool[rng_pptr++] = z[t] & 255;\n }\n }\n // Use mouse events for entropy, if we do not have enough entropy by the time\n // we need it, entropy will be generated by Math.random.\n var count = 0;\n var onMouseMoveListener_1 = function (ev) {\n count = count || 0;\n if (count >= 256 || rng_pptr >= rng_psize) {\n if (window.removeEventListener) {\n window.removeEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.detachEvent) {\n window.detachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n return;\n }\n try {\n var mouseCoordinates = ev.x + ev.y;\n rng_pool[rng_pptr++] = mouseCoordinates & 255;\n count += 1;\n }\n catch (e) {\n // Sometimes Firefox will deny permission to access event properties for some reason. Ignore.\n }\n };\n if (typeof window !== 'undefined') {\n if (window.addEventListener) {\n window.addEventListener(\"mousemove\", onMouseMoveListener_1, false);\n }\n else if (window.attachEvent) {\n window.attachEvent(\"onmousemove\", onMouseMoveListener_1);\n }\n }\n}\nfunction rng_get_byte() {\n if (rng_state == null) {\n rng_state = prng_newstate();\n // At this point, we may not have collected enough entropy. If not, fall back to Math.random\n while (rng_pptr < rng_psize) {\n var random = Math.floor(65536 * Math.random());\n rng_pool[rng_pptr++] = random & 255;\n }\n rng_state.init(rng_pool);\n for (rng_pptr = 0; rng_pptr < rng_pool.length; ++rng_pptr) {\n rng_pool[rng_pptr] = 0;\n }\n rng_pptr = 0;\n }\n // TODO: allow reseeding after first request\n return rng_state.next();\n}\nvar SecureRandom = /** @class */ (function () {\n function SecureRandom() {\n }\n SecureRandom.prototype.nextBytes = function (ba) {\n for (var i = 0; i < ba.length; ++i) {\n ba[i] = rng_get_byte();\n }\n };\n return SecureRandom;\n}());\nexport { SecureRandom };\n","// Depends on jsbn.js and rng.js\n// Version 1.1: support utf-8 encoding in pkcs1pad2\n// convert a (hex) string to a bignum object\nimport { BigInteger, nbi, parseBigInt } from \"./jsbn\";\nimport { SecureRandom } from \"./rng\";\n// function linebrk(s,n) {\n// var ret = \"\";\n// var i = 0;\n// while(i + n < s.length) {\n// ret += s.substring(i,i+n) + \"\\n\";\n// i += n;\n// }\n// return ret + s.substring(i,s.length);\n// }\n// function byte2Hex(b) {\n// if(b < 0x10)\n// return \"0\" + b.toString(16);\n// else\n// return b.toString(16);\n// }\nfunction pkcs1pad1(s, n) {\n if (n < s.length + 22) {\n console.error(\"Message too long for RSA\");\n return null;\n }\n var len = n - s.length - 6;\n var filler = \"\";\n for (var f = 0; f < len; f += 2) {\n filler += \"ff\";\n }\n var m = \"0001\" + filler + \"00\" + s;\n return parseBigInt(m, 16);\n}\n// PKCS#1 (type 2, random) pad input string s to n bytes, and return a bigint\nfunction pkcs1pad2(s, n) {\n if (n < s.length + 11) { // TODO: fix for utf-8\n console.error(\"Message too long for RSA\");\n return null;\n }\n var ba = [];\n var i = s.length - 1;\n while (i >= 0 && n > 0) {\n var c = s.charCodeAt(i--);\n if (c < 128) { // encode using utf-8\n ba[--n] = c;\n }\n else if ((c > 127) && (c < 2048)) {\n ba[--n] = (c & 63) | 128;\n ba[--n] = (c >> 6) | 192;\n }\n else {\n ba[--n] = (c & 63) | 128;\n ba[--n] = ((c >> 6) & 63) | 128;\n ba[--n] = (c >> 12) | 224;\n }\n }\n ba[--n] = 0;\n var rng = new SecureRandom();\n var x = [];\n while (n > 2) { // random non-zero pad\n x[0] = 0;\n while (x[0] == 0) {\n rng.nextBytes(x);\n }\n ba[--n] = x[0];\n }\n ba[--n] = 2;\n ba[--n] = 0;\n return new BigInteger(ba);\n}\n// \"empty\" RSA key constructor\nvar RSAKey = /** @class */ (function () {\n function RSAKey() {\n this.n = null;\n this.e = 0;\n this.d = null;\n this.p = null;\n this.q = null;\n this.dmp1 = null;\n this.dmq1 = null;\n this.coeff = null;\n }\n //#region PROTECTED\n // protected\n // RSAKey.prototype.doPublic = RSADoPublic;\n // Perform raw public operation on \"x\": return x^e (mod n)\n RSAKey.prototype.doPublic = function (x) {\n return x.modPowInt(this.e, this.n);\n };\n // RSAKey.prototype.doPrivate = RSADoPrivate;\n // Perform raw private operation on \"x\": return x^d (mod n)\n RSAKey.prototype.doPrivate = function (x) {\n if (this.p == null || this.q == null) {\n return x.modPow(this.d, this.n);\n }\n // TODO: re-calculate any missing CRT params\n var xp = x.mod(this.p).modPow(this.dmp1, this.p);\n var xq = x.mod(this.q).modPow(this.dmq1, this.q);\n while (xp.compareTo(xq) < 0) {\n xp = xp.add(this.p);\n }\n return xp.subtract(xq).multiply(this.coeff).mod(this.p).multiply(this.q).add(xq);\n };\n //#endregion PROTECTED\n //#region PUBLIC\n // RSAKey.prototype.setPublic = RSASetPublic;\n // Set the public key fields N and e from hex strings\n RSAKey.prototype.setPublic = function (N, E) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n }\n else {\n console.error(\"Invalid RSA public key\");\n }\n };\n // RSAKey.prototype.encrypt = RSAEncrypt;\n // Return the PKCS#1 RSA encryption of \"text\" as an even-length hex string\n RSAKey.prototype.encrypt = function (text) {\n var maxLength = (this.n.bitLength() + 7) >> 3;\n var m = pkcs1pad2(text, maxLength);\n if (m == null) {\n return null;\n }\n var c = this.doPublic(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n var length = h.length;\n // fix zero before result\n for (var i = 0; i < maxLength * 2 - length; i++) {\n h = \"0\" + h;\n }\n return h;\n };\n // RSAKey.prototype.setPrivate = RSASetPrivate;\n // Set the private key fields N, e, and d from hex strings\n RSAKey.prototype.setPrivate = function (N, E, D) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n this.d = parseBigInt(D, 16);\n }\n else {\n console.error(\"Invalid RSA private key\");\n }\n };\n // RSAKey.prototype.setPrivateEx = RSASetPrivateEx;\n // Set the private key fields N, e, d and CRT params from hex strings\n RSAKey.prototype.setPrivateEx = function (N, E, D, P, Q, DP, DQ, C) {\n if (N != null && E != null && N.length > 0 && E.length > 0) {\n this.n = parseBigInt(N, 16);\n this.e = parseInt(E, 16);\n this.d = parseBigInt(D, 16);\n this.p = parseBigInt(P, 16);\n this.q = parseBigInt(Q, 16);\n this.dmp1 = parseBigInt(DP, 16);\n this.dmq1 = parseBigInt(DQ, 16);\n this.coeff = parseBigInt(C, 16);\n }\n else {\n console.error(\"Invalid RSA private key\");\n }\n };\n // RSAKey.prototype.generate = RSAGenerate;\n // Generate a new random private key B bits long, using public expt E\n RSAKey.prototype.generate = function (B, E) {\n var rng = new SecureRandom();\n var qs = B >> 1;\n this.e = parseInt(E, 16);\n var ee = new BigInteger(E, 16);\n for (;;) {\n for (;;) {\n this.p = new BigInteger(B - qs, 1, rng);\n if (this.p.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.p.isProbablePrime(10)) {\n break;\n }\n }\n for (;;) {\n this.q = new BigInteger(qs, 1, rng);\n if (this.q.subtract(BigInteger.ONE).gcd(ee).compareTo(BigInteger.ONE) == 0 && this.q.isProbablePrime(10)) {\n break;\n }\n }\n if (this.p.compareTo(this.q) <= 0) {\n var t = this.p;\n this.p = this.q;\n this.q = t;\n }\n var p1 = this.p.subtract(BigInteger.ONE);\n var q1 = this.q.subtract(BigInteger.ONE);\n var phi = p1.multiply(q1);\n if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {\n this.n = this.p.multiply(this.q);\n this.d = ee.modInverse(phi);\n this.dmp1 = this.d.mod(p1);\n this.dmq1 = this.d.mod(q1);\n this.coeff = this.q.modInverse(this.p);\n break;\n }\n }\n };\n // RSAKey.prototype.decrypt = RSADecrypt;\n // Return the PKCS#1 RSA decryption of \"ctext\".\n // \"ctext\" is an even-length hex string and the output is a plain string.\n RSAKey.prototype.decrypt = function (ctext) {\n var c = parseBigInt(ctext, 16);\n var m = this.doPrivate(c);\n if (m == null) {\n return null;\n }\n return pkcs1unpad2(m, (this.n.bitLength() + 7) >> 3);\n };\n // Generate a new random private key B bits long, using public expt E\n RSAKey.prototype.generateAsync = function (B, E, callback) {\n var rng = new SecureRandom();\n var qs = B >> 1;\n this.e = parseInt(E, 16);\n var ee = new BigInteger(E, 16);\n var rsa = this;\n // These functions have non-descript names because they were originally for(;;) loops.\n // I don't know about cryptography to give them better names than loop1-4.\n var loop1 = function () {\n var loop4 = function () {\n if (rsa.p.compareTo(rsa.q) <= 0) {\n var t = rsa.p;\n rsa.p = rsa.q;\n rsa.q = t;\n }\n var p1 = rsa.p.subtract(BigInteger.ONE);\n var q1 = rsa.q.subtract(BigInteger.ONE);\n var phi = p1.multiply(q1);\n if (phi.gcd(ee).compareTo(BigInteger.ONE) == 0) {\n rsa.n = rsa.p.multiply(rsa.q);\n rsa.d = ee.modInverse(phi);\n rsa.dmp1 = rsa.d.mod(p1);\n rsa.dmq1 = rsa.d.mod(q1);\n rsa.coeff = rsa.q.modInverse(rsa.p);\n setTimeout(function () { callback(); }, 0); // escape\n }\n else {\n setTimeout(loop1, 0);\n }\n };\n var loop3 = function () {\n rsa.q = nbi();\n rsa.q.fromNumberAsync(qs, 1, rng, function () {\n rsa.q.subtract(BigInteger.ONE).gcda(ee, function (r) {\n if (r.compareTo(BigInteger.ONE) == 0 && rsa.q.isProbablePrime(10)) {\n setTimeout(loop4, 0);\n }\n else {\n setTimeout(loop3, 0);\n }\n });\n });\n };\n var loop2 = function () {\n rsa.p = nbi();\n rsa.p.fromNumberAsync(B - qs, 1, rng, function () {\n rsa.p.subtract(BigInteger.ONE).gcda(ee, function (r) {\n if (r.compareTo(BigInteger.ONE) == 0 && rsa.p.isProbablePrime(10)) {\n setTimeout(loop3, 0);\n }\n else {\n setTimeout(loop2, 0);\n }\n });\n });\n };\n setTimeout(loop2, 0);\n };\n setTimeout(loop1, 0);\n };\n RSAKey.prototype.sign = function (text, digestMethod, digestName) {\n var header = getDigestHeader(digestName);\n var digest = header + digestMethod(text).toString();\n var m = pkcs1pad1(digest, this.n.bitLength() / 4);\n if (m == null) {\n return null;\n }\n var c = this.doPrivate(m);\n if (c == null) {\n return null;\n }\n var h = c.toString(16);\n if ((h.length & 1) == 0) {\n return h;\n }\n else {\n return \"0\" + h;\n }\n };\n RSAKey.prototype.verify = function (text, signature, digestMethod) {\n var c = parseBigInt(signature, 16);\n var m = this.doPublic(c);\n if (m == null) {\n return null;\n }\n var unpadded = m.toString(16).replace(/^1f+00/, \"\");\n var digest = removeDigestHeader(unpadded);\n return digest == digestMethod(text).toString();\n };\n return RSAKey;\n}());\nexport { RSAKey };\n// Undo PKCS#1 (type 2, random) padding and, if valid, return the plaintext\nfunction pkcs1unpad2(d, n) {\n var b = d.toByteArray();\n var i = 0;\n while (i < b.length && b[i] == 0) {\n ++i;\n }\n if (b.length - i != n - 1 || b[i] != 2) {\n return null;\n }\n ++i;\n while (b[i] != 0) {\n if (++i >= b.length) {\n return null;\n }\n }\n var ret = \"\";\n while (++i < b.length) {\n var c = b[i] & 255;\n if (c < 128) { // utf-8 decode\n ret += String.fromCharCode(c);\n }\n else if ((c > 191) && (c < 224)) {\n ret += String.fromCharCode(((c & 31) << 6) | (b[i + 1] & 63));\n ++i;\n }\n else {\n ret += String.fromCharCode(((c & 15) << 12) | ((b[i + 1] & 63) << 6) | (b[i + 2] & 63));\n i += 2;\n }\n }\n return ret;\n}\n// https://tools.ietf.org/html/rfc3447#page-43\nvar DIGEST_HEADERS = {\n md2: \"3020300c06082a864886f70d020205000410\",\n md5: \"3020300c06082a864886f70d020505000410\",\n sha1: \"3021300906052b0e03021a05000414\",\n sha224: \"302d300d06096086480165030402040500041c\",\n sha256: \"3031300d060960864801650304020105000420\",\n sha384: \"3041300d060960864801650304020205000430\",\n sha512: \"3051300d060960864801650304020305000440\",\n ripemd160: \"3021300906052b2403020105000414\"\n};\nfunction getDigestHeader(name) {\n return DIGEST_HEADERS[name] || \"\";\n}\nfunction removeDigestHeader(str) {\n for (var name_1 in DIGEST_HEADERS) {\n if (DIGEST_HEADERS.hasOwnProperty(name_1)) {\n var header = DIGEST_HEADERS[name_1];\n var len = header.length;\n if (str.substr(0, len) == header) {\n return str.substr(len);\n }\n }\n }\n return str;\n}\n// Return the PKCS#1 RSA encryption of \"text\" as a Base64-encoded string\n// function RSAEncryptB64(text) {\n// var h = this.encrypt(text);\n// if(h) return hex2b64(h); else return null;\n// }\n// public\n// RSAKey.prototype.encrypt_b64 = RSAEncryptB64;\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*/\nexport var YAHOO = {};\nYAHOO.lang = {\n /**\n * Utility to set up the prototype, constructor and superclass properties to\n * support an inheritance strategy that can chain constructors and methods.\n * Static members will not be inherited.\n *\n * @method extend\n * @static\n * @param {Function} subc the object to modify\n * @param {Function} superc the object to inherit\n * @param {Object} overrides additional properties/methods to add to the\n * subclass prototype. These will override the\n * matching items obtained from the superclass\n * if present.\n */\n extend: function (subc, superc, overrides) {\n if (!superc || !subc) {\n throw new Error(\"YAHOO.lang.extend failed, please check that \" +\n \"all dependencies are included.\");\n }\n var F = function () { };\n F.prototype = superc.prototype;\n subc.prototype = new F();\n subc.prototype.constructor = subc;\n subc.superclass = superc.prototype;\n if (superc.prototype.constructor == Object.prototype.constructor) {\n superc.prototype.constructor = superc;\n }\n if (overrides) {\n var i;\n for (i in overrides) {\n subc.prototype[i] = overrides[i];\n }\n /*\n * IE will not enumerate native functions in a derived object even if the\n * function was overridden. This is a workaround for specific functions\n * we care about on the Object prototype.\n * @property _IEEnumFix\n * @param {Function} r the object to receive the augmentation\n * @param {Function} s the object that supplies the properties to augment\n * @static\n * @private\n */\n var _IEEnumFix = function () { }, ADD = [\"toString\", \"valueOf\"];\n try {\n if (/MSIE/.test(navigator.userAgent)) {\n _IEEnumFix = function (r, s) {\n for (i = 0; i < ADD.length; i = i + 1) {\n var fname = ADD[i], f = s[fname];\n if (typeof f === 'function' && f != Object.prototype[fname]) {\n r[fname] = f;\n }\n }\n };\n }\n }\n catch (ex) { }\n ;\n _IEEnumFix(subc.prototype, overrides);\n }\n }\n};\n","/* asn1-1.0.13.js (c) 2013-2017 Kenji Urushima | kjur.github.com/jsrsasign/license\n */\n/*\n * asn1.js - ASN.1 DER encoder classes\n *\n * Copyright (c) 2013-2017 Kenji Urushima (kenji.urushima@gmail.com)\n *\n * This software is licensed under the terms of the MIT License.\n * https://kjur.github.io/jsrsasign/license\n *\n * The above copyright and license notice shall be\n * included in all copies or substantial portions of the Software.\n */\nimport { BigInteger } from \"../jsbn/jsbn\";\nimport { YAHOO } from \"./yahoo\";\n/**\n * @fileOverview\n * @name asn1-1.0.js\n * @author Kenji Urushima kenji.urushima@gmail.com\n * @version asn1 1.0.13 (2017-Jun-02)\n * @since jsrsasign 2.1\n * @license MIT License\n */\n/**\n * kjur's class library name space\n *

\n * This name space provides following name spaces:\n *

    \n *
  • {@link KJUR.asn1} - ASN.1 primitive hexadecimal encoder
  • \n *
  • {@link KJUR.asn1.x509} - ASN.1 structure for X.509 certificate and CRL
  • \n *
  • {@link KJUR.crypto} - Java Cryptographic Extension(JCE) style MessageDigest/Signature\n * class and utilities
  • \n *
\n *

\n * NOTE: Please ignore method summary and document of this namespace. This caused by a bug of jsdoc2.\n * @name KJUR\n * @namespace kjur's class library name space\n */\nexport var KJUR = {};\n/**\n * kjur's ASN.1 class library name space\n *

\n * This is ITU-T X.690 ASN.1 DER encoder class library and\n * class structure and methods is very similar to\n * org.bouncycastle.asn1 package of\n * well known BouncyCaslte Cryptography Library.\n *

PROVIDING ASN.1 PRIMITIVES

\n * Here are ASN.1 DER primitive classes.\n *
    \n *
  • 0x01 {@link KJUR.asn1.DERBoolean}
  • \n *
  • 0x02 {@link KJUR.asn1.DERInteger}
  • \n *
  • 0x03 {@link KJUR.asn1.DERBitString}
  • \n *
  • 0x04 {@link KJUR.asn1.DEROctetString}
  • \n *
  • 0x05 {@link KJUR.asn1.DERNull}
  • \n *
  • 0x06 {@link KJUR.asn1.DERObjectIdentifier}
  • \n *
  • 0x0a {@link KJUR.asn1.DEREnumerated}
  • \n *
  • 0x0c {@link KJUR.asn1.DERUTF8String}
  • \n *
  • 0x12 {@link KJUR.asn1.DERNumericString}
  • \n *
  • 0x13 {@link KJUR.asn1.DERPrintableString}
  • \n *
  • 0x14 {@link KJUR.asn1.DERTeletexString}
  • \n *
  • 0x16 {@link KJUR.asn1.DERIA5String}
  • \n *
  • 0x17 {@link KJUR.asn1.DERUTCTime}
  • \n *
  • 0x18 {@link KJUR.asn1.DERGeneralizedTime}
  • \n *
  • 0x30 {@link KJUR.asn1.DERSequence}
  • \n *
  • 0x31 {@link KJUR.asn1.DERSet}
  • \n *
\n *

OTHER ASN.1 CLASSES

\n *
    \n *
  • {@link KJUR.asn1.ASN1Object}
  • \n *
  • {@link KJUR.asn1.DERAbstractString}
  • \n *
  • {@link KJUR.asn1.DERAbstractTime}
  • \n *
  • {@link KJUR.asn1.DERAbstractStructured}
  • \n *
  • {@link KJUR.asn1.DERTaggedObject}
  • \n *
\n *

SUB NAME SPACES

\n *
    \n *
  • {@link KJUR.asn1.cades} - CAdES long term signature format
  • \n *
  • {@link KJUR.asn1.cms} - Cryptographic Message Syntax
  • \n *
  • {@link KJUR.asn1.csr} - Certificate Signing Request (CSR/PKCS#10)
  • \n *
  • {@link KJUR.asn1.tsp} - RFC 3161 Timestamping Protocol Format
  • \n *
  • {@link KJUR.asn1.x509} - RFC 5280 X.509 certificate and CRL
  • \n *
\n *

\n * NOTE: Please ignore method summary and document of this namespace.\n * This caused by a bug of jsdoc2.\n * @name KJUR.asn1\n * @namespace\n */\nif (typeof KJUR.asn1 == \"undefined\" || !KJUR.asn1)\n KJUR.asn1 = {};\n/**\n * ASN1 utilities class\n * @name KJUR.asn1.ASN1Util\n * @class ASN1 utilities class\n * @since asn1 1.0.2\n */\nKJUR.asn1.ASN1Util = new function () {\n this.integerToByteHex = function (i) {\n var h = i.toString(16);\n if ((h.length % 2) == 1)\n h = '0' + h;\n return h;\n };\n this.bigIntToMinTwosComplementsHex = function (bigIntegerValue) {\n var h = bigIntegerValue.toString(16);\n if (h.substr(0, 1) != '-') {\n if (h.length % 2 == 1) {\n h = '0' + h;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n h = '00' + h;\n }\n }\n }\n else {\n var hPos = h.substr(1);\n var xorLen = hPos.length;\n if (xorLen % 2 == 1) {\n xorLen += 1;\n }\n else {\n if (!h.match(/^[0-7]/)) {\n xorLen += 2;\n }\n }\n var hMask = '';\n for (var i = 0; i < xorLen; i++) {\n hMask += 'f';\n }\n var biMask = new BigInteger(hMask, 16);\n var biNeg = biMask.xor(bigIntegerValue).add(BigInteger.ONE);\n h = biNeg.toString(16).replace(/^-/, '');\n }\n return h;\n };\n /**\n * get PEM string from hexadecimal data and header string\n * @name getPEMStringFromHex\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} dataHex hexadecimal string of PEM body\n * @param {String} pemHeader PEM header string (ex. 'RSA PRIVATE KEY')\n * @return {String} PEM formatted string of input data\n * @description\n * This method converts a hexadecimal string to a PEM string with\n * a specified header. Its line break will be CRLF(\"\\r\\n\").\n * @example\n * var pem = KJUR.asn1.ASN1Util.getPEMStringFromHex('616161', 'RSA PRIVATE KEY');\n * // value of pem will be:\n * -----BEGIN PRIVATE KEY-----\n * YWFh\n * -----END PRIVATE KEY-----\n */\n this.getPEMStringFromHex = function (dataHex, pemHeader) {\n return hextopem(dataHex, pemHeader);\n };\n /**\n * generate ASN1Object specifed by JSON parameters\n * @name newObject\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {Array} param JSON parameter to generate ASN1Object\n * @return {KJUR.asn1.ASN1Object} generated object\n * @since asn1 1.0.3\n * @description\n * generate any ASN1Object specified by JSON param\n * including ASN.1 primitive or structured.\n * Generally 'param' can be described as follows:\n *
\n * {TYPE-OF-ASNOBJ: ASN1OBJ-PARAMETER}\n *
\n * 'TYPE-OF-ASN1OBJ' can be one of following symbols:\n *
    \n *
  • 'bool' - DERBoolean
  • \n *
  • 'int' - DERInteger
  • \n *
  • 'bitstr' - DERBitString
  • \n *
  • 'octstr' - DEROctetString
  • \n *
  • 'null' - DERNull
  • \n *
  • 'oid' - DERObjectIdentifier
  • \n *
  • 'enum' - DEREnumerated
  • \n *
  • 'utf8str' - DERUTF8String
  • \n *
  • 'numstr' - DERNumericString
  • \n *
  • 'prnstr' - DERPrintableString
  • \n *
  • 'telstr' - DERTeletexString
  • \n *
  • 'ia5str' - DERIA5String
  • \n *
  • 'utctime' - DERUTCTime
  • \n *
  • 'gentime' - DERGeneralizedTime
  • \n *
  • 'seq' - DERSequence
  • \n *
  • 'set' - DERSet
  • \n *
  • 'tag' - DERTaggedObject
  • \n *
\n * @example\n * newObject({'prnstr': 'aaa'});\n * newObject({'seq': [{'int': 3}, {'prnstr': 'aaa'}]})\n * // ASN.1 Tagged Object\n * newObject({'tag': {'tag': 'a1',\n * 'explicit': true,\n * 'obj': {'seq': [{'int': 3}, {'prnstr': 'aaa'}]}}});\n * // more simple representation of ASN.1 Tagged Object\n * newObject({'tag': ['a1',\n * true,\n * {'seq': [\n * {'int': 3},\n * {'prnstr': 'aaa'}]}\n * ]});\n */\n this.newObject = function (param) {\n var _KJUR = KJUR, _KJUR_asn1 = _KJUR.asn1, _DERBoolean = _KJUR_asn1.DERBoolean, _DERInteger = _KJUR_asn1.DERInteger, _DERBitString = _KJUR_asn1.DERBitString, _DEROctetString = _KJUR_asn1.DEROctetString, _DERNull = _KJUR_asn1.DERNull, _DERObjectIdentifier = _KJUR_asn1.DERObjectIdentifier, _DEREnumerated = _KJUR_asn1.DEREnumerated, _DERUTF8String = _KJUR_asn1.DERUTF8String, _DERNumericString = _KJUR_asn1.DERNumericString, _DERPrintableString = _KJUR_asn1.DERPrintableString, _DERTeletexString = _KJUR_asn1.DERTeletexString, _DERIA5String = _KJUR_asn1.DERIA5String, _DERUTCTime = _KJUR_asn1.DERUTCTime, _DERGeneralizedTime = _KJUR_asn1.DERGeneralizedTime, _DERSequence = _KJUR_asn1.DERSequence, _DERSet = _KJUR_asn1.DERSet, _DERTaggedObject = _KJUR_asn1.DERTaggedObject, _newObject = _KJUR_asn1.ASN1Util.newObject;\n var keys = Object.keys(param);\n if (keys.length != 1)\n throw \"key of param shall be only one.\";\n var key = keys[0];\n if (\":bool:int:bitstr:octstr:null:oid:enum:utf8str:numstr:prnstr:telstr:ia5str:utctime:gentime:seq:set:tag:\".indexOf(\":\" + key + \":\") == -1)\n throw \"undefined key: \" + key;\n if (key == \"bool\")\n return new _DERBoolean(param[key]);\n if (key == \"int\")\n return new _DERInteger(param[key]);\n if (key == \"bitstr\")\n return new _DERBitString(param[key]);\n if (key == \"octstr\")\n return new _DEROctetString(param[key]);\n if (key == \"null\")\n return new _DERNull(param[key]);\n if (key == \"oid\")\n return new _DERObjectIdentifier(param[key]);\n if (key == \"enum\")\n return new _DEREnumerated(param[key]);\n if (key == \"utf8str\")\n return new _DERUTF8String(param[key]);\n if (key == \"numstr\")\n return new _DERNumericString(param[key]);\n if (key == \"prnstr\")\n return new _DERPrintableString(param[key]);\n if (key == \"telstr\")\n return new _DERTeletexString(param[key]);\n if (key == \"ia5str\")\n return new _DERIA5String(param[key]);\n if (key == \"utctime\")\n return new _DERUTCTime(param[key]);\n if (key == \"gentime\")\n return new _DERGeneralizedTime(param[key]);\n if (key == \"seq\") {\n var paramList = param[key];\n var a = [];\n for (var i = 0; i < paramList.length; i++) {\n var asn1Obj = _newObject(paramList[i]);\n a.push(asn1Obj);\n }\n return new _DERSequence({ 'array': a });\n }\n if (key == \"set\") {\n var paramList = param[key];\n var a = [];\n for (var i = 0; i < paramList.length; i++) {\n var asn1Obj = _newObject(paramList[i]);\n a.push(asn1Obj);\n }\n return new _DERSet({ 'array': a });\n }\n if (key == \"tag\") {\n var tagParam = param[key];\n if (Object.prototype.toString.call(tagParam) === '[object Array]' &&\n tagParam.length == 3) {\n var obj = _newObject(tagParam[2]);\n return new _DERTaggedObject({ tag: tagParam[0],\n explicit: tagParam[1],\n obj: obj });\n }\n else {\n var newParam = {};\n if (tagParam.explicit !== undefined)\n newParam.explicit = tagParam.explicit;\n if (tagParam.tag !== undefined)\n newParam.tag = tagParam.tag;\n if (tagParam.obj === undefined)\n throw \"obj shall be specified for 'tag'.\";\n newParam.obj = _newObject(tagParam.obj);\n return new _DERTaggedObject(newParam);\n }\n }\n };\n /**\n * get encoded hexadecimal string of ASN1Object specifed by JSON parameters\n * @name jsonToASN1HEX\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {Array} param JSON parameter to generate ASN1Object\n * @return hexadecimal string of ASN1Object\n * @since asn1 1.0.4\n * @description\n * As for ASN.1 object representation of JSON object,\n * please see {@link newObject}.\n * @example\n * jsonToASN1HEX({'prnstr': 'aaa'});\n */\n this.jsonToASN1HEX = function (param) {\n var asn1Obj = this.newObject(param);\n return asn1Obj.getEncodedHex();\n };\n};\n/**\n * get dot noted oid number string from hexadecimal value of OID\n * @name oidHexToInt\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} hex hexadecimal value of object identifier\n * @return {String} dot noted string of object identifier\n * @since jsrsasign 4.8.3 asn1 1.0.7\n * @description\n * This static method converts from hexadecimal string representation of\n * ASN.1 value of object identifier to oid number string.\n * @example\n * KJUR.asn1.ASN1Util.oidHexToInt('550406') → \"2.5.4.6\"\n */\nKJUR.asn1.ASN1Util.oidHexToInt = function (hex) {\n var s = \"\";\n var i01 = parseInt(hex.substr(0, 2), 16);\n var i0 = Math.floor(i01 / 40);\n var i1 = i01 % 40;\n var s = i0 + \".\" + i1;\n var binbuf = \"\";\n for (var i = 2; i < hex.length; i += 2) {\n var value = parseInt(hex.substr(i, 2), 16);\n var bin = (\"00000000\" + value.toString(2)).slice(-8);\n binbuf = binbuf + bin.substr(1, 7);\n if (bin.substr(0, 1) == \"0\") {\n var bi = new BigInteger(binbuf, 2);\n s = s + \".\" + bi.toString(10);\n binbuf = \"\";\n }\n }\n ;\n return s;\n};\n/**\n * get hexadecimal value of object identifier from dot noted oid value\n * @name oidIntToHex\n * @memberOf KJUR.asn1.ASN1Util\n * @function\n * @param {String} oidString dot noted string of object identifier\n * @return {String} hexadecimal value of object identifier\n * @since jsrsasign 4.8.3 asn1 1.0.7\n * @description\n * This static method converts from object identifier value string.\n * to hexadecimal string representation of it.\n * @example\n * KJUR.asn1.ASN1Util.oidIntToHex(\"2.5.4.6\") → \"550406\"\n */\nKJUR.asn1.ASN1Util.oidIntToHex = function (oidString) {\n var itox = function (i) {\n var h = i.toString(16);\n if (h.length == 1)\n h = '0' + h;\n return h;\n };\n var roidtox = function (roid) {\n var h = '';\n var bi = new BigInteger(roid, 10);\n var b = bi.toString(2);\n var padLen = 7 - b.length % 7;\n if (padLen == 7)\n padLen = 0;\n var bPad = '';\n for (var i = 0; i < padLen; i++)\n bPad += '0';\n b = bPad + b;\n for (var i = 0; i < b.length - 1; i += 7) {\n var b8 = b.substr(i, 7);\n if (i != b.length - 7)\n b8 = '1' + b8;\n h += itox(parseInt(b8, 2));\n }\n return h;\n };\n if (!oidString.match(/^[0-9.]+$/)) {\n throw \"malformed oid string: \" + oidString;\n }\n var h = '';\n var a = oidString.split('.');\n var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);\n h += itox(i0);\n a.splice(0, 2);\n for (var i = 0; i < a.length; i++) {\n h += roidtox(a[i]);\n }\n return h;\n};\n// ********************************************************************\n// Abstract ASN.1 Classes\n// ********************************************************************\n// ********************************************************************\n/**\n * base class for ASN.1 DER encoder object\n * @name KJUR.asn1.ASN1Object\n * @class base class for ASN.1 DER encoder object\n * @property {Boolean} isModified flag whether internal data was changed\n * @property {String} hTLV hexadecimal string of ASN.1 TLV\n * @property {String} hT hexadecimal string of ASN.1 TLV tag(T)\n * @property {String} hL hexadecimal string of ASN.1 TLV length(L)\n * @property {String} hV hexadecimal string of ASN.1 TLV value(V)\n * @description\n */\nKJUR.asn1.ASN1Object = function () {\n var isModified = true;\n var hTLV = null;\n var hT = '00';\n var hL = '00';\n var hV = '';\n /**\n * get hexadecimal ASN.1 TLV length(L) bytes from TLV value(V)\n * @name getLengthHexFromValue\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV length(L)\n */\n this.getLengthHexFromValue = function () {\n if (typeof this.hV == \"undefined\" || this.hV == null) {\n throw \"this.hV is null or undefined.\";\n }\n if (this.hV.length % 2 == 1) {\n throw \"value hex must be even length: n=\" + hV.length + \",v=\" + this.hV;\n }\n var n = this.hV.length / 2;\n var hN = n.toString(16);\n if (hN.length % 2 == 1) {\n hN = \"0\" + hN;\n }\n if (n < 128) {\n return hN;\n }\n else {\n var hNlen = hN.length / 2;\n if (hNlen > 15) {\n throw \"ASN.1 length too long to represent by 8x: n = \" + n.toString(16);\n }\n var head = 128 + hNlen;\n return head.toString(16) + hN;\n }\n };\n /**\n * get hexadecimal string of ASN.1 TLV bytes\n * @name getEncodedHex\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV\n */\n this.getEncodedHex = function () {\n if (this.hTLV == null || this.isModified) {\n this.hV = this.getFreshValueHex();\n this.hL = this.getLengthHexFromValue();\n this.hTLV = this.hT + this.hL + this.hV;\n this.isModified = false;\n //alert(\"first time: \" + this.hTLV);\n }\n return this.hTLV;\n };\n /**\n * get hexadecimal string of ASN.1 TLV value(V) bytes\n * @name getValueHex\n * @memberOf KJUR.asn1.ASN1Object#\n * @function\n * @return {String} hexadecimal string of ASN.1 TLV value(V) bytes\n */\n this.getValueHex = function () {\n this.getEncodedHex();\n return this.hV;\n };\n this.getFreshValueHex = function () {\n return '';\n };\n};\n// == BEGIN DERAbstractString ================================================\n/**\n * base class for ASN.1 DER string classes\n * @name KJUR.asn1.DERAbstractString\n * @class base class for ASN.1 DER string classes\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @property {String} s internal string of value\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • str - specify initial ASN.1 value(V) by a string
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERAbstractString = function (params) {\n KJUR.asn1.DERAbstractString.superclass.constructor.call(this);\n var s = null;\n var hV = null;\n /**\n * get string value of this string object\n * @name getString\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @return {String} string value of this string object\n */\n this.getString = function () {\n return this.s;\n };\n /**\n * set value by a string\n * @name setString\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @param {String} newS value by a string to set\n */\n this.setString = function (newS) {\n this.hTLV = null;\n this.isModified = true;\n this.s = newS;\n this.hV = stohex(this.s);\n };\n /**\n * set value by a hexadecimal string\n * @name setStringHex\n * @memberOf KJUR.asn1.DERAbstractString#\n * @function\n * @param {String} newHexString value by a hexadecimal string to set\n */\n this.setStringHex = function (newHexString) {\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = newHexString;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params == \"string\") {\n this.setString(params);\n }\n else if (typeof params['str'] != \"undefined\") {\n this.setString(params['str']);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setStringHex(params['hex']);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERAbstractString, KJUR.asn1.ASN1Object);\n// == END DERAbstractString ================================================\n// == BEGIN DERAbstractTime ==================================================\n/**\n * base class for ASN.1 DER Generalized/UTCTime class\n * @name KJUR.asn1.DERAbstractTime\n * @class base class for ASN.1 DER Generalized/UTCTime class\n * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'})\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERAbstractTime = function (params) {\n KJUR.asn1.DERAbstractTime.superclass.constructor.call(this);\n var s = null;\n var date = null;\n // --- PRIVATE METHODS --------------------\n this.localDateToUTC = function (d) {\n utc = d.getTime() + (d.getTimezoneOffset() * 60000);\n var utcDate = new Date(utc);\n return utcDate;\n };\n /*\n * format date string by Data object\n * @name formatDate\n * @memberOf KJUR.asn1.AbstractTime;\n * @param {Date} dateObject\n * @param {string} type 'utc' or 'gen'\n * @param {boolean} withMillis flag for with millisections or not\n * @description\n * 'withMillis' flag is supported from asn1 1.0.6.\n */\n this.formatDate = function (dateObject, type, withMillis) {\n var pad = this.zeroPadding;\n var d = this.localDateToUTC(dateObject);\n var year = String(d.getFullYear());\n if (type == 'utc')\n year = year.substr(2, 2);\n var month = pad(String(d.getMonth() + 1), 2);\n var day = pad(String(d.getDate()), 2);\n var hour = pad(String(d.getHours()), 2);\n var min = pad(String(d.getMinutes()), 2);\n var sec = pad(String(d.getSeconds()), 2);\n var s = year + month + day + hour + min + sec;\n if (withMillis === true) {\n var millis = d.getMilliseconds();\n if (millis != 0) {\n var sMillis = pad(String(millis), 3);\n sMillis = sMillis.replace(/[0]+$/, \"\");\n s = s + \".\" + sMillis;\n }\n }\n return s + \"Z\";\n };\n this.zeroPadding = function (s, len) {\n if (s.length >= len)\n return s;\n return new Array(len - s.length + 1).join('0') + s;\n };\n // --- PUBLIC METHODS --------------------\n /**\n * get string value of this string object\n * @name getString\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @return {String} string value of this time object\n */\n this.getString = function () {\n return this.s;\n };\n /**\n * set value by a string\n * @name setString\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @param {String} newS value by a string to set such like \"130430235959Z\"\n */\n this.setString = function (newS) {\n this.hTLV = null;\n this.isModified = true;\n this.s = newS;\n this.hV = stohex(newS);\n };\n /**\n * set value by a Date object\n * @name setByDateValue\n * @memberOf KJUR.asn1.DERAbstractTime#\n * @function\n * @param {Integer} year year of date (ex. 2013)\n * @param {Integer} month month of date between 1 and 12 (ex. 12)\n * @param {Integer} day day of month\n * @param {Integer} hour hours of date\n * @param {Integer} min minutes of date\n * @param {Integer} sec seconds of date\n */\n this.setByDateValue = function (year, month, day, hour, min, sec) {\n var dateObject = new Date(Date.UTC(year, month - 1, day, hour, min, sec, 0));\n this.setByDate(dateObject);\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n};\nYAHOO.lang.extend(KJUR.asn1.DERAbstractTime, KJUR.asn1.ASN1Object);\n// == END DERAbstractTime ==================================================\n// == BEGIN DERAbstractStructured ============================================\n/**\n * base class for ASN.1 DER structured class\n * @name KJUR.asn1.DERAbstractStructured\n * @class base class for ASN.1 DER structured class\n * @property {Array} asn1Array internal array of ASN1Object\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERAbstractStructured = function (params) {\n KJUR.asn1.DERAbstractString.superclass.constructor.call(this);\n var asn1Array = null;\n /**\n * set value by array of ASN1Object\n * @name setByASN1ObjectArray\n * @memberOf KJUR.asn1.DERAbstractStructured#\n * @function\n * @param {array} asn1ObjectArray array of ASN1Object to set\n */\n this.setByASN1ObjectArray = function (asn1ObjectArray) {\n this.hTLV = null;\n this.isModified = true;\n this.asn1Array = asn1ObjectArray;\n };\n /**\n * append an ASN1Object to internal array\n * @name appendASN1Object\n * @memberOf KJUR.asn1.DERAbstractStructured#\n * @function\n * @param {ASN1Object} asn1Object to add\n */\n this.appendASN1Object = function (asn1Object) {\n this.hTLV = null;\n this.isModified = true;\n this.asn1Array.push(asn1Object);\n };\n this.asn1Array = new Array();\n if (typeof params != \"undefined\") {\n if (typeof params['array'] != \"undefined\") {\n this.asn1Array = params['array'];\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERAbstractStructured, KJUR.asn1.ASN1Object);\n// ********************************************************************\n// ASN.1 Object Classes\n// ********************************************************************\n// ********************************************************************\n/**\n * class for ASN.1 DER Boolean\n * @name KJUR.asn1.DERBoolean\n * @class class for ASN.1 DER Boolean\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERBoolean = function () {\n KJUR.asn1.DERBoolean.superclass.constructor.call(this);\n this.hT = \"01\";\n this.hTLV = \"0101ff\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERBoolean, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER Integer\n * @name KJUR.asn1.DERInteger\n * @class class for ASN.1 DER Integer\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • int - specify initial ASN.1 value(V) by integer value
  • \n *
  • bigint - specify initial ASN.1 value(V) by BigInteger object
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERInteger = function (params) {\n KJUR.asn1.DERInteger.superclass.constructor.call(this);\n this.hT = \"02\";\n /**\n * set value by Tom Wu's BigInteger object\n * @name setByBigInteger\n * @memberOf KJUR.asn1.DERInteger#\n * @function\n * @param {BigInteger} bigIntegerValue to set\n */\n this.setByBigInteger = function (bigIntegerValue) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);\n };\n /**\n * set value by integer value\n * @name setByInteger\n * @memberOf KJUR.asn1.DERInteger\n * @function\n * @param {Integer} integer value to set\n */\n this.setByInteger = function (intValue) {\n var bi = new BigInteger(String(intValue), 10);\n this.setByBigInteger(bi);\n };\n /**\n * set value by integer value\n * @name setValueHex\n * @memberOf KJUR.asn1.DERInteger#\n * @function\n * @param {String} hexadecimal string of integer value\n * @description\n *
\n * NOTE: Value shall be represented by minimum octet length of\n * two's complement representation.\n * @example\n * new KJUR.asn1.DERInteger(123);\n * new KJUR.asn1.DERInteger({'int': 123});\n * new KJUR.asn1.DERInteger({'hex': '1fad'});\n */\n this.setValueHex = function (newHexString) {\n this.hV = newHexString;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params['bigint'] != \"undefined\") {\n this.setByBigInteger(params['bigint']);\n }\n else if (typeof params['int'] != \"undefined\") {\n this.setByInteger(params['int']);\n }\n else if (typeof params == \"number\") {\n this.setByInteger(params);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setValueHex(params['hex']);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERInteger, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER encoded BitString primitive\n * @name KJUR.asn1.DERBitString\n * @class class for ASN.1 DER encoded BitString primitive\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • bin - specify binary string (ex. '10111')
  • \n *
  • array - specify array of boolean (ex. [true,false,true,true])
  • \n *
  • hex - specify hexadecimal string of ASN.1 value(V) including unused bits
  • \n *
  • obj - specify {@link KJUR.asn1.ASN1Util.newObject}\n * argument for \"BitString encapsulates\" structure.
  • \n *
\n * NOTE1: 'params' can be omitted.
\n * NOTE2: 'obj' parameter have been supported since\n * asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).
\n * @example\n * // default constructor\n * o = new KJUR.asn1.DERBitString();\n * // initialize with binary string\n * o = new KJUR.asn1.DERBitString({bin: \"1011\"});\n * // initialize with boolean array\n * o = new KJUR.asn1.DERBitString({array: [true,false,true,true]});\n * // initialize with hexadecimal string (04 is unused bits)\n * o = new KJUR.asn1.DEROctetString({hex: \"04bac0\"});\n * // initialize with ASN1Util.newObject argument for encapsulated\n * o = new KJUR.asn1.DERBitString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}});\n * // above generates a ASN.1 data like this:\n * // BIT STRING, encapsulates {\n * // SEQUENCE {\n * // INTEGER 3\n * // PrintableString 'aaa'\n * // }\n * // }\n */\nKJUR.asn1.DERBitString = function (params) {\n if (params !== undefined && typeof params.obj !== \"undefined\") {\n var o = KJUR.asn1.ASN1Util.newObject(params.obj);\n params.hex = \"00\" + o.getEncodedHex();\n }\n KJUR.asn1.DERBitString.superclass.constructor.call(this);\n this.hT = \"03\";\n /**\n * set ASN.1 value(V) by a hexadecimal string including unused bits\n * @name setHexValueIncludingUnusedBits\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {String} newHexStringIncludingUnusedBits\n */\n this.setHexValueIncludingUnusedBits = function (newHexStringIncludingUnusedBits) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = newHexStringIncludingUnusedBits;\n };\n /**\n * set ASN.1 value(V) by unused bit and hexadecimal string of value\n * @name setUnusedBitsAndHexValue\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {Integer} unusedBits\n * @param {String} hValue\n */\n this.setUnusedBitsAndHexValue = function (unusedBits, hValue) {\n if (unusedBits < 0 || 7 < unusedBits) {\n throw \"unused bits shall be from 0 to 7: u = \" + unusedBits;\n }\n var hUnusedBits = \"0\" + unusedBits;\n this.hTLV = null;\n this.isModified = true;\n this.hV = hUnusedBits + hValue;\n };\n /**\n * set ASN.1 DER BitString by binary string
\n * @name setByBinaryString\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {String} binaryString binary value string (i.e. '10111')\n * @description\n * Its unused bits will be calculated automatically by length of\n * 'binaryValue'.
\n * NOTE: Trailing zeros '0' will be ignored.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.setByBooleanArray(\"01011\");\n */\n this.setByBinaryString = function (binaryString) {\n binaryString = binaryString.replace(/0+$/, '');\n var unusedBits = 8 - binaryString.length % 8;\n if (unusedBits == 8)\n unusedBits = 0;\n for (var i = 0; i <= unusedBits; i++) {\n binaryString += '0';\n }\n var h = '';\n for (var i = 0; i < binaryString.length - 1; i += 8) {\n var b = binaryString.substr(i, 8);\n var x = parseInt(b, 2).toString(16);\n if (x.length == 1)\n x = '0' + x;\n h += x;\n }\n this.hTLV = null;\n this.isModified = true;\n this.hV = '0' + unusedBits + h;\n };\n /**\n * set ASN.1 TLV value(V) by an array of boolean
\n * @name setByBooleanArray\n * @memberOf KJUR.asn1.DERBitString#\n * @function\n * @param {array} booleanArray array of boolean (ex. [true, false, true])\n * @description\n * NOTE: Trailing falses will be ignored in the ASN.1 DER Object.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.setByBooleanArray([false, true, false, true, true]);\n */\n this.setByBooleanArray = function (booleanArray) {\n var s = '';\n for (var i = 0; i < booleanArray.length; i++) {\n if (booleanArray[i] == true) {\n s += '1';\n }\n else {\n s += '0';\n }\n }\n this.setByBinaryString(s);\n };\n /**\n * generate an array of falses with specified length
\n * @name newFalseArray\n * @memberOf KJUR.asn1.DERBitString\n * @function\n * @param {Integer} nLength length of array to generate\n * @return {array} array of boolean falses\n * @description\n * This static method may be useful to initialize boolean array.\n * @example\n * o = new KJUR.asn1.DERBitString();\n * o.newFalseArray(3) → [false, false, false]\n */\n this.newFalseArray = function (nLength) {\n var a = new Array(nLength);\n for (var i = 0; i < nLength; i++) {\n a[i] = false;\n }\n return a;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params == \"string\" && params.toLowerCase().match(/^[0-9a-f]+$/)) {\n this.setHexValueIncludingUnusedBits(params);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setHexValueIncludingUnusedBits(params['hex']);\n }\n else if (typeof params['bin'] != \"undefined\") {\n this.setByBinaryString(params['bin']);\n }\n else if (typeof params['array'] != \"undefined\") {\n this.setByBooleanArray(params['array']);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERBitString, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER OctetString
\n * @name KJUR.asn1.DEROctetString\n * @class class for ASN.1 DER OctetString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * This class provides ASN.1 OctetString simple type.
\n * Supported \"params\" attributes are:\n *
    \n *
  • str - to set a string as a value
  • \n *
  • hex - to set a hexadecimal string as a value
  • \n *
  • obj - to set a encapsulated ASN.1 value by JSON object\n * which is defined in {@link KJUR.asn1.ASN1Util.newObject}
  • \n *
\n * NOTE: A parameter 'obj' have been supported\n * for \"OCTET STRING, encapsulates\" structure.\n * since asn1 1.0.11, jsrsasign 6.1.1 (2016-Sep-25).\n * @see KJUR.asn1.DERAbstractString - superclass\n * @example\n * // default constructor\n * o = new KJUR.asn1.DEROctetString();\n * // initialize with string\n * o = new KJUR.asn1.DEROctetString({str: \"aaa\"});\n * // initialize with hexadecimal string\n * o = new KJUR.asn1.DEROctetString({hex: \"616161\"});\n * // initialize with ASN1Util.newObject argument\n * o = new KJUR.asn1.DEROctetString({obj: {seq: [{int: 3}, {prnstr: 'aaa'}]}});\n * // above generates a ASN.1 data like this:\n * // OCTET STRING, encapsulates {\n * // SEQUENCE {\n * // INTEGER 3\n * // PrintableString 'aaa'\n * // }\n * // }\n */\nKJUR.asn1.DEROctetString = function (params) {\n if (params !== undefined && typeof params.obj !== \"undefined\") {\n var o = KJUR.asn1.ASN1Util.newObject(params.obj);\n params.hex = o.getEncodedHex();\n }\n KJUR.asn1.DEROctetString.superclass.constructor.call(this, params);\n this.hT = \"04\";\n};\nYAHOO.lang.extend(KJUR.asn1.DEROctetString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER Null\n * @name KJUR.asn1.DERNull\n * @class class for ASN.1 DER Null\n * @extends KJUR.asn1.ASN1Object\n * @description\n * @see KJUR.asn1.ASN1Object - superclass\n */\nKJUR.asn1.DERNull = function () {\n KJUR.asn1.DERNull.superclass.constructor.call(this);\n this.hT = \"05\";\n this.hTLV = \"0500\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERNull, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER ObjectIdentifier\n * @name KJUR.asn1.DERObjectIdentifier\n * @class class for ASN.1 DER ObjectIdentifier\n * @param {Array} params associative array of parameters (ex. {'oid': '2.5.4.5'})\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • oid - specify initial ASN.1 value(V) by a oid string (ex. 2.5.4.13)
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERObjectIdentifier = function (params) {\n var itox = function (i) {\n var h = i.toString(16);\n if (h.length == 1)\n h = '0' + h;\n return h;\n };\n var roidtox = function (roid) {\n var h = '';\n var bi = new BigInteger(roid, 10);\n var b = bi.toString(2);\n var padLen = 7 - b.length % 7;\n if (padLen == 7)\n padLen = 0;\n var bPad = '';\n for (var i = 0; i < padLen; i++)\n bPad += '0';\n b = bPad + b;\n for (var i = 0; i < b.length - 1; i += 7) {\n var b8 = b.substr(i, 7);\n if (i != b.length - 7)\n b8 = '1' + b8;\n h += itox(parseInt(b8, 2));\n }\n return h;\n };\n KJUR.asn1.DERObjectIdentifier.superclass.constructor.call(this);\n this.hT = \"06\";\n /**\n * set value by a hexadecimal string\n * @name setValueHex\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} newHexString hexadecimal value of OID bytes\n */\n this.setValueHex = function (newHexString) {\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = newHexString;\n };\n /**\n * set value by a OID string
\n * @name setValueOidString\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} oidString OID string (ex. 2.5.4.13)\n * @example\n * o = new KJUR.asn1.DERObjectIdentifier();\n * o.setValueOidString(\"2.5.4.13\");\n */\n this.setValueOidString = function (oidString) {\n if (!oidString.match(/^[0-9.]+$/)) {\n throw \"malformed oid string: \" + oidString;\n }\n var h = '';\n var a = oidString.split('.');\n var i0 = parseInt(a[0]) * 40 + parseInt(a[1]);\n h += itox(i0);\n a.splice(0, 2);\n for (var i = 0; i < a.length; i++) {\n h += roidtox(a[i]);\n }\n this.hTLV = null;\n this.isModified = true;\n this.s = null;\n this.hV = h;\n };\n /**\n * set value by a OID name\n * @name setValueName\n * @memberOf KJUR.asn1.DERObjectIdentifier#\n * @function\n * @param {String} oidName OID name (ex. 'serverAuth')\n * @since 1.0.1\n * @description\n * OID name shall be defined in 'KJUR.asn1.x509.OID.name2oidList'.\n * Otherwise raise error.\n * @example\n * o = new KJUR.asn1.DERObjectIdentifier();\n * o.setValueName(\"serverAuth\");\n */\n this.setValueName = function (oidName) {\n var oid = KJUR.asn1.x509.OID.name2oid(oidName);\n if (oid !== '') {\n this.setValueOidString(oid);\n }\n else {\n throw \"DERObjectIdentifier oidName undefined: \" + oidName;\n }\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (params !== undefined) {\n if (typeof params === \"string\") {\n if (params.match(/^[0-2].[0-9.]+$/)) {\n this.setValueOidString(params);\n }\n else {\n this.setValueName(params);\n }\n }\n else if (params.oid !== undefined) {\n this.setValueOidString(params.oid);\n }\n else if (params.hex !== undefined) {\n this.setValueHex(params.hex);\n }\n else if (params.name !== undefined) {\n this.setValueName(params.name);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERObjectIdentifier, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER Enumerated\n * @name KJUR.asn1.DEREnumerated\n * @class class for ASN.1 DER Enumerated\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • int - specify initial ASN.1 value(V) by integer value
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
\n * NOTE: 'params' can be omitted.\n * @example\n * new KJUR.asn1.DEREnumerated(123);\n * new KJUR.asn1.DEREnumerated({int: 123});\n * new KJUR.asn1.DEREnumerated({hex: '1fad'});\n */\nKJUR.asn1.DEREnumerated = function (params) {\n KJUR.asn1.DEREnumerated.superclass.constructor.call(this);\n this.hT = \"0a\";\n /**\n * set value by Tom Wu's BigInteger object\n * @name setByBigInteger\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {BigInteger} bigIntegerValue to set\n */\n this.setByBigInteger = function (bigIntegerValue) {\n this.hTLV = null;\n this.isModified = true;\n this.hV = KJUR.asn1.ASN1Util.bigIntToMinTwosComplementsHex(bigIntegerValue);\n };\n /**\n * set value by integer value\n * @name setByInteger\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {Integer} integer value to set\n */\n this.setByInteger = function (intValue) {\n var bi = new BigInteger(String(intValue), 10);\n this.setByBigInteger(bi);\n };\n /**\n * set value by integer value\n * @name setValueHex\n * @memberOf KJUR.asn1.DEREnumerated#\n * @function\n * @param {String} hexadecimal string of integer value\n * @description\n *
\n * NOTE: Value shall be represented by minimum octet length of\n * two's complement representation.\n */\n this.setValueHex = function (newHexString) {\n this.hV = newHexString;\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params['int'] != \"undefined\") {\n this.setByInteger(params['int']);\n }\n else if (typeof params == \"number\") {\n this.setByInteger(params);\n }\n else if (typeof params['hex'] != \"undefined\") {\n this.setValueHex(params['hex']);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DEREnumerated, KJUR.asn1.ASN1Object);\n// ********************************************************************\n/**\n * class for ASN.1 DER UTF8String\n * @name KJUR.asn1.DERUTF8String\n * @class class for ASN.1 DER UTF8String\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERUTF8String = function (params) {\n KJUR.asn1.DERUTF8String.superclass.constructor.call(this, params);\n this.hT = \"0c\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERUTF8String, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER NumericString\n * @name KJUR.asn1.DERNumericString\n * @class class for ASN.1 DER NumericString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERNumericString = function (params) {\n KJUR.asn1.DERNumericString.superclass.constructor.call(this, params);\n this.hT = \"12\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERNumericString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER PrintableString\n * @name KJUR.asn1.DERPrintableString\n * @class class for ASN.1 DER PrintableString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERPrintableString = function (params) {\n KJUR.asn1.DERPrintableString.superclass.constructor.call(this, params);\n this.hT = \"13\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERPrintableString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER TeletexString\n * @name KJUR.asn1.DERTeletexString\n * @class class for ASN.1 DER TeletexString\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERTeletexString = function (params) {\n KJUR.asn1.DERTeletexString.superclass.constructor.call(this, params);\n this.hT = \"14\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERTeletexString, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER IA5String\n * @name KJUR.asn1.DERIA5String\n * @class class for ASN.1 DER IA5String\n * @param {Array} params associative array of parameters (ex. {'str': 'aaa'})\n * @extends KJUR.asn1.DERAbstractString\n * @description\n * @see KJUR.asn1.DERAbstractString - superclass\n */\nKJUR.asn1.DERIA5String = function (params) {\n KJUR.asn1.DERIA5String.superclass.constructor.call(this, params);\n this.hT = \"16\";\n};\nYAHOO.lang.extend(KJUR.asn1.DERIA5String, KJUR.asn1.DERAbstractString);\n// ********************************************************************\n/**\n * class for ASN.1 DER UTCTime\n * @name KJUR.asn1.DERUTCTime\n * @class class for ASN.1 DER UTCTime\n * @param {Array} params associative array of parameters (ex. {'str': '130430235959Z'})\n * @extends KJUR.asn1.DERAbstractTime\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • str - specify initial ASN.1 value(V) by a string (ex.'130430235959Z')
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
  • date - specify Date object.
  • \n *
\n * NOTE: 'params' can be omitted.\n *

EXAMPLES

\n * @example\n * d1 = new KJUR.asn1.DERUTCTime();\n * d1.setString('130430125959Z');\n *\n * d2 = new KJUR.asn1.DERUTCTime({'str': '130430125959Z'});\n * d3 = new KJUR.asn1.DERUTCTime({'date': new Date(Date.UTC(2015, 0, 31, 0, 0, 0, 0))});\n * d4 = new KJUR.asn1.DERUTCTime('130430125959Z');\n */\nKJUR.asn1.DERUTCTime = function (params) {\n KJUR.asn1.DERUTCTime.superclass.constructor.call(this, params);\n this.hT = \"17\";\n /**\n * set value by a Date object
\n * @name setByDate\n * @memberOf KJUR.asn1.DERUTCTime#\n * @function\n * @param {Date} dateObject Date object to set ASN.1 value(V)\n * @example\n * o = new KJUR.asn1.DERUTCTime();\n * o.setByDate(new Date(\"2016/12/31\"));\n */\n this.setByDate = function (dateObject) {\n this.hTLV = null;\n this.isModified = true;\n this.date = dateObject;\n this.s = this.formatDate(this.date, 'utc');\n this.hV = stohex(this.s);\n };\n this.getFreshValueHex = function () {\n if (typeof this.date == \"undefined\" && typeof this.s == \"undefined\") {\n this.date = new Date();\n this.s = this.formatDate(this.date, 'utc');\n this.hV = stohex(this.s);\n }\n return this.hV;\n };\n if (params !== undefined) {\n if (params.str !== undefined) {\n this.setString(params.str);\n }\n else if (typeof params == \"string\" && params.match(/^[0-9]{12}Z$/)) {\n this.setString(params);\n }\n else if (params.hex !== undefined) {\n this.setStringHex(params.hex);\n }\n else if (params.date !== undefined) {\n this.setByDate(params.date);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERUTCTime, KJUR.asn1.DERAbstractTime);\n// ********************************************************************\n/**\n * class for ASN.1 DER GeneralizedTime\n * @name KJUR.asn1.DERGeneralizedTime\n * @class class for ASN.1 DER GeneralizedTime\n * @param {Array} params associative array of parameters (ex. {'str': '20130430235959Z'})\n * @property {Boolean} withMillis flag to show milliseconds or not\n * @extends KJUR.asn1.DERAbstractTime\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • str - specify initial ASN.1 value(V) by a string (ex.'20130430235959Z')
  • \n *
  • hex - specify initial ASN.1 value(V) by a hexadecimal string
  • \n *
  • date - specify Date object.
  • \n *
  • millis - specify flag to show milliseconds (from 1.0.6)
  • \n *
\n * NOTE1: 'params' can be omitted.\n * NOTE2: 'withMillis' property is supported from asn1 1.0.6.\n */\nKJUR.asn1.DERGeneralizedTime = function (params) {\n KJUR.asn1.DERGeneralizedTime.superclass.constructor.call(this, params);\n this.hT = \"18\";\n this.withMillis = false;\n /**\n * set value by a Date object\n * @name setByDate\n * @memberOf KJUR.asn1.DERGeneralizedTime#\n * @function\n * @param {Date} dateObject Date object to set ASN.1 value(V)\n * @example\n * When you specify UTC time, use 'Date.UTC' method like this:
\n * o1 = new DERUTCTime();\n * o1.setByDate(date);\n *\n * date = new Date(Date.UTC(2015, 0, 31, 23, 59, 59, 0)); #2015JAN31 23:59:59\n */\n this.setByDate = function (dateObject) {\n this.hTLV = null;\n this.isModified = true;\n this.date = dateObject;\n this.s = this.formatDate(this.date, 'gen', this.withMillis);\n this.hV = stohex(this.s);\n };\n this.getFreshValueHex = function () {\n if (this.date === undefined && this.s === undefined) {\n this.date = new Date();\n this.s = this.formatDate(this.date, 'gen', this.withMillis);\n this.hV = stohex(this.s);\n }\n return this.hV;\n };\n if (params !== undefined) {\n if (params.str !== undefined) {\n this.setString(params.str);\n }\n else if (typeof params == \"string\" && params.match(/^[0-9]{14}Z$/)) {\n this.setString(params);\n }\n else if (params.hex !== undefined) {\n this.setStringHex(params.hex);\n }\n else if (params.date !== undefined) {\n this.setByDate(params.date);\n }\n if (params.millis === true) {\n this.withMillis = true;\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERGeneralizedTime, KJUR.asn1.DERAbstractTime);\n// ********************************************************************\n/**\n * class for ASN.1 DER Sequence\n * @name KJUR.asn1.DERSequence\n * @class class for ASN.1 DER Sequence\n * @extends KJUR.asn1.DERAbstractStructured\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • array - specify array of ASN1Object to set elements of content
  • \n *
\n * NOTE: 'params' can be omitted.\n */\nKJUR.asn1.DERSequence = function (params) {\n KJUR.asn1.DERSequence.superclass.constructor.call(this, params);\n this.hT = \"30\";\n this.getFreshValueHex = function () {\n var h = '';\n for (var i = 0; i < this.asn1Array.length; i++) {\n var asn1Obj = this.asn1Array[i];\n h += asn1Obj.getEncodedHex();\n }\n this.hV = h;\n return this.hV;\n };\n};\nYAHOO.lang.extend(KJUR.asn1.DERSequence, KJUR.asn1.DERAbstractStructured);\n// ********************************************************************\n/**\n * class for ASN.1 DER Set\n * @name KJUR.asn1.DERSet\n * @class class for ASN.1 DER Set\n * @extends KJUR.asn1.DERAbstractStructured\n * @description\n *
\n * As for argument 'params' for constructor, you can specify one of\n * following properties:\n *
    \n *
  • array - specify array of ASN1Object to set elements of content
  • \n *
  • sortflag - flag for sort (default: true). ASN.1 BER is not sorted in 'SET OF'.
  • \n *
\n * NOTE1: 'params' can be omitted.
\n * NOTE2: sortflag is supported since 1.0.5.\n */\nKJUR.asn1.DERSet = function (params) {\n KJUR.asn1.DERSet.superclass.constructor.call(this, params);\n this.hT = \"31\";\n this.sortFlag = true; // item shall be sorted only in ASN.1 DER\n this.getFreshValueHex = function () {\n var a = new Array();\n for (var i = 0; i < this.asn1Array.length; i++) {\n var asn1Obj = this.asn1Array[i];\n a.push(asn1Obj.getEncodedHex());\n }\n if (this.sortFlag == true)\n a.sort();\n this.hV = a.join('');\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params.sortflag != \"undefined\" &&\n params.sortflag == false)\n this.sortFlag = false;\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERSet, KJUR.asn1.DERAbstractStructured);\n// ********************************************************************\n/**\n * class for ASN.1 DER TaggedObject\n * @name KJUR.asn1.DERTaggedObject\n * @class class for ASN.1 DER TaggedObject\n * @extends KJUR.asn1.ASN1Object\n * @description\n *
\n * Parameter 'tagNoNex' is ASN.1 tag(T) value for this object.\n * For example, if you find '[1]' tag in a ASN.1 dump,\n * 'tagNoHex' will be 'a1'.\n *
\n * As for optional argument 'params' for constructor, you can specify *ANY* of\n * following properties:\n *
    \n *
  • explicit - specify true if this is explicit tag otherwise false\n * (default is 'true').
  • \n *
  • tag - specify tag (default is 'a0' which means [0])
  • \n *
  • obj - specify ASN1Object which is tagged
  • \n *
\n * @example\n * d1 = new KJUR.asn1.DERUTF8String({'str':'a'});\n * d2 = new KJUR.asn1.DERTaggedObject({'obj': d1});\n * hex = d2.getEncodedHex();\n */\nKJUR.asn1.DERTaggedObject = function (params) {\n KJUR.asn1.DERTaggedObject.superclass.constructor.call(this);\n this.hT = \"a0\";\n this.hV = '';\n this.isExplicit = true;\n this.asn1Object = null;\n /**\n * set value by an ASN1Object\n * @name setString\n * @memberOf KJUR.asn1.DERTaggedObject#\n * @function\n * @param {Boolean} isExplicitFlag flag for explicit/implicit tag\n * @param {Integer} tagNoHex hexadecimal string of ASN.1 tag\n * @param {ASN1Object} asn1Object ASN.1 to encapsulate\n */\n this.setASN1Object = function (isExplicitFlag, tagNoHex, asn1Object) {\n this.hT = tagNoHex;\n this.isExplicit = isExplicitFlag;\n this.asn1Object = asn1Object;\n if (this.isExplicit) {\n this.hV = this.asn1Object.getEncodedHex();\n this.hTLV = null;\n this.isModified = true;\n }\n else {\n this.hV = null;\n this.hTLV = asn1Object.getEncodedHex();\n this.hTLV = this.hTLV.replace(/^../, tagNoHex);\n this.isModified = false;\n }\n };\n this.getFreshValueHex = function () {\n return this.hV;\n };\n if (typeof params != \"undefined\") {\n if (typeof params['tag'] != \"undefined\") {\n this.hT = params['tag'];\n }\n if (typeof params['explicit'] != \"undefined\") {\n this.isExplicit = params['explicit'];\n }\n if (typeof params['obj'] != \"undefined\") {\n this.asn1Object = params['obj'];\n this.setASN1Object(this.isExplicit, this.hT, this.asn1Object);\n }\n }\n};\nYAHOO.lang.extend(KJUR.asn1.DERTaggedObject, KJUR.asn1.ASN1Object);\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nimport { hex2b64 } from \"./lib/jsbn/base64\";\nimport { Hex } from \"./lib/asn1js/hex\";\nimport { Base64 } from \"./lib/asn1js/base64\";\nimport { ASN1 } from \"./lib/asn1js/asn1\";\nimport { RSAKey } from \"./lib/jsbn/rsa\";\nimport { parseBigInt } from \"./lib/jsbn/jsbn\";\nimport { KJUR } from \"./lib/jsrsasign/asn1-1.0\";\n/**\n * Create a new JSEncryptRSAKey that extends Tom Wu's RSA key object.\n * This object is just a decorator for parsing the key parameter\n * @param {string|Object} key - The key in string format, or an object containing\n * the parameters needed to build a RSAKey object.\n * @constructor\n */\nvar JSEncryptRSAKey = /** @class */ (function (_super) {\n __extends(JSEncryptRSAKey, _super);\n function JSEncryptRSAKey(key) {\n var _this = _super.call(this) || this;\n // Call the super constructor.\n // RSAKey.call(this);\n // If a key key was provided.\n if (key) {\n // If this is a string...\n if (typeof key === \"string\") {\n _this.parseKey(key);\n }\n else if (JSEncryptRSAKey.hasPrivateKeyProperty(key) ||\n JSEncryptRSAKey.hasPublicKeyProperty(key)) {\n // Set the values for the key.\n _this.parsePropertiesFrom(key);\n }\n }\n return _this;\n }\n /**\n * Method to parse a pem encoded string containing both a public or private key.\n * The method will translate the pem encoded string in a der encoded string and\n * will parse private key and public key parameters. This method accepts public key\n * in the rsaencryption pkcs #1 format (oid: 1.2.840.113549.1.1.1).\n *\n * @todo Check how many rsa formats use the same format of pkcs #1.\n *\n * The format is defined as:\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * it's possible to examine the structure of the keys obtained from openssl using\n * an asn.1 dumper as the one used here to parse the components: http://lapo.it/asn1js/\n * @argument {string} pem the pem encoded string, can include the BEGIN/END header/footer\n * @private\n */\n JSEncryptRSAKey.prototype.parseKey = function (pem) {\n try {\n var modulus = 0;\n var public_exponent = 0;\n var reHex = /^\\s*(?:[0-9A-Fa-f][0-9A-Fa-f]\\s*)+$/;\n var der = reHex.test(pem) ? Hex.decode(pem) : Base64.unarmor(pem);\n var asn1 = ASN1.decode(der);\n // Fixes a bug with OpenSSL 1.0+ private keys\n if (asn1.sub.length === 3) {\n asn1 = asn1.sub[2].sub[0];\n }\n if (asn1.sub.length === 9) {\n // Parse the private key.\n modulus = asn1.sub[1].getHexStringValue(); // bigint\n this.n = parseBigInt(modulus, 16);\n public_exponent = asn1.sub[2].getHexStringValue(); // int\n this.e = parseInt(public_exponent, 16);\n var private_exponent = asn1.sub[3].getHexStringValue(); // bigint\n this.d = parseBigInt(private_exponent, 16);\n var prime1 = asn1.sub[4].getHexStringValue(); // bigint\n this.p = parseBigInt(prime1, 16);\n var prime2 = asn1.sub[5].getHexStringValue(); // bigint\n this.q = parseBigInt(prime2, 16);\n var exponent1 = asn1.sub[6].getHexStringValue(); // bigint\n this.dmp1 = parseBigInt(exponent1, 16);\n var exponent2 = asn1.sub[7].getHexStringValue(); // bigint\n this.dmq1 = parseBigInt(exponent2, 16);\n var coefficient = asn1.sub[8].getHexStringValue(); // bigint\n this.coeff = parseBigInt(coefficient, 16);\n }\n else if (asn1.sub.length === 2) {\n if (asn1.sub[0].sub) {\n // Parse ASN.1 SubjectPublicKeyInfo type as defined by X.509\n var bit_string = asn1.sub[1];\n var sequence = bit_string.sub[0];\n modulus = sequence.sub[0].getHexStringValue();\n this.n = parseBigInt(modulus, 16);\n public_exponent = sequence.sub[1].getHexStringValue();\n this.e = parseInt(public_exponent, 16);\n }\n else {\n // Parse ASN.1 RSAPublicKey type as defined by PKCS #1\n modulus = asn1.sub[0].getHexStringValue();\n this.n = parseBigInt(modulus, 16);\n public_exponent = asn1.sub[1].getHexStringValue();\n this.e = parseInt(public_exponent, 16);\n }\n }\n else {\n return false;\n }\n return true;\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Translate rsa parameters in a hex encoded string representing the rsa key.\n *\n * The translation follow the ASN.1 notation :\n * RSAPrivateKey ::= SEQUENCE {\n * version Version,\n * modulus INTEGER, -- n\n * publicExponent INTEGER, -- e\n * privateExponent INTEGER, -- d\n * prime1 INTEGER, -- p\n * prime2 INTEGER, -- q\n * exponent1 INTEGER, -- d mod (p1)\n * exponent2 INTEGER, -- d mod (q-1)\n * coefficient INTEGER, -- (inverse of q) mod p\n * }\n * @returns {string} DER Encoded String representing the rsa private key\n * @private\n */\n JSEncryptRSAKey.prototype.getPrivateBaseKey = function () {\n var options = {\n array: [\n new KJUR.asn1.DERInteger({ int: 0 }),\n new KJUR.asn1.DERInteger({ bigint: this.n }),\n new KJUR.asn1.DERInteger({ int: this.e }),\n new KJUR.asn1.DERInteger({ bigint: this.d }),\n new KJUR.asn1.DERInteger({ bigint: this.p }),\n new KJUR.asn1.DERInteger({ bigint: this.q }),\n new KJUR.asn1.DERInteger({ bigint: this.dmp1 }),\n new KJUR.asn1.DERInteger({ bigint: this.dmq1 }),\n new KJUR.asn1.DERInteger({ bigint: this.coeff }),\n ],\n };\n var seq = new KJUR.asn1.DERSequence(options);\n return seq.getEncodedHex();\n };\n /**\n * base64 (pem) encoded version of the DER encoded representation\n * @returns {string} pem encoded representation without header and footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPrivateBaseKeyB64 = function () {\n return hex2b64(this.getPrivateBaseKey());\n };\n /**\n * Translate rsa parameters in a hex encoded string representing the rsa public key.\n * The representation follow the ASN.1 notation :\n * PublicKeyInfo ::= SEQUENCE {\n * algorithm AlgorithmIdentifier,\n * PublicKey BIT STRING\n * }\n * Where AlgorithmIdentifier is:\n * AlgorithmIdentifier ::= SEQUENCE {\n * algorithm OBJECT IDENTIFIER, the OID of the enc algorithm\n * parameters ANY DEFINED BY algorithm OPTIONAL (NULL for PKCS #1)\n * }\n * and PublicKey is a SEQUENCE encapsulated in a BIT STRING\n * RSAPublicKey ::= SEQUENCE {\n * modulus INTEGER, -- n\n * publicExponent INTEGER -- e\n * }\n * @returns {string} DER Encoded String representing the rsa public key\n * @private\n */\n JSEncryptRSAKey.prototype.getPublicBaseKey = function () {\n var first_sequence = new KJUR.asn1.DERSequence({\n array: [\n new KJUR.asn1.DERObjectIdentifier({ oid: \"1.2.840.113549.1.1.1\" }),\n new KJUR.asn1.DERNull(),\n ],\n });\n var second_sequence = new KJUR.asn1.DERSequence({\n array: [\n new KJUR.asn1.DERInteger({ bigint: this.n }),\n new KJUR.asn1.DERInteger({ int: this.e }),\n ],\n });\n var bit_string = new KJUR.asn1.DERBitString({\n hex: \"00\" + second_sequence.getEncodedHex(),\n });\n var seq = new KJUR.asn1.DERSequence({\n array: [first_sequence, bit_string],\n });\n return seq.getEncodedHex();\n };\n /**\n * base64 (pem) encoded version of the DER encoded representation\n * @returns {string} pem encoded representation without header and footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPublicBaseKeyB64 = function () {\n return hex2b64(this.getPublicBaseKey());\n };\n /**\n * wrap the string in block of width chars. The default value for rsa keys is 64\n * characters.\n * @param {string} str the pem encoded string without header and footer\n * @param {Number} [width=64] - the length the string has to be wrapped at\n * @returns {string}\n * @private\n */\n JSEncryptRSAKey.wordwrap = function (str, width) {\n width = width || 64;\n if (!str) {\n return str;\n }\n var regex = \"(.{1,\" + width + \"})( +|$\\n?)|(.{1,\" + width + \"})\";\n return str.match(RegExp(regex, \"g\")).join(\"\\n\");\n };\n /**\n * Retrieve the pem encoded private key\n * @returns {string} the pem encoded private key with header/footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPrivateKey = function () {\n var key = \"-----BEGIN RSA PRIVATE KEY-----\\n\";\n key += JSEncryptRSAKey.wordwrap(this.getPrivateBaseKeyB64()) + \"\\n\";\n key += \"-----END RSA PRIVATE KEY-----\";\n return key;\n };\n /**\n * Retrieve the pem encoded public key\n * @returns {string} the pem encoded public key with header/footer\n * @public\n */\n JSEncryptRSAKey.prototype.getPublicKey = function () {\n var key = \"-----BEGIN PUBLIC KEY-----\\n\";\n key += JSEncryptRSAKey.wordwrap(this.getPublicBaseKeyB64()) + \"\\n\";\n key += \"-----END PUBLIC KEY-----\";\n return key;\n };\n /**\n * Check if the object contains the necessary parameters to populate the rsa modulus\n * and public exponent parameters.\n * @param {Object} [obj={}] - An object that may contain the two public key\n * parameters\n * @returns {boolean} true if the object contains both the modulus and the public exponent\n * properties (n and e)\n * @todo check for types of n and e. N should be a parseable bigInt object, E should\n * be a parseable integer number\n * @private\n */\n JSEncryptRSAKey.hasPublicKeyProperty = function (obj) {\n obj = obj || {};\n return obj.hasOwnProperty(\"n\") && obj.hasOwnProperty(\"e\");\n };\n /**\n * Check if the object contains ALL the parameters of an RSA key.\n * @param {Object} [obj={}] - An object that may contain nine rsa key\n * parameters\n * @returns {boolean} true if the object contains all the parameters needed\n * @todo check for types of the parameters all the parameters but the public exponent\n * should be parseable bigint objects, the public exponent should be a parseable integer number\n * @private\n */\n JSEncryptRSAKey.hasPrivateKeyProperty = function (obj) {\n obj = obj || {};\n return (obj.hasOwnProperty(\"n\") &&\n obj.hasOwnProperty(\"e\") &&\n obj.hasOwnProperty(\"d\") &&\n obj.hasOwnProperty(\"p\") &&\n obj.hasOwnProperty(\"q\") &&\n obj.hasOwnProperty(\"dmp1\") &&\n obj.hasOwnProperty(\"dmq1\") &&\n obj.hasOwnProperty(\"coeff\"));\n };\n /**\n * Parse the properties of obj in the current rsa object. Obj should AT LEAST\n * include the modulus and public exponent (n, e) parameters.\n * @param {Object} obj - the object containing rsa parameters\n * @private\n */\n JSEncryptRSAKey.prototype.parsePropertiesFrom = function (obj) {\n this.n = obj.n;\n this.e = obj.e;\n if (obj.hasOwnProperty(\"d\")) {\n this.d = obj.d;\n this.p = obj.p;\n this.q = obj.q;\n this.dmp1 = obj.dmp1;\n this.dmq1 = obj.dmq1;\n this.coeff = obj.coeff;\n }\n };\n return JSEncryptRSAKey;\n}(RSAKey));\nexport { JSEncryptRSAKey };\n","var _a;\nimport { b64tohex, hex2b64 } from \"./lib/jsbn/base64\";\nimport { JSEncryptRSAKey } from \"./JSEncryptRSAKey\";\nvar version = typeof process !== 'undefined'\n ? (_a = process.env) === null || _a === void 0 ? void 0 : _a.npm_package_version\n : undefined;\n/**\n *\n * @param {Object} [options = {}] - An object to customize JSEncrypt behaviour\n * possible parameters are:\n * - default_key_size {number} default: 1024 the key size in bit\n * - default_public_exponent {string} default: '010001' the hexadecimal representation of the public exponent\n * - log {boolean} default: false whether log warn/error or not\n * @constructor\n */\nvar JSEncrypt = /** @class */ (function () {\n function JSEncrypt(options) {\n if (options === void 0) { options = {}; }\n options = options || {};\n this.default_key_size = options.default_key_size\n ? parseInt(options.default_key_size, 10)\n : 1024;\n this.default_public_exponent = options.default_public_exponent || \"010001\"; // 65537 default openssl public exponent for rsa key type\n this.log = options.log || false;\n // The private and public key.\n this.key = null;\n }\n /**\n * Method to set the rsa key parameter (one method is enough to set both the public\n * and the private key, since the private key contains the public key paramenters)\n * Log a warning if logs are enabled\n * @param {Object|string} key the pem encoded string or an object (with or without header/footer)\n * @public\n */\n JSEncrypt.prototype.setKey = function (key) {\n if (this.log && this.key) {\n console.warn(\"A key was already set, overriding existing.\");\n }\n this.key = new JSEncryptRSAKey(key);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPrivateKey = function (privkey) {\n // Create the key.\n this.setKey(privkey);\n };\n /**\n * Proxy method for setKey, for api compatibility\n * @see setKey\n * @public\n */\n JSEncrypt.prototype.setPublicKey = function (pubkey) {\n // Sets the public key.\n this.setKey(pubkey);\n };\n /**\n * Proxy method for RSAKey object's decrypt, decrypt the string using the private\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str base64 encoded crypted string to decrypt\n * @return {string} the decrypted string\n * @public\n */\n JSEncrypt.prototype.decrypt = function (str) {\n // Return the decrypted string.\n try {\n return this.getKey().decrypt(b64tohex(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's encrypt, encrypt the string using the public\n * components of the rsa key object. Note that if the object was not set will be created\n * on the fly (by the getKey method) using the parameters passed in the JSEncrypt constructor\n * @param {string} str the string to encrypt\n * @return {string} the encrypted string encoded in base64\n * @public\n */\n JSEncrypt.prototype.encrypt = function (str) {\n // Return the encrypted string.\n try {\n return hex2b64(this.getKey().encrypt(str));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's sign.\n * @param {string} str the string to sign\n * @param {function} digestMethod hash method\n * @param {string} digestName the name of the hash algorithm\n * @return {string} the signature encoded in base64\n * @public\n */\n JSEncrypt.prototype.sign = function (str, digestMethod, digestName) {\n // return the RSA signature of 'str' in 'hex' format.\n try {\n return hex2b64(this.getKey().sign(str, digestMethod, digestName));\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Proxy method for RSAKey object's verify.\n * @param {string} str the string to verify\n * @param {string} signature the signature encoded in base64 to compare the string to\n * @param {function} digestMethod hash method\n * @return {boolean} whether the data and signature match\n * @public\n */\n JSEncrypt.prototype.verify = function (str, signature, digestMethod) {\n // Return the decrypted 'digest' of the signature.\n try {\n return this.getKey().verify(str, b64tohex(signature), digestMethod);\n }\n catch (ex) {\n return false;\n }\n };\n /**\n * Getter for the current JSEncryptRSAKey object. If it doesn't exists a new object\n * will be created and returned\n * @param {callback} [cb] the callback to be called if we want the key to be generated\n * in an async fashion\n * @returns {JSEncryptRSAKey} the JSEncryptRSAKey object\n * @public\n */\n JSEncrypt.prototype.getKey = function (cb) {\n // Only create new if it does not exist.\n if (!this.key) {\n // Get a new private key.\n this.key = new JSEncryptRSAKey();\n if (cb && {}.toString.call(cb) === \"[object Function]\") {\n this.key.generateAsync(this.default_key_size, this.default_public_exponent, cb);\n return;\n }\n // Generate the key.\n this.key.generate(this.default_key_size, this.default_public_exponent);\n }\n return this.key;\n };\n /**\n * Returns the pem encoded representation of the private key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the private key WITH header and footer\n * @public\n */\n JSEncrypt.prototype.getPrivateKey = function () {\n // Return the private representation of this key.\n return this.getKey().getPrivateKey();\n };\n /**\n * Returns the pem encoded representation of the private key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the private key WITHOUT header and footer\n * @public\n */\n JSEncrypt.prototype.getPrivateKeyB64 = function () {\n // Return the private representation of this key.\n return this.getKey().getPrivateBaseKeyB64();\n };\n /**\n * Returns the pem encoded representation of the public key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the public key WITH header and footer\n * @public\n */\n JSEncrypt.prototype.getPublicKey = function () {\n // Return the private representation of this key.\n return this.getKey().getPublicKey();\n };\n /**\n * Returns the pem encoded representation of the public key\n * If the key doesn't exists a new key will be created\n * @returns {string} pem encoded representation of the public key WITHOUT header and footer\n * @public\n */\n JSEncrypt.prototype.getPublicKeyB64 = function () {\n // Return the private representation of this key.\n return this.getKey().getPublicBaseKeyB64();\n };\n JSEncrypt.version = version;\n return JSEncrypt;\n}());\nexport { JSEncrypt };\n","import { JSEncrypt } from \"jsencrypt\";\nimport { publicKey, privateKey } from \"src/app/_models/common/rsa-keys\";\n\nexport class RSAHelper {\n encrypt: any;\n decrypt:any;\n\n constructor() {}\n\n Encrypt(stringToEncrypt): string {\n this.encrypt = new JSEncrypt();\n this.encrypt.setPublicKey(publicKey);\n return this.encrypt.encrypt(stringToEncrypt);\n }\n\n Decrypt(stringToDecrypt): string {\n this.decrypt = new JSEncrypt();\n this.decrypt.setPrivateKey(privateKey);\n return this.decrypt.decrypt(stringToDecrypt);\n }\n}\n","export const publicKey = `-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA9iRV7lAR1iZsogYodz6n\n02XGkACA3hMQCI8Um8jZycIb6X1thwu+pOrO+KOtlgJIqYj6ZBAgD3BIfF60b4/y\nqX1k/GteKS98Itwwp4b/40g4eCLVvzM6h2TAVok55cT/OFBZ5wJL83nScDWjWUDb\n6/Rcocm/LkItWoXosHoUNmZOh6Eha0xTrpA3w+3mPUXaz9D257jGuRVjiCYji9An\nuE+uD42YPCHpiC8s9rXejc3iaYnzAW6ZhWI7Re6MUuQP4jFHOhyr6n0U2Xvr8/WC\nvY+a4X45wL3zYtSIDtV/q9Y1dcdkyyOn4qm9kfO7C5wuskGnwQWppGiH5abv3Twz\n7QIDAQAB\n-----END PUBLIC KEY-----`;\n\nexport const privateKey = `-----BEGIN RSA PRIVATE KEY-----\nMIIEpQIBAAKCAQEA9iRV7lAR1iZsogYodz6n02XGkACA3hMQCI8Um8jZycIb6X1t\nhwu+pOrO+KOtlgJIqYj6ZBAgD3BIfF60b4/yqX1k/GteKS98Itwwp4b/40g4eCLV\nvzM6h2TAVok55cT/OFBZ5wJL83nScDWjWUDb6/Rcocm/LkItWoXosHoUNmZOh6Eh\na0xTrpA3w+3mPUXaz9D257jGuRVjiCYji9AnuE+uD42YPCHpiC8s9rXejc3iaYnz\nAW6ZhWI7Re6MUuQP4jFHOhyr6n0U2Xvr8/WCvY+a4X45wL3zYtSIDtV/q9Y1dcdk\nyyOn4qm9kfO7C5wuskGnwQWppGiH5abv3Twz7QIDAQABAoIBAAJw9dE5RhQDqYwp\n13jnTC7SkZeYCa8qLTyIfsHUyiQwIqq8LbvrJ+bm1UquBOi5+RKFY0ZeypKcoHtr\nTQrWOKfpsHi4b+SkreyClpDyy9LrQnQelFQjI+931liFX+ehfo6GbX3XDf3KNYYb\nYhVeiU/bypdoMtc4nM6LCXXGoDCx6haqyJw5KYVf/mIUG5eB+Lc6nfSroPybflPQ\n4w1tWBzd9yS4k/2jKzZUaG8Ure6db4uhiyosxTgAQcCAMqNWNUTojP57GkyfrJnM\nobO+CyAV3ZZ/kh3ri3e12V8/sxD4b0piTHaxkYSdQgUcinY0u5mOlN0+9dT1ljOE\nbibiK5kCgYEA/fbO+sVfmRecODE9YhVVeM+9ycE+ldBoxzA/B/ecN25SE3xq12Su\nhWoqCZ6URi7BABY34mkRDyvt+vy4BmdcpsutDNklsSMJpbhVI+Mc8rlxZpJ9leCk\n8Nyb5WhcVdjI06KNzSTtQvMbcRRPDhcyglaNQe3NFlbpoC7cBWsj7x8CgYEA+B15\nbSTVMuUgNFHnyNYw4rWBxj5FjPnQefT2hQGJMMvt2Ig3vZshIu+yIS67lX+YPhC5\nug9VHVgV00k7lqUXUc4ep3Yxv89WmEv9Ouvss2lXC/4zmQxXeowBEhH3Ee4Hw/bV\nOLxBVq9yetG0mPfhep6WTK/YDW07foQhsTbkF3MCgYEA8odSXlVC2Dad72PGlPZ+\nq2LogdXT6MogZaiDaR5jxuPJ6eX1OkFiEPKztoAEZYmcsnKFZ+iia/StzfSt4R+w\ncXEsj4qH3kPxoJsKY70uFfZWf3gCCrF/kq17C3fARhNCpikkdfZ/xmHXoQOeA3zP\ntXzmZUGti1nwvhJB98K7jE0CgYEA6egfiV2oAIsxiSGOOjBzdcdXyOT7/KOmftMJ\ndOq1w2L9n50Lr5yH6L/AVrgP8CiSBjEOZvH9c+SO7tmja6nICj8fdxBeZk25fWpm\nGR5B0AIHJi9HxYl1DvreJ4L4Qdb9SylwakRP9MECU/dPIsbNsyO+3h0Iud+4rtUy\nTjdJYTECgYEArSw13DznuzGRfLNIZY1ds1aVaCGKh7kFewNR6CFgB5yTe5eiYNlz\n223sy+szc46F5DyqDiF92SmUGfty9jAVv56B1KM4W4XWPa/oMCfo5SO7zpUa6bfa\nWTy72MpG76ovGFQrDiSc6OOpZ+vCFQjWn5qwuc933zvlZlFPmSK5gDA=\n-----END RSA PRIVATE KEY-----`;\n\n\n ","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'noComma'\n})\nexport class NoCommaPipe implements PipeTransform {\n\n transform(val: number): string {\n if (val !== undefined && val !== null) {\n // here we just remove the commas from value\n return val.toString().replace(/,/g, \"\");\n } else {\n return \"\";\n }\n }\n}","import { DatePipe } from '@angular/common';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Constants } from '../../util/constants';\n\n// @Pipe({ name: 'trimAllSpaces' })\n// export class TrimAllSpacesPipe implements PipeTransform {\n// transform(value: any) {\n\n// return value.replace(/\\s/g, \"\");\n// }\n// }\n\n\n@Pipe({\n name: 'dateFormat'\n})\nexport class DateFormatPipe extends DatePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n return super.transform(value, Constants.DATE_FMT);\n }\n}\n\n@Pipe({\n name: 'timeFormat'\n})\nexport class TimeFormatPipe extends DatePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n return super.transform(value, Constants.TIME_FMT).toString().toLowerCase();\n }\n}\n\n@Pipe({\n name: 'timeFormatNew'\n})\nexport class TimeFormatPipeNew extends DatePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n return super.transform(value, Constants.TIME_FMT_HHmm).toString().toLowerCase();\n }\n}\n\n@Pipe({\n name: 'monthFormat'\n})\nexport class MonthFormatPipe extends DatePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n return super.transform(value, Constants.MONTH_FMT).toString().toLowerCase();\n }\n}\n\n@Pipe({\n name: 'eodDateFormat'\n})\nexport class EODDateFormatPipe extends DatePipe implements PipeTransform {\n transform(value: any, args?: any): any {\n return super.transform(value, Constants.EODDATE_FMT).toString();\n }\n}\n\n// @Pipe({\n// name: 'filter'\n// })\n// export class FilterPipe implements PipeTransform {\n// transform(items: any[], searchText: string): any[] {\n// if (!items) return [];\n// if (!searchText) return items;\n// searchText = searchText.toString().toLowerCase();\n// return items.filter(it => {\n// return it.toString().toLowerCase().includes(searchText);\n// });\n// }\n// }\n\n@Pipe({\n name: 'grdFilter'\n})\nexport class GrdFilterPipe implements PipeTransform {\n transform(items: any, filter: any, defaultFilter: boolean): any {\n if (!filter) {\n return items;\n }\n\n if (!Array.isArray(items)) {\n return items;\n }\n\n if (filter && Array.isArray(items)) {\n let filterKeys = Object.keys(filter);\n\n if (defaultFilter) {\n return items.filter(item =>\n filterKeys.reduce((x, keyName) =>\n (x && new RegExp(filter[keyName], 'gi').test(item[keyName])) || filter[keyName] == \"\", true));\n }\n else {\n return items.filter(item => {\n return filterKeys.some((keyName) => {\n return new RegExp(filter[keyName], 'gi').test(item[keyName]) || filter[keyName] == \"\";\n });\n });\n }\n }\n }\n}\n\n// @Pipe({\n// name: 'sanitizeHtml'\n// })\n// export class SanitizeHtmlPipe implements PipeTransform {\n// constructor(private sanitizer: DomSanitizer) { }\n// transform(value: any): any {\n// return this.sanitizer.bypassSecurityTrustHtml(value);\n// }\n// }\n\n@Pipe({\n name: 'orderBy',\n pure: true\n})\nexport class OrderByPipe implements PipeTransform {\n transform(values: number[] | string[] | object[], key?: string, reverse?: boolean) {\n if (!Array.isArray(values) || values.length <= 0) {\n return null;\n }\n\n return this.sort(values, key, reverse);\n }\n\n private sort(value: any[], key?: any, reverse?: boolean): any[] {\n const isInside = key && key.indexOf('.') !== -1;\n\n if (isInside) {\n key = key.split('.');\n }\n\n const array: any[] = value.sort((a: any, b: any): number => {\n if (!key) {\n return a > b ? 1 : -1;\n }\n\n if (!isInside) {\n return a[key] > b[key] ? 1 : -1;\n }\n\n return this.getValue(a, key) > this.getValue(b, key) ? 1 : -1;\n });\n\n if (reverse) {\n return array.reverse();\n }\n\n return array;\n }\n\n private getValue(object: any, key: string[]) {\n for (let i = 0, n = key.length; i < n; ++i) {\n const k = key[i];\n if (!(k in object)) {\n return;\n }\n\n object = object[k];\n }\n\n return object;\n }\n\n}\n\n@Pipe({\n name: 'safeUrl'\n})\nexport class SafeUrlPipeline implements PipeTransform {\n constructor(private sanitizer: DomSanitizer) { }\n transform(value: any): any {\n return this.sanitizer.bypassSecurityTrustResourceUrl(value);\n }\n}\n// @Pipe({\n// name: 'functionpackagefilter'\n// })\n// export class FunctionPackageFilter implements PipeTransform {\n\n// transform(functionDetails: any[], conditionValue: boolean): any[] {\n// return functionDetails.filter(x => x.isFree == conditionValue);\n// }\n// }\n// @Pipe({\n// name: 'filterUnique'\n\n// })\n// export class FilterUniquePipe implements PipeTransform {\n\n// transform(value: any): any {\n\n// // Remove the duplicate elements\n// let uniqueArray = value.filter(function (el, index, array) {\n// return array.indexOf(el) == index;\n// });\n\n// return uniqueArray;\n// }\n// }\n","import { Injectable } from '@angular/core';\nimport { HttpHeaders } from '@angular/common/http';\nimport { Claims } from '../_models/common/claims';\nimport { IDefaultParams, DefaultParams } from '../_models/common/request-response/default-params';\nimport { IDeviceInfo, DeviceInfo } from '../_models/common/request-response/device-info';\nimport { environment } from '../../../src/environments/environment';\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\n\n@Injectable()\nexport class setHeader {\n currentUser: any;\n logintoken: any;\n claims: Claims;\n token: any;\n orgId: number = 0;\n userId: number = 0;\n organisationCurrency: string;\n defaultParams: IDefaultParams;\n deviceInfo: IDeviceInfo;\n constructor(private claimsService: ClaimsService) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n authorizationHeader() {\n this.defaultParams = new DefaultParams(this.orgId, this.userId,\n this.claims ? this.claims.FinanceManager : '', environment.requestTimeStamp);\n let appVersion = '' + this.claims?.appVersion;\n this.deviceInfo = new DeviceInfo(this.organisationCurrency, environment.platform,\n appVersion, environment.appId, environment.deviceId,this.detectBrowserName(),this.detectBrowserVersion());\n this.defaultParams.deviceInfo = this.deviceInfo;\n this.logintoken = localStorage.getItem(\"loginToken\");\n if (this.logintoken) {\n return new HttpHeaders({\n \"Content-Type\": \"application/json\",\n \"Authorization\": `Bearer ` + this.logintoken,\n \"DefaultParams\": JSON.stringify(this.defaultParams),\n 'Ocp-Apim-Subscription-Key': environment.apimSubscriptionKey,\n 'Ocp-Apim-Trace': environment.apimTraceEnabled, });\n }\n\n }\n\n detectBrowserName() { \n const agent = window.navigator.userAgent.toLowerCase()\n switch (true) {\n case agent.indexOf('firefox') > -1:\n return 'firefox';\n case agent.indexOf('opr') > -1 && !!(window).opr:\n return 'opera'; \n case agent.indexOf('trident') > -1:\n return 'ie';\n case agent.indexOf('edg') > -1:\n return 'edge';\n case agent.indexOf('chrome') > -1 && !!(window).chrome:\n return 'chrome'; \n case agent.indexOf('safari') > -1:\n return 'safari';\n default:\n return 'other';\n }\n }\n \n detectBrowserVersion(){\n let userAgent = navigator.userAgent, tem, \n matchTest = userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n \n if(/trident/i.test(matchTest[1])){\n tem = /\\brv[ :]+(\\d+)/g.exec(userAgent) || [];\n return 'IE '+(tem[1] || '');\n }\n if(matchTest[1]=== 'Chrome'){\n tem = userAgent.match(/\\b(OPR|Edge)\\/(\\d+)/);\n if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');\n }\n matchTest= matchTest[2]? [matchTest[1], matchTest[2]]: [navigator.appName, navigator.appVersion, '-?'];\n if((tem= userAgent.match(/version\\/(\\d+)/i))!= null) matchTest.splice(1, 1, tem[1]);\n return matchTest.join(' ');\n }\n\n}\n","export interface IDashBoardAPI {\n monthsList: string;\n approvedExpenses: string;\n rejectedExpenses: string;\n pendingInvite: string;\n notInvited: string;\n activeEmp: string;\n mileage: string;\n mileageGoogle: string;\n mileageGPS: string;\n responseInfo: DashBoardAPI;\n}\nexport class DashBoardAPI implements IDashBoardAPI {\n responseInfo: DashBoardAPI;\n monthsList: string;\n approvedExpenses: string;\n rejectedExpenses: string;\n pendingInvite: string;\n notInvited: string;\n activeEmp: string;\n mileage: string;\n mileageGoogle: string;\n mileageGPS: string;\n}\n\nexport class DashboardDataRequest {\n orgId: number;\n userId: number;\n requestCountType: number;\n loginId: string;\n}\n\n","\n\nimport { IFCGetReportList, FCGetReportList } from \"./fcget-report-list\";\nimport { IFCReceiptResponse } from \"./fcreceipt-response\";\nexport interface IFCGetReportResponse {\n totalCount: number;\n hasMoreRecords: number;\n fromDateFilter: number;\n toDateFilter: number;\n fcGetReportList: IFCGetReportList[];\n fcReceiptResponseList: IFCReceiptResponse[];\n}\nexport class FCGetReportResponse implements IFCGetReportResponse {\n totalCount: number;\n hasMoreRecords: number;\n fromDateFilter: number;\n toDateFilter: number;\n fcGetReportList = [];\n fcReceiptResponseList = [];\n}\n","\nimport { INRFCJustificationNotesViewModel, NRFCJustificationNotesViewModel } from \"./nrfcjustification-notes-view-model\";\nimport { IReceiptInfo, ReceiptInfo } from \"../twostepapproval/claimant-expense-detail\";\nexport interface IFCReceiptResponse {\n fcReceiptId: number;\n receiptId: number;\n orgId: number;\n userId: number;\n vehicleId: string;\n openingBalance: number;\n openingBalanceDate: number;\n openingBalanceDateString: string;\n receiptDateString: string;\n closingBalance: number;\n closingBalanceDate: number;\n closingBalanceDateString: string;\n distanceAvailable: number;\n distanceTravelled: number;\n businessDistance: number;\n privateDistance: number;\n notes: string;\n fcCurrentStatus: number;\n submissionDate: number;\n receiptDate: number;\n hasReceipt: number;\n nrfcReceiptInfo: IReceiptInfo[];\n nrfcJustificationNotesViewModel: INRFCJustificationNotesViewModel[];\n}\n\n\nexport class FCReceiptResponse implements IFCReceiptResponse {\n fcReceiptId: number;\n receiptId: number;\n orgId: number;\n userId: number;\n vehicleId: string;\n openingBalance: number;\n openingBalanceDate: number;\n openingBalanceDateString: string;\n receiptDateString: string;\n closingBalance: number;\n closingBalanceDate: number;\n closingBalanceDateString: string;\n distanceAvailable: number;\n distanceTravelled: number;\n businessDistance: number;\n privateDistance: number;\n notes: string;\n fcCurrentStatus: number;\n submissionDate: number;\n receiptDate: number;\n hasReceipt: number;\n nrfcReceiptInfo = [];\n nrfcJustificationNotesViewModel = [];\n}\n\nexport class FuelCardDetails {\n fcReceiptId: number;\n orgId: number;\n userId: number;\n vehicleId: string;\n openingBalance: number;\n openingBalanceDate: number;\n closingBalance: number;\n closingBalanceDate: number;\n closingBalanceDateString: string;\n distanceAvailable: number;\n distanceTravelled: number;\n businessDistance: number;\n privateDistance: number;\n}\n\n","import { INRFCJustificationNotesViewModel, NRFCJustificationNotesViewModel } from \"./nrfcjustification-notes-view-model\";\nimport { IReceiptInfo, ReceiptInfo } from \"../twostepapproval/claimant-expense-detail\";\nexport interface INRReceiptResponse {\n nrReceiptId: number;\n orgId: number;\n userId: number;\n receiptDate: number;\n amount: number;\n nrCurrentStatus: number;\n paymentTypeId: number;\n supplier: string;\n spentCurrencyID: number;\n notes: string;\n approverNotes: string;\n submissionDate: number;\n nrfcReceiptInfo: IReceiptInfo[];\n nrfcJustificationNotesViewModel: INRFCJustificationNotesViewModel[];\n}\n\n\nexport class NRReceiptResponse implements INRReceiptResponse {\n nrReceiptId: number;\n orgId: number;\n userId: number;\n receiptDate: number;\n amount: number;\n nrCurrentStatus: number;\n paymentTypeId: number;\n supplier: string;\n spentCurrencyID: number;\n notes: string;\n approverNotes: string;\n submissionDate: number;\n nrfcReceiptInfo = [];\n nrfcJustificationNotesViewModel = [];\n}\n","import { INRGetDashboardClaimaintDetail, NRGetDashboardClaimaintDetail } from \"./nrget-dashboard-claimaint-detail\";\nexport interface INRGetDashboardClaimaintResponse {\n totalCount: number;\n totalCompliantCount: number;\n totalNonCompliantCount: number;\n hasMoreRecords: number;\n nrGetDashboardClaimaintList: INRGetDashboardClaimaintDetail[];\n dateFilter: Date;\n}\nexport class NRGetDashboardClaimaintResponse implements INRGetDashboardClaimaintResponse {\n totalCount: number;\n totalCompliantCount: number;\n totalNonCompliantCount: number;\n hasMoreRecords: number;\n nrGetDashboardClaimaintList: NRGetDashboardClaimaintDetail[];\n dateFilter: Date;\n}\n","import { INRDashboardReceiptModal, NRDashboardReceiptModal } from \"../NrFc/nrdashboard-receipt-modal\";\n\n\nexport interface INRDashboardReceiptResponse {\n userId: number;\n costOfFuelTotal: number;\n expenseUsedDistanceTotal: number;\n originalDistanceTotal: number;\n receiptAmountTotal: number;\n vatClaimableTotal: number;\n vatTotal: number;\n nrFuelRate: string;\n nRDashboardReceiptList: INRDashboardReceiptModal[];\n\n}\n\nexport class NRDashboardReceiptResponse implements INRDashboardReceiptResponse {\n userId: number;\n costOfFuelTotal: number;\n expenseUsedDistanceTotal: number;\n originalDistanceTotal: number;\n receiptAmountTotal: number;\n vatClaimableTotal: number;\n vatTotal: number;\n nrFuelRate: string;\n nRDashboardReceiptList: NRDashboardReceiptModal[];\n}\n","export interface INRGetDashboardClaimaintDetail {\n userId: number;\n claimantName: string;\n isCompliant: boolean;\n compliantString: string;\n totalDistance: number;\n}\nexport class NRGetDashboardClaimaintDetail implements INRGetDashboardClaimaintDetail {\n userId: number;\n claimantName: string;\n isCompliant: boolean;\n compliantString: string;\n totalDistance: number;\n}","\nimport { INRClaimantList, NRClaimantList } from \"./nrclaimant-list\";\n\nexport interface IClaimantListForNRFCApproval {\n hasMorePage: boolean;\n userId: number;\n countOfRec: number;\n countOfEmp: number;\n fcClaimantList: INRClaimantList[]\n nrClaimantList: any;\n\n}\n\nexport class ClaimantListForNRFCApproval implements IClaimantListForNRFCApproval {\n hasMorePage: boolean;\n userId: number;\n countOfRec: number;\n countOfEmp: number;\n fcClaimantList: NRClaimantList[]\n nrClaimantList: any;\n}","\nimport { NRFCStatusEnum, FunctionPackageEnum, ExpenseStatusEnum, NRCompliantEnum } from \"../enum/solo-enum\";\nimport { Claims } from \"../common/claims\";\nimport { IApiRequest } from \"../common/request-response/api-request\";\nimport { IGetCartDetailsRequest } from \"../organisation-setting/organisation-setting\";\nimport { ITaxRateMasterResponse } from \"../manage-category/tax-rate-master-response\";\nimport { IOrgVehiclesNRFCResponse, OrgVehiclesNRFCResponse } from \"./org-vehicles-nrfcresponse\";\nimport { IVehicleTypes } from \"../advance-mileage/vehicle-types\";\nimport { IVehicleTypeSummary } from \"./vehicle-type-summary\";\nimport { IEmpListByVehicleResponseDto } from \"../mileage-settings/assignvehicleresponse\";\nimport { IAssignVehicleDetails } from \"../mileage-settings/mileage-settings\";\nimport { INRClaimantList } from \"../NrFc/nrclaimant-list\";\nimport { IFCClaimantList } from \"../NrFc/fcclaimant-list\";\nimport { INRReceiptGetList } from \"../NrFc/nrreceipt-get-list\";\nimport { IFCReceiptResponse, FCReceiptResponse } from 'src/app/_models/NrFc/fcreceipt-response';\nimport { INRReceiptResponse, NRReceiptResponse } from \"./nrreceipt-response\";\nimport { UntypedFormGroup } from \"@angular/forms\";\nimport { INRGetDashboardClaimaintResponse, NRGetDashboardClaimaintResponse } from \"./nrget-dashboard-claimaint-response\";\nimport { FlatpickrOptions } from \"ng2-flatpickr\";\nimport { INRDashboardReceiptResponse, NRDashboardReceiptResponse } from 'src/app/_models/NrFc/nrdashboard-receipt-response';\nimport { INRDashboardReceiptModal } from \"../NrFc/nrdashboard-receipt-modal\";\nimport { INRGetDashboardClaimaintDetail, NRGetDashboardClaimaintDetail } from \"./nrget-dashboard-claimaint-detail\";\nimport { ClaimantListForNRFCApproval, IClaimantListForNRFCApproval } from \"./claimant-list-for-nrfcapproval\";\nimport { MarketingPopup } from \"../common/marketing-popup\";\nimport { IFCReceiptGetList } from \"./fcreceipt-get-list\";\nimport { IFCGetReportResponse, FCGetReportResponse } from 'src/app/_models/NrFc/fcget-report-response';\nimport { IFCGetReportList } from \"./fcget-report-list\";\nimport { FCReportRequest } from \"./fcreport-request\";\nexport class NRFCConfigModel {\n orgVehicles = [];\n nrFCStatusEnum = NRFCStatusEnum;\n expenseStatusEnum = ExpenseStatusEnum;\n claims: Claims;\n functionPackageEnum = FunctionPackageEnum;\n getCartDetailsRequest: IApiRequest;\n cartList: any;\n isFuelCardInCart: boolean;\n isNonReimbursableFuelInCart: boolean;\n isFuelCardPurchased: boolean;\n isNonReimbursableFuelPurchased: boolean;\n isOwnershipEditing: boolean = false;\n taxRateMasterResponse = [];\n isSubmitForm: boolean;\n orgVehiclesNRFCResponse: IOrgVehiclesNRFCResponse = new OrgVehiclesNRFCResponse();\n showLargeImagePopup: boolean;\n isMarketingPopUpDisplay: boolean;\n nrOwnershipCount: number;\n fcOwnershipCount: number;\n noNRFCCount: number;\n vehicleTypeSummary = [];\n searchText: string;\n sortColumn: string;\n noOfRecords: number = 20;\n sortOrder: number;\n pageNumber: number;\n employeeListRes: IEmpListByVehicleResponseDto;\n employeeList = [];\n orgVehicleTypeMapId: number;\n id: number;\n nrfcStatus: number;\n derivedName: string;\n nrClaimantList = [];\n nrReceiptGetList = [];\n fcReceiptGetList = [];\n\n nrReceiptResponse: INRReceiptResponse = new NRReceiptResponse();\n fcReceiptResponse: IFCReceiptResponse = new FCReceiptResponse();\n masterSelected: boolean;\n checkedList: any[];\n isEditingForm: boolean;\n showBulkActions: boolean;\n itemsCounter: number;\n formctrl: UntypedFormGroup;\n isRejectedByFM: boolean;\n user: string;\n nrDashboardResponse: INRGetDashboardClaimaintResponse = new NRGetDashboardClaimaintResponse();\n fcGetReportResponse: IFCGetReportResponse = new FCGetReportResponse();\n nrCompliantEnum = NRCompliantEnum;\n fromDate: any = new Date();\n toDate: any = new Date();\n datePickerOptionsFromDate: FlatpickrOptions = {\n mode: \"single\",\n defaultDate: new Date(),\n maxDate: new Date(),\n altInput: true,\n altFormat: \"d-M-Y\",\n dateFormat: \"d-M-Y\",\n };\n datePickerOptionsToDate: FlatpickrOptions = {\n mode: \"single\",\n defaultDate: new Date(),\n maxDate: new Date(),\n altInput: true,\n altFormat: \"d-M-Y\",\n dateFormat: \"d-M-Y\",\n };\n datePickerOptions: FlatpickrOptions = {\n mode: \"single\",\n defaultDate: new Date(),\n maxDate: new Date(),\n altInput: true,\n altFormat: \"d-M-Y\",\n dateFormat: \"d-M-Y\",\n };\n nrDashboardReceiptResponse: INRDashboardReceiptResponse = new NRDashboardReceiptResponse();\n nrDashboardReceiptList = [];\n //compliantStatus: string;\n //claimantName: string;\n nrGetDashboardClaimaintDetail: INRGetDashboardClaimaintDetail = new NRGetDashboardClaimaintDetail;\n isCompliant: any;\n isDateFilterApplied: boolean;\n compliantType: number;\n claimantListForNRFCApproval: IClaimantListForNRFCApproval = new ClaimantListForNRFCApproval;\n tooltipMessage: string;\n strExpenseIds: any;\n secondaryFMPopupModel: MarketingPopup;\n returnPath: string;\n fcClaimantList = [];\n fcReportRequest: FCReportRequest;\n ShowExportPanel: boolean;\n AllFilterValuesSelected: boolean = true;\n searchCategoryFilters: string;\n ShowSidePanel: boolean = false;\n ClaimantList: any[];\n FilterText: string;\n ClaimantListActual: any[];\n ClaimantSelected: any[] = [];\n newAttribute1: any = {};\n maxFuelRate: number;\n}\n","import { VehicleTypes, IVehicleTypes } from \"../advance-mileage/vehicle-types\";\n\nexport interface IOrgVehiclesNRFCResponse {\n orgID: number;\n mileageUOM: number;\n mileageUOMLabel: string;\n rateType: number;\n totalCount: number;\n nrTotalCount: number;\n fcTotalCount: number;\n noNRFCCount: number;\n vehicleTypes: IVehicleTypes[];\n removeOldReceipts: boolean;\n}\n\n\nexport class OrgVehiclesNRFCResponse implements IOrgVehiclesNRFCResponse {\n orgID: number;\n mileageUOM: number;\n mileageUOMLabel: string;\n rateType: number;\n totalCount: number;\n nrTotalCount: number;\n fcTotalCount: number;\n noNRFCCount: number;\n vehicleTypes: VehicleTypes[];\n removeOldReceipts: boolean;\n\n}\n","export interface IWorkflowRequest {\n expenseIds: number[];\n currentStatus: number;\n}\n\n\nexport class WorkflowRequest implements IWorkflowRequest {\n expenseIds: number[];\n currentStatus: number;\n constructor(expenseIds: number[]) {\n this.expenseIds = expenseIds;\n }\n} \n","export interface IMileageWizardRequestDto {\n orgId: string;\n}\n\n\nexport class MileageWizardRequestDto implements IMileageWizardRequestDto {\n orgId: string;\n\n constructor(orgId: string) {\n this.orgId = orgId;\n }\n\n}\n\n\n\n","import { IMileageMultiRateInfo, MileageMultiRateInfo } from \"./mileage-multi-rate-info\";\n\n\nexport interface IOrgUKMileageRateInfo {\n sNo: number;\n effectiveFrom: number;\n statusCode: number;\n mileageMultiRateInfoList: IMileageMultiRateInfo[];\n statusValue: number;\n selected: boolean;\n\n}\n\n\nexport class OrgUKMileageRateInfo implements IOrgUKMileageRateInfo {\n sNo: number;\n effectiveFrom: number;\n statusCode: number;\n mileageMultiRateInfoList: MileageMultiRateInfo[];\n statusValue: number;\n selected: boolean;\n}\n\nexport class OrgOwnershipTypeResponse {\n orgOwnershipTypeList: OrgOwnershipTypeInfo[];\n importValidation: ImportValidation[];\n currentFinancialYear: number;\n}\n\nexport class OrgOwnershipTypeInfo {\n orgVehicleTypeMapId: number;\n vehicleTypeId: number;\n vehicleSubTypeId: number;\n rateType: number;\n baseName: string;\n mileageRate: number;\n isMultiRange: boolean;\n multiMileageRate: string;\n vehicleTypeName: string;\n vehicleSubTypeName: string;\n vehicleLabel: string;\n vehicleLabelDisplayName: string;\n sequence: number;\n rateMechanism: string;\n effectiveFrom: number;\n effectiveFromString: string;\n nrFuelRate: any;\n statusCode: number;\n statusValue: string;\n isCheckboxDisabled: boolean;\n disableEdit: true;\n mileageMultiRateInfoList: MileageMultiRateInfo[];\n sNo: number;\n rowKey: number;\n classStatusValue: string;\n vatRateString: string;\n vatRate: any;\n vatRateId: any;\n mileageRateString: string;\n updatedOn: number;\n nRFuelRateString: string;\n selected: boolean;\n isExpenseCreated: boolean;\n rowClassName:string;\n effectiveTo: number;\n effectiveToString: string;\n totalActiveVehicle:number;\n}\nexport class CloseFormAction {\n action: number;\n isRefreshRequired: boolean;\n isUpdatedSortRequired: boolean;\n otherAction: number;\n}\nexport class ImportValidation {\n validationArray: ValidationArray[];\n}\nexport class ValidationArray {\n keyString: string;\n stringValue: string;\n validationTypeAndMessage: ValidationTypeAndMessage[];\n compareProp: CompareProp[];\n}\nexport class ValidationTypeAndMessage {\n validationMessage: string;\n validationType: number;\n}\nexport class CompareProp {\n comparekeyString: string;\n compareStringValue: string;\n compareValidationEnum:number\n}\n","export interface IFunctionDetail {\n FunctionId: number;\n CurrencyId: number;\n}\n\nexport class FunctionDetail implements IFunctionDetail {\n FunctionId: number;\n CurrencyId: number;\n constructor(FunctionId: number,\n CurrencyId: number,\n ) {\n this.FunctionId = FunctionId;\n this.CurrencyId = CurrencyId;\n }\n}\n","import { ClaimType } from \"../enum/solo-enum\";\nimport { CustomMileageRate } from \"../manage-category/expense-category\";\nimport { CustomFields, OrgSubCategoryMapping } from \"../manage-category/manage-category-list-response\";\nimport { CategoryAdditionalFieldData } from \"../policy/policy-data\";\nimport { AttendeeList, ExpenseOperationalInfo, IReceiptInfo } from \"../twostepapproval/claimant-expense-detail\";\nimport { InvoiceInfo, InvoiceVal } from \"./expense-info\";\nimport {IResponsePolicyViolation } from \"src/app/_models/twostepapproval/claimant-expense-detail\";\n\nexport class SelectExpenseCategoryPopupModel {\n public orgExpenseCategoryId: number;\n public expenseCategoryName: string;\n public baseCategoryId: number;\n public value: string;\n public disableBaseCategoryIds: number[];\n public isPolicyAvailable: boolean;\n public expenseDate: number;\n public isIncompleteCreditCardExpense: boolean;\n public advanceId: number;\n public isTipsEnabled: boolean;\n public customFields: CustomFields[];\n public categoryAdditionalFieldData : CategoryAdditionalFieldData[];\n public isNotesMandatory: boolean;\n public amount: boolean;\n public receiptsInfo: ReceiptsInfo[];\n public claimantId: number;\n public claimantName: string;\n public isFmEditingExpense: string;\n public policyViolationForFM = [];\n public isCFPReporting:boolean;\n public nrfcStatus: number;\n public orgSubCategoryMappings : OrgSubCategoryMapping[];\n}\n\nexport class CreateExpenseSubmitModel {\n public saveStatus: number;\n public isFmEditingExpense: boolean;\n}\nexport interface IClaimantExpenseListRequest {\n orgId: number;\n userId: number;\n expenseStatus: string;\n sortColumn: string;\n noOfRecords: number;\n pageNo: number;\n sortOrder: number;\n searchText: string;\n skipRecords: number;\n isUnreportedExpenses: boolean;\n containerId: number\n}\n\nexport class ClaimantExpenseListRequest implements IClaimantExpenseListRequest {\n orgId: number;\n userId: number;\n expenseStatus: string;\n sortColumn: string;\n noOfRecords: number;\n pageNo: number;\n sortOrder: number;\n searchText: string;\n isFirstLoad: boolean;\n skipRecords: number;\n isUnreportedExpenses: boolean;\n containerId: number\n constructor(\n orgId: number,\n userId: number,\n expenseStatus: string,\n sortColumn: string,\n noOfRecords: number,\n pageNo: number,\n sortOrder: number,\n searchText: string,\n isFirstLoad: boolean,\n skipRecords: number,\n isUnreportedExpenses: boolean,\n containerId: number\n ) {\n this.orgId = orgId;\n this.userId = userId;\n this.expenseStatus = expenseStatus;\n this.sortColumn = sortColumn;\n this.noOfRecords = noOfRecords;\n this.pageNo = pageNo;\n this.sortOrder = sortOrder;\n this.searchText = searchText;\n this.isFirstLoad = isFirstLoad;\n this.skipRecords = skipRecords;\n this.isUnreportedExpenses = isUnreportedExpenses;\n this.containerId = containerId;\n }\n}\n\nexport interface IListExpenseDetail {\n mobileExpenseUniqueId: string;\n expenseId: number;\n orgId: number;\n currencyId: number;\n orgExpenseCategoryId: number;\n baseCategoryId: number;\n expenseCategoryName: string;\n expenseDate: number;\n spentCurrencyId: number;\n amount: number;\n conversionRate: number;\n spentAmount: number;\n expenseStatus: number;\n hasReceipt: boolean;\n hasVoiceMemo: boolean;\n hasTags: boolean;\n notes: string;\n isPolicyViolated: boolean;\n hasDetour: boolean;\n cardDescription: string;\n cardNumber: string;\n cardReferenceNo: string;\n preApprovalId: number;\n taxRateMasterId: number;\n guestTaxId: number;\n tipsTaxId: number;\n employeesTaxId: number;\n isExpenseCategoryActive: boolean;\n submissionDate: number;\n isWorkflowAvailable: boolean;\n paymentTypeId: number;\n updatedOn: number;\n isRowHighlighted: boolean;\n selected: boolean;\n hideDelete: boolean;\n disableDelete: boolean;\n hideRecall: boolean;\n disableRecall: boolean;\n hideEdit: boolean;\n disableEdit: boolean;\n isTooltipDisplay: boolean;\n journeyType: number;\n isCheckboxDisabled: boolean;\n tooltipText: string;\n supplier: string;\n approverAsCA: boolean ;\n invoice : InvoiceInfo;\n exportId: number;\n postedDate: number;\n localExpDateString:string;\n isCopiedAttendee: boolean;\n copiedAttendeeText:string;\n noOfAttendees: number;\n}\n\nexport class ListExpenseDetail implements IListExpenseDetail {\n mobileExpenseUniqueId: string;\n expenseId: number;\n orgId: number;\n currencyId: number;\n orgExpenseCategoryId: number;\n baseCategoryId: number;\n expenseCategoryName: string;\n expenseDate: number;\n spentCurrencyId: number;\n amount: number;\n conversionRate: number;\n spentAmount: number;\n expenseStatus: number;\n hasReceipt: boolean;\n hasVoiceMemo: boolean;\n hasTags: boolean;\n notes: string;\n isPolicyViolated: boolean;\n hasDetour: boolean;\n cardDescription: string;\n cardNumber: string;\n cardReferenceNo: string;\n preApprovalId: number;\n taxRateMasterId: number;\n guestTaxId: number;\n tipsTaxId: number;\n employeesTaxId: number;\n isExpenseCategoryActive: boolean;\n submissionDate: number;\n isWorkflowAvailable: boolean;\n paymentTypeId: number;\n updatedOn: number;\n isRowHighlighted: boolean;\n selected: boolean;;\n hideDelete: boolean;\n disableDelete: boolean;\n hideRecall: boolean;\n disableRecall: boolean;\n hideEdit: boolean;\n disableEdit: boolean;\n isTooltipDisplay: boolean;\n journeyType: number;\n isCheckboxDisabled: boolean;\n tooltipText: string;\n supplier: string;\n approverAsCA: boolean = false;\n exportId: number;\n invoice: InvoiceInfo;\n postedDate: number;\n localExpDateString:string;\n isCopiedAttendee: boolean;\n copiedAttendeeText: string;\n noOfAttendees: number;\n}\n\nexport interface IGetClaimantExpenseListResponse {\n hasMorePage: boolean;\n expenseList: IListExpenseDetail[];\n totalExpenseCount: number;\n incompleteExpenseCount: number;\n incompleteCreditCardExpenseCount: number;\n rejectedExpenseCount: number;\n awaitingReviewExpenseCount: number;\n awaitingFinanceApprovalExpenseCount: number;\n approvedForPaymentExpenseCount: number;\n passedForPaymentExpenseCount: number;\n canContainerRecall: boolean;\n isContainerSubmitted: boolean;\n}\n\nexport class GetClaimantExpenseListResponse implements IGetClaimantExpenseListResponse {\n hasMorePage: boolean;\n expenseList: IListExpenseDetail[];\n totalExpenseCount: number;\n incompleteExpenseCount: number;\n incompleteCreditCardExpenseCount: number;\n rejectedExpenseCount: number;\n awaitingReviewExpenseCount: number;\n awaitingFinanceApprovalExpenseCount: number;\n approvedForPaymentExpenseCount: number;\n passedForPaymentExpenseCount: number;\n canContainerRecall: boolean;\n isContainerSubmitted: boolean;\n}\n\nexport class SelectForignCurrencyPopupModel {\n public expenseDate: number;\n public currencyId: number;\n public currencyCode: string;\n public spentCurrencyId: number;\n public spentCurrencyCode: string;\n public conversionRate: string;\n public baseCurrencyIcon?: boolean = false; \n}\n\nexport interface IRecentTagsResponse {\n recentTagList: string[];\n}\n\nexport class RecentTagsResponse implements IRecentTagsResponse {\n recentTagList: string[];\n}\nexport interface IRecentTagsRequest {\n orgId: number;\n userId: number;\n}\n\nexport class RecentTagsRequest implements IRecentTagsRequest {\n orgId: number;\n userId: number;\n constructor(\n orgId: number,\n userId: number,\n\n ) {\n this.orgId = orgId;\n this.userId = userId;\n }\n}\n\nexport class SelectTagsPopupModel {\n tagList: string[];\n claimantId: number;\n claimantName: string;\n}\nexport class SelectExpensePolicyModel {\n policyList: string[];\n}\n\nexport interface IExpenseStatus {\n expenseId: number;\n}\n\nexport class ExpenseStatus implements IExpenseStatus {\n expenseId: number;\n constructor(\n expenseId: number\n ) {\n this.expenseId = expenseId;\n }\n}\n\nexport interface IUpdateExpenseRequest {\n orgId: number;\n userId: number;\n action: number;\n expenseInfo: IExpenseStatus[];\n isReceiptNewExpense: boolean;\n}\n\nexport class UpdateExpenseRequest implements IUpdateExpenseRequest {\n orgId: number;\n userId: number;\n action: number;\n expenseInfo: IExpenseStatus[];\n isReceiptNewExpense: boolean = false;\n constructor(\n orgId: number,\n userId: number,\n action: number,\n expenseInfo: IExpenseStatus[]\n ) {\n this.orgId = orgId;\n this.userId = userId;\n this.action = action;\n this.expenseInfo = expenseInfo;\n }\n}\n\n\n//pre approval\nexport class SelectPreApprovalTagPopupModel {\n preApprovalId: number;\n preApprovalTag: string;\n preApprovalBalance: string;\n value: string;\n claimantId: number;\n claimantName: string;\n}\n\n\nexport interface IPreApprovalBaseRequest {\n organisationId: number;\n userId: number;\n}\n\nexport class PreApprovalBaseRequest implements IPreApprovalBaseRequest {\n organisationId: number;\n userId: number;\n constructor(\n organisationId: number,\n userId: number,\n\n ) {\n this.organisationId = organisationId;\n this.userId = userId;\n }\n}\n\n\nexport interface IPreApprovalTagListResponse {\n preApprovalTagList: preApprovalTags[];\n}\n\nexport class PreApprovalTagListResponse implements IPreApprovalTagListResponse {\n preApprovalTagList: preApprovalTags[];\n}\n\nexport class preApprovalTags {\n preApprovalId: number;\n preApprovalTag: string;\n approvalDate: number;\n balance: string;\n remainingDays: number;\n}\n\n//Business Purpose\nexport class SelectBusinessPurposePopupModel {\n bpId: number;\n bpValue: string;\n value: string;\n businessPurposeCaption: string;\n}\n\nexport class SelectVehicleModel {\n vehicleId: number;\n derivedName: string;\n registrationNumber: string;\n makeModel: string;\n mileageAllowance: MileageAllowance[];\n claimantId: number;\n claimantName: string;\n docStatus:number; \n}\n\nexport class ExpenseDetailsPanelModel {\n expenseId: number;\n expenseCategoryName: string;\n claimantId: number;\n claimantName: string;\n}\n\nexport class ExpenseDetailsActionTakenModel {\n expenseId: number;\n actionId: number;\n actionResult: boolean;\n constructor(\n expenseId: number,\n actionId: number,\n actionResult: boolean\n ) {\n this.expenseId = expenseId;\n this.actionId = actionId;\n this.actionResult = actionResult;\n }\n}\n\nexport interface IVatNoVatReceiptTypeDetails{\n vatNoVatReceiptTypeId:number;\n vatNoVatReceiptTypeName:string;\n}\n\nexport class VatNoVatReceiptTypeDetails implements IVatNoVatReceiptTypeDetails{\n vatNoVatReceiptTypeId:number;\n vatNoVatReceiptTypeName:string;\n}\n\n// Expense Details\nexport interface IClaimantExpenseDetail {\n mobileExpenseUniqueId: string;\n expenseId: number;\n currencyId: number;\n spentAmount: number;\n paymentTypeId: number;\n noOfEmployee: number;\n noOfGuest: number;\n noOfRooms: number;\n noOfNight: number;\n bpId: number;\n bpValue: string;\n orgExpenseCategoryId: number;\n baseCategoryId: number;\n stateId: number;\n conversionRate: number;\n billAmount: number;\n tips: number;\n amount: number;\n supplier: string;\n notes: string;\n isPolicyViolated: boolean;\n justificationNotes: string;\n hasReceipt: boolean;\n hasTags: boolean;\n hasVoiceMemo: boolean;\n expenseStatus: number;\n expenseDate: number;\n spentCurrencyId: number;\n approverNotes: string;\n workflowCount: number;\n tagList: any;\n mileage: Mileage;\n receiptInfo: any;\n memoInfo: any;\n preApprovalTag: any;\n cardDescription: string;\n cardNumber: string;\n cardReferenceNo: string;\n taxRateMasterId: number;\n guestTaxId: number;\n tipsTaxId: number;\n employeeTaxId: number;\n isExpenseCategoryActive: boolean;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n submissionDate: number;\n customerId: number;\n customerName: string;\n isWorkflowAvailable: boolean;\n vatNoVatReceiptTypeDetails: IVatNoVatReceiptTypeDetails;\n additionalFields: any;\n projectBudgetDetailsId: number;\n projectDetailsId: number;\n projectBudgetDetailsName: string;\n projectDetailsName: string;\n entityType: number;\n newCostCentreId: number;\n expenseCategoryId: number;\n newCostCentreName: string;\n costCentreDerivedName: string;\n currentBaseCategoryId: number;\n currentStatus: number;\n customerCode1: string;\n newCostCentreCode1: string;\n attendeeList: AttendeeList;\n isTipsEnabled: boolean;\n customFields: CustomFields[];\n potentialFraud: boolean;\n orgCategoryCustomFields: CustomFields[];\n isNotesMandatory: boolean;\n approverAsCA: boolean;\n categoryAdditionalFieldData: CategoryAdditionalFieldData[];\n receiptNumber:string;\n invoice: InvoiceInfo;\n exportId: number;\n isCFPReporting:boolean;\n orgSubCategoryMappings: OrgSubCategoryMapping[];\n startDate:number;\n endDate:number;\n containerId: number;\n containerName: string;\n scannedDetails: any;\n newLocationId: number;\n newLocationName:string;\n}\n\nexport class ClaimantExpenseDetail implements IClaimantExpenseDetail {\n mobileExpenseUniqueId: string;\n expenseId: number;\n currencyId: number;\n spentAmount: number;\n paymentTypeId: number;\n noOfEmployee: number;\n noOfGuest: number;\n noOfRooms: number;\n noOfNight: number;\n bpId: number;\n bpValue: string;\n orgExpenseCategoryId: number;\n baseCategoryId: number;\n stateId: number;\n conversionRate: number;\n billAmount: number;\n tips: number;\n amount: number;\n supplier: string;\n notes: string;\n isPolicyViolated: boolean;\n justificationNotes: string;\n hasReceipt: boolean;\n hasTags: boolean;\n hasVoiceMemo: boolean;\n expenseStatus: number;\n expenseDate: number;\n spentCurrencyId: number;\n approverNotes: string;\n workflowCount: number;\n tagList: any;\n mileage: any;\n receiptInfo: any;\n memoInfo: any;\n preApprovalTag: any;\n cardDescription: string;\n cardNumber: string;\n cardReferenceNo: string;\n taxRateMasterId: number;\n guestTaxId: number;\n tipsTaxId: number;\n employeeTaxId: number;\n isExpenseCategoryActive: boolean;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n submissionDate: number;\n customerId: number;\n customerName: string;\n isWorkflowAvailable: boolean;\n vatNoVatReceiptTypeDetails: IVatNoVatReceiptTypeDetails;\n additionalFields: any;\n projectBudgetDetailsId: number;\n projectDetailsId: number;\n projectBudgetDetailsName: string;\n projectDetailsName: string;\n entityType: number;\n newCostCentreId: number;\n expenseCategoryId: number;\n newCostCentreName: string;\n costCentreDerivedName: string;\n currentBaseCategoryId: number;\n currentStatus: number;\n customerCode1: string;\n newCostCentreCode1: string;\n attendeeList: AttendeeList;\n isTipsEnabled: boolean;\n customFields: CustomFields[];\n orgCategoryCustomFields: CustomFields[];\n isNotesMandatory: boolean;\n potentialFraud: boolean;\n approverAsCA: boolean = false;\n categoryAdditionalFieldData: CategoryAdditionalFieldData[];\n receiptNumber:string;\n invoice: InvoiceInfo;\n exportId: number;\n isCFPReporting: boolean;\n orgSubCategoryMappings: OrgSubCategoryMapping[];\n startDate:number;\n endDate:number;\n containerId: number;\n containerName: string;\n scannedDetails: any;\n newLocationId: number;\n newLocationName:string;\n}\n\n//States\nexport class SelectStatesPopupModel {\n stateId: number;\n stateName: string;\n}\n\nexport class AdditionalFieldsFormModel {\n additionalFieldId: number;\n fieldName: string;\n fieldValueId: number;\n fieldValue: string;\n fieldType: number;\n instruction: string;\n}\n\nexport class AdditionalFieldsDataSave {\n fieldValueId: number;\n additionalFieldId: number;\n fieldValue: string;\n fieldName: string;\n}\n\nexport class ExpenseCurrency {\n currencyId: number;\n currencyCode: string;\n}\n\nexport class SelectCustomerPopupModel {\n customerId: number;\n customerName: string;\n}\n\nexport class ViewTagsInputModel {\n tagList: [];\n}\n\nexport class SelectProjectPopupModel {\n entityId: number;\n entityName: string;\n entityType: number;\n projectBudgetDetailsId: number;\n projectDetailsId: number;\n projectName: string;\n isCostCentrePackagePurchasedOrTrial: boolean;\n isCustomerPackagePurchasedOrTrial: boolean;\n isProjectBudgetPurchasedOrTrial: boolean;\n claimantId: number;\n claimantName: string;\n}\n\nexport class ViewVoiceMemoInputModel {\n memoFileName: string;\n memoUrl: string;\n constructor(\n memoFileName: string,\n memoUrl: string\n ) {\n this.memoFileName = memoFileName;\n this.memoUrl = memoUrl;\n }\n}\n\nexport class PolicyViolationInputModel {\n expenseId: number;\n expenseCategoryName: string;\n baseCategoryId: number;\n justificationNotes: string;\n disableJustificationNotes: boolean;\n expenseDetailResponse: any;\n orgSubCategoryMappings:OrgSubCategoryMapping[];\n policyViolationDetails: IResponsePolicyViolation;\n constructor(\n expenseId: number,\n expenseCategoryName: string,\n baseCategoryId: number,\n justificationNotes: string,\n disableJustificationNotes: boolean,\n expenseDetailResponse: any\n ) {\n this.expenseId = expenseId;\n this.expenseCategoryName = expenseCategoryName;\n this.baseCategoryId = baseCategoryId;\n this.justificationNotes = justificationNotes;\n this.disableJustificationNotes = disableJustificationNotes;\n this.expenseDetailResponse = expenseDetailResponse;\n }\n}\n\nexport class CreateExpenseInputModel {\n public title: string;\n public expenseId: number;\n public isEditMode: boolean;\n public expenseCategoryName: string;\n public isCreditCardExpense: boolean;\n public claimantId: number;\n public claimantName: string;\n public isFmEditingExpense:boolean;\n public isFmRevertingExpense:boolean;\n public originalExpenseData:IClaimantExpenseDetail;\n public createType:number;\n public claimType: ClaimType;\n public containerId: number;\n public containerName: string;\n}\n\nexport class DismissCreditCardExpenseInputModel {\n expenseId: number;\n claimantId: number;\n claimantName: string;\n}\nexport class DismissCreditCardExpenseOutputModel {\n expenseId: number;\n saveStatus: number;\n}\n\nexport class AssociateCreditCardExpenseInputModel {\n orgExpenseCategoryId: number;\n supplier: string;\n expenseId: number;\n expenseCategoryName: string;\n claimantId: number;\n claimantName: string;\n}\nexport class AssociateCreditCardExpenseOutputModel {\n expenseId: number;\n expenseDate: number;\n supplier: string;\n currencyId: number;\n amount: string;\n currencyCode: string;\n}\n\n\nexport interface IRecentJourneysRequest {\n baseCategoryId: number;\n orgId: number;\n userId: number;\n}\n\nexport class RecentJourneysRequest implements IRecentJourneysRequest {\n baseCategoryId: number;\n orgId: number;\n userId: number;\n constructor(\n baseCategoryId: number,\n orgId: number,\n userId: number\n\n ) {\n this.baseCategoryId = baseCategoryId;\n this.orgId = orgId;\n this.userId = userId;\n }\n}\n\nexport interface IRecentJourneysResponse {\n journeyList: any[];\n}\n\nexport class RecentJourneysResponse implements IRecentJourneysResponse {\n journeyList: any[];\n}\n\n\nexport class ViewRecentJourneyInputModel {\n baseCategoryId: number;\n}\n\nexport interface IMediaSaveResponse {\n expenseIds: any[];\n}\n\nexport class MediaSaveResponse implements IMediaSaveResponse {\n expenseIds: any[];\n}\n\nexport interface IExpenseRequest {\n requestData: string;\n receiptFiles: File[];\n content: any;\n}\n\nexport class ExpenseRequest implements IExpenseRequest {\n requestData: string;\n receiptFiles: File[];\n content: any;\n constructor(\n requestData: string,\n receiptFiles: File[],\n content: any\n\n ) {\n this.requestData = requestData;\n this.receiptFiles = receiptFiles;\n this.content = content;\n }\n}\n\nexport class ReceiptSaveRequest {\n expenseIds: any[];\n orgId: number;\n userId: number;\n platformID: number;\n spentCurrencyId: number;\n saveStatus: number;\n content: string;\n hasReceipt: boolean;\n hasVoiceMemo: boolean;\n currencyId: number;\n updatedBy: number;\n createdBy: number;\n updatedOn: number;\n createdOn: number;\n receiptsInfo: ReceiptsInfo[];\n invoice: InvoiceVal;\n}\n\nexport class ReceiptsInfo {\n isDeletable: boolean;\n receiptName: string;\n receiptDate: number;\n receiptLocationInfo: ReceiptLocationInfo;\n receiptSize: number;\n receiptFormatId: number; //1: Image, 2: PDF\n isEmailedReceipt: boolean;\n action: number; //1: Add, 2: Update (check)\n reciptLocalPath:string;\n expenseReceiptId: number;\n receiptId: number;\n receiptUrl: string | ArrayBuffer | null;\n rotationDegree: number;\n receiptFor:number;\n receiptScanOption:number;\n}\n\nexport class ReceiptLocationInfo {\n location: string;\n latitude: number;\n longitude: number;\n}\n\nexport class ExpenseMergeInputModel {\n orgId: number;\n userId: number;\n expenseId: number = 0;\n mergeExpenseIds = [];\n receiptInfo: ReceiptsInfo[];\n}\n\nexport class ExpenseMergePanelOutputModel {\n selectedExpenseIds = [];\n tagsList = [];\n receiptList = [];\n voiceMemoList = [];\n notesList = [];\n}\n\nexport interface IGetReceiptExpensesWithAttachmentRequest {\n orgId: number;\n userId: number;\n}\n\nexport class GetReceiptExpensesWithAttachmentRequest implements IGetReceiptExpensesWithAttachmentRequest {\n orgId: number;\n userId: number;\n expenseId: number;\n constructor(\n orgId: number,\n userId: number,\n expenseId: number\n ) {\n this.orgId = orgId;\n this.userId = userId;\n this.expenseId = expenseId;\n }\n}\n\nexport class LocationDetail {\n location: string;\n latitude: number;\n longitude: number;\n locationTrackTime: number;\n placeId: number;\n}\n\nexport class UserDeleteMileageRateInfo {\n userDeletedMileageRateId: number;\n toBeDeleted: boolean;\n miles: string;\n userId: number;\n}\n\nexport class NRFCDetails {\n nRFCStatus: number;\n nRFuelRate: string;\n nRVatRateValue: number;\n nRVatRateId: number;\n nRFCEffectiveFrom: number;\n}\n\nexport class ResourceMileageDetailsRequest {\n constructor(\n public userId: number,\n public orgID: number,\n public fromLocation: LocationDetail,\n public toLocation: LocationDetail,\n public orgExpenseCategoryId: number,\n public action: number\n ) {}\n}\n\n\nexport interface IResourceMileageDetailsResponse {\n //orgVehicleTypeMapId: number;\n //vehicleTypeId: number;\n //mileageRate: number;\n //vehicleStatus: number;\n //averageMiles: number;\n //openingBalance: number;\n //mileageRateInfo: MileageMultiRateInfo[];\n userId: number;\n vehicleId: number;\n vehicleSubTypeId: number;\n mileageUOM: number;\n isDetourEnabled: boolean;\n rateType: number;\n isPayActualEnabled: boolean;\n triangulationRule: number;\n nrfcStatus: number;\n nrAvailableDistance: number;\n nrfcEffectiveFrom: number;\n userHomeAddressInfo: UserHomeAddressInfo;\n userOfficeAddressInfo: UserOfficeAddressInfo;\n vehicleDetailResponse: VehicleDetailResponse;\n multipleVehicleCount: number;\n customMileageRate: CustomMileageRate;\n crossOverDetail: CrossOverDetail;\n googleCallsInfo: GoogleCallsInfo;\n nrfcInfo: any;\n isOperationInfoPopupShow: boolean;\n isOtherOfficeAvailable:boolean;\n}\nexport class GoogleCallsInfo {\n isGoogleCallsRestrict: boolean;\n limitChar: number;\n notesForGoogle: string;\n}\nexport class CrossOverDetail {\n firstTierDistance: number;\n secondTierDistance: number;\n totalDistanceTravelled: number;\n totalAmountPaid: number;\n dateOfJourney: number;\n}\n\nexport class ResourceMileageDetailsResponse implements IResourceMileageDetailsResponse {\n userId: number;\n vehicleId: number;\n vehicleSubTypeId: number;\n mileageUOM: number;\n isDetourEnabled: boolean;\n rateType: number;\n isPayActualEnabled: boolean;\n triangulationRule: number;\n officePostcodeId: number;\n homeAddress: string;\n homeLatitude: number;\n homeLongitude: number;\n homePlaceId: string;\n miles: number;\n isWorkFromHome: boolean;\n nrfcStatus: number;\n nrAvailableDistance: number;\n nrfcEffectiveFrom: number;\n userHomeAddressInfo: UserHomeAddressInfo;\n userOfficeAddressInfo: UserOfficeAddressInfo;\n vehicleDetailResponse: VehicleDetailResponse;\n multipleVehicleCount: number;\n customMileageRate: CustomMileageRate;\n crossOverDetail: CrossOverDetail;\n googleCallsInfo: GoogleCallsInfo;\n nrfcInfo: any;\n isOperationInfoPopupShow: boolean;\n isOtherOfficeAvailable:boolean;\n}\n\nexport class VehicleDetailResponse {\n orgVehicleTypeMapId: number;\n vehicleTypeId: number;\n vehicleId: number;\n vehicleSubTypeId: number;\n mileageRate: number;\n vehicleStatus: number;\n averageMiles: number;\n openingBalance: number;\n mileageRateInfo: MileageMultiRateInfo[];\n docStatus: number;\n derivedName: string;\n registrationNumber: string;\n makeModel: string;\n mileageAllowance: MileageAllowance[];\n}\n\nexport interface IVehicleListResponse {\n userVehicleList: IVehicleInfo[];\n}\n\nexport class VehicleListResponse implements IVehicleListResponse {\n userVehicleList: IVehicleInfo[];\n}\n\nexport interface IVehicleInfo {\n vehicleId: number;\n derivedName: string;\n registrationNumber: string;\n makeModel: string;\n isDefault: boolean;\n averageMiles: number;\n openingBalance: number;\n vehicleStatus: number;\n isExpenseCreated: boolean;\n vehicleTypeId: number;\n orgVehicleTypeMapId: number;\n vehicleSubType: number;\n vehicleCreationDate: number;\n deleteDate: number;\n milesDone: number;\n docStatus: number;\n mileageRate: number;\n mileageRateInfo: MileageMultiRateInfo[];\n mileageAllowance: MileageAllowance[];\n}\n\nexport class VehicleInfo implements IVehicleInfo {\n vehicleId: number;\n derivedName: string;\n registrationNumber: string;\n makeModel: string;\n isDefault: boolean;\n averageMiles: number;\n openingBalance: number;\n vehicleStatus: number;\n isExpenseCreated: boolean;\n vehicleTypeId: number;\n orgVehicleTypeMapId: number;\n vehicleSubType: number;\n vehicleCreationDate: number;\n deleteDate: number;\n milesDone: number;\n docStatus: number;\n mileageRate: number;\n mileageRateInfo: MileageMultiRateInfo[];\n mileageAllowance: MileageAllowance[];\n}\n\nexport class MileageMultiRateInfo {\n mileageRateSetupId: number;\n rangeFrom: number;\n rangeTo: number;\n mileageRate: number;\n milesTravelled: number;\n amount: number;\n vatRate: number;\n vatRateId: number;\n vatRateAmount: number;\n}\nexport class LocationCommonDetail {\n address: string;\n latitude: number;\n longitude: number;\n placeId: string;\n}\nexport class UserHomeAddressInfo extends LocationCommonDetail {\n miles: number;\n isWorkFromHome: boolean;\n}\nexport class UserOfficeAddressInfo extends LocationCommonDetail {\n officePostcodeId: number;\n officeName: string;\n}\n\n\n\n\n\nexport class MileageForSaveExpense {\n mileageDetails: Mileage;\n amount: number;\n tags: string[];\n}\nexport class Mileage {\n fromLocation: LocationDetail;\n toLocation: LocationDetail;\n route: LocationDetail[];\n returnRoute: LocationDetail[];\n vehicleId: number;\n distance: number;\n returnDistance: number;\n totalDistance: number;\n mileageUOM: number;\n hasReturnJourney: boolean;\n mileageRate: number;\n detour: number;\n detourJustificationNotes: string;\n triangulatedDistance: number;\n returnTriangulatedDistance: number;\n totalTriangulatedDistance: number;\n milesTraveled: number;\n returnMilesTraveled: number;\n totalMilesTraveled: number;\n isMultiRange: boolean;\n journeyType: number;\n mileageDate: number;\n derivedName: string;\n registrationNumber: string;\n makeModel: string;\n mileageRateInfo: MileageMultiRateInfo[];\n operationalInformation: ExpenseOperationalInfo[];\n //sourceDestinationResponse: SourceDestinationResponse[];\n sourceDestinationInformation: SourceDestinationResponse[];\n passengerLoadAmount: number;\n carbonFootprint:number;\n}\n\nexport class SelectDetourInputModel {\n detour: number;\n detourJustificationNotes: string;\n}\n\nexport class SelectDetourOutputModel {\n detour: number;\n detourJustificationNotes: string;\n}\n\n\nexport interface IGetReceiptExpensesWithAttachmentResponse {\n expenseList: ReceiptExpenseDetails[]\n}\n\nexport class GetReceiptExpensesWithAttachmentResponse implements IGetReceiptExpensesWithAttachmentResponse {\n expenseList: ReceiptExpenseDetails[]\n}\n\nexport class MemoInfo {\n name: string;\n url: string;\n}\n\nexport class ReceiptExpenseDetails {\n expenseId: number;\n orgId: number;\n expenseDate: number;\n receiptInfo: ReceiptsInfo[];\n mobileExpenseUniqueId: string;\n currencyId: number;\n spentAmount: number;\n paymentTypeId: number;\n noOfEmployee: number;\n noOfGuest: number;\n noOfRooms: number;\n noOfNight: number;\n orgExpenseCategoryId: number;\n baseCategoryId: number;\n stateId: number;\n conversionRate: string;\n supplier: string;\n amount: string;\n notes: string;\n isPolicyViolated: boolean;\n justificationNotes: string;\n hasReceipt: boolean;\n hasTags: boolean;\n hasVoiceMemo: boolean;\n expenseStatus: number;\n approverNotes: string;\n workflowCount: number;\n tagList: string[];\n mileage: any;\n memoInfo: MemoInfo;\n preApprovalTag: any;\n cardDescription: string;\n cardNumber: string;\n cardReferenceNo: string;\n taxRateMasterId: number;\n}\n\nexport class SelectRecentJourneyInputModel {\n baseCategoryId: number;\n claimantId: number;\n claimantName: string;\n}\nexport class SelectRecentJourneyOutputModel {\n fromLocation: LocationDetail;\n toLocation: LocationDetail;\n totalDistance: number;\n}\n\nexport class SelectCostCentrePopupModel {\n costCentreId: number;\n costCentreName: string;\n isSelectionHide: boolean;\n}\n\n\nexport class SelectLocationPopupModel {\n locationId: number;\n locationName: string;\n isSelectionHide: boolean;\n}\n\nexport class SelectReceiptTypePopupModel {\n vatNoVatReceiptTypeId: number;\n options: SelectReceiptTypeOutputModel[];\n}\n\nexport class SelectReceiptTypeOutputModel {\n vatNoVatReceiptTypeId: number;\n vatNoVatReceiptType: string;\n}\n\nexport class ViewExpensePolicyInputModel {\n policyList: [{ \"yearly\", \"Monthly\", \"Daily\" }];\n}\n\nexport class MileageData {\n mileageDate: number;\n journeyType: number;\n vehicleId: number;\n customMileageRate: CustomMileageRate\n sourceDestinationInformation: SourceDestinationRequest[];\n operationalInformation: ExpenseOperationalInfo[];\n}\nexport class SourceDestinationRequest {\n sequence: number;\n detour: number;\n distance: number;\n carbonFootprint:number;\n detourJustificationNotes: string;\n notes: string;\n route: LocationDetail[];\n fromLocation: LocationDetail;\n toLocation: LocationDetail;\n tagList: string[];\n mileageAllowance: MileageAllowance;\n totalTriangulatedDistanceText: string;\n isOtherOfficeAvailable:boolean;\n currentLocation:any;\n}\nexport class MileageAllowance {\n mileageAllowanceId: number;\n allowanceRate: number;\n passengerCount: number;\n loadCount: number;\n allowanceDescription: string;\n allowanceIcon: string;\n allowanceId: number;\n selected: boolean;\n}\nexport class CalculateMileageRequest {\n userId: number;\n orgID: number;\n baseCategoryId: number;\n orgExpenseCategoryId:number;\n orgVehicleTypeMapId: number;\n vehicleId: number;\n vehicleTypeId: number;\n journeyType: number;\n mileageDateDetails: MileageData[];\n}\n\nexport class CalculateMileageResponse {\n userId: number;\n totalDistanceOfMultiple: number;\n totalCarbonFootprint:number;\n mileageUOM: number;\n journeyType: number;\n mileageDetailList: MileageDetailList[];\n nRFCDetails: NRFCDetails;\n}\n\nexport class MileageDetailList {\n mileageDate: number;\n detour: number;\n amount: number;\n distance: number; \n returnDistance: number;\n totalDistance: number;\n triangulatedDistance: number;\n returnTriangulatedDistance: number;\n totalTriangulatedDistance: number;\n totalTriangulatedAmount: number;\n detourAmount: number;\n milesTraveled: number;\n returnMilesTraveled: number;\n totalMilesTraveled: number;\n mileageRate: number;\n isMultiRange: boolean;\n vatRate: number;\n vatRateId: number;\n triangulationCall: number;\n totalNumberOfCall: number;\n docStatus: number\n mileageRateInfo: MileageMultiRateInfo[];\n userDeleteMileageRateInfoList: UserDeleteMileageRateInfo[];\n googleCallUsed: number;\n homeCountIfTakeDiffRule: number;\n addDetour: boolean;\n appliedTriangulationRule: number;\n officeToCustomerDistance: number;\n sourceDestinationInformation: SourceDestinationResponse[];\n passengerLoadAmount: number;\n totalTriangulatedDistanceText: string;\n}\n\nexport class MileageMultipleDateDetails extends MileageDetailList {\n tags: string[];\n detourJustificationNotes: string;\n isDeleted: boolean;\n mileageDateUniqueId: number;\n}\n\nexport class SourceDestinationResponse extends MileageAllowance {\n detour: number;\n distance: number;\n totalDistance: number;\n carbonFootprint:number;\n triangulatedDistance: number;\n officeToCustomerDistance: number;\n milesTraveled: number;\n homeCountIfTakeDiffRule: number;\n appliedTriangulationRule: number;\n sequence: number;\n detourJustificationNotes: string;\n notes: string;\n fromLocation: LocationDetail;\n toLocation: LocationDetail;\n route: LocationDetail[];\n userDeleteMileageRateInfoList: UserDeleteMileageRateInfo[];\n tagList: string[];\n mileageAllowance: MileageAllowance;\n totalTriangulatedDistanceText: string;\n expenseMileageMultiLegId:number;\n}\n\nexport class OrganisationRulesResponse {\n orgId: number;\n isValidateCustomerForAttendeeType: boolean;\n isValidateCostCentreForAttendeeType: boolean;\n}\n\nexport class NRDetailRequest {\n effectiveFrom: number\n expenseDate: number\n}\n\nexport class MultipleLegsAddJourneyFormModel extends SourceDestinationRequest{\n sequence: number;\n isEditMode: boolean = false;\n fromLocationDescription: string;\n toLocationDescription: string;\n isFromLocationDisabled : boolean= false;\n allowanceDescription: string;\n userHomeAddressInfo: UserHomeAddressInfo;\n userOfficeAddressInfo: UserOfficeAddressInfo;\n triangulationRule: number;\n disabledCalculateBtn: boolean;\n googleCallsInfo: GoogleCallsInfo;\n}\n\nexport class MultipleLegsPopupModel{\n multipleLegList: SourceDestinationResponse[];\n calculateMileageDetails: CalculateMileageResponse;\n claimantId: number;\n claimantName: string;\n isAdvanceMileagePurchasedOrTrial: boolean;\n isDetourEnabled: boolean;\n isPassengerLoadPurchased: boolean;\n mileageUOM: number;\n isMultipleVehiclePurchase: boolean = false;\n isEditMode: boolean = false;\n selectedSequence: number;\n isReturnJourney: boolean;\n claimantHomeCurrencyCode: string;\n baseCategoryId:number;\n \n}\n\nexport class MultipleLegsDetailsModel{\n multipleLegList: SourceDestinationResponse[];\n calculateMileageDetails: CalculateMileageResponse;\n totalLegsDistance: number;\n amount: string;\n tags:string[];\n}\n\nexport class PreviewOutputModel\n{\n date : string;\n amount : string;\n supplier:string;\n receiptNumber:string;\n receipt : ReceiptsInfo;\n}\nexport class AmendedExpenseDetailsPanelInputModel {\n expenseId: number;\n}\n\n\nexport interface IClaimantAmendedExpenseDetailsRequest {\n expenseId: number;\n}\n\nexport class ReceiptOutputModel{\n previewModel: PreviewOutputModel;\n receiptModel: IReceiptInfo[];\n}\nexport class ClaimantAmendedExpenseDetailsRequest implements IClaimantAmendedExpenseDetailsRequest {\n expenseId: number;\n constructor(\n expenseId: number\n\n ) {\n this.expenseId = expenseId;\n }\n}\n\nexport interface IClaimantAmendedExpenseDetailsRes {\n amendedExpHistory: AmendedExpHistory[];\n originalExpenseData:IClaimantExpenseDetail;\n updatedDate: string;\n updatedBy: string;\n}\n\nexport class ClaimantAmendedExpenseDetailsRes implements IClaimantAmendedExpenseDetailsRes {\n amendedExpHistory: AmendedExpHistory[];\n originalExpenseData:IClaimantExpenseDetail;\n updatedDate: string;\n updatedBy: string;\n}\n\nexport class AmendedExpHistory {\n fieldId: number;\n fieldName: string;\n originalValue: string;\n amendedValue: string;\n}\n\nexport class DeleteReceiptShortRequest\n{\n receiptIds: number [];\n isSoftDelete: boolean;\n}\n\nexport class DeleteReceiptResponse\n{\n actionResponse: number;\n receiptId: number;\n}\n\nexport class DeleteReceiptResponseList\n{\n DeleteReceiptResponse: DeleteReceiptResponse[];\n}\n\nexport class NRReceiptSaveRequest {\n nrfcEffectiveFrom: number;\n amount: number;\n currencyId: number;\n hasReceipt: boolean;\n mobileNRUniqueId: string;\n Notes: string;\n nrCurrentStatus: number;\n nrFuelDate: number;\n nrReceiptId: number;\n orgId: number;\n paymentTypeId: number;\n spentCurrencyID: number;\n submissionDate: number;\n supplier: string;\n userId: number;\n nrfcReceiptInfo: ReceiptsInfo[];\n}\n\nexport class NRFCReceiptResponse {\n nrFCReceiptId:number;\n fcInfoStatus:number;\n CurrentStatus:number;\n ResponseString:string;\n NRFCReceiptStatuses: NRFCReceiptStatus[];\n\n}\n\nexport class NRFCReceiptStatus {\n nrFCReceiptId:number;\n Status:number;\n FCInfoStatus:number;\n Error:string;\n\n}\n\nexport class FCReceiptRequest {\n fcReceiptId: number;\n orgId: number;\n userId: number;\n vehicleId: string;\n openingBalance: number;\n openingBalanceDate: number;\n closingBalance: number;\n closingBalanceDate: number;\n distanceAvailable: number;\n distanceTravelled: number;\n businessDistance: number;\n privateDistance: number;\n notes: string;\n fcCurrentStatus: number;\n receiptDate: number;\n hasReceipt: boolean;\n isClosingBalUpdateRequired: boolean;\n nrfcEffectiveFrom: number;\n nrfcReceiptInfo: ReceiptsInfo[];\n submissionDate:number;\n action:number;\n isVehicleChanged:number;\n derivedName:number;\n registrationNumber:string;\n makeModel:string;\n vehicleTypeId:number;\n userVehicleSetupId:number\n}\n\nexport class CreditCardExpenseInfoRes{\n currency : any;\n exchangeRate: any;\n localCurrencyAmount: any;\n notes1: any;\n notes2: any;\n notes3: any;\n notes4: any;\n notes5: any;\n }\n\n export class UserCustomSetting {\n userCustomSettingId: number;\n sectionId: number;\n sequence: number;\n userId: number;\n type: number;\n}\n\n export interface ISaveUserCustomSettingRequest {\n type: number;\n userId: number;\n userCustomSettings: UserCustomSetting[];\n}\n\nexport class SaveUserCustomSettingRequest implements ISaveUserCustomSettingRequest {\n type: number;\n userId: number;\n userCustomSettings: UserCustomSetting[];\n constructor(\n type: number,\n userId: number,\n userCustomSettings: UserCustomSetting[]\n ) {\n this.type = type;\n this.userId = userId;\n this.userCustomSettings = userCustomSettings;\n }\n}\n\n\nexport class HistoricalJustificationInputModel{\n approverNotes: any;\n}\n\nexport class CreditCardExpenseInfoInputModel{\n expenseId: number;\n }\n\n \nexport class ExpensePolicyInputModel{\n expenseId: number;\n currencyCode: string;\n isReceiptNumberSettingsEnabled: boolean;\n claimType: any;\n expenseDetails: any;\n pageType: any;\n }\n\n export interface IExpenseDashboardDetailsRequest {\n orgId: number;\n userId: number;\n isUnreportedExpenses: boolean;\n}\n\nexport class ExpenseDashboardDetailsRequest implements IExpenseDashboardDetailsRequest {\n orgId: number;\n userId: number;\n isUnreportedExpenses: boolean;\n constructor(\n orgId: number,\n userId: number,\n isUnreportedExpenses: boolean\n ) {\n this.orgId = orgId;\n this.userId = userId;\n this.isUnreportedExpenses = isUnreportedExpenses;\n }\n}\n\nexport interface IExpenseDashboardDetailsResponse {\n totalIncompleteExpenseCount: number;\n incompleteExpenseCount: number;\n incompleteCardExpenseCount: number;\n rejectedExpenseCount: number;\n totalIncompleteContainerCount: number;\n}\n\nexport class ExpenseDashboardDetailsResponse implements IExpenseDashboardDetailsResponse {\n totalIncompleteExpenseCount: number;\n incompleteExpenseCount: number;\n incompleteCardExpenseCount: number;\n rejectedExpenseCount: number;\n totalIncompleteContainerCount: number;\n}\n\nexport class OtherExpenseDetailsModel\n{\n OrgId: number;\n ContainerId: number;\n UserId: number;\n gridExpenseStatus: string;\n excludeExpenseIds: any[];\n totalExpenseCount: number;\n remainingExpenseCount: number;\n \n}","export class ExpenseCategoryRequest {\n WebApiName: string;\n WebApiVersion: number;\n RequestId: number;\n RequestInfo: ExpenseCategoryRequestInfo;\n}\n\nexport class ExpenseCategoryRequestInfo {\n OrgId: number;\n LastUpdatedTimeStamp: number;\n IsForCreditCardExpense: boolean;\n UserId:number;\n}\n\nexport class ExpenseCategoryInExpenseRequest {\n WebApiName: string;\n WebApiVersion: number;\n RequestId: string;\n RequestInfo: number;\n}\n\n\n","export class EmailModel {\n emailLogId: string;\n userId: number;\n templateName: string;\n subjct: string;\n to: string;\n replyTo: string;\n cC: string[];\n bCC: string[];\n isAttachmentsIncluded: boolean;\n attachments: string[];\n sentTime: number;\n deliveredTime: number;\n status: number;\n emailNotificationUniqueId: string;\n emailType: string;\n keyValuePairs: {[index:string]: string}={};\n}\n","export class LoggingPanelModel {\n\n constructor(\n public orgId: string,\n public functionId: string,\n public FilterType: string,\n public MileageFilterType: string = \"0\",\n public EntityFilterType: string = \"0\"\n ) {\n }\n}\n\nexport class LoggingPanelData {\n constructor(\n public Date: string,\n public ActionBy: string, \n public Log: string) {\n\n }\n}\n","export interface IOrgSubscription {\n orgId: number;\n}\n\nexport class OrgSubscription implements IOrgSubscription {\n orgId: number;\n constructor(orgId: number)\n {\n this.orgId = orgId;\n }\n}\n\n\nexport interface IUpdateOrganisationSubscriptionInvoiceStatusRequest {\n organisationSubscriptionInvoiceID: number;\n\tstatus :number;\n\tuserId: number;\n}\n\nexport class UpdateOrganisationSubscriptionInvoiceStatusRequest implements IUpdateOrganisationSubscriptionInvoiceStatusRequest {\n organisationSubscriptionInvoiceID: number;\n\tstatus :number;\n\tuserId: number;\n}","import { ActionButtonConfig} from \"src/app/_models/common/form/form\";\nexport interface IAlertPanelModel {\n title: string;\n message: string[];\n btnOkToolTipText: string;\n btnCancelToolTipText: string;\n showPanel: boolean;\n showReviewConfirmContinuePanel: boolean;\n showReviewConfirmContinuePanelText: string;\n bodyClass:string;\n hideInfoIcon:boolean;\n singleMessagetextClass:string;\n btnArray: any[];\n}\nexport class AlertPanelModel implements IAlertPanelModel {\n title: string;\n message: string[];\n btnOkToolTipText: string;\n btnCancelToolTipText: string;\n showPanel: boolean;\n showReviewConfirmContinuePanel: boolean;\n showReviewConfirmContinuePanelText: string;\n bodyClass:string;\n hideInfoIcon:boolean;\n singleMessagetextClass:string;\n htmlMessage: any[] = [];\n btnArray: any[] = [];\n\n constructor(\n showPanel: boolean,\n title: string,\n message: string[],\n btnCancelToolTipText: string,\n btnOkToolTipText: string,\n showReviewConfirmContinuePanel: boolean,\n showReviewConfirmContinuePanelText: string\n\n ) {\n this.showPanel = showPanel;\n this.title = title;\n this.message = message;\n this.btnCancelToolTipText = btnCancelToolTipText;\n this.btnOkToolTipText = btnOkToolTipText;\n this.showReviewConfirmContinuePanel = showReviewConfirmContinuePanel;\n this.showReviewConfirmContinuePanelText = showReviewConfirmContinuePanelText;\n }\n}\n\n\n\nexport class MultiButtonAlertPanelModel\n{\n title: string;\n message: string[] = [];\n btnOkToolTipText: string;\n btnCancelToolTipText: string;\n showPanel: boolean;\n showReviewConfirmContinuePanel: boolean;\n showReviewConfirmContinuePanelText: string;\n bodyClass:string;\n hideInfoIcon:boolean;\n singleMessagetextClass:string;\n htmlMessage: any[] = [];\n buttonConfig: ActionButtonConfig[];\n}\n","export class BackgroundTask {\n constructor(public topic: string, public key: string, public input: any, public allItemIds: string[],\n public notificationHeader: string, public notificationBody: string, public route: string,\n public functionId: number, public privilegeId: number, public userName: string) {\n\n }\n}\nexport class BackgroundTaskStatus {\n constructor(public id: string, public startTime: number, public endTime: number, public status: number,\n public failedCount: number, public passedCount: number, public totalCount: number,\n public output: any) {\n\n }\n}\n\nexport enum BackgroundTaskStatusEnum {\n NotStarted = 0,\n InProgress = 1,\n Success = 2,\n PartialSuccess = 3,\n Failed = 4\n}","export class Claims {\n UserId: number;\n LoginId: string;\n Token: string;\n OrgId: number;\n EmailId: string;\n FMRoleType: number;\n CurrentOrganisationCurrency: string;\n CurrentOrganisationCurrencyCode: string;\n FinanceManager: string;\n Password: string;\n OrgLogo: string = \"assets/images/logo.png\";\n SelectedCurrency: string;\n SelectedCurrencyCode: string;\n OrgName: string;\n CurrencyIcon: string;\n CurrencyCode: string;\n EmployeesInvited: number;\n ApproverName: string;\n OrganisationBasicSetup: string;\n IsFinanceManager: boolean = false;\n TwoStepApproval: boolean = false;\n MenuSettings: boolean = false;\n expensesPendingPayment: boolean = false;\n IsCardSetupComplete: boolean;\n pendingForFinanceApproval: number = 0;\n pendingAllForPayment: number = 0;\n pendingExpensesForPayment: number = 0;\n AccountingCode: string;\n accountingSystemId: number = 0;\n accountingSystemType: number = 0;\n CartCount: number = 0;\n CurrentOrganisationCurrencyId: number;\n IsRedirectFromCart: boolean = false;\n IsOnboardingCompleted: boolean = true;\n IsAccountingIntegrationPackagePurchasedOrTrial: boolean = false;\n IsAttendeeTypePurchased: boolean = false;\n FirstName: string;\n LastName: string;\n IsCreditCardPackageSubscribed: boolean = false;\n IsPackagePurchasedOrTrial: boolean = false;\n showGooglePackagePurchaseReminder: boolean = false;\n googlePackagePurchaseReminderThreshold: number = 0;\n IsSocialMediaUser: boolean = false;\n IsMarqueeOn: boolean = false;\n MarqueeText: string;\n IsCostCentrePackagePurchasedOrTrial: boolean = false;\n IsOrgBasicFunctionTrialEndsReminder: boolean = false;\n IsOrgBasicFunctionTrialEndsAlert: boolean = false;\n IsCustomerPackagePurchasedOrTrial: boolean = false;\n IsExportReportPackagePurchasedOrTrial: boolean = false;\n IsExpenseCategoryPackagePurchasedOrTrial: boolean = false;\n IsTaxPackagePurchasedOrTrial: boolean = false;\n ReferAndEarnRole: number;\n IsMultipleCompaniesPackagePurchasedOrTrial: boolean = false;\n IsProjectBudgetPurchasedOrTrial: boolean = false;\n pendingCountNRFinanceApproval: number = 0;\n pendingCountNRApprover: number = 0;\n pendingExpenseCountApprover: number = 0;\n isNRPackagePurchasedOrTrial: boolean = false;\n ShowPendingDeputyPanel: boolean = true;\n isFCPackagePurchasedOrTrial: boolean = false;\n pendingCountFCFinanceApproval: number = 0;\n pendingCountFCApprover: number = 0;\n ShowPendingEmployeeWithGradePanel: boolean = true;\n CompanyApproverRule: number = 0;\n IsLocationPurchasedOrTrial: boolean = false;\n isClaimOnWebAllowed: boolean = false;\n RateType: number = 0;\n IsSecondaryFMPackagePurchasedOrTrial: boolean = false;\n IsAssignDeputyToApproversPurchased: boolean = false;\n IsClaimantWiseMonthlyCappingEnabled: boolean = false;\n IsClaimantWiseYearlyCappingEnabled: boolean = false;\n IsSupplierPurchasedOrTrial: boolean = false;\n IsDocPackagePurchasedOrTrial: boolean = false;\n IsLeaveManagementAllowed: boolean = false;\n ApprovalRuleSetting: number;\n showCostCentresWithoutApproverCount: boolean = false;\n isUniversalImportAllowed: boolean = false;\n IsMultipleCountryPackagePurchasedOrTrial: boolean = false;\n IsDuplicateCheckerPurchasedOrTrial: boolean = false;\n SelectedCountry: number;\n SelectedCountryName: string;\n UserHomeCurrencyId: number;\n orgRoleId: number = 0;\n isPreApprovalPurchased: boolean = false;\n pendingCountPreApproval: number = 0;\n pendingExpensesWithApprover: number = 0;\n UserHomeCurrencyCode: string;\n isAdvanceBalanceOutstanding: boolean = false;\n isAdvancesFunctionPurchasedOrTrial: boolean = false;\n IsCashAdvanceEnabled: boolean = false;\n IsCreditCardAdvanceEnabled: boolean = false;\n advanceCappingPolicyType: number = 0;\n pendingAdvancesForApproval: number = 0;\n pendingAdvancesForPayment: number = 0;\n pendingAdvanceForFinanceApproval: number = 0;\n AccIntSelectedCompanyData: any;\n isMultiAccSysIntAllow: boolean = false;\n isPolicyOnVehicleChange: boolean = false;\n triangulationRule: number;\n supplierRule: number;\n showCompliancePopup: boolean = false;\n complianceHeader: string;\n complianceStatement: string;\n showRecommendationPopup: boolean;\n isStripPaymentFailed: boolean = false;\n IsDelegator: boolean = false;\n IsDelegate: boolean = false;\n IsDelegateFunctionPurchasedOrTrial: boolean = false;\n displayAlertPanelModelForMiles: boolean;\n appVersion: number;\n userType: number;\n kycStatus: number;\n isAPAutomationFunctionPurchasedOrTrial: boolean = false;\n pendingCountInvoiceApproval: number = 0;\n pendingCountInvoiceFinanceApproval: number = 0;\n pendingCountInvoicePay: number = 0;\n IsCounterApproverPurchased: boolean = false;\n IsVendorPurchased: boolean = false;\n IsKYCMandatoryForInvoice: boolean = false;\n IsAPAutomationAllow: boolean = false;\n nrfcStatus: number = 0;\n UserHomeCurrencyName: string;\n SelectedCurrencyName: string;\n docStatus: number;\n isDocRequired: boolean;\n invoiceActiveTab: string;\n IsFromOrgLogin: boolean;\n BandId: number = 0;\n IsGetStartedPopup: boolean;\n isBasicFunctionPurchased: boolean = true;\n IsPayStepEnabled: boolean = false;\n IsLeftMenuCollapseAndStopToggle: boolean = false;\n IsRecallExportedExpensesPurchased: boolean = false;\n IsContainerEnabled: boolean = false;\n IsSpecialCategoryFunctionPurchasedorTrial: boolean = false;\n IsAutomaticScanEnabled: boolean = false;\n ManageCCOptions: number = 0;\n IsFaceIdRegistered = false;\n IsContainerPurchasedOrTrial: boolean = false;\n IsCfpEnabled:boolean = false;\n\n IsContainerAllowed: boolean;\n PreApprovalEnabled: boolean;\n LocationLabel:string;\n IsMFAEnabled:boolean;\n IsMFADeviceRegistered:boolean;\n}\n","\nexport interface IEmailSendRequest {\n templateName: string;\n userId: number;\n orgId: number;\n keyValuePairs: any;\n}\n\nexport class EmailSendRequest implements IEmailSendRequest {\n templateName: string;\n userId: number;\n orgId: number;\n keyValuePairs: any;\n constructor(\n templateName: string,\n userId: number,\n orgId: number,\n keyValuePairs: any\n\n ) {\n this.templateName = templateName;\n this.userId = userId;\n this.orgId = orgId;\n this.keyValuePairs = keyValuePairs;\n }\n}\n\nexport interface ISendReminderResponse {\n responseString: string;\n}\n\nexport class SendReminderResponse implements ISendReminderResponse {\n responseString: string;\n}\n","export class GridConfig {\n constructor(\n public hideFilters: boolean,\n public isInsidePanel: boolean,\n public defaultSortColumn: string,\n public rowKey: string,\n public statusValue: number,\n public enableRowSelection: boolean,\n public countByStatus: CountByStatus[],\n public suppressCellSelection: boolean,\n public suppressRowClickSelection: boolean,\n public isCheckAllAllowed: boolean,\n public gridTitle: string,\n public defaultSortOrder: string,\n public rowHeight: number,\n public noDataMessage: string,\n public headerHeight: number = 0,\n public rowClassRules: any,\n public isHoverRowColumnHighlight: boolean,\n public suppressRowHoverHighlight: boolean,\n public searchBarClass: any,\n public gridWrapperClass: string,\n public columnHoverHighlight: boolean,\n public gridHeaderMessage:string = \"\",\n public dataFilterValue: number = 0,\n public dataFilterTitle: string = \"\",\n ) {\n }\n\n public gridTitleClass: string = '';\n}\n\nexport class CountByStatus {\n constructor(\n public className: string,\n public label: string,\n public count: number,\n public isClickEvent: boolean,\n public value: number \n ) { \n }\n}\n","export enum EmployeeStatusEnum {\n Active = 1,\n Inactive = 2,\n NotInvited = 3,\n Pending = 4,\n Delete = 5\n}\n\nexport enum UserTypeEnum {\n Claimant = 1,\n Approver = 2,\n FinanceManager = 3,\n Agent = 4,\n Vendor = 5\n}\n\n\n","export class MarketingPopup {\n constructor(public title: string, public description1: string, public description2: string,\n public description3: string, public image1: string, public image2: string, public tooltip: string,\n public functionPackageId: number, public functionPackageName: string,\n public packagePath: string, public dependentFunctionId: number, public dependentFunction2Id: number,public descListHeader?: string, public descList?: string[], public descListFooter?: string) {\n\n }\n}","export class NotificationGroup {\n constructor(public header: string, public headerText: string,\n public notifications: Notification[], public unreadCount: number, public isUnread: boolean) {\n\n }\n}\n\nexport class Notification {\n public id: string;\n public orgId: string;\n public jobStatus: number;\n public jobId: string;\n public functionId: number;\n public text: NotificationTextModel;\n public displayText: any;\n public iconUrl: string;\n public action: NotificationActionModel;\n public addOn: string;\n public addBy: number;\n public editOn: string;\n public editBy: number;\n public userId: number;\n public isNew: boolean;\n public isVisible: boolean;\n public isSnoozed: boolean;\n public snoozeStart: Date;\n public snoozeEnd: Date;\n public snoozeBtnVisible: boolean;\n public actionsBtnVisible: boolean;\n public failNotification: boolean;\n public privilegeId: number;\n}\n\nexport class NotificationTextModel {\n public header: string;\n public key: string;\n public params: string[];\n}\n\nexport class NotificationActionModel {\n public type: number;\n public route: string;\n public panel: string;\n public userId: number;\n}\n\nexport enum NotificationActionType {\n Redirect = 1,\n ShowPanel = 2,\n BackgroundJob = 3\n}","\nexport interface IApiRequest {\n webApiName: string;\n webApiVersion: number;\n requestId: string;\n requestInfo: T;\n\n}\n\nexport class ApiRequest implements IApiRequest {\n webApiName: string;\n webApiVersion: number;\n requestId: string;\n requestInfo: T;\n\n constructor(webApiName: string,\n webApiVersion: number,\n requestId: string) {\n this.webApiName = webApiName;\n this.webApiVersion = webApiVersion;\n this.requestId = requestId;\n }\n}\n\n\n","import { IDeviceInfo, DeviceInfo } from \"./device-info\";\n\nexport interface IDefaultParams {\n orgId: number;\n userId: number;\n requestTimeStamp: number;\n deviceInfo: IDeviceInfo;\n timeZoneInfo: ITimeZoneInfo;\n\n}\n\nexport class DefaultParams implements IDefaultParams {\n orgId: number;\n userId: number;\n userName: string;\n requestTimeStamp: number;\n deviceInfo: DeviceInfo;\n timeZoneInfo: TimeZoneInfo;\n\n constructor(orgId: number,\n userId: number,\n userName: string,\n requestTimeStamp: number) {\n this.orgId = orgId;\n this.userId = userId;\n this.userName = userName;\n this.requestTimeStamp = requestTimeStamp;\n }\n}\nexport interface ITimeZoneInfo {\n timeZoneOffset: number;\n localDateString: string;\n}\nexport class TimeZoneInfo implements ITimeZoneInfo {\n timeZoneOffset: number;\n localDateString: string;\n}","\n\nexport interface IDeviceInfo {\n languageCode: string;\n platform: string;\n applicationVersion: string;\n appId: string;\n deviceId: string;\n browser:string;\n bVersion:string;\n}\n\nexport class DeviceInfo implements IDeviceInfo {\n languageCode: string;\n platform: string;\n applicationVersion: string;\n appId: string;\n deviceId: string;\n browser:string;\n bVersion:string;\n\n constructor(languageCode: string, platform: string, applicationVersion: string, appId: string, deviceId: string,\n browser:string, bVersion:string) {\n this.languageCode = languageCode;\n this.platform = platform;\n this.applicationVersion = applicationVersion;\n this.appId = appId;\n this.deviceId = deviceId;\n this.browser = browser;\n this.bVersion = bVersion;\n }\n}\n","\nexport interface IPagingDetail {\n records: number;\n noOfRecords: number;\n page: number;\n pageNo: number;\n sortOrder: number;\n skipRecords: number;\n pageSize: number;\n}\n\nexport class PagingDetail implements IPagingDetail {\n records: number;\n noOfRecords: number;\n page: number;\n pageNo: number;\n sortOrder: number;\n skipRecords: number;\n pageSize: number;\n}\n\n\n","\nexport interface ISoloCheckFuncPurchaseListRequest {\n userId: number;\n orgId: number;\n}\n\nexport class SoloCheckFuncPurchaseListRequest implements ISoloCheckFuncPurchaseListRequest {\n userId: number;\n orgId: number;\n constructor(orgId: number, userId: number) {\n this.orgId = orgId;\n this.userId = userId;\n }\n}\n","export class Wizard {\n stepName: any;\n stepNum: number;\n stepDesc: any;\n stepClass: any;\n isStepMandatory: boolean;\n iconClass: any;\n iconTooltip: any;\n iconPlacement: any;\n progressbarType: any;\n progressbarMessage: any;\n progressbarValue: number;\n progressbarMessageArray: KeyValueArray[];\n stepDescMessageArray: KeyValueArray[];\n stepDescMessage: any;\n stepExtraMessageArray: any;\n stepExtraMessage: any;\n functionId: number;\n alertPanelType: number;\n highlightStep: any;\n isDisabled: boolean;\n isInfoIcon: boolean;\n infoIconMsg: any;\n stepUrl: any;\n disabledClass:any;\n isProgressBar:any;\n comingSoonDesc:any;\n actualStepNum?: number;\n showButton?:boolean;\n}\nexport class WizardResponse {\n wizardList: Wizard[];\n cancelledFuncListDetails: any[];\n purchasedFunctionList: any[];\n mileageValidationDate:number;\n isAccountingIntegrationTurnOn: boolean;\n isAllStepCompleted: boolean;\n defaultScrollId: number;\n}\nexport class KeyValueArray {\n key: number;\n value: string\n}\n\nexport class wizardRequestConfig {\n companyId: number;\n accountingSystemId: number;\n}\n\nexport class WizardDetailRequest extends wizardRequestConfig {\n WizardAction: number;\n OtherId: number;\n \n}\nexport class wizardConfig {\n mainScrollConditionRequired: boolean;\n defaultScrollId: number;\n}\n"," export class ContainerTurnOnSettingResponse{\n isContainerEnabled: boolean;\n }\n \n export interface IContainerTurnOnSettingRequest{\n isContainerEnabled: boolean;\n orgId: number;\n userId: number;\n userName: string;\n }\n \n export class ContainerTurnOnSettingRequest implements IContainerTurnOnSettingRequest{\n isContainerEnabled: boolean;\n orgId: number;\n userId: number;\n userName: string;\n }\n\n export class IContainerListRequest{\n userId: number;\n orgId: number;\n }\n\n export class ContainerListRequest implements IContainerListRequest{\n userId: number;\n orgId: number;\n }\n\n export class ContainerResponse{\n selected: boolean;\n containerId: number;\n name: string;\n description: string;\n userId: number;\n orgId: number;\n submitted: boolean;\n submittedOn: number;\n createdOn: number;\n updatedOn: number;\n createdBy: number;\n updatedBy: number;\n expenseCount: number;\n expenseStatus: number;\n totalExpenseCount: number;\n preApprovalId: number;\n totalExpenseAmount: number;\n isPolicyViolated: boolean;\n potentialFraud: boolean;\n isExpenseEditedByFM: boolean;\n approverAsDeputy: boolean;\n actualApproverId: number;\n approverAsCounterApprover: boolean;\n hideEdit: boolean;\n }\n\n export class SelectContainerInputModel {\n containerId: number;\n containerName: string;\n claimantId: number;\n}\n\n export class SelectContainerOutputModel {\n containerId: number;\n containerName: string;\n preApprovalId: number;\n}\n\nexport class ContainerRequest {\n containerId: number;\n name: string;\n description: string;\n userId: number;\n orgId: number;\n createdOn: number;\n updatedOn: number;\n createdBy: number;\n updatedBy: number;\n userName: string;\n}\n\nexport class ContainerFormModel extends ContainerRequest {\n isEditMode: boolean;\n}\n\nexport class AddContainerInputModel {\n containerId: number;\n containerName: string;\n claimantId: number;\n isEditMode: boolean;\n}\n\nexport class AddContainerOutputModel {\n containerId: number;\n containerName: string;\n isEdited: boolean;\n}\n\nexport class DeleteContainerRequest {\n containerId: number;\n}\n\n\nexport class IExpenseContainerListRequest{\n userId: number;\n orgId: number;\n expenseStatus: number[];\n}\n\nexport class ExpenseContainerListRequest implements IExpenseContainerListRequest{\n userId: number;\n orgId: number;\n expenseStatus: number[];\n}\n\nexport class ExpenseContainerResponse{\n containerList: ContainerResponse[];\n totalCount: number;\n incompleteCount: number;\n incompleteCreditCardCount: number;\n rejectedCount: number;\n awaitingReviewCount: number;\n awaitingFinanceApprovalCount: number;\n approvedForPaymentCount: number;\n passedForPaymentCount: number;\n unReportedExpenseCount: number;\n}\n\nexport class ContainerListResponse{\n containerList: ContainerResponse[];\n}\n\nexport class SaveContainerResponse{\n containerId: number;\n}\n\n\nexport class IUpdateContainerRequest{\n userId: number;\n orgId: number;\n containerId: number;\n action: number;\n expenseInfo: any[];\n}\n\nexport class UpdateContainerRequest implements IUpdateContainerRequest{\n userId: number;\n orgId: number;\n containerId: number;\n action: number;\n expenseInfo: any[];\n}\n\n\nexport class UpdateContainerResponse{\n expenseStatusInfo: any[];\n}\n\nexport class MoveContainerExpenseInputModel {\n containerId: number;\n containerName: string;\n claimantId: number;\n selectedExpenseList: any[];\n}\n\nexport class MoveExpensesToContainerRequest {\n expenseIds: number[];\n containerId: number;\n userId: number;\n orgId: number;\n}\n\n\nexport class IApproverContainerListRequest {\n userId: number;\n orgId: number;\n claimantId: number;\n expenseStatus: number;\n preApprovalId: number;\n approverAsDeputy: boolean;\n actualApproverId: number;\n containerId: number;\n claimType: number;\n}\n\nexport class ApproverContainerListRequest implements IApproverContainerListRequest{\n userId: number;\n orgId: number;\n claimantId: number;\n expenseStatus: number;\n preApprovalId: number;\n approverAsDeputy: boolean;\n actualApproverId: number;\n containerId: number;\n claimType: number;\n}\n\nexport class ApproverContainerListResponse{\n containerList: ContainerResponse[];\n countOfContainer: number;\n}\n\nexport class ContianerPolicyInputModel{\n containerId: number;\n expenseStatusInfo: any[];\n}\n\n\n\n","import { CostCentreStatusEnum } from \"../enum/solo-enum\";\n\nexport interface IRequestCostCentre {\n costCentreId: number;\n organisationId: number;\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n replacementDate: Date;\n newCostCentreName: string;\n newCostCentreCode1: string;\n newCostCentreCode2: string;\n status: number;\n createdBy: number;\n createdDate: Date;\n modifedBy: number;\n modifiedDate: Date;\n createdByName: string;\n updatedOn: Date;\n}\n\nexport class RequestCostCentre implements IRequestCostCentre {\n costCentreId: number;\n organisationId: number;\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n replacementDate: Date;\n newCostCentreName: string;\n newCostCentreCode1: string;\n newCostCentreCode2: string;\n status: number;\n createdBy: number;\n createdDate: Date;\n modifedBy: number;\n modifiedDate: Date;\n createdByName: string;\n updatedOn: Date;\n constructor(\n costCentreId: number,\n organisationId: number,\n costCentreName: string,\n costCentreCode1: string,\n costCentreCode2: string,\n replacementDate: Date,\n newCostCentreName: string,\n newCostCentreCode1: string,\n newCostCentreCode2: string,\n status: number,\n createdBy: number,\n createdDate: Date,\n modifedBy: number,\n modifiedDate: Date,\n createdByName: string\n ) {\n this.costCentreId = costCentreId;\n this.organisationId = organisationId;\n this.costCentreName = costCentreName;\n this.costCentreCode1 = costCentreCode1;\n this.costCentreCode2 = costCentreCode2;\n this.replacementDate = replacementDate;\n this.newCostCentreName = newCostCentreName;\n this.newCostCentreCode1 = newCostCentreCode1;\n this.newCostCentreCode2 = newCostCentreCode2;\n this.status = status;\n this.createdBy = createdBy;\n this.createdDate = createdDate;\n this.modifedBy = modifedBy;\n this.modifiedDate = modifiedDate;\n this.createdByName = createdByName;\n }\n}\n\nexport class CostCentreModel {\n id: number;\n value: string;\n code: string;\n isActive: boolean;\n}\n\nexport class CostCentreApprover {\n costCentreId: number;\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n status: number;\n approverIds: number[];\n}\n\nexport class CostCentreApproversCount {\n costCentreId: number;\n approversCount: number;\n}\n\nexport class SaveCostCentreApproverRequest {\n constructor(public userName: string, public costCentreApproverMap: AssignCostCentreApprover[]) {\n\n }\n}\n\nexport class AssignCostCentreApprover {\n constructor(public costCentreId: number, public costCentreName: string,public costCentreCode1: string,\n public approverId: number, public approverName: string, public action: number) {\n\n }\n}\n\nexport interface IResponseCostCentre {\n costCentreId: number;\n organisationId: number;\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n replacementDate: any;\n newCostCentreName: string;\n newCostCentreCode1: string;\n newCostCentreCode2: string;\n status: number;\n createdBy: number;\n createdDate: Date;\n modifedBy: number;\n modifiedDate: Date;\n isAnyEmployeeAssigned: boolean;\n selected: boolean;\n createdByName: string;\n updatedOn: Date;\n isRowHighlighted: boolean;\n isActiveProject: boolean;\n hideDeactivate:boolean;\n hideActivate:boolean;\n}\n\nexport class ResponseCostCentre implements IResponseCostCentre {\n costCentreId: number;\n organisationId: number;\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n replacementDate: any;\n newCostCentreName: string;\n newCostCentreCode1: string;\n newCostCentreCode2: string;\n status: number;\n createdBy: number;\n createdDate: Date;\n modifedBy: number;\n modifiedDate: Date;\n isAnyEmployeeAssigned: boolean;\n selected: boolean = false;\n createdByName: string;\n updatedOn: Date;\n isRowHighlighted: boolean = false;\n isActiveProject: boolean;\n hideDeactivate:boolean;\n hideActivate:boolean;\n constructor(\n costCentreId: number,\n organisationId: number,\n costCentreName: string,\n costCentreCode1: string,\n costCentreCode2: string,\n replacementDate: any,\n newCostCentreName: string,\n newCostCentreCode1: string,\n newCostCentreCode2: string,\n status: number,\n createdBy: number,\n createdDate: Date,\n modifedBy: number,\n modifiedDate: Date,\n isAnyEmployeeAssigned: boolean,\n createdByName: string\n ) {\n this.costCentreId = costCentreId;\n this.organisationId = organisationId;\n this.costCentreName = costCentreName;\n this.costCentreCode1 = costCentreCode1;\n this.costCentreCode2 = costCentreCode2;\n this.replacementDate = replacementDate;\n this.newCostCentreName = newCostCentreName;\n this.newCostCentreCode1 = newCostCentreCode1;\n this.newCostCentreCode2 = newCostCentreCode2;\n this.status = status;\n this.createdBy = createdBy;\n this.createdDate = createdDate;\n this.modifedBy = modifedBy;\n this.modifiedDate = modifiedDate;\n this.isAnyEmployeeAssigned = isAnyEmployeeAssigned;\n this.createdByName = createdByName;\n }\n}\n\nexport interface IRequestCostCentreByOrg {\n organisationId: number;\n status: number;\n pageNumber: number;\n sortOrder: number;\n sortColumn: string;\n}\n\nexport class RequestCostCentreByOrg implements IRequestCostCentreByOrg {\n organisationId: number;\n status: number;\n pageNumber: number;\n sortOrder: number;\n sortColumn: string;\n constructor(\n organisationId: number,\n status: number,\n pageNumber: number,\n sortOrder: number,\n sortColumn: string\n ) {\n this.organisationId = organisationId;\n this.status = status;\n this.pageNumber = pageNumber;\n this.sortOrder = sortOrder;\n this.sortColumn = sortColumn;\n }\n}\n\nexport interface IRequestGetCostCentre {\n costCentreId: number;\n}\n\nexport class RequestGetCostCentre implements IRequestGetCostCentre {\n costCentreId: number;\n constructor(costCentreId: number) {\n this.costCentreId = costCentreId;\n }\n}\n\nexport interface IResponseCostCenterLog {\n costCentreHistoryId: number;\n costCentreId: number;\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n newCostCentreName: string;\n newCostCentreCode1: string;\n newCostCentreCode2: string;\n replacementDate: Date;\n actionPerformed: number;\n createdBy: number;\n createdDate: Date;\n createdByName: string;\n notes: string;\n}\n\nexport interface IRequestGetCostCentreLog {\n costCentreId: number;\n}\n\nexport class RequestGetCostCentreLog implements IRequestGetCostCentreLog {\n costCentreId: number;\n constructor(costCentreId: number) {\n this.costCentreId = costCentreId;\n }\n}\n\nexport interface IModelError {\n costCentreNameError: boolean;\n costCentreCode1Error: boolean;\n costCentreCode2Error: boolean;\n newCostCentreNameError: boolean;\n newCostCentreCode1Error: boolean;\n newCostCentreCode2Error: boolean;\n costCentreNameExistsError: boolean;\n newCostCentreNameExistsError: boolean;\n costCentreCode1ExistsError: boolean;\n newCostCentreCode1ExistsError: boolean;\n}\n\nexport class ModelError implements IModelError {\n costCentreNameError: boolean;\n costCentreCode1Error: boolean;\n costCentreCode2Error: boolean;\n newCostCentreNameError: boolean;\n newCostCentreCode1Error: boolean;\n newCostCentreCode2Error: boolean;\n costCentreNameExistsError: boolean;\n newCostCentreNameExistsError: boolean;\n costCentreCode1ExistsError: boolean;\n newCostCentreCode1ExistsError: boolean;\n constructor() { }\n}\n\nexport interface IRequestDeactiveCostCentre {\n costCentreId: number;\n}\n\nexport class RequestDeactiveCostCentre implements IRequestDeactiveCostCentre {\n costCentreId: number;\n modifedBy: number;\n createdByName: string;\n status: number;\n constructor(costCentreId: number, modifedBy: number, createdByName: string, status: number = CostCentreStatusEnum.Inactive) {\n this.costCentreId = costCentreId;\n this.modifedBy = modifedBy;\n this.createdByName = createdByName;\n this.status = status;\n }\n}\n\nexport interface IRequestGetCostCentreListForAssignEmployee {\n organisationId: number;\n status: number;\n}\n\nexport class RequestSaveCCDisplaySetting{\n ccDisplaySetting:number;\n}\n\nexport class RequestGetCostCentreListForAssignEmployee\n implements IRequestGetCostCentreListForAssignEmployee {\n organisationId: number;\n status: number;\n companyId: number;\n constructor(organisationId: number, status: number) {\n this.organisationId = organisationId;\n this.status = status;\n }\n}\n\nexport interface ICostCentreMappedEmployeeList {\n costCentreId: number;\n\n organisationId: number;\n\n employeeIds: number[];\n costCentreName: string;\n}\n\nexport class CostCentreMappedEmployeeList\n implements ICostCentreMappedEmployeeList {\n costCentreId: number;\n organisationId: number;\n employeeIds: number[];\n costCentreName: string;\n\n constructor(\n costCentreId: number,\n organisationId: number,\n employeeIds: number[],\n costCentreName: string\n ) {\n this.costCentreId = costCentreId;\n this.employeeIds = employeeIds;\n this.organisationId = organisationId;\n this.costCentreName = costCentreName;\n }\n}\n\nexport interface IRequestBulkDeactiveCostCentre {\n costCentreIds: number[];\n\n modifiedBy: number;\n createdByName: string;\n}\n\nexport class RequestBulkDeactiveCostCentre\n implements IRequestBulkDeactiveCostCentre {\n costCentreIds: number[];\n modifiedBy: number;\n createdByName: string;\n isBulkDeleteAction: boolean;\n constructor(\n costCentreIds: number[],\n modifiedBy: number,\n createdByName: string,\n isBulkDeleteAction: boolean = false\n ) {\n this.costCentreIds = costCentreIds;\n this.modifiedBy = modifiedBy;\n this.createdByName = createdByName;\n this.isBulkDeleteAction = isBulkDeleteAction;\n }\n}\n\nexport interface ICSVRecord {\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n error: string;\n}\nexport class CSVRecord implements ICSVRecord {\n public costCentreName: string;\n public costCentreCode1: string;\n public costCentreCode2: string;\n public error: string;\n constructor() { }\n}\n\nexport interface IFailedCostCentreImportInfo {\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n error: string;\n}\nexport class FailedCostCentreImportInfo implements IFailedCostCentreImportInfo {\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n error: string;\n\n constructor(\n costCentreName: string,\n costCentreCode1: string,\n costCentreCode2: string,\n error: string\n ) {\n this.costCentreName = costCentreName;\n this.costCentreCode1 = costCentreCode1;\n this.costCentreCode2 = costCentreCode2;\n this.error = error;\n }\n}\n\nexport interface IRequestImportCostCentre {\n costCentreList: IRequestCostCentre[];\n}\n\nexport class RequestImportCostCentre implements IRequestImportCostCentre {\n costCentreList: IRequestCostCentre[];\n\n constructor(costCentreList: IRequestCostCentre[]) {\n this.costCentreList = costCentreList;\n }\n}\n\nexport interface ICSVRecordExport {\n CostCentreName: string;\n CostCentreCode1: string;\n CostCentreCode2: string;\n Error: string;\n}\n\nexport class CSVRecordExport implements ICSVRecordExport {\n CostCentreName: string;\n CostCentreCode1: string;\n CostCentreCode2: string;\n Error: string;\n}\n\nexport class ActiveCostCentreResponse {\n costCentreId: number;\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n derivedName:string;\n isHomeCostCentre: boolean;\n}\n\nexport interface IGetCostCentreResponse {\n costCentreValues: ActiveCostCentreResponse[];\n}\n\nexport class GetCostCentreResponse implements IGetCostCentreResponse {\n costCentreValues: ActiveCostCentreResponse[];\n}\n\nexport class CostCentreCSVRecord {\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n costCentreNameError: string;\n costCentreCode1Error: string;\n errors: string;\n errorsCount: number;\n}","\nimport { ErrorInfo } from \"../common/error-info\";\n\nexport interface ICardOrganisationSaveRequest {\n cardOrganisationId: number;\n organisationId: number;\n cardType: number;\n bankName: string;\n liveMode: number;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n}\n\nexport class CardOrganisationSaveRequest\n implements ICardOrganisationSaveRequest {\n cardOrganisationId: number;\n organisationId: number;\n cardType: number;\n bankName: string;\n liveMode: number;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n isActive: boolean;\n}\n\nexport interface ICardOrganisationSaveResponse {\n responseString: string;\n}\n\nexport class CardOrganisationSaveResponse\n implements ICardOrganisationSaveResponse {\n responseString: string;\n}\n\nexport interface ICardImportTemplateSaveRequest {\n organisationId: number;\n expenseDateCol: number;\n cardNumberCol: number;\n amountCol: number;\n currencyCol: number;\n exchangeRateCol: number;\n localCurrencyAmountCol: number;\n supplierCol: number;\n dateFormat: number;\n drCrCol: number;\n notes1Col: number;\n notes2Col: number;\n notes3Col: number;\n notes4Col: number;\n referenceNumberCol: number;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n createdByName: string;\n importDateFormat: string;\n}\n\nexport class CardImportTemplateSaveRequest\n implements ICardImportTemplateSaveRequest {\n organisationId: number;\n expenseDateCol: number;\n cardNumberCol: number;\n amountCol: number;\n currencyCol: number;\n exchangeRateCol: number;\n localCurrencyAmountCol: number;\n supplierCol: number;\n dateFormat: number;\n drCrCol: number;\n notes1Col: number;\n notes2Col: number;\n notes3Col: number;\n notes4Col: number;\n referenceNumberCol: number;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n createdByName: string;\n importDateFormat: string;\n}\n\nexport interface ICardImportTemplateSaveResponse {\n responseString: string;\n}\n\nexport class CardImportTemplateSaveResponse\n implements ICardImportTemplateSaveResponse {\n responseString: string;\n}\n\nexport interface IResponseCardImportTemplateHistory {\n cardImportTemplateHistoryId: number;\n cardImportTemplateId: number;\n // organisationId: number;\n expenseDateCol: number;\n cardNumberCol: number;\n amountCol: number;\n currencyCol: number;\n exchangeRateCol: number;\n localCurrencyAmountCol: number;\n supplierCol: number;\n drCrCol: number;\n notes1Col: number;\n notes2Col: number;\n notes3Col: number;\n // notes4Col: number;\n referenceNumberCol: number;\n notes: string;\n // actionPerformed: number;\n createdBy: number;\n createdOn: Date;\n // createdByName: string;\n}\n\nexport interface ICardRulesImportSaveRequest {\n OrganisationId: number;\n CardNumberLength: number;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n CreatedByName: string;\n}\n\nexport class CardRulesImportSaveRequest implements ICardRulesImportSaveRequest {\n OrganisationId: number;\n CardNumberLength: number;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n CreatedByName: string;\n}\n\nexport interface ICardRulesImportResponse {\n CardRulesImportId: number;\n OrganisationId: number;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n isDuplicateCards: boolean;\n}\n\nexport class CardRulesImportResponse implements ICardRulesImportResponse {\n CardRulesImportId: number;\n OrganisationId: number;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n isDuplicateCards: boolean;\n}\n\nexport interface ICardRulesEmailReminderSaveRequest {\n OrganisationId: number;\n OutstandingReminder: boolean;\n OutstandingReminderDays: number;\n OutstandingReminderEmailToApprover: boolean;\n OutstandingReminderEmailToFM: boolean;\n OutstandingReminderEmailToOtherFM: boolean;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n CreatedByName: string;\n}\n\nexport class CardRulesEmailReminderSaveRequest\n implements ICardRulesEmailReminderSaveRequest {\n OrganisationId: number;\n OutstandingReminder: boolean;\n OutstandingReminderDays: number;\n OutstandingReminderEmailToApprover: boolean;\n OutstandingReminderEmailToFM: boolean;\n OutstandingReminderEmailToOtherFM: boolean;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n CreatedByName: string;\n}\n\nexport interface ICardRulesEmailReminderResponse {\n CardRulesEmailReminderId: number;\n OrganisationId: number;\n OutstandingReminder: boolean;\n OutstandingReminderDays: number;\n OutstandingReminderEmailToApprover: boolean;\n OutstandingReminderEmailToFM: boolean;\n OutstandingReminderEmailToOtherFM: boolean;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n}\n\nexport class CardRulesEmailReminderResponse\n implements ICardRulesEmailReminderResponse {\n CardRulesEmailReminderId: number;\n OrganisationId: number;\n OutstandingReminder: boolean;\n OutstandingReminderDays: number;\n OutstandingReminderEmailToApprover: boolean;\n OutstandingReminderEmailToFM: boolean;\n OutstandingReminderEmailToOtherFM: boolean;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n}\n\nexport interface ICardRulesFinancialYearSaveRequest {\n OrganisationId: number;\n FinancialYearStartDate: Date;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n CreatedByName: string;\n}\n\nexport class CardRulesFinancialYearSaveRequest\n implements ICardRulesFinancialYearSaveRequest {\n OrganisationId: number;\n FinancialYearStartDate: Date;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n CreatedByName: string;\n}\n\nexport interface ICardRulesFinancialYearResponse {\n CardRulesFinancialYearId: number;\n OrganisationId: number;\n FinancialYearStartDate: number;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n}\n\nexport class CardRulesFinancialYearResponse\n implements ICardRulesFinancialYearResponse {\n CardRulesFinancialYearId: number;\n OrganisationId: number;\n FinancialYearStartDate: number;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n}\n\nexport interface ICardRulesEmailReminderHistoryResponse {\n cardRulesEmailReminderHistoryId: number;\n cardRulesEmailReminderId: number;\n outstandingReminder: boolean;\n outstandingReminderDays: number;\n outstandingReminderEmailToApprover: boolean;\n outstandingReminderEmailToFM: boolean;\n outstandingReminderEmailToOtherFM: boolean;\n notes: string;\n createdBy: number;\n createdOn: number;\n}\n\nexport interface ICardRulesFinancialYearHistoryResponse {\n cardRulesFinancialYearHistoryId: number;\n cardRulesFinancialYearId: number;\n financialYearStartDate: Date;\n notes: string;\n createdBy: number;\n createdOn: number;\n}\n\nexport interface ICardUserAssignmentListRequest {\n organisationId: number;\n status: number;\n pageNumber: number;\n sortOrder: number;\n sortColumn: string;\n}\n\nexport class CardUserAssignmentListRequest\n implements ICardUserAssignmentListRequest {\n organisationId: number;\n status: number;\n pageNumber: number;\n sortOrder: number;\n sortColumn: string;\n constructor(\n organisationId: number,\n status: number,\n pageNumber: number,\n sortOrder: number,\n sortColumn: string\n ) {\n this.organisationId = organisationId;\n this.status = status;\n this.pageNumber = pageNumber;\n this.sortOrder = sortOrder;\n this.sortColumn = sortColumn;\n }\n}\n\nexport interface ICardUserAssignmentListResponse {\n cardUserAssignmentId: number;\n organisationId: number;\n employeeId: number;\n cardNumber: string;\n employeeCode: string;\n fullName: string;\n firstName: string;\n lastName: string;\n claimantEmail: string;\n isActive: boolean;\n selected: boolean;\n isRowHighlighted: boolean;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n createdByName: string;\n error: string;\n}\n\nexport class CardUserAssignmentListResponse\n implements ICardUserAssignmentListResponse {\n cardUserAssignmentId: number;\n organisationId: number;\n employeeId: number;\n cardNumber: string;\n employeeCode: string;\n fullName: string;\n firstName: string;\n lastName: string;\n claimantEmail: string;\n isActive: boolean;\n selected: boolean;\n isRowHighlighted: boolean;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n createdByName: string;\n error: string;\n constructor(\n cardUserAssignmentId: number,\n organisationId: number,\n employeeId: number,\n cardNumber: string,\n employeeCode: string,\n fullName: string,\n firstName: string,\n lastName: string,\n claimantEmail: string,\n isActive: boolean,\n selected: boolean,\n isRowHighlighted: boolean,\n createdBy: number,\n createdOn: number,\n updatedBy: number,\n updatedOn: number,\n createdByName: string,\n error: string\n ) {\n (this.cardUserAssignmentId = cardUserAssignmentId),\n (this.organisationId = organisationId);\n (this.employeeId = employeeId),\n (this.cardNumber = cardNumber),\n (this.employeeCode = employeeCode),\n (this.fullName = fullName),\n (this.firstName = firstName),\n (this.lastName = lastName),\n (this.claimantEmail = claimantEmail),\n (this.isActive = isActive),\n (this.selected = selected),\n (this.isRowHighlighted = isRowHighlighted),\n (this.createdBy = createdBy),\n (this.createdOn = createdOn),\n (this.updatedBy = updatedBy),\n (this.updatedOn = updatedOn),\n (this.createdByName = createdByName);\n this.error = error;\n }\n}\n\nexport interface ICardUserAssignmentError {\n cardNumberError: boolean;\n}\n\nexport class CardUserAssignmentError implements ICardUserAssignmentError {\n cardNumberError: boolean;\n constructor() { }\n}\n\nexport interface ICardUserAssignmentRequest {\n cardUserAssignmentId: number;\n organisationId: number;\n employeeId: number;\n cardNumber: string;\n isActive: boolean;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n createdByName: string;\n}\n\nexport class CardUserAssignmentRequest implements ICardUserAssignmentRequest {\n cardUserAssignmentId: number;\n organisationId: number;\n employeeId: number;\n cardNumber: string;\n isActive: boolean;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n createdByName: string;\n constructor(\n cardUserAssignmentId: number,\n organisationId: number,\n employeeId: number,\n cardNumber: string,\n isActive: boolean,\n createdBy: number,\n createdOn: number,\n updatedBy: number,\n updatedOn: number,\n createdByName: string\n ) {\n this.cardUserAssignmentId = cardUserAssignmentId;\n this.organisationId = organisationId;\n this.employeeId = employeeId;\n this.cardNumber = cardNumber;\n this.isActive = isActive;\n this.createdBy = createdBy;\n this.createdOn = createdOn;\n this.updatedBy = updatedBy;\n this.updatedOn = updatedOn;\n this.createdByName = createdByName;\n }\n}\n\nexport interface ICardUserAssignmentHistoryResponse {\n cardUserAssignmentHistoryId: number;\n cardUserAssignmentId: number;\n cardNumber: string;\n isActive: boolean;\n notes: string;\n createdBy: number;\n createdOn: number;\n}\n\nexport interface ICSVRecordExport {\n EmployeeID: string;\n ClaimantName: string;\n Email: string;\n CreditCardNumber: string;\n Error: string;\n}\n\nexport class CSVRecordExport implements ICSVRecordExport {\n EmployeeID: string;\n ClaimantName: string;\n Email: string;\n CreditCardNumber: string;\n Error: string;\n constructor() { }\n}\n\nexport interface ICUACsvRecord {\n claimantCode: string;\n employeeName: string;\n email: string;\n cardNumber: string;\n error: string;\n}\n\nexport class CUACsvRecord implements ICUACsvRecord {\n claimantCode: string;\n employeeName: string;\n email: string;\n cardNumber: string;\n error: string;\n\n constructor() { }\n}\n\nexport interface IImportFormatResponse {\n expenseDateCol: number;\n cardNumberCol: number;\n amountCol: number;\n currencyCol: number;\n exchangeRateCol: number;\n localCurrencyAmountCol: number;\n supplierCol: number;\n drCrCol: number;\n notes1Col: number;\n notes2Col: number;\n notes3Col: number;\n notes4Col: number;\n referenceNumberCol: number;\n}\n\nexport class ImportFormatResponse implements IImportFormatResponse {\n expenseDateCol: number;\n cardNumberCol: number;\n amountCol: number;\n currencyCol: number;\n exchangeRateCol: number;\n localCurrencyAmountCol: number;\n supplierCol: number;\n drCrCol: number;\n notes1Col: number;\n notes2Col: number;\n notes3Col: number;\n notes4Col: number;\n notes5Col: number;\n referenceNumberCol: number;\n dateFormat: number;\n constructor(\n expenseDateCol: number,\n cardNumberCol: number,\n amountCol: number,\n currencyCol: number,\n exchangeRateCol: number,\n localCurrencyAmountCol: number,\n supplierCol: number,\n //drCrCol: number,\n notes1Col: number,\n notes2Col: number,\n notes3Col: number,\n notes4Col: number,\n notes5Col: number,\n referenceNumberCol: number,\n dateFormat: number\n ) {\n this.expenseDateCol = expenseDateCol;\n this.cardNumberCol = cardNumberCol;\n this.amountCol = amountCol;\n this.currencyCol = currencyCol;\n this.exchangeRateCol = exchangeRateCol;\n this.localCurrencyAmountCol = localCurrencyAmountCol;\n this.supplierCol = supplierCol;\n //this.drCrCol = drCrCol;\n this.notes1Col = notes1Col;\n this.notes2Col = notes2Col;\n this.notes3Col = notes3Col;\n this.notes4Col = notes4Col;\n this.notes5Col = notes5Col;\n this.referenceNumberCol = referenceNumberCol;\n this.dateFormat = dateFormat;\n }\n}\n\nexport interface ICSVRecordSampleCCImportTemplateExport {\n ExpenseDate: string;\n CardNo: string;\n ReferenceNo: string;\n Amount: string;\n Supplier: string;\n}\n\nexport class CSVRecordSampleCCImportTemplateExport\n implements ICSVRecordSampleCCImportTemplateExport {\n ExpenseDate: string;\n CardNo: string;\n ReferenceNo: string;\n Amount: string;\n Supplier: string;\n constructor() { }\n}\n\nexport interface ICardReviewUploadedStatementRequest {\n organisationId: number;\n uploadedCsvFileData: string[];\n}\n\nexport class CardReviewUploadedStatementRequest\n implements ICardReviewUploadedStatementRequest {\n organisationId: number;\n uploadedCsvFileData: string[];\n constructor(organisationId: number, uploadedCsvFileData: string[]) {\n this.organisationId = organisationId;\n this.uploadedCsvFileData = uploadedCsvFileData;\n }\n}\n\nexport interface ICardStatementReviewData {\n expenseDate: string;\n cardNumber: string;\n amount: string;\n currency: string;\n exchangeRate: string;\n localCurrencyAmount: string;\n supplier: string;\n drCr: string;\n notes1: string;\n notes2: string;\n notes3: string;\n notes4: string;\n referenceNumber: string;\n error: boolean;\n}\n\nexport class CardStatementReviewData implements ICardStatementReviewData {\n expenseDate: string;\n cardNumber: string;\n amount: string;\n currency: string;\n exchangeRate: string;\n localCurrencyAmount: string;\n supplier: string;\n drCr: string;\n notes1: string;\n notes2: string;\n notes3: string;\n notes4: string;\n referenceNumber: string;\n error: boolean;\n}\n\nexport interface ICardDismissedExpenseListRequest {\n orgId: number;\n skipRecords: number;\n noOfRecords: number;\n}\n\nexport class CardDismissedExpenseListRequest\n implements ICardDismissedExpenseListRequest {\n orgId: number;\n skipRecords: number;\n noOfRecords: number;\n constructor(\n orgId: number,\n skipRecords: number,\n noOfRecords: number\n ) {\n this.orgId = orgId;\n this.skipRecords = skipRecords;\n this.noOfRecords = noOfRecords;\n }\n}\n\nexport interface ICardDismissedTransactionListResponse {\n amount: number;\n cardNumber: string;\n dismissJustificationNotes: string;\n dismissedBy: string;\n expenseDate: number;\n expenseId: number;\n notes: string;\n orgId: number;\n supplier: string;\n userId: number;\n selected: boolean;\n isRowHighlighted: boolean;\n}\n\nexport class CardDismissedTransactionListResponse\n implements ICardDismissedTransactionListResponse {\n amount: number;\n cardNumber: string;\n dismissJustificationNotes: string;\n dismissedBy: string;\n expenseDate: number;\n expenseId: number;\n notes: string;\n orgId: number;\n supplier: string;\n userId: number;\n selected: boolean;\n isRowHighlighted: boolean;\n constructor(\n amount: number,\n cardNumber: string,\n dismissJustificationNotes: string,\n dismissedBy: string,\n expenseDate: number,\n expenseId: number,\n notes: string,\n orgId: number,\n supplier: string,\n userId: number,\n selected: boolean,\n isRowHighlighted: boolean\n ) {\n this.amount = amount;\n this.cardNumber = cardNumber;\n this.dismissJustificationNotes = dismissJustificationNotes;\n this.dismissedBy = dismissedBy;\n this.expenseDate = expenseDate;\n this.expenseId = expenseId;\n this.notes = notes;\n this.orgId = orgId;\n this.supplier = supplier;\n this.userId = userId;\n this.selected = selected;\n this.isRowHighlighted = isRowHighlighted;\n }\n}\n\nexport interface ICardClaimantAssignDismissedRequest {\n expenseId: number;\n userId: number;\n}\n\nexport class CardClaimantAssignDismissedRequest\n implements ICardClaimantAssignDismissedRequest {\n expenseId: number;\n userId: number;\n constructor(expenseId: number, userId: number) {\n this.expenseId = expenseId;\n this.userId = userId;\n }\n}\n\nexport interface ICardDashboardImports {\n importDate: number;\n statementDate: string;\n transactionOriginal: number;\n transactionNotImported: number;\n amount: number;\n transactionImported: number;\n claimants: number;\n completedAmount: number;\n completedTransaction: number;\n completedClaimants: number;\n pendingAmount: number;\n pendingTransaction: number;\n pendingClaimants: number;\n cardImportOriginalFileId: number;\n isRowHighlighted: boolean;\n}\n\nexport class CardDashboardImportsResponse implements ICardDashboardImports {\n importDate: number;\n statementDate: string;\n transactionOriginal: number;\n transactionNotImported: number;\n amount: number;\n transactionImported: number;\n claimants: number;\n completedAmount: number;\n completedTransaction: number;\n completedClaimants: number;\n pendingAmount: number;\n pendingTransaction: number;\n pendingClaimants: number;\n cardImportOriginalFileId: number;\n isRowHighlighted: boolean;\n constructor(\n importDate: number,\n statementDate: string,\n transactionOriginal: number,\n transactionNotImported: number,\n amount: number,\n transactionImported: number,\n claimants: number,\n completedAmount: number,\n completedTransaction: number,\n completedClaimants: number,\n pendingAmount: number,\n pendingTransaction: number,\n pendingClaimants: number,\n cardImportOriginalFileId: number,\n isRowHighlighted: boolean\n ) {\n this.importDate = importDate;\n this.statementDate = statementDate;\n this.transactionOriginal = transactionOriginal;\n this.transactionNotImported = transactionNotImported;\n this.amount = amount;\n this.transactionImported = transactionImported;\n this.claimants = claimants;\n this.completedAmount = completedAmount;\n this.completedTransaction = completedTransaction;\n this.completedClaimants = completedClaimants;\n this.pendingAmount = pendingAmount;\n this.pendingTransaction = pendingTransaction;\n this.pendingClaimants = pendingClaimants;\n this.cardImportOriginalFileId = cardImportOriginalFileId;\n this.isRowHighlighted = isRowHighlighted;\n }\n}\n\nexport interface ICardDashboardTopSpendor {\n userId: number;\n userName: string;\n count: number;\n amount: number;\n}\n\nexport interface ICardDashboardFrequentlyUsedCategories {\n expenseCategoryId: number;\n expenseCategoryName: string;\n count: number;\n amount: number;\n}\n\nexport interface ICardDashboardQuickestActionTakers {\n statement: string;\n employee1: string;\n employee2: string;\n employee3: string;\n employee4: string;\n employee5: string;\n}\n\nexport interface ICardDashboardSlowestActionTakers {\n statement: string;\n employee1: string;\n employee2: string;\n employee3: string;\n employee4: string;\n employee5: string;\n}\n\nexport interface ICSVTransactionTemplate {\n statementDate: string;\n cardNumber: string;\n expenseDate: string;\n amount: number;\n referenceNumber: string;\n supplier: string;\n currency: string;\n exchangeRate: string;\n localCurrencyAmount: number;\n //drCr: string;\n notes1: string;\n notes2: string;\n notes3: string;\n notes4: string;\n notes5: string;\n uniqueId: number;\n}\n\nexport class CSVTransactionTemplate implements ICSVTransactionTemplate {\n statementDate: string;\n cardNumber: string;\n expenseDate: string;\n amount: number;\n referenceNumber: string;\n supplier: string;\n currency: string;\n exchangeRate: string;\n localCurrencyAmount: number;\n //drCr: string;\n notes1: string;\n notes2: string;\n notes3: string;\n notes4: string;\n notes5: string;\n uniqueId: number;\n}\n\nexport interface ICardAssignCardExpensesToClaimantRequest {\n claimantId: number;\n assignedBy: number;\n expenseIds: number[];\n expenseCount: number;\n cardNumber: string;\n}\n\nexport class CardAssignCardExpensesToClaimantRequest\n implements ICardAssignCardExpensesToClaimantRequest {\n claimantId: number;\n assignedBy: number;\n expenseIds: number[];\n expenseCount: number;\n cardNumber: string;\n constructor(\n claimantId: number,\n assignedBy: number,\n expenseIds: number[],\n expenseCount: number,\n cardNumber: string\n ) {\n this.claimantId = claimantId;\n this.assignedBy = assignedBy;\n this.expenseIds = expenseIds;\n this.expenseCount = expenseCount;\n this.cardNumber = cardNumber;\n }\n}\n\nexport interface IGetAllEmployeesRequest {\n OrgId: number;\n Status: number;\n Type:number;\n}\n\nexport class GetAllEmployeesRequest implements IGetAllEmployeesRequest {\n OrgId: number;\n Status: number;\n Type:number;\n IsFromManageEmployee:boolean = false;\n constructor(OrgId: number, Status: number) {\n this.OrgId = OrgId;\n this.Status = Status;\n }\n}\n\n\nexport class DismissCardExpenseFormModel {\n dismissJustificationNotes: string;\n}\n\n\nexport interface IDismissCardExpenseRequest {\n expenseId: number;\n dismissJustificationNotes: string;\n userId: number;\n orgId: number;\n}\n\nexport class DismissCardExpenseRequest\n implements IDismissCardExpenseRequest {\n expenseId: number;\n dismissJustificationNotes: string;\n userId: number;\n orgId: number;\n constructor(\n expenseId: number,\n dismissJustificationNotes: string,\n userId: number,\n orgId: number\n ) {\n this.expenseId = expenseId;\n this.dismissJustificationNotes = dismissJustificationNotes;\n this.userId = userId;\n this.orgId = orgId;\n }\n}\n\nexport interface IClaimantAssociatedExpenseListRequest {\n orgId: number;\n userId: number;\n expenseCategoryId: number;\n supplierName: string;\n}\n\nexport class ClaimantAssociatedExpenseListRequest\n implements IClaimantAssociatedExpenseListRequest {\n orgId: number;\n userId: number;\n expenseCategoryId: number;\n supplierName: string;\n constructor(\n orgId: number,\n userId: number,\n expenseCategoryId: number,\n supplierName: string\n ) {\n this.orgId = orgId;\n this.userId = userId;\n this.expenseCategoryId = expenseCategoryId;\n this.supplierName = supplierName;\n }\n}\n\nexport interface IClaimantAssociatedExpenseListResponse {\n expenseList: IAssociatedExpenseDetail[]\n}\n\nexport class ClaimantAssociatedExpenseListResponse\n implements IClaimantAssociatedExpenseListResponse {\n expenseList: IAssociatedExpenseDetail[]\n constructor(\n expenseList\n ) {\n this.expenseList = expenseList\n }\n}\n\nexport interface IAssociatedExpenseDetail {\n expenseId: number;\n expenseDate: number;\n orgExpenseCategoryId: number;\n spentCurrencyId: number;\n spentAmount: string;\n supplier: string;\n orgId: number;\n notes: number;\n currencyId: number;\n amount: string;\n}\n\nexport class FinancialYearRulesFormModel {\n financialYearStartDate: Date;\n}\n\nexport class EmailReminderRulesFormModel {\n outstandingReminderDays: number;\n outstandingReminderEmailToApprover: boolean;\n outstandingReminderEmailToFM: boolean;\n}\n\nexport class ImportRulesFormModel {\n cardNumberLength: number;\n}\n\nexport interface IHistoricalPendingItems {\n pendingItemCount: number;\n pendingItemUserCount: number;\n pendingItemAmt: number;\n}\n\nexport class HistoricalPendingItems implements IHistoricalPendingItems {\n pendingItemCount: number;\n pendingItemUserCount: number;\n pendingItemAmt: number;\n}\n\nexport interface ICardPendingExpenseListResponse {\n expenseId: number;\n cardNumber: string;\n expenseDate: number;\n amount: number;\n supplier: string;\n userId: number;\n orgId: number;\n userName: string;\n updatedOn: number;\n isRowHighlighted: boolean;\n cardHolderId: number; \n cardHolderName: string;\n selected: boolean;\n}\n\nexport class CardPendingExpenseListResponse implements ICardPendingExpenseListResponse {\n expenseId: number;\n cardNumber: string;\n expenseDate: number;\n amount: number;\n supplier: string;\n userId: number;\n orgId: number;\n userName: string;\n updatedOn: number;\n isRowHighlighted: boolean;\n cardHolderId: number; \n cardHolderName: string;\n selected: boolean;\n}\n\n\nexport interface ICardReassignedAndDeletedExpenseListResponse {\n expenseId: number;\n cardNumber: string;\n expenseDate: number;\n amount: number;\n supplier: string;\n userId: number;\n orgId: number;\n userName: string;\n updatedOn: number;\n cardSupervisoryActionTaken: number;\n cardSupervisoryActionTakenOn: number;\n cardSupervisoryActionTakenBy: number;\n cardSupervisoryActionTakenByUserName: string;\n hideRestoreButton: boolean;\n isRowHighlighted: boolean;\n cardHolderName: string;\n}\n\nexport class CardReassignedAndDeletedExpenseListResponse implements ICardReassignedAndDeletedExpenseListResponse {\n expenseId: number;\n cardNumber: string;\n expenseDate: number;\n amount: number;\n supplier: string;\n userId: number;\n orgId: number;\n userName: string;\n updatedOn: number;\n cardSupervisoryActionTaken: number;\n cardSupervisoryActionTakenOn: number;\n cardSupervisoryActionTakenBy: number;\n cardSupervisoryActionTakenByUserName: string;\n hideRestoreButton: boolean;\n isRowHighlighted: boolean;\n cardHolderName: string;\n}\n\n\nexport interface ICardPendingExpenseListRequest {\n orgId: number;\n}\n\nexport class CardPendingExpenseListRequest implements ICardPendingExpenseListRequest {\n orgId: number;\n}\n\n\nexport interface ICardPendingExpenseListByImportIdRequest {\n orgId: number;\n importId: number;\n}\n\nexport class CardPendingExpenseListByImportIdRequest implements ICardPendingExpenseListByImportIdRequest {\n orgId: number;\n importId: number;\n}\n\n\n\nexport interface ICardSaveSupervisoryActionRequest {\n userId: number;\n expenseIds: number[];\n cardSupervisoryActionTaken: number;\n cardSupervisoryActionTakenOn: number;\n cardSupervisoryActionTakenBy: number;\n}\n\nexport class CardSaveSupervisoryActionRequest implements ICardSaveSupervisoryActionRequest {\n userId: number;\n expenseIds: number[];\n cardSupervisoryActionTaken: number;\n cardSupervisoryActionTakenOn: number;\n cardSupervisoryActionTakenBy: number;\n}\n\nexport interface ISelectUserModel {\n userId: number;\n userName: string;\n supplier: string;\n amount: number;\n expenseDate: number;\n cardNumber: string;\n expenseId: number;\n}\n\nexport class SelectUserModel implements ISelectUserModel {\n userId: number;\n userName: string;\n supplier: string;\n amount: number;\n expenseDate: number;\n cardNumber: string;\n expenseId: number;\n\n constructor(\n userId: number,\n userName: string,\n supplier: string,\n amount: number,\n expenseDate: number,\n cardNumber: string,\n expenseId: number\n ) {\n this.userId = userId;\n this.userName = userName;\n this.supplier = supplier;\n this.amount = amount;\n this.expenseDate = expenseDate;\n this.cardNumber = cardNumber;\n this.expenseId = expenseId;\n }\n}\n\nexport class CcImportTemplateDetails {\n importTemplateType: number;\n firstRowHasHeader: boolean;\n cardNoSelectionMode: number;\n cardNoCellRowId: number;\n cardNoCellColumnId: string;\n cardNoColumnStartRowId: number;\n cardNoColumnStartColumnId: string;\n importHeaderRowNo: number;\n expenseDateCol: string;\n cardNumberCol: string;\n amountCol: string;\n currencyCol: string;\n exchangeRateCol: string;\n localCurrencyAmountCol: string;\n supplierCol: string;\n supplierIdCol: string;\n notes1Col: string;\n notes2Col: string;\n notes3Col: string;\n notes4Col: string;\n notes5Col: string;\n referenceNumberCol: string;\n uniqueRowId: number;\n cardImportTemplateId: number;\n importDateFormat: string;\n}\n\nexport class CcImportModel {\n templateDetails: CcImportTemplateDetails;\n selectedCardNumber: string;\n isTemplateModified: boolean;\n rowsImported: number;\n cardNoFromCell: string;\n statementDate: Date;\n cardOrganisationId: number;\n totalCards:number;\n}\n\nexport class CardTransactionObject {\n cardNumber: string;\n expenseDate: string;\n amount: string;\n referenceNumber: string;\n supplier: string;\n currency: string;\n exchangeRates: string;\n localCurrencyAmount: string;\n //drCr: string;\n note1: string;\n note2: string;\n note3: string;\n note4: string;\n note5: string;\n uniqueRowId: number;\n supplierId: string;\n}\n\nexport interface ICardReviewUploadedTransactionsRequest {\n organisationId: number;\n templateDetails: CcImportTemplateDetails;\n cardTransactions: CardTransactionObject[];\n}\n\nexport class CardReviewUploadedTransactionsRequest\n implements ICardReviewUploadedTransactionsRequest {\n organisationId: number;\n templateDetails: CcImportTemplateDetails;\n cardTransactions: CardTransactionObject[];\n constructor(\n organisationId: number,\n templateDetails: CcImportTemplateDetails,\n cardTransactions: CardTransactionObject[]) {\n this.organisationId = organisationId;\n this.templateDetails = templateDetails;\n this.cardTransactions = cardTransactions;\n }\n}\n\nexport interface ICcImportReviewDisplayModel {\n amount: string;\n amountOk: boolean;\n cardNumber: string;\n cardNumberOk: boolean;\n currency: string;\n currencyOk: boolean;\n drCr: string;\n drCrOk: boolean;\n exchangeRate: string;\n exchangeRateOk: boolean;\n expenseDate: string;\n expenseDateFormat: string;\n expenseDateOk: boolean;\n localCurrencyAmount: string;\n localCurrencyAmountOk: boolean;\n notes1: string;\n notes1Ok: boolean;\n notes2: string;\n notes2Ok: boolean;\n notes3: string;\n notes3Ok: boolean;\n notes4: string;\n notes4Ok: boolean;\n supplier: string;\n supplierOk: boolean;\n referenceNumber: string;\n referenceNumberOk: boolean;\n isDuplicateReferenceNumber: boolean;\n\n importId: number;\n toImport: boolean;\n isFormatOk: boolean;\n isCardNumberAvailableInSystem: boolean;\n\n selected: boolean;\n disableEdit: boolean;\n hideEdit: boolean;\n disableDelete: boolean;\n hideDelete: boolean;\n\n error: string;\n errors: ErrorInfo[];\n errorsCount: number;\n\n updatedOn: any;\n isRowHighlighted: boolean;\n}\n\nexport class CcImportReviewDisplayModel implements ICcImportReviewDisplayModel {\n amount: string;\n amountOk: boolean;\n cardNumber: string;\n cardNumberOk: boolean;\n currency: string;\n currencyOk: boolean;\n drCr: string;\n drCrOk: boolean;\n exchangeRate: string;\n exchangeRateOk: boolean;\n expenseDate: string;\n expenseDateFormat: string;\n expenseDateOk: boolean;\n localCurrencyAmount: string;\n localCurrencyAmountOk: boolean;\n notes1: string;\n notes1Ok: boolean;\n notes2: string;\n notes2Ok: boolean;\n notes3: string;\n notes3Ok: boolean;\n notes4: string;\n notes4Ok: boolean;\n supplier: string;\n supplierOk: boolean;\n referenceNumber: string;\n referenceNumberOk: boolean;\n isDuplicateReferenceNumber: boolean;\n\n importId: number;\n toImport: boolean;\n isFormatOk: boolean;\n isCardNumberAvailableInSystem: boolean;\n\n selected: boolean;\n disableEdit: boolean;\n hideEdit: boolean;\n disableDelete: boolean;\n hideDelete: boolean;\n\n error: string;\n errors: ErrorInfo[] = [];\n errorsCount: number = 0;\n\n updatedOn: any;\n isRowHighlighted: boolean;\n}\n\nexport interface ICardImportTemplateSaveRequestModel {\n organisationId: number;\n updatedBy: number;\n templateDetails: CcImportTemplateDetails;\n}\n\nexport class CardImportTemplateSaveRequestModel\n implements ICardImportTemplateSaveRequestModel {\n organisationId: number;\n updatedBy: number;\n templateDetails: CcImportTemplateDetails;\n}\n\nexport interface ICSVPendingTransactionTemplate {\n statementDate: string;\n cardNumber: string;\n expenseDate: string;\n amount: number;\n supplier: string;\n currency: string;\n assignedTo: string;\n\n}\n\nexport class CSVPendingTransactionTemplate implements ICSVPendingTransactionTemplate {\n statementDate: string;\n cardNumber: string;\n expenseDate: string;\n amount: number;\n supplier: string;\n currency: string;\n assignedTo: string;\n}\n\n// Response\nexport interface IBulkCreditCardExpensesImportResponse {\n TotalCount: number;\n ImportedCount: number;\n UnassignedImports: number;\n}\n\nexport class BulkCreditCardExpensesImportResponse implements IBulkCreditCardExpensesImportResponse {\n TotalCount: number;\n ImportedCount: number;\n UnassignedImports: number;\n}\n\nexport interface IGoLiveWithCardFunctionRequest {\n organisationId: number;\n liveMode: number;\n}\n\nexport class GoLiveWithCardFunctionRequest\n implements IGoLiveWithCardFunctionRequest {\n organisationId: number;\n liveMode: number;\n}\n\n\nexport interface ICardImportTemplateDetailSaveDateFormatRequest {\n organisationId: number;\n importDateFormat: string;\n updatedBy: number;\n oldImportDateFormat: string;\n userName: string;\n}\n\nexport class CardImportTemplateDetailSaveDateFormatRequest\n implements ICardImportTemplateDetailSaveDateFormatRequest {\n organisationId: number;\n importDateFormat: string;\n updatedBy: number;\n oldImportDateFormat: string;\n userName: string;\n}\n\nexport class CardUserAssignmentFormModel {\n cardNumber: string;\n employeeCode: string;\n employeeEmail: string;\n fullName: string;\n firstName: string;\n lastName: string;\n cardOrganisationId: number;\n}\n\nexport class CardUserAssignmentFormOutputModel {\n filterStatus: number;\n constructor(filterStatus: number) {\n this.filterStatus = filterStatus;\n\n }\n}\n\nexport class CCPendingExpenseListPanelInputModel {\n cardOrganisationId: number;\n cardName: string;\n expenseStatus: number;\n constructor(cardOrganisationId: number, cardName: string, expenseStatus: number) {\n this.cardOrganisationId = cardOrganisationId;\n this.cardName = cardName;\n this.expenseStatus = expenseStatus;\n }\n}\n\nexport interface ICardPendingExpenseRequest{\n cardOrganisationId: number;\n organisationId: number;\n expenseStatus: number;\n userId: number;\n}\n\nexport class CardPendingExpenseRequest implements ICardPendingExpenseRequest {\n cardOrganisationId: number;\n organisationId: number;\n expenseStatus: number;\n userId: number;\n constructor(cardOrganisationId: number, organisationId: number, expenseStatus: number,userId: number) {\n this.cardOrganisationId = cardOrganisationId;\n this.organisationId = organisationId;\n this.expenseStatus = expenseStatus;\n this.userId = userId;\n }\n}\n\nexport interface IPendingCreditCardExpenseListByCardRequest {\n orgId: number;\n cardOrganisationId: number;\n}\n\nexport class PendingCreditCardExpenseListByCardRequest implements IPendingCreditCardExpenseListByCardRequest {\n orgId: number;\n cardOrganisationId: number;\n}\n\nexport class UsersForAssignCCExpense {\n employeeId: number;\n employeeCode: string;\n employeeName: number;\n employeeEmail: number;\n cardNumber: number;\n selected: boolean;\n}\n\nexport class CCAssignTransactionsPanelInputModel{\n cardNumber: string;\n expenseList: any[];\n constructor(cardNumber: string, expenseList: any[]) {\n this.cardNumber = cardNumber;\n this.expenseList = expenseList;\n }\n}\n\nexport interface IUnassignExpenseByCardRequest {\n orgId: number;\n cardNumber: string;\n}\n\nexport class UnassignExpenseByCardRequest implements IUnassignExpenseByCardRequest {\n orgId: number;\n cardNumber: string;\n constructor(orgId: number, cardNumber: string) {\n this.orgId = orgId;\n this.cardNumber = cardNumber;\n }\n}\n\n\nexport interface IDuplicateCardDetailsRequest {\n orgId: number;\n cardDigit: number;\n}\n\nexport class DuplicateCardDetailsRequest implements IDuplicateCardDetailsRequest {\n orgId: number;\n cardDigit: number;\n constructor(orgId: number, cardDigit:number) {\n this.orgId = orgId;\n this.cardDigit = cardDigit;\n }\n}\n\n\nexport interface IDuplicateCardDetailsResponse {\n cardHolderId: number;\n cardNumber: string;\n cardHolderName: string;\n newCardNumber: string;\n}\n\n\n// New Dashboard\nexport interface ICCDashboardRequest {\n orgId: number;\n}\n\nexport class CCDashboardRequest implements ICCDashboardRequest {\n orgId: number;\n constructor(orgId: number) {\n this.orgId = orgId;\n }\n}\n\nexport interface ICCDashboardResponse {\n importDetails: ICCDashboardImportDetails[];\n importedTransactionDetails:ICCDashboardTransactionDetails;\n pendingTransactionDetails: ICCDashboardTransactionDetails;\n graphsDetails: ICCDashboardGraphsResponse;\n allPendingItems: number;\n\n}\n\nexport interface ICCDashboardImportDetails{\n cardImportOriginalFileId:number;\n statementDate: Date;\n importDate: number;\n originalTransaction: number;\n importedTransaction: number;\n notImportedTransaction: number;\n importedAmount: any;\n completedTransaction: number;\n deletedTransaction: number;\n completedAmount:number;\n pendingTransaction: number;\n notCompletedTransaction: number;\n dismissedTransaction: number;\n reRoutedTransaction: number;\n orphanTransaction: number; \n pendingAmount: number;\n}\n\nexport interface ICCDashboardTransactionDetails{\n transactionCount: number;\n userCount: number;\n amount: any;\n}\n\nexport interface ICCDashboardGraphsResponse{\n cardExpenditure: any[];\n cardUsers: number[];\n monthsList: any[];\n}\n\nexport interface ICCExpenseResponse{\n expenseId: number;\n cardNumber: string;\n expenseDate:number;\n amount:any;\n supplier: string;\n userId:number;\n orgId: number;\n updatedOn: number;\n cardSupervisoryActionTaken:number;\n cardSupervisoryActionTakenBy:number;\n cardSupervisoryActionTakenOn: number;\n cardSupervisoryActionTakenByUserName: string;\n userName: string;\n cardHolderName: string;\n cardHolderId: number;\n currentStatus: number;\n dismissJustificationNotes: string;\n importDate: number;\n status: number;\n hasReceipt: boolean;\n hideDeleteAction: boolean;\n hideAssignAction: boolean;\n hideReceiptAction: boolean;\n}\nexport class CCPendingTransactionInputModel{\n cardOrganisationId: number;\n importId: number;\n constructor(cardOrganisationId: number, importId: number) {\n this.cardOrganisationId = cardOrganisationId;\n this.importId = importId;\n }\n}\n\nexport interface ICCPendingTransactionRequest {\n organisationId: number;\n cardImportOriginalFileId: number;\n cardOrganisationId: number;\n}\n\nexport class CCPendingTransactionRequest implements ICCPendingTransactionRequest {\n organisationId: number;\n cardImportOriginalFileId: number;\n cardOrganisationId: number;\n\n constructor(organisationId: number,cardImportOriginalFileId: number,cardOrganisationId: number ) {\n this.organisationId = organisationId;\n this.cardImportOriginalFileId = cardImportOriginalFileId;\n this.cardOrganisationId = cardOrganisationId;\n }\n}\n\n\n\nexport class BulkImportAssignCreditCard {\n uniqueRowId: number;\n cardUserAssignmentId: number;\n employeeId: number;\n employeeCode: string;\n employeeName: string;\n email: string;\n cardNumber: string;\n errors: ErrorInfo[] = [];\n errorsCount: number = 0;\n templateName: string;\n importUpdatedDate : any;\n cardNumberLength: number;\n isActive: boolean;\n}\n\nexport interface IBulkImportAssignCreditCardRequest {\n organisationId: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n assignCreditCardList: BulkImportAssignCreditCard[];\n}\n\nexport class BulkImportAssignCreditCardRequest implements IBulkImportAssignCreditCardRequest {\n organisationId: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n assignCreditCardList: BulkImportAssignCreditCard[];\n constructor(organisationId: number,fmName: string, fmEmail: string,fmUserId: number, assignCreditCardList: BulkImportAssignCreditCard[]) {\n this.organisationId = organisationId;\n this.fmName = fmName;\n this.fmEmail = fmEmail;\n this.fmUserId = fmUserId;\n this.assignCreditCardList = assignCreditCardList;\n }\n}\n\nexport interface IBulkImportAssignCreditCardResponse{\n organisationId : number;\n totalRecords: number;\n failedRecords: number;\n passedRecords: number;\n assignCreditCardList: BulkImportAssignCreditCard[];\n}\n\n\nexport class ImportAssignCreditCardEditInputModel {\n public title: string;\n public uniqueRowId: number;\n public cardNumberLength: number;\n}\n\n\nexport interface IAssignCreditCardToClaimantRes {\n claimantList: CCAssignClaimant[];\n totalClaimaint: number;\n claimantWithActiveCard: number;\n claimantWithoutActiveCard: number;\n}\n\nexport class CCAssignClaimant{\n employeeId: number;\n employeeCode: string;\n firstName: string;\n lastName: string;\n fullName: string;\n employeeEmail: string;\n isActive: boolean;\n status: any;\n cardNumberWithTemplate: any;\n assignCardList: CardUserAssignmentDetails[];\n isRowHighlighted: boolean;\n updatedOn: number;\n isMultipleCard: boolean;\n}\n\nexport class CardUserAssignmentDetails{\n sequence: number;\n cardUserAssignmentId: number;\n cardNumber: string;\n bankName: string;\n isActive: boolean;\n status: any;\n cardNumberWithTemplate: any;\n showText: boolean;\n showSwitchText: string;\n errors: any;\n cardOrganisationId: number;\n employeeId: number;\n}\n\nexport class CCClaimantCreditCardListPanelInputModel{\n creditCardList: CardUserAssignmentDetails[];\n}\n\nexport class SaveUserCreditCardDetailsRequest {\n employeeId: number;\n organisationId: number;\n userId: number;\n userName: string;\n creditCardList: CreditCardDetails[];\n}\n\nexport class CreditCardDetails {\n id: number;\n cardUserAssignmentId: number;\n cardNumber: string;\n isActive: boolean;\n cardOrganisationId: number;\n bankName: string;\n}\n\nexport interface ICardDetailsForImport {\n cardNumberLength: number;\n cardUserAssignment: any[];\n}\n\nexport class CCImportedTransactionInputModel{\n importDate: number;\n filterStatus: number;\n constructor(importDate: number,filterStatus: number) {\n this.importDate = importDate;\n this.filterStatus = filterStatus;\n }\n}\n\nexport interface ICCImportedTransactionRequest {\n organisationId: number;\n importDate: string;\n}\n\nexport class CCImportedTransactionRequest implements ICCImportedTransactionRequest {\n organisationId: number;\n importDate: string;\n\n constructor(organisationId: number,importDate: string) {\n this.organisationId = organisationId;\n this.importDate = importDate;\n }\n}\n\nexport class CCImportedFileDateDetails{\n importDate: any;\n}\n","\n\nexport interface IRequestGetCustomer {\n customerId: number;\n}\n\nexport class RequestGetCustomer implements IRequestGetCustomer {\n customerId: number;\n constructor(customerId: number) {\n this.customerId = customerId;\n }\n}\n\nexport interface ICustomerResponse {\n customerId: number;\n userId: number;\n organisationId: number;\n name: string;\n code1: string;\n code2: string;\n status: number;\n accountingSystemParameter: string;\n createdBy: number;\n createdOn: Date;\n updatedBy: number;\n updatedOn: Date;\n isRowHighlighted: boolean;\n selected: boolean;\n isActiveProject: boolean;\n hideDeactivate: boolean;\n hideActivate: boolean;\n}\n\nexport class CustomerResponse implements ICustomerResponse {\n customerId: number;\n userId: number;\n organisationId: number;\n name: string;\n code1: string;\n code2: string;\n status: number;\n accountingSystemParameter: string;\n createdBy: number;\n createdOn: Date;\n updatedBy: number;\n updatedOn: Date;\n isRowHighlighted: boolean;\n selected: boolean;\n isActiveProject: boolean;\n hideDeactivate: boolean;\n hideActivate: boolean;\n}\n//\n\nexport interface ICustomerListRequest {\n organisationId: number;\n status: number;\n pageNo: number;\n sortOrder: number;\n sortColumn: string;\n searchText: string;\n}\n\nexport class CustomerListRequest implements ICustomerListRequest {\n organisationId: number;\n status: number;\n pageNo: number;\n sortOrder: number;\n sortColumn: string;\n searchText: string;\n constructor(organisationId: number, status: number, pageNo: number, sortOrder: number, sortColumn: string) {\n this.organisationId = organisationId;\n this.status = status;\n this.pageNo = pageNo;\n this.sortOrder = sortOrder;\n this.sortColumn = sortColumn;\n }\n}\n\nexport interface IResponseCustomerList {\n customerList: ICustomerResponse[];\n totalCustomerCount: number;\n activeCustomerCount: number;\n inActiveCustomerCount: number;\n}\n\n//\n\nexport interface IRequestGetCustomersByCustomerIdsOrgId {\n customerIds: number[];\n organisationId: number;\n checkIsPurchase: boolean;\n}\n\nexport class RequestGetCustomersByCustomerIdsOrgId implements IRequestGetCustomersByCustomerIdsOrgId {\n customerIds: number[];\n organisationId: number;\n checkIsPurchase: boolean;\n\n constructor(customerIds: number[], organisationId: number, checkIsPurchase: boolean) {\n this.customerIds = customerIds;\n this.organisationId = organisationId;\n this.checkIsPurchase = checkIsPurchase;\n }\n}\n\n\n//\n\nexport interface IRequestGetCustomersByOrgIdAndStatus {\n organisationId: number;\n status: number;\n}\n\nexport class RequestGetCustomersByOrgIdAndStatus implements RequestGetCustomersByOrgIdAndStatus {\n organisationId: number;\n status: number;\n\n constructor(organisationId: number, status: number) {\n this.organisationId = organisationId;\n this.status = status;\n }\n}\n\n//\n\nexport interface ICustomerRequest {\n customerId: number;\n userId: number;\n organisationId: number;\n name: string;\n code1: string;\n code2: string;\n status: number;\n accountingSystemParameter: string;\n\n createdBy: number;\n updatedBy: number;\n //userName: string;\n}\n\nexport class CustomerRequest implements ICustomerRequest {\n customerId: number;\n userId: number;\n organisationId: number;\n name: string;\n code1: string;\n code2: string;\n status: number;\n accountingSystemParameter: string;\n createdBy: number;\n updatedBy: number;\n userName: string;\n constructor(customerId: number,\n userId: number,\n organisationId: number,\n name: string,\n code1: string,\n code2: string,\n status: number,\n accountingSystemParameter: string,\n createdBy: number,\n updatedBy: number) {\n this.customerId = customerId;\n this.userId = userId;\n this.organisationId = organisationId;\n this.name = name;\n this.code1 = code1;\n this.code2 = code2;\n this.status = status;\n this.accountingSystemParameter = accountingSystemParameter;\n this.createdBy = createdBy;\n this.updatedBy = updatedBy;\n }\n}\n\n//\n\nexport interface IBulkActionOnCustomerRequest {\n customerIds: number[];\n updatedBy: number;\n status: number;\n\n}\n\nexport class BulkActionOnCustomerRequest implements IBulkActionOnCustomerRequest {\n customerIds: number[];\n updatedBy: number;\n status: number;\n constructor(customerIds: number[], updatedBy: number, status: number) {\n this.customerIds = customerIds;\n this.status = status;\n this.updatedBy = updatedBy;\n }\n}\n\n//\n\n\nexport interface IRequestGetEmployeesForCustomerRule {\n customerRuleStatus: number;\n organisationId: number;\n pageNo: number;\n sortOrder: number;\n sortColumn: string;\n searchText: string;\n}\n\nexport class RequestGetEmployeesForCustomerRule\n implements IRequestGetEmployeesForCustomerRule {\n customerRuleStatus: number;\n organisationId: number;\n pageNo: number;\n sortOrder: number;\n sortColumn: string;\n searchText: string;\n constructor(\n customerRuleStatus: number,\n organisationId: number,\n pageNo: number,\n sortOrder: number,\n sortColumn: string\n ) {\n this.customerRuleStatus = customerRuleStatus;\n this.organisationId = organisationId;\n this.pageNo = pageNo;\n this.sortOrder = sortOrder;\n this.sortColumn = sortColumn;\n }\n}\n\nexport interface IResponseGetEmployeesForCustomerRule {\n employeesListForCustomerRule: IEmployeesForCustomerRule[];\n totalClaimants: number;\n mandatory: number;\n nonMandatory: number;\n notRequired: number;\n}\n\nexport interface IEmployeesForCustomerRule {\n userId: number;\n organisationId: number;\n userOrgMappingId: number;\n userName: string;\n customerRuleId: number;\n\n updatedBy: number;\n updatedOn: number;\n\n userMailId: string;\n customerRuleText: string;\n isRowHighlighted: boolean;\n}\n\n\n//\n\nexport interface IBulkActionsForCustomerRuleRequest {\n userOrgMappingId: number;\n updatedBy: number;\n customerRuleId: number;\n}\n\nexport class BulkActionsForCustomerRuleRequest implements IBulkActionsForCustomerRuleRequest {\n userOrgMappingId: number;\n updatedBy: number;\n customerRuleId: number;\n\n constructor(userOrgMappingId: number,\n updatedBy: number,\n customerRuleId: number) {\n this.customerRuleId = customerRuleId;\n this.userOrgMappingId = userOrgMappingId;\n this.updatedBy = updatedBy;\n }\n}\n\n//\n\nexport class RequestGetCustomerHistory {\n customerId: number;\n\n constructor(customerId: number) {\n this.customerId = customerId;\n }\n}\n\nexport class CustomerHistoryResponse {\n customerHistoryId: number;\n customerId: number;\n organisationId: number;\n notes: string;\n createdDateTime: string;\n username: string;\n}\n\n//\n\nexport interface ICustomerModelError {\n customernameValidationMessage: string;\n customercode1ValidationMessage: string;\n}\n\nexport class CustomerModelError implements ICustomerModelError {\n customernameValidationMessage: string = \"\";\n customercode1ValidationMessage: string = \"\";\n constructor() { }\n}\n\n//\n\nexport interface ICustomerCsvRecord {\n customerName: string;\n customerCode1: string;\n customerCode2: string;\n error: string;\n}\nexport class CustomerCsvRecord implements ICustomerCsvRecord {\n customerName: string;\n customerCode1: string;\n customerCode2: string;\n public error: string;\n constructor() { }\n}\n\nexport interface IFailedCustomerImportInfo {\n customerName: string;\n customerCode1: string;\n customerCode2: string;\n error: string;\n}\nexport class FailedCustomerImportInfo implements IFailedCustomerImportInfo {\n customerName: string;\n customerCode1: string;\n customerCode2: string;\n error: string;\n\n constructor(customerName: string, customerCode1: string, customerCode2: string, error: string) {\n this.customerName = customerName;\n this.customerCode1 = customerCode1;\n this.customerCode2 = customerCode2;\n this.error = error;\n }\n}\n\nexport interface ICustomerCsvRecordExport {\n CustomerName: string;\n CustomerCode1: string;\n CustomerCode2: string;\n Error: string;\n}\n\nexport class CustomerCsvRecordExport implements ICustomerCsvRecordExport {\n CustomerName: string;\n CustomerCode1: string;\n CustomerCode2: string;\n Error: string;\n}\n\n\nexport interface IGetCustomerResponse {\n customerValues: ActiveCustomerResponse[];\n}\n\nexport class GetCustomerResponse implements IGetCustomerResponse {\n customerValues: ActiveCustomerResponse[];\n}\n\nexport class ActiveCustomerResponse {\n customerId: number;\n customerName: string;\n customerCode1: string;\n customerCode2: string;\n}\n\nexport class GetEmployeeForCustomerCostCentreRuleAssignmentRequest {\n organisationId: number;\n numberOfRecords: number;\n skipRecords: number;\n}\n\nexport class EmployeeForCustomerCostCentreRuleAssignmentResponse {\n userOrgMappingId: number;\n userId: number;\n employeeName: string;\n email: string;\n updatedOn: number;\n customerRuleId: number;\n costCentreRuleId: number;\n costCentreName: string;\n\t costCentreCode: string;\n accessRuleText: string;\n\n isRowHighlighted: boolean;\n selected: boolean;\n\n isEditDisabled: boolean;\n isCheckboxDisabled: boolean;\n}\n\nexport class EmployeeListForCustomerCostCentreRuleAssignmentResponse {\n employeeList: EmployeeForCustomerCostCentreRuleAssignmentResponse[];\n totalEmployessCount: number;\n totalEmployessCountWithNotRequiredForCustomer: number;\n totalEmployessCountWithNonMandatoryForCustomer: number;\n totalEmployessCountWithMandatoryForCustomer: number;\n\n}\n\nexport class AssignCustomerCostCentreAccessRuleToEmployeesRequest {\n organisationId: number;\n accessRuleId: number;\n userOrgMappingIds: number[];\n updatedBy: number;\n updatedOn: number;\n userName: string;\n}\n\nexport class AddUpdateCustomerModel {\n constructor(\n public title: string,\n public customerId: number,\n public isEditMode: boolean = false,\n public isActiveProject: boolean = false\n ) {\n\n }\n}\n\nexport class CustomerFormModel {\n customer_id: number;\n customer_name: string;\n customer_code1: string;\n customer_code2: string;\n customer_status: number;\n customer_status_boolean: boolean;\n\n}\n\nexport interface IBulkSaveCustomerRequest {\n organisationId: number;\n createdBy: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n customerList: ICustomerRequest[];\n}\n\nexport class BulkSaveCustomerRequest implements IBulkSaveCustomerRequest {\n organisationId: number;\n createdBy: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n customerList: ICustomerRequest[];\n constructor(\n organisationId: number,\n createdBy: number,\n fmName: string,\n fmEmail: string,\n fmUserId: number,\n customerList: ICustomerRequest[]\n ) {\n this.organisationId = organisationId;\n this.createdBy = createdBy;\n this.fmName = fmName;\n this.fmEmail = fmEmail;\n this.fmUserId = fmUserId;\n this.customerList = customerList;\n }\n}\n\n\n\nexport interface IBulkSaveCustomerResponse {\n OrganisationId: number;\n TotalRecords: number;\n FailedRecords: number;\n PassedRecords: number;\n CustomerList: ICustomerResponse[];\n}\n\n","export enum PolicyType {\n Overall = 1,\n PerNight = 2,\n PerPerson = 3,\n ExpenseTimeLimit = 4,\n DailyCap = 5,\n MonthlyCap = 6,\n YearlyCap = 7,\n AutoApproval = 8,\n Duplicate = 9,\n Escalation = 10,\n}\n\nexport enum ControlType {\n CheckBox = 1,\n Switch = 2,\n Dropdown = 3,\n}\n\nexport enum BaseInformationType {\n DrivingLicense = 1,\n Registration = 2,\n MOT = 3,\n Insurance = 4,\n CarTax = 5,\n}\n\nexport enum ClaimantCCEnum {\n All = 0,\n WithoutCostCentre = 1,\n WithCostCentre = 2,\n}\n\nexport enum ClaimantGradeEnum {\n All = 0,\n WithGrade = 1,\n WithoutGrade = 2,\n}\n\nexport enum ReceiptEnum {\n View = 1,\n NoReceipt = 0,\n}\n\nexport enum ClaimantEnum {\n WithDOC = 1,\n WithoutDOC = 0,\n}\n\nexport enum MileageUOMEnum {\n Mile = 1,\n Kilometre = 2,\n}\n\nexport enum ModeOfJourneyValue {\n Quickest = 1,\n Shortest = 2,\n}\n\nexport enum VehicleTypeEnum {\n All = -1,\n No_Vehicle = 0,\n Four_Wheeler = 1,\n Two_Wheeler = 2,\n Private_Car = 3,\n Company_Car = 4,\n}\n\nexport enum VehicleSubTypeEnum {\n Diesel = 1,\n Petrol = 2,\n Electric = 3,\n Gas = 4,\n}\n\nexport enum VehicleTypeLabelEnum {\n \"No Vehicle\" = 0,\n \"4 Wheeler\" = 1,\n \"2 Wheeler\" = 2,\n \"Private Car\" = 3,\n \"Company Car\" = 4,\n}\n\nexport enum UserTypeEnum {\n Claimant = 1,\n Approver = 2,\n FinanceManager = 3,\n Agent = 4,\n Vendor = 5,\n}\n\nexport enum ExpenseStatusEnum {\n Incomplete = 1,\n IncompleteUPIExpense = 2,\n PendingForSubmission = 3,\n Rejected = 4,\n PendingWithApprover = 5,\n Approved = 6,\n ApprovedForPayment = 7,\n PassedForPayment = 8,\n Exported = 9,\n Archived = 10,\n Deleted = 11,\n IncompleteCardExpense = 12,\n Dismissed = 13,\n PendingWithCA = 15,\n}\n\nexport enum MileageRateTypeEnum {\n NoRateSelected = 0,\n FreeForLife = 1,\n SingleRate = 2,\n DifferentialRate = 3,\n MultipleRate = 4,\n AssignRatetoGrade = 5,\n}\n\nexport enum TriangulationRuleValue {\n NoTriangulation = 0,\n TakeLesserOf = 1,\n TakeDifference = 2,\n}\n\nexport enum PaymentTypeEnum {\n Cash = 1,\n PersonalCreditCard = 2,\n DebitCard = 3,\n Cheque = 4,\n DemandDraft = 5,\n CorporateCreditCard = 6,\n UPI = 7,\n Total = 8,\n}\n\nexport enum CostCentreStatusEnum {\n All = 0,\n Active = 1,\n Inactive = 2,\n Deleted = 3\n}\n\nexport enum CostCentreHistoryActionPerformedEnum {\n Created = 1,\n Updated = 2,\n Deactivated = 3,\n Activated = 4,\n}\n\nexport enum EntityType {\n CostCentre = 1,\n Grade = 2,\n CardUserAssignment = 3,\n CardStatementImport = 4,\n Customer = 5,\n Location = 6,\n}\n\nexport enum CreditCardUserAssignmentEnum {\n Assigned = 1,\n UnAssigned = 2,\n All = 3,\n Active = 4,\n InActive = 5,\n}\n\nexport enum GradeStatusEnum {\n All = 0,\n Active = 1,\n Inactive = 2,\n}\nexport enum BaseCategoryTypeEnum {\n Mileage = 1,\n MileageGPS = 2,\n MileageGoogle = 3,\n Hotel = 4,\n Entertainment = 5,\n Generic = 6,\n Advance = 7,\n SpecialCategory = 8,\n NoReceiptCategory = 9\n}\n\nexport enum AccountingSystemMasterEnum {\n Tally = 1,\n Xero = 2,\n QuickBooks = 3,\n Sage50 = 4,\n Sage200 = 5,\n}\n\nexport enum AccountingSystemTypeEnum {\n Realtime = 1,\n NonRealtime = 2,\n}\n\nexport enum XeroExportedExpenseStatus {\n AwaitingApproval = 1,\n AwaitingPayment = 2,\n}\n\nexport enum XeroExportExpensesAs {\n PurchaseBill = 1,\n\n ExpenseClaims = 2,\n}\n\nexport enum AccountingSystemMasterModelEnum {\n XeroAccounts = 1,\n XeroContacts = 2,\n XeroTaxRate = 3,\n XeroOrganisation = 4,\n QuickBooksCompanyInfo = 5,\n QuickBooksSipplier = 6,\n QuickBooksAccounts = 7,\n QuickBooksTaxCodes = 8,\n QuickBooksTaxRates = 9,\n QuickBooksVendors = 10,\n XeroTrackingCategory = 11,\n QuickBooksProjects = 12,\n}\n\nexport enum AccountingSystemModelTypeEnum {\n Accounts = 1,\n Contacts = 2,\n TaxRate = 3,\n}\n\nexport enum OrderBillingFunctionEnum {\n Trial = 1,\n Purchase = 2,\n}\n\nexport enum BillingsubscriptionStatusEnum {\n TrialFunction = 1,\n PurchaseFunction = 2,\n UnSubscribedTrialFunction = 3,\n UnSubscribedPurchasedFunction = 4,\n}\n\nexport enum VehicleStatusEnum {\n NoVehicle = 0,\n Unauthorised = 1,\n Approved = 2,\n Rejected = 3,\n Deleted = 4,\n NoVehicleForGrid = 5,\n}\n\nexport enum MileageRateStatusEnum {\n All = 0,\n Active = 1,\n FutureRate = 2,\n Inactive = 3,\n Expired = 4,\n}\nexport enum UKRateConfigEnum {\n ActivateOwnerShip = 1,\n ActiveRateEdit = 2,\n FutureRateEdit = 3,\n AddNewRate = 4,\n AddNewOwnership = 5,\n CopyRate = 6,\n ImportExport = 7,\n}\n\nexport enum ExportFormatEnum {\n FreeExportFile = 1,\n YesBankPaymentFile = 2,\n Sage50 = 3,\n Xero = 4,\n QuickBooks = 5,\n Tally = 6,\n Sage200 = 7,\n}\n\nexport enum EmailTemplateEnum {\n ActivationRequestWizard = 0,\n ForgotPassword = 1,\n DefaultPassword = 2,\n AddUpdateExployee = 3,\n SendSummaryEmail = 4,\n SendInvitationEmail = 5,\n SendForgotPassword = 6,\n SendReminderEmail = 7,\n SendExportedExpensesToCSV = 8,\n InviteAFriendExisting = 9,\n CategoryActiveReminder = 10,\n SendYblRequest = 11,\n AdvanceGenericEmail = 12,\n ChangePassword = 13,\n}\nexport enum ExpenseSyncDataStatus {\n Success = 1,\n Fail = 2,\n InQueue = 3,\n}\n\nexport enum FMRoleType {\n AllPrivilege = 1,\n LimitedPrivilege = 2,\n NoPrivilege = 3,\n}\n\nexport enum ApprovalRuleSetting {\n Manual = 1,\n AutomaticA = 2,\n AutomaticB = 3,\n AutomaticC = 4,\n AutomaticD = 5,\n AutomaticE = 6,\n}\n\nexport enum FunctionPrivilege {\n SetupYourOrganisation = 1,\nCurrency = 2,\nDeleteTestData = 3,\nManageEmployees = 4,\n//BasicMileageRates = 5,\nPreApprovals = 6,\nSetupCreditCard = 7,\nSetupCostCentre = 8,\nExpenseCategoryManagement = 9,\nTwoStepApproval = 10,\nAdvances = 11,\nSetupGrade = 12,\nSetupAdvancedMileage = 13,\nSetupExpensePolicy = 14,\nLiabilityReport = 15,\nCustomers = 16,\nBusinessPurpose = 17,\nTransferData = 18,\nAdditionalFields = 20,\nVendors = 21,\nDeputyForApprover = 22,\nProjectAndBudget = 23,\nAuditTrail = 24,\n//NonReimbursableFuel = 25,\nApproverHistoricalView = 26,\nReceiptwithMultipleVATRates = 28,\nVATNoVATNoReceipt = 29,\nNinetyDayRule = 30,\nFinanceApprover = 31,\nPassforPayment = 32,\nInvoices = 33,\nConfigureAdministratorPrivilege = 34,\nassigncategoriestograde = 44,\nAssignDeputyToApprovers = 45,\nEnterOutofOffice = 46,\n//AssignRatetoGrade = 47,\nSetupMultipleCompanies = 48,\n//DutyofCare = 50,\n//DutyofCareApproval = 51,\nOpenApi = 52,\nLocation = 53,\nAddAttendeeTypes = 54,\nSupplier = 55,\nLeaveManagement = 56,\nMultipleCountry = 58,\nCounterApprover = 61,\nFxRate = 62,\nDelegate = 63,\nApAutomation = 64,\nApproverKYCDocuments = 65,\nCarbonFootprint = 66,\nContainer = 67\n}\n\nexport enum FunctionPackageEnum {\n SetupYourOrganisation = 1,\n Currency = 2,\n DeleteTestData = 3,\n ManageEmployees = 4,\n ConfigureApprovalRule = 5,\n BasicMileageRates = 6,\n AssignVehicle_toClaimants = 8,\n Pre_Approvals = 9,\n SetupCreditCard = 14,\n SetupCostCentre_Assign_toClaimants = 15,\n ExpenseCategoryManagement = 17,\n TwoStepApproval = 18,\n Advances = 19,\n SetupTaxRate = 20,\n SetupGradesAssign_toClaimants = 22,\n SetupAdvancedMileage = 23,\n SetupExpensePolicy = 28,\n SetupUKRates = 34,\n Triangulation = 36,\n Explore_YesPayBizPortal = 37,\n Travel = 45,\n Customer_Projects = 48,\n LiabilityReport = 49,\n Customer = 50,\n SetupSingleRates = 51,\n SingleRateAssignVehicleToClaimants = 52,\n SetupDifferentialRates = 53,\n DifferentialRateAssignVehicleToClaimants = 54,\n AssignVehicleToClaimants = 35,\n AccountingIntegration = 29,\n DataTransferXERO = 56,\n DataTransferQUICKBOOKS = 57,\n DataTransferSAGE = 58,\n DataTransferTALLY = 59,\n ExportReport = 60,\n ConfigureAdministratorPrivilege = 66,\n ProjectBudget = 67,\n AuditTrail = 70,\n ManualVat = 75,\n VatNoVat = 76,\n PerPersonLimit = 80,\n PerNightLimit = 81,\n ExpenseCappingDaily = 85,\n ExpenseCappingMonthly = 86,\n ExpenseCappingYearly = 87,\n AutoApproval = 88,\n SetupMultipleCompanies = 89,\n NonReimbursableFuel = 72,\n FuelCard = 73,\n AssignDeputyToApprovers = 78,\n EnterOutofOffice = 79,\n assigncategoriestograde = 90,\n assignRatetoGrade = 91,\n DutyofCare = 92,\n DutyofCareApproval = 93,\n OpenApi = 95,\n Location = 96,\n AttendeeType = 97,\n Supplier = 98,\n LeaveManagement = 100,\n UniversalImport = 102,\n MultipleCountry = 103,\n AdditionalFields = 63,\n BusinessPurpose = 55,\n MultipleVehicle = 111,\n PassengerLoadMiles = 112,\n DataTransferSAGE200 = 114,\n DuplicateChecker = 82,\n Delegate = 115,\n CounterApprover = 108,\n APAutomation = 118,\n ApproveKYCDocuments = 123,\n ReceiptsTransferXERO = 122,\n AccessCharge = 124,\n CarbonFootprint = 125,\n SingleSignOn = 127,\n FMCanEditExpense = 128,\n RecallExportedExpenses = 129,\n Container = 130,\n SpecialCategory = 131,\n ExpenseTimeLimit = 77,\n OverallDailyLimit = 83,\n ExpenseEscalation = 84,\n ComplianceStatement = 113,\n AntiFraud = 110,\n YearEndRule = 117,\n}\nexport enum FunctionPackageTypeEnum {\n Both = 0,\n Web = 1,\n Mobile = 2,\n}\nexport enum DasboardExpenseStatusEnum {\n Incomplete = 1,\n PendingWithApprover = 2,\n PendingFinanceApproval = 3,\n PendingPassforPayment = 4,\n PassedForPayment = 5,\n PendingPreApprovalCountWithApprover = 6,\n}\n\nexport enum CustomerStatusEnum {\n All = 0,\n Active = 1,\n Inactive = 2,\n}\n\nexport enum CustomerRuleStatusEnum {\n All = 0,\n Mandatory = 1,\n NonMandatory = 2,\n NotRequired = 3,\n}\nexport enum CustomerRuleEnum {\n NotRequired = 0,\n Mandatory = 1,\n NonMandatory = 2,\n}\n\nexport enum LocationRuleEnum {\n NotRequired = 0,\n Mandatory = 1,\n NonMandatory = 2\n}\n\nexport enum AccountingIntegrationTrackingCategoryOption {\n TCCostCentre = 6,\n TCCustomer = 7,\n TCLocation = 8,\n TCProject = 9,\n}\nexport enum WorkflowCurrentStatusEnum {\n Approved = 1,\n Rejected = 2,\n Pending = 3,\n InActive = 4,\n Recall = 5,\n}\n\nexport enum GooglePackagePaymentBillingStatusEnum {\n Pending = 0,\n Success = 1,\n Failed = 2,\n}\nexport enum CommonStatusEnum {\n Success = 1,\n Failed = 2,\n Warning = 3,\n}\n\nexport enum BillingInvoiceForEnum {\n Subscription = 0,\n GooglePackageService = 1,\n PlaidPackageService = 2,\n}\n\nexport enum ReceiptTypeEnum {\n VATRecetpt = 1,\n NoVATReceipt = 2,\n NoReceipt = 3,\n ForeignReceipt = 4,\n}\n\nexport enum AttachmentTypeEnum {\n Image = 1,\n Pdf = 2,\n VoiceMemo = 3,\n Other = 4,\n}\n\nexport enum ReferAndEarnRoleEnum {\n Customer = 1,\n Reseller = 2,\n}\nexport enum BankAccountTypeEnum {\n Saving = 1,\n Current = 2,\n}\nexport enum AgentFilterStatusEnum {\n All = 0,\n Active = 1,\n Inactive = 2,\n Pending = 3,\n}\nexport enum ProjectBudgetEntityType {\n All = 0,\n CostCentre = 1,\n Customer = 2,\n}\nexport enum BudgetStatus {\n All = 0,\n Active = 1,\n Inactive = 2,\n}\nexport enum ProjectBudgetApprovalRule {\n NormalFlow = 1,\n ProjectManagerFlow = 2,\n ProjectManagerBillableApproverNonBillable = 3,\n}\nexport enum ProjectStatus {\n All = 0,\n Active = 1,\n Inactive = 2,\n Delete = 3,\n Closed = 4,\n}\nexport enum NRFCStatusEnum {\n NoNRFC = 0,\n NR = 1,\n FC = 2,\n}\nexport enum NRCompliantEnum {\n All = 0,\n Compliant = 1,\n NonCompliant = 2,\n}\n\nexport enum CompanyStatusEnum {\n All = 0,\n Active = 1,\n Inactive = 2,\n}\nexport enum CategoryAccountingCodeRuleEnum {\n UseMasterCompanyAccountingCode = 1,\n ManuallyEnterAccountingCode = 2,\n}\n\nexport enum CompanyApproverRuleEnum {\n NormalApprovalFlow = 1,\n ApprovalFlowBasedOnCompanyConfiguration = 2,\n}\n\nexport enum SetupCompanyRulesFilterEnum {\n All = 0,\n WithOneFinanceManager = 1,\n WithTwoFinanceManagers = 2,\n WithThreeFinanceManagers = 3,\n WithMoreThanThreeFinanceManagers = 4,\n}\n\nexport enum CurrencyEnum {\n INR = 67,\n GBP = 51,\n EUR = 46,\n AUD = 10,\n USD = 150,\n PKR = 117,\n NPR = 110,\n BDT = 13,\n LKR = 85,\n}\n\nexport enum ClosedProjectType {\n AddBackUnspentMoney = 1,\n ReduceProjectBudgetFromMainBudget = 2,\n HandleManually = 3,\n}\n\nexport enum BillingTypeEnum {\n BasicFunction = 0,\n PerFunction = 1,\n PerTransaction = 2,\n GooglePackageService = 3,\n AssistedSupport = 4,\n}\n\nexport enum LogObjectActionEnum {\n Added = 0,\n Updated = 1,\n Activated = 2,\n Deactivated = 3,\n Assigned = 4,\n UnAssigned = 5,\n Deleted = 6,\n Closed = 7,\n Enabled = 8,\n Disabled = 9,\n MasterDataSync = 10,\n Selected = 11,\n UnSelected = 12,\n}\n\nexport enum LogObjectActionTemplateEnum {\n SetupYourOrganisation = 1,\n Currency = 2,\n PreApprovals = 3,\n DeleteTestData = 4,\n ManageEmployee = 5,\n Grade = 6,\n ExpenseCategoryManagement = 7,\n Approver1stLevel = 8,\n AssignGradetoClaimants = 9,\n Approver2ndLevel = 10,\n AssignGradetoCategory = 11,\n AssignDeputies = 12,\n SetupOutOfOffice = 13,\n ExpenseSubmissionTimeLimit = 14,\n PerPersonLimitEntertainment = 15,\n PerNightLimitHotelandLodging = 16,\n DuplicateRulePolicy = 17,\n OverallDailyLimitPolicy = 18,\n ExpenseEscalationSettingsPolicy = 19,\n ExpenseCappingDailyPolicy = 20,\n ExpenseCappingMonthlyPolicy = 21,\n ExpenseCappingYearlyPolicy = 22,\n AutoApprovalPolicy = 23,\n SetupvatsRate = 24,\n TaxRateWithComponenets = 25,\n AssignTaxtoMultipleCategories = 26,\n SetupCostCentreAssignToClaimants = 27,\n AssignCostCentre = 28,\n CustomerCostCentreProjectBudget = 29,\n ProjectListing = 30,\n CustomerUserRule = 31,\n SetupCustomer = 32,\n BusinessPurposeSetup = 33,\n AdditionalField = 34,\n BasicMileageRates = 35,\n AssignVehicletoClaimants = 36,\n SetupAdvancedMileage = 37,\n SetupDifferentialRatesOwnershipType = 38,\n SetupUKRatesOwnershipType = 39,\n AssignVehicletoMultipleClaimants = 40,\n RegisterCard = 41,\n SetupImportTemplate = 42,\n SetupCreditCardRules = 43,\n AssignCreditCardtoClaimant = 46,\n AssignPrivilegestoapproverName = 47,\n BuildNewReport = 48,\n AssignApproverToCostCentres = 49,\n AssignMileageRatetoGrade = 50,\n TriangulationOfficeNameAddress = 51,\n TriangulationSetupOfficeWorkers = 52,\n FuelReceiptManagementFunction = 53,\n TriangulationSetupHomeWorkers = 54,\n ExpenseCappingMonthlyClaimantWisePolicy = 55,\n ExpenseCappingYearlyClaimantWisePolicy = 56,\n SetupSupplier = 57,\n AssignSupplierRule = 58,\n DutyofCareStep1 = 59,\n DutyofCareStep2 = 60,\n DutyofCareStep3 = 61,\n DutyofCareStep4 = 62,\n DutyofCareStep5 = 63,\n SetupLocation = 64,\n AssignLocation = 65,\n ConfigureApprovalRule = 70,\n MultipleCountry = 71,\n SetupMultipleCompanies = 72,\n Advances = 73,\n AccountingIntegrationSetup = 74,\n MultipleVehicle = 75,\n AdvancesClaimantCappingPolicy = 76,\n AdvancesGradeCappingPolicy = 77,\n Discount = 80,\n OrganisationDiscount = 81,\n OrganisationDiscountContract = 82,\n CostCentreDisplaySetting = 83,\n AttendeeTypeFunction = 84,\n AllowanceRate = 85,\n AllowanceOwnershipMapping = 86,\n ConfigureCompanyApprovalRule = 90,\n AssignAccountingCodeToCompanyLog = 91,\n AssignEmployeesToCompany = 92,\n ComplianceStatementFunction = 93,\n VatNoVatReceiptType = 94,\n SetupDelegator = 100,\n SetupDelegate = 101,\n AssignDelegate = 102,\n AssignCounterApprover = 103,\n CounterApproverRule = 104,\n AssignCounterApproverToCategory = 105,\n FxRateStep1 = 106,\n FxRateStep3 = 107,\n TriangulationRule = 108,\n PowerUserPreference = 109,\n MileageStep5Rule = 110,\n YearEndPolicy = 111,\n NRUpdateFromDashboardByFM = 112,\n DeputyPreference = 113,\n FCUpdateFromDashboardByFM = 114,\n PassengerPayEnabledForTriangulation = 115,\n AdditionalVendorSettings = 118,\n\n MileageRateType = 119,\n MileageMeasure = 120,\n CategoryMileage = 121,\n InviteVendor = 122,\n VendorForm = 123,\n ApproveForms = 124,\n KYCFormSetup = 125,\n ConfigureXeroSettings = 130,\n AccIntAssignTaxTypeToTaxCode = 131,\n AccIntMapCostCentre = 132,\n AccIntMapLocation = 133,\n AccIntMapCreditCard = 134,\n CostCentreTrackingCategory = 135,\n LocationTrackingCategory = 136,\n AccIntColumnSelection = 137,\n AccIntMapEmployee = 138,\n ConfigureXeroRefSettings = 139,\n ConfigureXeroDesSettings = 140,\n AccIntMapExpCategory = 141,\n AccIntEmployeeMapRule = 142,\n BuildNewReportReportFields = 143,\n AdditionalFieldCatAssign = 154,\n CFPAssignCategory = 144,\n CFPOwnershipType = 145,\n CFPCategory = 146,\n SingleSignOnEnableDisable = 147,\n SetupPayStep = 150,\n DisappearingExpensesStep1 = 155,\n DisappearingExpensesStep2 = 156,\n CardFunctionToLiveMode = 95,\n PowerUserCasualUser = 157,\n RecallExportedExpense = 158,\n CCFeedPreferencePurchaseLog = 159,\n CCFeedScheduler = 160,\n CCFeedStartDate = 161,\n ManageNegativeTransaction = 162,\n ManageSupplierContact = 163,\n ManageYourCard = 164,\n SpecialCategoryExportSetup = 165,\n SpecialCategory_Step2 = 166,\n QBProjectsTurnOnOff = 162,\n QBProjectsMapping = 163,\n TaxSetupOnOff = 164,\n ContainerSetting = 167,\n SetupContainer = 168,\n IsReceiptTypeOnOff = 169,\n \n UpdateFunctionPrice = 180,\n UpdateCustomerFunctionPrice = 181,\n UpdateBasicPrice = 182,\n UpdateGooglePackagePrice = 183,\n \n}\n\nexport enum PricingPageTypeEnum {\n InternalPage = 1,\n ExternalPage = 2,\n}\n\nexport enum LocationStatus {\n All = 0,\n Active = 1,\n Inactive = 2,\n}\n\nexport enum ExpenseErrorWarningTypeEnum {\n CalculateMileageDetails = 1,\n ZeroDistanceNotAllowed = 2,\n InActiveExpenseCategoryAlert = 3,\n ReceiptTypeAlert = 4,\n ZeroDistance = 5,\n CategoryMandetory = 6,\n ZeroAmountNotAllowed = 7,\n SplitCategoryAmountMismatch = 8,\n}\nexport enum EmailEnum {\n ClaimMileageWhenMileageNotSetup = \"ClaimMileageWhenMileageNotSetup\",\n ClaimMilesWhenVehicleNotSetup = \"ClaimMilesWhenVehicleNotSetup\",\n ClaimMilesAndVehicleNotApproved = \"ClaimMilesAndVehicleNotApproved\",\n ClaimantMilesAndOfficeLocationNotSetWithTriangulation = \"ClaimantMilesAndOfficeLocationNotSetWithTriangulation\",\n GradeNotAssigned = \"GradeNotAssigned\",\n}\n\nexport enum AdditionalFieldTypeEnum {\n Text = 1,\n Dropdown = 2,\n}\n\nexport enum OrgFeedbackTypes {\n OnboardingFeedback = 1,\n TrialFeedback = 2,\n}\n\nexport enum EmployeeActionsEnum {\n Deactivate = 1,\n ResendInvite = 2,\n SendInvite = 3,\n Activate = 4,\n Edit = 5,\n}\n\nexport enum CCActionsEnum {\n Deactivate = 1,\n Activate = 2,\n Edit = 3,\n Log = 4\n}\n\nexport enum CustomerActionEnum {\n Deactivate = 1,\n Activate = 2,\n Edit = 3,\n}\n\nexport enum Page {\n Home = 1,\n ShoppingCartConfirm = 2,\n}\n\nexport enum EmployeeLocationStatus {\n All = 3,\n WithLocation = 1,\n WithoutLocation = 2,\n}\n\nexport enum BillingMethod {\n PerPersonBilling = 1,\n HybridBilling = 2,\n}\n\nexport enum UniversalImportTemplateEnum {\n Employee = 1,\n ExpenseCategory = 2,\n ExportTemplates = 3,\n ImportCreditCardStatement = 4,\n AssignApproverToCostCentres = 5,\n AdvanceClaimantCappingPolicy = 6,\n Customer = 7,\n ImportEmployees = 8,\n ImportCategories = 9,\n ImportMileageRates = 10,\n CounterApp = 11,\n FxRate = 12,\n ImportVehicleAssignment = 13,\n ImportOfficeBasedClaimants = 14,\n Deputy = 15,\n ImportAssignCreditCard = 16,\n ImportGrade = 17,\n PricingImport = 18,\n CostCentre = 19, \n ImportLocation = 20\n}\nexport enum ClaimantWiseCappingPolicyStatusEnum {\n EmployeeWithPolicy = 1,\n EmployeeWithoutPolicy = 2,\n}\n\nexport enum OtherPolicyTypeEnum {\n MonthlyCapping = 6,\n YearlyCapping = 7,\n}\n\nexport enum SupplierStatus {\n All = 0,\n Active = 1,\n Inactive = 2,\n}\n\nexport enum EmployeeSupplierConfig {\n SupplierRuleId = 0,\n ExpenseCategoryField = 1,\n All = 2,\n SupplierField = 3,\n}\n\nexport enum XeroSteps {\n Connect = 1,\n ConfigEmployees = 2,\n ConfigTax = 3,\n ConfigCategories = 4,\n ConfigCreditCard = 5,\n ConfigTcCostCentre = 6,\n ConfigTcCustomer = 7,\n ConfigTcLocation = 8,\n ConfigSupplier = 21,\n}\n\nexport enum AccSysAssignmentType {\n tally = 1,\n sage50 = 2,\n xeroReference = 3,\n xeroDescription = 4,\n}\n\nexport enum UniversalImportStepEnum {\n UploadFile = 1,\n DefineHeader = 2,\n ConfirmMapping = 3,\n Review = 4,\n ImportSummary = 5,\n}\n\nexport enum UniversalImportReviewFilterEnum {\n WithErrors = 1,\n WithoutErrors = 2,\n}\n\nexport enum DocumentStatus {\n Rejected = 5,\n Approved = 6,\n}\n\nexport enum CardSupervisoryActionEnum {\n NoAction = 0,\n ReAssigned = 1,\n Deleted = 2,\n}\n\nexport enum AdvanceType {\n CashAdvance = 1,\n CreditCardAdvance = 2,\n AdvanceReturn = 3,\n}\n\nexport enum AdvanceCappingPolicyType {\n CappingByIndividual = 1,\n CappingByGrade = 2,\n}\n\nexport enum UniversalImportEmployeesResponseEnum {\n CostCentre = 1,\n Grade = 2,\n ActivatedOwnershipType = 3,\n OfficeSetup = 4,\n}\n\nexport enum CostCentreApproversResponseEnum {\n CostCentre = 1,\n}\n\nexport enum UniversalImportStepsEnum {\n UploadFile = 1,\n DefineHeader = 2,\n ConfirmMapping = 3,\n Review = 4,\n ImportSummary = 5,\n}\n\nexport enum ExpenseStatusAction {\n Delete = 1,\n Submit = 2,\n Recall = 3,\n Archive = 4,\n}\n\nexport enum PreApprovalStatusEnum {\n Approved = 6,\n Rejected = 4,\n Pending = 5,\n PassForPayment = 8, // ApprovedForPayment => PassForPayment\n Draft = 3, //All recalled expenses\n All = 0, //All indicates all other status.\n}\nexport enum DashboardCountEnum {\n Approver_Count = 1,\n Finance_Approver_Count = 2,\n Dashboard_Count = 3,\n Mileage_Wizard_Count = 4,\n}\n\nexport enum MultipleCountryStatusEnum {\n All = 0,\n Active = 1,\n Inactive = 2,\n}\n\nexport enum CcImportTemplateTypeEnum {\n SingleUser = 1,\n MultipleUser = 2,\n}\n\nexport enum CcImportCardNumberSelectionModeEnum {\n Column = 1,\n Cell = 2,\n}\n\nexport enum AccIntMappingModelEnum {\n ExpenseCategory = 1,\n EntertainmentExpenseCategory = 2,\n UserOrgMapping = 3,\n TaxRateMaster = 4,\n TaxRateComponent = 5,\n CostCentre = 6,\n Customer = 7,\n Location = 8,\n Supplier = 9,\n Projects = 10,\n}\nexport enum StatusEnum {\n Inactive = 0,\n Active = 1,\n}\n\nexport enum DiscountMonthsEnum {\n oneMonthsDiscount = 1,\n threeMonthsDiscount = 3,\n sixMonthsDiscount = 6,\n twelveMonthsDiscount = 12,\n twentyFourMonthsDiscount = 24,\n thirtySixMonthsDiscount = 36,\n fourtyEightMonthsDiscount = 48,\n sixtyMonthsDiscount = 60,\n}\nexport enum TaxRateStatusEnum {\n Active = 0,\n Inactive = 1,\n FutureRate = 2,\n}\nexport enum GradePolicyFilterEnum {\n GradeWithPolicy = 1,\n GradeWithoutPolicy = 2,\n}\nexport enum JourneyTypeEnum {\n Single = 1,\n Return = 2,\n Multiple = 3,\n}\nexport enum AcctIntEmployeeSyncStatusEnum {\n All = 0,\n Linked = 1,\n Ignored = 2,\n NotLinked = 99,\n}\n\nexport enum AcctIntDomainStatusEnum {\n All = 0,\n Syncd = 1, //Syncd\n Ignored = 2, //Ignored for AutoSync\n Pending = 3, //Pending Action for AutoSync\n}\n\nexport enum SSOStatusEnum {\n All = 0,\n Enabled = 1,\n Disabled = 2,\n RequresAction = 3,\n}\n\nexport enum MileageAllowanceEnum {\n OnePassenger = 1,\n TwoPassenger = 2,\n ThreePassenger = 3,\n FourPassenger = 4,\n OneLoad = 5,\n OnePassengerOneLoad = 6,\n TwoPassengerOneLoad = 7,\n ThreePassengerOneLoad = 8,\n FourPassengerOneLoad = 9,\n}\nexport enum EntertainmentEmpEnum {\n Employee = 1,\n Guest = 2,\n Tips = 3,\n}\n\nexport enum FunctionCategoryEnum {\n YourOrganisation = 1,\n EmployeesApprovers = 2,\n CostCentresCustomers = 3,\n ExpenseCategories = 4,\n TaxRates = 5,\n ExpensePolicy = 6,\n CreditCards = 7,\n MileageRates = 8,\n DataExport = 9,\n Analysis = 14,\n OpenAPIs = 15,\n UniversalImport = 16,\n SalesOnDemand = 17,\n APAutomation = 18,\n ReportWriter = 19,\n AccessCharge = 0,\n}\n\nexport enum FunctionCategoryNameEnum {\n YourOrganisation = 'Your Organisation',\n EmployeesApprovers = 'Employees & Approvers',\n CostCentresCustomers = 'Cost Centres & Customers',\n ExpenseCategories = 'Expense Categories',\n TaxRates = 'Tax Rates',\n ExpensePolicy = 'Expense Policy',\n CreditCards = 'Credit Cards (CC)',\n MileageRates = 'Mileage Rates',\n DataExport = 'Data Export / Integration',\n Analysis = 'Analysis',\n OpenAPIs = 'Open APIs',\n UniversalImport = 'Universal Import',\n SalesOnDemand = 'Sales on Demand',\n APAutomation = 'AP Automation',\n ReportWriter = 'Report Writer',\n AccessCharge = 'Access Charge'\n}\n\nexport enum ImportEmployeesResponseEnum {\n CostCentre = 1,\n Grade = 2,\n EmployeeErrorsList = 3,\n SuccessRecordsCounts = 4,\n ChangedClaimantsApproverCounts = 5,\n ChangedClaimantsGradeCounts = 6,\n ChangedClaimantsCostCentreCounts = 7,\n ChangedClaimantsLastNameCounts = 8,\n ChangedClaimantsFirstNameCounts = 9,\n}\nexport enum ApproverStatusEnum {\n NotInvited = 2,\n InActive = 3,\n NoJoined = 4,\n}\nexport enum CCLiveModeEnum {\n TestMode = 0,\n LiveMode = 1,\n NotConfirm = 2,\n}\nexport enum DuplicateCheck {\n All = -1,\n On = 1,\n Off = 2,\n}\n\nexport enum AssignTaxToCategoriesFilterEnum {\n All = 0,\n WithTax = 1,\n WithoutTax = 2,\n}\nexport enum CheckType {\n Document = 1,\n Switch = 2,\n MOT = 3,\n}\n\nexport enum FrequencyType {\n Option1 = 1,\n Option2 = 2,\n Option3 = 3,\n Option4 = 4,\n Option5 = 5,\n Option6 = 6,\n}\n\nexport enum CounterAppType {\n All = 1,\n ApproverswithCA = 2,\n ApproverswithoutCA = 3,\n}\n\nexport enum CounterAppSeqType {\n Or = 1,\n All = 2,\n Mandatory = 3,\n End = 4,\n End2 = 5,\n}\n\nexport enum CounterAppDetType {\n All = 1,\n Current = 2,\n Deleted = 3,\n}\n\nexport enum AlertPanelTypeEnum {\n Purchase = 1,\n SetuptIncomplete = 2,\n NotApplicable = 3,\n ComingSoon = 4,\n}\nexport enum DelegateFilterEnum {\n All = 0,\n Active = 1,\n InActive = 2,\n}\nexport enum DelegateActionTypeEnum {\n Delegator = 1,\n Delegate = 2,\n}\nexport enum DelegatorExpenseEnum {\n MyExpense = 1,\n DelegatorExpense = 2,\n}\nexport enum ApproverCostCentreFilterEnum {\n All = 0,\n NoAproverCount = 1,\n OneAproverCount = 2,\n ManyApproverCount = 3,\n}\n\nexport enum DelegatorFilterEnum {\n All = 0,\n Active = 1,\n InActive = 2,\n}\n\nexport enum WizardActionEnum {\n SetupMileage = 1,\n VehicleManagement = 2,\n MultipleVehicle = 3,\n Triangulation = 4,\n NRFC = 5,\n DOC = 6,\n PassengerLoad = 7,\n ExpenseCategory = 8,\n Delegate = 9,\n CounterApprover = 10,\n FxRate = 11,\n Vendor = 12,\n AccountingIntegration = 13,\n Deputy = 14,\n ManageEmployee = 26,\n ClaimantMyMileage = 27,\n ReportWriter = 28,\n Tax = 25,\n AdditionalFields = 20,\n AdditionalFieldsStep1 = 21,\n AdditionalFieldsStep2 = 22,\n AdditionalFieldsStep3 = 23,\n AdditionalFieldsStep4 = 24,\n VatNoVat = 15,\n CarbonFootprint = 29,\n DisappearingExpense = 31,\n SingleSignOn = 32,\n Grade = 33,\n ManageCCFeedTransactions = 34,\n AccIntTrackingCategoryLocation = 35,\n AccIntTrackingCategoryCostCentre = 36,\n SpecialCategory = 37,\n QuickBooksProjects = 38,\n CostCentre = 39,\n PriceManagement = 42,\n Location = 43\n}\n\nexport enum PanelClosActionEnum {\n Close = 1,\n Save = 2,\n Log = 3,\n Delete = 4,\n Inactive = 5,\n Active = 4,\n}\nexport enum ApproverDeputy {\n ApproverWithAll = 0,\n ApproverWithDeputy = 1,\n ApproverWithoutDeputy = 2,\n}\nexport enum PolicyDashboardLoadType {\n InitialLoad = 0,\n GridFilterLoad = 1,\n}\nexport enum PolicyGridLoadType {\n Category = 1,\n Claimant = 2,\n Approver = 3,\n All = 4,\n}\n\nexport enum WorkflowApproverEnum {\n Approver = 1,\n MultiApprover = 2,\n CounterApprover = 3,\n}\n\nexport enum CounterApproverRule {\n All = 0,\n Single = 1,\n Multiple = 2,\n}\n\nexport enum FxRateRule {\n Default = 1,\n Editable = 2,\n NotEditable = 3,\n}\n\nexport enum FxRateSubRule {\n All = 1,\n Imported = 2,\n}\n\nexport enum CurrencyRateEnum {\n All = 0,\n WithRate = 1,\n WithoutRate = 2,\n}\n\nexport enum CurrencyRateSelectionEnum {\n Current = 1,\n Future = 2,\n Expired = 3,\n}\n\nexport enum HideMileageFunctions {\n SetupUKRates = 34,\n AssignVehicleToClaimants = 35,\n Triangulation = 36,\n SetupSingleRates = 51,\n SingleRateAssignVehicleToClaimants = 52,\n SetupDifferentialRates = 53,\n DifferentialRateAssignVehicleToClaimants = 54,\n AssignRatetoGrade = 91,\n BasicMileageRates = 6,\n FuelCard = 73,\n MultipleVehicle = 111,\n NonReimbursableFuel = 72,\n PassengerLoadMiles = 112,\n AssignVehicleToClaimant = 8,\n}\n\nexport enum FilterFxRateHistory {\n All = 1,\n Next6Months = 2,\n Next12Months = 3,\n}\nexport enum PolicyDashboardGridType {\n Category = 1,\n Claimant = 2,\n Approver = 3,\n}\nexport enum PolicyDashboardGridColumnType {\n selected = \"selected\",\n policyBreachCount = \"policyBreachCount\",\n}\n\nexport enum UnsubscribeCountryOptionEnum {\n Deactivate = 1,\n Move = 2,\n}\nexport enum ClaimType {\n Expense = 1,\n Invoice = 2,\n}\n\nexport enum ClaimAction {\n ClaimList = 1,\n CreateClaim = 2,\n EditClaim = 3,\n NoClaimMsg = 4,\n CreateClaimBtnMsg = 5,\n ClaimDetail = 6,\n ApproperClaimantListCount = 7,\n ClaimCount = 8,\n ClaimantName = 9,\n FilterClaimDate = 10,\n AddReceipt = 11,\n ViewReceipt = 12,\n}\n\nexport enum VendorKYCStatusEnum {\n NotRequired = 7,\n PleaseComplete = 1,\n Incomplete = 2,\n PendingForSubmission = 3,\n PendingForApproval = 4,\n Rejected = 5,\n Approved = 6,\n}\nexport enum FieldType {\n Text = 1,\n Date = 2,\n Img = 3,\n RadioButton = 4,\n Dropdown = 5,\n}\n\nexport enum TextChanges {\n Displayname = 1,\n CountofCharacters = 2,\n NotesCharacterCount = 3,\n}\n\nexport enum CheckBoxChanges {\n SpecialCharacters = 1,\n ImgAlignment = 2,\n}\n\nexport enum FormType {\n Active = 1,\n Archived = 2,\n}\n\nexport enum FormAction {\n Archive = 1,\n Copy = 2,\n Edit = 3,\n}\nexport enum ClaimantTypeEnum {\n ALL = 0,\n Claimant = 1,\n Vendor = 2,\n}\n\nexport enum EmployeeTypeEnum {\n Claimant = 0,\n Vendor = 1,\n}\n\nexport enum VehicleDOCExistsEnum {\n Exists = 1,\n NotExists = 2,\n}\n\nexport enum ImportValidation {\n PastDate = 1,\n Invaid = 2,\n Blank = 3,\n Duplicate = 4,\n LessThan = 5,\n GreaterThan = 6,\n}\nexport enum CCPendingTransactionsFilterEnum {\n All = 0,\n NotCompleted = 1,\n ReRouted = 2,\n Dismissed = 3,\n Orphan = 4,\n Completed = 5,\n Deleted = 6,\n PendingWithApprovar = 7,\n PendingWithFinanceApprover = 8,\n PendingWithPassforPayment = 9, \n Rejected = 10\n}\n\nexport enum CCPendingSupervisoryTransactionsFilterEnum {\n All = 0,\n Deleted = 1,\n ReAssigned = 2,\n}\n\nexport enum DeleteExpenseEnum {\n DeletedWithReceipt,\n Cancel,\n New,\n Delete,\n}\n\nexport enum TaxRateComponentStatusEnum {\n Active = 1,\n Inactive = 2,\n Future = 3,\n}\n\nexport enum TaxActionEnum {\n Edit = 1,\n Delete = 2,\n}\n\nexport enum AdditionalFieldCatAssignEnum {\n All = 0,\n Assigned = 1,\n Partially = 2,\n Unassigned = 3,\n}\n\nexport enum AdditionalFieldTypesEnum {\n FieldType1 = \"additionalField1\",\n FieldType2 = \"additionalField2\",\n FieldType3 = \"additionalField3\",\n FieldType4 = \"additionalField4\",\n}\n\nexport enum CFPCategoryEnum {\n All = 0,\n Assigned = 1,\n UnAssigned = 2,\n}\n\nexport enum DOCStatusEnum {\n notValid = 0,\n incomplete = 2,\n pleaseComplete = 1,\n pendingSubmission = 3,\n pendingApproval = 4,\n approved = 6,\n rejected = 5,\n expired = 7,\n recalled = 8,\n aboutToExpire = 10,\n suspended = 9,\n notRequired = 11,\n}\nexport enum FCInfoStatusEnum {\n ClosingBalanceRequired = 1,\n FuelCardRequired = 2,\n ClosingBalUpdateRequired = 3,\n ExpenseToBeDel = 4,\n OpeningBalDateNotValid = 5,\n ClosingBalRequiredOnLastDayOfMonth = 6,\n ClosingBalDateNotValid = 7,\n MaxReceiptCountBreach = 8,\n DisableOpeningBalanceDetail = 9,\n VehicleChanged = 10,\n}\n\nexport enum CounterCategoryType {\n All = 0,\n CACategoryByPassApprover = 1,\n CACategoryWithApprover = 2,\n CACategoryWithApproverAndCAApprover = 3,\n}\n\nexport enum ReceiptScanOption {\n NotScanned = 1,\n Discarded = 2,\n Accepted = 3,\n}\n\nexport enum UserCustomSettingEnum {\n DragAndDropApproverPanel = 1,\n}\n\nexport enum ApprovalSectionEnum {\n expenseDetails = 1,\n taxDetails = 2,\n additionalDetails = 3,\n ccDetails = 4,\n}\n\nexport enum CCTransactionsFilterEnum {\n All = 0,\n NotCompleted = 1,\n ReRouted = 2,\n Dismissed = 3,\n Orphan = 4,\n Completed = 5,\n}\n\nexport enum SpecialCategoryExportTypeEnum {\n EndDate = 1,\n StartDate = 2,\n}\n\nexport enum ExportColumnFormatEnum {\n String = 1,\n Decimal = 2,\n Datetime = 3,\n}\n\nexport enum CFPWizardActionEnum {\n Step1 = 1,\n CfpToggle = 2\n}\nexport enum ExpCategoryStatusEnum {\n CategoryNotActive = 1,\n CategoryNotAssignedtoGrade = 2\n}\n\nexport enum HideExportPrivelageListFunctions {\n SpecialCategory = 131,\n FmCanEdit = 128\n}\n","export interface IRequestSaveFxRateSetting {\n fxRateRule:number;\n fxRateSubRule:number;\n}\n\nexport class RequestSaveFxRateSetting implements IRequestSaveFxRateSetting{\n fxRateRule:number;\n fxRateSubRule:number;\n}\n\nexport interface IFxRateConfiguration{\n fxRateId:number;\n currencyId:number;\n name:number;\n currencyCode:string;\n currencyRate:number;\n effectiveFrom:number;\n modifiedOn:number;\n}\n\nexport interface ICurrencyFetchRequest\n{\n expenseDate:number;\n isForeignCurrency:boolean;\n}\n\nexport class CurrencyFetchRequest implements ICurrencyFetchRequest\n{\n expenseDate:number;\n isForeignCurrency:boolean;\n}\n\nexport class FxRateConfiguration implements IFxRateConfiguration{\n fxRateId:number;\n currencyId:number;\n name:number;\n currencyCode:string;\n currencyRate:number;\n effectiveFrom:number;\n modifiedOn:number;\n}\n\nexport interface ICurrencyConfiguration\n{\n currencyWithRate:number;\n currencyWithoutRate:number;\n lstRateConfigurations:IFxRateConfiguration[];\n}\n\nexport class CurrencyConfiguration implements ICurrencyConfiguration\n{\n currencyWithRate:number;\n currencyWithoutRate:number;\n lstRateConfigurations:IFxRateConfiguration[];\n}\n\nexport interface IExpiredRateConfiguration\n{\n currencyId:number;\n currencyCode:string;\n expiredRatesCount:number;\n lstRateConfigurations:IFxRateConfiguration[];\n}\n\nexport class IExpiredRateConfiguration implements IExpiredRateConfiguration\n{\n currencyId:number;\n currencyCode:string;\n expiredRatesCount:number;\n lstRateConfigurations:IFxRateConfiguration[];\n}\n\n\nexport interface IRespFxRateConfiguration\n{\n currentCurrencyConfig : ICurrencyConfiguration;\n futureCurrencyConfig: ICurrencyConfiguration; \n expiredCurrencyConfig:IExpiredRateConfiguration[];\n}\n\nexport class RespFxRateConfiguration implements IRespFxRateConfiguration\n{\n currentCurrencyConfig : ICurrencyConfiguration;\n futureCurrencyConfig: ICurrencyConfiguration; \n expiredCurrencyConfig:IExpiredRateConfiguration[];\n}\n\nexport interface IRequestUpdateFxRateSetup{\n fxRateDetails : ICurrencyRequest[];\n fmId:number;\n fmName:string;\n}\n\nexport class RequestUpdateFxRateSetup implements IRequestUpdateFxRateSetup{\n fxRateDetails : ICurrencyRequest[];\n fmId:number;\n fmName:string;\n}\n\nexport interface IFxRateExpenseCounter \n{\n fxRateId:number;\n expenseCount:number;\n}\n\nexport class FxRateExpenseCounter implements IFxRateExpenseCounter\n{\n fxRateId:number;\n expenseCount:number;\n}\n\nexport interface IResponseExpenseFxRateCounter\n{\n lstFxRateExpenseCounter: IFxRateExpenseCounter[];\n}\n\nexport class ResponseExpenseFxRateCounter implements IResponseExpenseFxRateCounter\n{\n lstFxRateExpenseCounter: IFxRateExpenseCounter[];\n}\n\nexport interface ICurrencyRequest {\n fxRateId:number;\n orgId:number;\n currencyId:number;\n currencyRate:number;\n effectiveFrom:number;\n isImported:boolean;\n createdBy:number;\n createdOn:number;\n updatedBy:number;\n updatedOn:number; \n}\n\nexport class CurrencyRequest implements ICurrencyRequest {\n fxRateId:number;\n orgId:number;\n currencyId:number;\n currencyRate:number;\n effectiveFrom:number;\n isImported:boolean;\n createdBy:number;\n createdOn:number;\n updatedBy:number;\n updatedOn:number; \n}\n\nexport interface ICurrencyResponse {\n \n}\n\nexport class CurrencyResponse implements ICurrencyResponse {\n \n}\n\nexport interface IBulkSaveCurrenciesRequest {\n organisationId: number;\n createdBy: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n currencyList: ICurrencyRequest[];\n}\n\nexport class BulkSaveCurrenciesRequest implements IBulkSaveCurrenciesRequest {\n organisationId: number;\n createdBy: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n currencyList: ICurrencyRequest[];\n constructor(\n organisationId: number,\n createdBy: number,\n fmName: string,\n fmEmail: string,\n fmUserId: number,\n currencyList: ICurrencyRequest[]\n ) {\n this.organisationId = organisationId;\n this.createdBy = createdBy;\n this.fmName = fmName;\n this.fmEmail = fmEmail;\n this.fmUserId = fmUserId;\n this.currencyList = currencyList;\n }\n}\n\n\n\nexport interface IBulkSaveCurrencyResponse {\n OrganisationId: number;\n TotalRecords: number;\n FailedRecords: number;\n PassedRecords: number;\n CurrencyList: ICurrencyResponse[];\n}\n","export interface IOrganisationGooglePackageSaveRequest {\n OrganisationGooglePackageId: number;\n OrganisationId: number;\n GooglePackageId: number;\n TotalCalls: number;\n UsedCalls: number;\n GooglePackageThresholdLimit: number;\n IsAutoPurchaseEnabled: boolean;\n AmountPaid: number;\n PurchaseDate: number;\n PaymentDate: number;\n TransactionId: string;\n GooglePackageCallCount: number;\n IsPurchaseSuccessful: boolean;\n UnitsPurchased: number;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n CustomerId: string;\n PaymentMethodId: string;\n BillingStatus: number;\n VatPercent: number;\n VatAmount: number;\n BaseAmount: number;\n IsVatApplied: boolean;\n CurrencyCode: string;\n}\n\nexport class OrganisationGooglePackageSaveRequest\n implements IOrganisationGooglePackageSaveRequest\n{\n OrganisationGooglePackageId: number;\n OrganisationId: number;\n GooglePackageId: number;\n TotalCalls: number;\n UsedCalls: number;\n GooglePackageThresholdLimit: number;\n IsAutoPurchaseEnabled: boolean;\n AmountPaid: number;\n PurchaseDate: number;\n PaymentDate: number;\n TransactionId: string;\n GooglePackageCallCount: number;\n IsPurchaseSuccessful: boolean;\n UnitsPurchased: number;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n CustomerId: string;\n PaymentMethodId: string;\n BillingStatus: number;\n VatPercent: number;\n VatAmount: number;\n BaseAmount: number;\n IsVatApplied: boolean;\n CurrencyCode: string;\n}\n\nexport interface IOrganisationGooglePackageSaveResponse {\n savedRows: number;\n}\n\nexport class OrganisationGooglePackageSaveResponse\n implements IOrganisationGooglePackageSaveResponse\n{\n savedRows: number;\n}\n\nexport interface IOrganisationGooglePackageUpdateCallsRequest {\n OrganisationId: number;\n CallsUsed: number;\n UpdatedBy: number;\n}\n\nexport class OrganisationGooglePackageUpdateCallsRequest\n implements IOrganisationGooglePackageUpdateCallsRequest\n{\n OrganisationId: number;\n CallsUsed: number;\n UpdatedBy: number;\n}\n\nexport interface IOrganisationGooglePackageUpdateCallsResponse {\n savedRows: number;\n}\n\nexport class OrganisationGooglePackageUpdateCallsResponse\n implements IOrganisationGooglePackageUpdateCallsResponse\n{\n savedRows: number;\n}\n\nexport interface IUnsubscribeGooglePackageCallsRequest {\n OrganisationId: number;\n UpdatedBy: number;\n}\n\nexport class UnsubscribeGooglePackageCallsRequest\n implements IUnsubscribeGooglePackageCallsRequest\n{\n OrganisationId: number;\n UpdatedBy: number;\n constructor(OrganisationId: number, UpdatedBy: number) {\n this.OrganisationId = OrganisationId;\n this.UpdatedBy = UpdatedBy;\n }\n}\n\nexport interface IDismissGooglePackagePurchaseReminderRequest {\n OrganisationId: number;\n UpdatedBy: number;\n}\n\nexport class DismissGooglePackagePurchaseReminderRequest\n implements IDismissGooglePackagePurchaseReminderRequest\n{\n OrganisationId: number;\n UpdatedBy: number;\n constructor(OrganisationId: number, UpdatedBy: number) {\n this.OrganisationId = OrganisationId;\n this.UpdatedBy = UpdatedBy;\n }\n}\n\nexport interface IUpdateOrganisationGooglePackagePaymentDetailStatusRequest {\n organisationGooglePackagePaymentDetailId: number;\n status: number;\n userId: number;\n}\n\nexport class UpdateOrganisationGooglePackagePaymentDetailStatusRequest\n implements IUpdateOrganisationGooglePackagePaymentDetailStatusRequest\n{\n organisationGooglePackagePaymentDetailId: number;\n status: number;\n userId: number;\n}\n\nexport interface IOrganisationPlaidPackageSaveRequest {\n OrganisationPlaidPackageId: number;\n OrganisationId: number;\n PlaidPackageId: number;\n TotalTransactions: number;\n UsedTransactions: number;\n PackageThresholdLimit: number;\n IsAutoPurchaseEnabled: boolean;\n AmountPaid: number;\n PurchaseDate: number;\n PaymentDate: number;\n TransactionId: string;\n PlaidPackageTransactionCount: number;\n IsPurchaseSuccessful: boolean;\n UnitsPurchased: number;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n CustomerId: string;\n PaymentMethodId: string;\n BillingStatus: number;\n VatPercent: number;\n VatAmount: number;\n BaseAmount: number;\n IsVatApplied: boolean;\n CurrencyCode: string;\n}\n\nexport class OrganisationPlaidPackageSaveRequest\n implements IOrganisationPlaidPackageSaveRequest\n{\n OrganisationPlaidPackageId: number;\n OrganisationId: number;\n PlaidPackageId: number;\n TotalTransactions: number;\n UsedTransactions: number;\n PackageThresholdLimit: number;\n IsAutoPurchaseEnabled: boolean;\n AmountPaid: number;\n PurchaseDate: number;\n PaymentDate: number;\n TransactionId: string;\n PlaidPackageTransactionCount: number;\n IsPurchaseSuccessful: boolean;\n UnitsPurchased: number;\n CreatedBy: number;\n CreatedOn: number;\n UpdatedBy: number;\n UpdatedOn: number;\n CustomerId: string;\n PaymentMethodId: string;\n BillingStatus: number;\n VatPercent: number;\n VatAmount: number;\n BaseAmount: number;\n IsVatApplied: boolean;\n CurrencyCode: string;\n}\n\nexport interface IPlaidConnectionResponse {\n OrgId: number;\n PlaidConnection: string;\n AccessToken: string;\n ItemId: string;\n RequestId: string;\n Region: string;\n}\n\nexport class PlaidConnectionResponse implements IPlaidConnectionResponse {\n OrgId: number;\n PlaidConnection: string;\n AccessToken: string;\n ItemId: string;\n RequestId: string;\n Region: string;\n constructor(\n OrganisationId: number,\n PlaidConnection: string,\n AccessToken: string,\n ItemId: string,\n RequestId: string,\n Region: string\n ) {\n this.OrgId = OrganisationId;\n this.PlaidConnection = PlaidConnection;\n this.AccessToken = AccessToken;\n this.ItemId = ItemId;\n this.RequestId = RequestId;\n this.Region = Region;\n }\n}\n","export interface IRequestGetGrade {\n gradeId: number;\n}\n\nexport class RequestGetGrade implements IRequestGetGrade {\n gradeId: number;\n constructor(gradeId: number) {\n this.gradeId = gradeId;\n }\n}\n\nexport interface IResponseGrade {\n gradeId: number;\n organisationId: number;\n gradeName: string;\n gradeDescription: string;\n gradeStatus: number;\n isDefault: boolean;\n createdBy: number;\n createdDate: Date;\n modifiedBy: number;\n modifiedDate: Date;\n isAnyEmployeeAssigned: boolean;\n updatedOn: number;\n isRowHighlighted: boolean;\n selected: boolean;\n}\n\nexport class ResponseGrade implements IResponseGrade {\n gradeId: number;\n organisationId: number;\n gradeName: string;\n gradeDescription: string;\n gradeStatus: number;\n isDefault: boolean;\n createdBy: number;\n createdDate: Date;\n modifiedBy: number;\n modifiedDate: Date;\n isAnyEmployeeAssigned: boolean;\n updatedOn: number;\n isRowHighlighted: boolean = false;\n selected: boolean;\n constructor() { }\n}\n\nexport interface IRequestGradeList {\n organisationId: number;\n status: number;\n pageNumber: number;\n sortOrder: number;\n sortColumn: string;\n pageSize: number;\n}\n\nexport class RequestGradeList implements IRequestGradeList {\n organisationId: number;\n status: number;\n pageNumber: number;\n sortOrder: number;\n sortColumn: string;\n pageSize: number;\n constructor(\n organisationId: number,\n status: number,\n pageNumber: number,\n sortOrder: number,\n sortColumn: string\n ) {\n this.organisationId = organisationId;\n this.status = status;\n this.pageNumber = pageNumber;\n this.sortOrder = sortOrder;\n this.sortColumn = sortColumn;\n }\n}\n\nexport interface IResponseGradeList {\n gradeList: IResponseGrade[];\n totalGradeCount: number;\n activeGradeCount: number;\n inActiveGradeCount: number;\n}\n\nexport class ResponseGradeList implements IResponseGradeList {\n gradeList: ResponseGrade[];\n totalGradeCount: number;\n activeGradeCount: number;\n inActiveGradeCount: number;\n}\n\nexport interface IRequestGrade {\n gradeId: number;\n organisationId: number;\n gradeName: string;\n gradeDescription: string;\n gradeStatus: number;\n isDefault: boolean;\n createdBy: number;\n createdDate: Date;\n modifiedBy: number;\n modifiedDate: Date;\n userName: string;\n}\n\nexport class RequestGrade implements IRequestGrade {\n gradeId: number;\n organisationId: number;\n gradeName: string;\n gradeDescription: string;\n gradeStatus: number;\n isDefault: boolean;\n createdBy: number;\n createdDate: Date;\n modifiedBy: number;\n modifiedDate: Date;\n userName: string;\n\n constructor(\n organisationId: number,\n gradeName: string,\n gradeDescription: string,\n gradeStatus: number,\n isDefault: boolean,\n createdBy: number,\n userName: string\n ) {\n this.organisationId = organisationId;\n this.gradeName = gradeName;\n this.gradeDescription = gradeDescription;\n this.gradeStatus = gradeStatus;\n this.isDefault = isDefault;\n this.createdBy = createdBy;\n this.userName = userName;\n }\n}\n\n\n\nexport interface IRequestDeactivateGrade {\n gradeId: number;\n modifiedBy: number;\n userName: string;\n}\n\nexport class RequestDeactivateGrade implements IRequestDeactivateGrade {\n gradeId: number;\n modifiedBy: number;\n userName: string;\n constructor(gradeId: number, modifiedBy: number, userName: string) {\n this.gradeId = gradeId;\n this.modifiedBy = modifiedBy;\n this.userName = userName;\n }\n}\n\nexport interface IRequestReactivateGrade {\n gradeId: number;\n modifiedBy: number;\n userName: string;\n}\n\nexport class RequestReactivateGrade implements IRequestReactivateGrade {\n gradeId: number;\n modifiedBy: number;\n userName: string;\n constructor(gradeId: number, modifiedBy: number, userName: string) {\n this.gradeId = gradeId;\n this.modifiedBy = modifiedBy;\n this.userName = userName;\n }\n}\n\nexport interface IRequestGradeHistory {\n gradeId: number;\n}\n\nexport class RequestGradeHistory implements IRequestGradeHistory {\n gradeId: number;\n constructor(gradeId: number) {\n this.gradeId = gradeId;\n }\n}\n\nexport interface IResponseGradeHistory {\n gradeHistoryId: number;\n gradeId: number;\n organisationId: number;\n gradeName: string;\n gradeDescription: string;\n createdBy: number;\n createdDate: Date;\n actionPerformed: number;\n notes: string;\n}\n\nexport class ResponseGradeHistory implements IResponseGradeHistory {\n gradeHistoryId: number;\n gradeId: number;\n organisationId: number;\n gradeName: string;\n gradeDescription: string;\n createdBy: number;\n createdDate: Date;\n actionPerformed: number;\n notes: string;\n}\n\nexport interface IResponseGradeHistoryList {\n gradeHistoryList: IResponseGradeHistory[];\n}\n\nexport class ResponseGradeHistoryList implements IResponseGradeHistoryList {\n gradeHistoryList: IResponseGradeHistory[];\n}\n\nexport interface IRequestGradeListForAssignEmployee {\n organisationId: number;\n status: number;\n}\n\nexport class RequestGradeListForAssignEmployee\n implements IRequestGradeListForAssignEmployee {\n organisationId: number;\n status: number;\n constructor(organisationId: number, status: number) {\n this.organisationId = organisationId;\n this.status = status;\n }\n}\n\nexport interface IEmployeeListForAssignedGrade {\n employeeId: number;\n gradeId: number;\n employeeName: string;\n employeeEmail:string;\n}\n\nexport class EmployeeListForAssignedGrade\n implements IEmployeeListForAssignedGrade {\n employeeId: number;\n gradeId: number;\n employeeName: string;\n employeeEmail:string;\n}\n\nexport interface IResponseGradeForAssignEmployee {\n gradeId: number;\n organisationId: number;\n gradeName: string;\n gradeStatus: number;\n assignedGradeEmployeeCount: number;\n assignedGradeEmployeeLists: IEmployeeListForAssignedGrade[];\n}\n\nexport class ResponseGradeForAssignEmployee\n implements IResponseGradeForAssignEmployee {\n gradeId: number;\n organisationId: number;\n gradeName: string;\n gradeStatus: number;\n assignedGradeEmployeeCount: number;\n assignedGradeEmployeeLists: IEmployeeListForAssignedGrade[];\n}\n\nexport interface IResponseGradeListForAssignEmployee {\n totalGrade: number;\n totalEmployees: number;\n totalUnassignedEmployees: number;\n gradeListForAssignEmployee: IResponseGradeForAssignEmployee[];\n unassignedGradeEmployeeList: IEmployeeListForAssignedGrade[];\n}\n\nexport class ResponseGradeListForAssignEmployee\n implements IResponseGradeListForAssignEmployee {\n totalGrade: number;\n totalEmployees: number;\n totalUnassignedEmployees: number;\n gradeListForAssignEmployee: IResponseGradeForAssignEmployee[];\n unassignedGradeEmployeeList: IEmployeeListForAssignedGrade[];\n}\n\nexport interface IGradeMappedEmployeeList {\n gradeId: number;\n organisationId: number;\n employeeIds: number[];\n}\n\nexport class GradeMappedEmployeeList implements IGradeMappedEmployeeList {\n gradeId: number;\n organisationId: number;\n employeeIds: number[];\n constructor(gradeId: number, organisationId: number, employeeIds: number[]) {\n this.gradeId = gradeId;\n this.organisationId = organisationId;\n this.employeeIds = employeeIds;\n }\n}\n\nexport interface IRequestGradeBulkDeactivate {\n gradeIds: number[];\n modifiedBy: number;\n userName: string;\n}\n\nexport class RequestGradeBulkDeactivate implements IRequestGradeBulkDeactivate {\n gradeIds: number[];\n modifiedBy: number;\n userName: string;\n constructor(gradeIds: number[], modifiedBy: number, userName: string) {\n this.gradeIds = gradeIds;\n this.modifiedBy = modifiedBy;\n this.userName = userName;\n }\n}\n\nexport interface IRequestGradeListAll {\n organisationId: number;\n}\n\nexport class RequestGradeListAll implements IRequestGradeListAll {\n organisationId: number;\n constructor(organisationId: number) {\n this.organisationId = organisationId;\n }\n}\n\nexport interface IRequestGradeBulkAdd {\n gradeList: IRequestGrade[];\n}\n\nexport class RequestGradeBulkAdd implements IRequestGradeBulkAdd {\n gradeList: IRequestGrade[];\n constructor(gradeList: IRequestGrade[]) {\n this.gradeList = gradeList;\n }\n}\n\nexport interface IGradeForBulkAdd {\n gradeName: string;\n isGradeNameComplete: boolean;\n gradeNameValidationMessage: string;\n gradeDescription: string;\n isGradeDescriptionComplete: boolean;\n gradeDescriptionValidationMessage: string;\n tempId: any;\n}\nexport class GradeForBulkAdd implements IGradeForBulkAdd {\n gradeNameValidationMessage: string;\n gradeDescriptionValidationMessage: string;\n gradeName: string;\n isGradeNameComplete: boolean;\n gradeDescription: string;\n isGradeDescriptionComplete: boolean;\n tempId: any;\n}\n\nexport interface IGradeCsvRecord {\n gradeName: string;\n gradeDescription: string;\n errors: string;\n}\nexport class GradeCsvRecord implements IGradeCsvRecord {\n public gradeName: string;\n public gradeDescription: string;\n public errors: string;\n constructor() { }\n}\n\nexport interface IFailedGradeImportInfo {\n gradeName: string;\n gradeDescription: string;\n error: string;\n}\nexport class FailedGradeImportInfo implements IFailedGradeImportInfo {\n gradeName: string;\n gradeDescription: string;\n error: string;\n\n constructor(gradeName: string, gradeDescription: string, error: string) {\n this.gradeName = gradeName;\n this.gradeDescription = gradeDescription;\n this.error = error;\n }\n}\n\nexport interface IGradeCsvRecordExport {\n GradeName: string;\n Description: string;\n Error: string;\n}\n\nexport class GradeCsvRecordExport implements IGradeCsvRecordExport {\n GradeName: string;\n Description: string;\n Error: string;\n}\n\nexport interface IGradeModelError {\n gradeNameValidationMessage: string;\n gradeDescriptionValidationMessage: string;\n}\n\nexport class GradeModelError implements IGradeModelError {\n gradeNameValidationMessage: string = \"\";\n gradeDescriptionValidationMessage: string = \"\";\n constructor() { }\n}\n\nexport class assignCategoriesToGradesByGradeRequest {\n GrageId: number;\n}\n\nexport class AssignCategoriesToGradeListPanelInputModel {\n title: string;\n constructor(title: string) {\n this.title = title;\n }\n}\n\nexport class AddGradePanelInputModel {\n gradeId: number;\n isEditMode: boolean;\n isCopy:boolean;\n constructor(gradeId: number, isEditMode: boolean, isCopy: boolean) {\n this.gradeId = gradeId;\n this.isEditMode = isEditMode;\n this.isCopy = isCopy;\n }\n}\n\nexport class AddGradePanelOutputModel {\n filterStatus: number;\n constructor(filterStatus: number) {\n this.filterStatus = filterStatus;\n }\n}\n\nexport class Grade {\n gradeId: number;\n organisationId: number;\n gradeName: string;\n gradeDescription: string;\n gradeStatus: number;\n isDefault: boolean;\n createdBy: number;\n createdDate: Date;\n modifiedBy: number;\n modifiedDate: Date;\n}\n\nexport class GradeFormModel extends Grade {\n isEditMode: boolean;\n gradeToggle: boolean;\n userName: string;\n isAnyEmployeeAssigned: boolean;\n}\n\nexport interface BulkImportGradeRequest {\n organisationId: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n gradeList: IRequestGrade[];\n}\n","import { PagingDetail } from \"../common/request-response/paging-detail\";\nimport { IImportHistory } from \"../importHistory/importHistory.model\";\n\nexport class LocationRequest {\n locationId: number;\n name: string;\n code1: string;\n code2: string;\n status: number;\n organisationId: number;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n userName: string;\n}\n\nexport class AssignLocationToEmployeesRequest {\n organisationId: number;\n locationId: number;\n userOrgMappingIds: number[];\n updatedBy: number;\n updatedOn: number;\n userName: string;\n}\n\nexport class GetEmployeeForLocationAssignmentRequest extends PagingDetail {\n organisationId: number;\n pageNo: number;\n sortOrder: number;\n sortColumn: string;\n searchText: string;\n companyId: number;\n}\n\nexport class GetLocationListForGridRequest extends PagingDetail {\n organisationId: number;\n status: number;\n sortColumn: string;\n searchText: string;\n}\n\nexport class GetLocationByLocationIdsRequest {\n\n locationIds: number[];\n}\n\nexport class GetLocationByOrgIdAndStatusRequest {\n organisationId: number;\n status: number;\n}\n\nexport class GetLocationByLocationIdRequest {\n locationId: number;\n}\n\n\n\n\nexport class LocationResponse {\n locationId: number;\n name: string;\n code1: string;\n code2: string;\n status: number;\n organisationId: number;\n accountingSystemParameter: string;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n}\n\nexport class LocationResponseForGrid extends LocationResponse {\n setupDate: Date;\n numberOfClaimants: number;\n isRowHighlighted: boolean;\n statusText: string;\n selected: boolean;\n isDeactivateDisabled: boolean;\n isDeactivateHidden: boolean;\n isEditDisabled: boolean;\n isActivateHidden: boolean = false;\n}\n\nexport class LocationListForGridResponse {\n locationList: LocationResponseForGrid[];\n totalLocationCount: number;\n totalActiveLocationCount: number;\n totalInActiveLocationCount: number;\n}\n\nexport class EmployeeForLocationAssignmentResponse {\n userOrgMappingId: number;\n userId: number;\n employeeId: string;\n employeeName: string;\n employeeEmail: string;\n status: number;\n updatedOn: number;\n locationId: number;\n locationName: string;\n isRowHighlighted: boolean;\n selected: boolean;\n locationStatus: number;\n isEditDisabled: boolean;\n isCheckboxDisabled: boolean;\n}\n\nexport class EmployeeListForLocationAssignmentResponse {\n employeeList: EmployeeForLocationAssignmentResponse[];\n totalEmployessCount: number;\n totalEmployessCountWithLocation: number;\n totalEmployessCountWithOutLocation: number;\n}\n\nexport class EmployeeForLocationAssignment {\n userOrgMappingId: number;\n employeeName: string;\n locationId: number;\n locationName: string;\n userId: number;\n}\n\n\nexport class ActiveLocationForAssignResponse {\n locationId: number;\n locationName: string;\n}\n\nexport class GetLocationShortDetailsResponse {\n locationId: number;\n locationName: string;\n locationCode1: string;\n locationCode2: string;\n nameCode: string;\n}\n\nexport class LocationCsvRecord {\n locationName: string;\n locationCode1: string;\n locationCode2: string;\n error: string;\n\n}\n\nexport class LocationCsvRecordExport {\n LocationName: string;\n LocationCode1: string;\n LocationCode2: string;\n Error: string;\n}\n\nexport class RequestAddLocationImportHistory {\n importHistory: IImportHistory;\n failedDataList: LocationCsvRecord[];\n\n}\n\nexport class AddUpdateLocationModel {\n constructor(\n public title: string,\n public locationId: number,\n public isEditMode: boolean = false,\n public assignedEmployeesCount: number\n ) {\n\n }\n}\n\nexport class DeactivateLocationModel {\n constructor(public locationId: number, public locationName: string, public assignedEmployeesCount: number) {\n\n }\n}\n\nexport class BulkActionOnLocationRequest {\n organisationId: number;\n locationIds: number[];\n updatedBy: number;\n status: number;\n userName: string;\n}\n\nexport class LocationFormModel {\n locationId: number;\n location_name: string;\n location_code1: string;\n location_code2: string;\n location_status: number;\n location_status_boolean: boolean;\n}","import { ErrorInfo } from \"../common/error-info\";\nimport { EmployeeStatusEnum, UserTypeEnum } from \"src/app/_models/common/manage-emp-enum.enum\";\n\nexport interface IVehicleList {\n vehicleTypeId: number;\n orgVehicleTypeMapId: number;\n vehicleSubTypeId: number;\n mileageRate: number;\n derivedName: string;\n vehicleLabel: string;\n isMultiRange: boolean;\n mileageRateInfo: IMileageRateInfo[];\n}\n\nexport class VehicleList implements IVehicleList {\n vehicleTypeId: number;\n orgVehicleTypeMapId: number;\n vehicleSubTypeId: number;\n mileageRate: number;\n derivedName: string;\n vehicleLabel: string;\n isMultiRange: boolean;\n mileageRateInfo: IMileageRateInfo[];\n}\n\nexport interface IMileageRateInfo {\n rangeFrom: number;\n rangeTo: number;\n mileageRate: number;\n milesTravelled: number;\n amount: number;\n}\n\nexport class MileageRateInfo implements IMileageRateInfo {\n rangeFrom: number;\n rangeTo: number;\n mileageRate: number;\n milesTravelled: number;\n amount: number;\n}\n\nexport interface IOrgVehiclTypes {\n orgID: number;\n mileageUOM: number;\n mileageUOMLabel: string;\n rateType: number;\n vehicleTypes: IVehicleList[];\n}\nexport class OrgVehiclTypes implements IOrgVehiclTypes {\n orgID: number;\n mileageUOM: number;\n mileageUOMLabel: string;\n rateType: number;\n vehicleTypes: IVehicleList[];\n}\n\nexport interface IVehicleListRequestDto {\n orgId: number;\n}\n\nexport class VehicleListRequestDto implements IVehicleListRequestDto {\n orgId: number;\n constructor(\n orgId: number\n ) {\n this.orgId = orgId;\n }\n}\n\nexport interface IResponseInviteEmployee {\n approverId: number;\n employeeEmail: string;\n employeeId: number;\n employeeRole: number;\n failedRecord: EmployeeFailedRecord;\n}\n\nexport class ResponseInviteEmployee implements IResponseInviteEmployee {\n employeeEmail: string;\n employeeId: number;\n employeeRole: number;\n approverId: number;\n responseMessage: string;\n errors: ErrorInfo[]\n failedRecord: EmployeeFailedRecord;\n}\n\nexport class EmployeeFailedRecord {\n uid: number;\n eid: string;\n eid2: string;\n eid3: string;\n eid4: string;\n fn: string;\n ln: string;\n e: number;\n r: number;\n ai: number;\n err: string;\n}\n\n\nexport interface IFailedEmpImportInfo {\n employeeCode: string;\n firstName: string;\n lastName: string;\n email: string;\n employeeRole: string;\n vehicleType: number;\n approverEmail: string;\n error: string;\n}\nexport class FailedEmpImportInfo implements IFailedEmpImportInfo {\n employeeCode: string;\n firstName: string;\n lastName: string;\n email: string;\n employeeRole: string;\n vehicleType: number;\n approverEmail: string;\n error: string;\n constructor(\n employeeCode: string,\n firstName: string,\n lastName: string,\n email: string,\n employeeRole: string,\n vehicleType: number,\n approverEmail: string,\n error: string,\n ) {\n this.employeeCode = employeeCode;\n this.firstName = firstName;\n this.lastName = lastName;\n this.email = email;\n this.employeeRole = employeeRole;\n this.vehicleType = vehicleType;\n this.approverEmail = approverEmail;\n this.error = error;\n }\n}\n\nexport interface IFailedEmpImportReqDto {\n employeeImportId: number;\n}\nexport class FailedEmpImportReqDto implements IFailedEmpImportReqDto {\n employeeImportId: number;\n constructor(employeeImportId: number) {\n this.employeeImportId = employeeImportId;\n }\n}\n\nexport interface IFailedEmpImportRespDto {\n failedImportInfo: IFailedEmpImportInfo[];\n}\nexport class FailedEmpImportRespDto implements IFailedEmpImportRespDto {\n failedImportInfo: IFailedEmpImportInfo[];\n}\n\nexport interface IAddEmpLogRequestDto {\n employeeImportId: number;\n orgId: number;\n totalRecords: number;\n recordsImported: number;\n recordsFailed: number;\n notes: string;\n isFailedExported: boolean;\n createdBy: number;\n}\nexport class AddEmpLogRequestDto implements IAddEmpLogRequestDto {\n employeeImportId: number;\n orgId: number;\n totalRecords: number;\n recordsImported: number;\n recordsFailed: number;\n notes: string;\n isFailedExported: boolean;\n createdBy: number;\n constructor(employeeImportId: number,\n orgId: number,\n totalRecords: number,\n recordsImported: number,\n recordsFailed: number,\n notes: string,\n isFailedExported: boolean,\n createdBy: number\n ) {\n this.employeeImportId = employeeImportId;\n this.orgId = orgId;\n this.totalRecords = totalRecords;\n this.recordsImported = recordsImported;\n this.recordsFailed = recordsFailed;\n this.notes = notes;\n this.isFailedExported = isFailedExported;\n this.createdBy = createdBy;\n }\n}\nexport interface IAddEmpImportLogResponseDto {\n employeeImportId: number;\n}\nexport class AddEmpImportLogResponseDto implements IAddEmpImportLogResponseDto {\n employeeImportId: number;\n}\n\nexport interface IAddFailedImportDto {\n failedImportData: AddFailedEmpImportList[];\n}\nexport class AddFailedImportDto implements IAddFailedImportDto {\n failedImportData: AddFailedEmpImportList[];\n constructor(failedImportData: AddFailedEmpImportList[]) {\n this.failedImportData = failedImportData;\n }\n}\n\nexport interface IAddFailedEmpImportList {\n employeeImportId: number;\n employeeCode1: string;\n employeeCode2: string;\n employeeCode3: string;\n employeeCode4: string;\n firstName: string;\n lastName: string;\n email: string;\n employeeRole: string;\n approverEmail: string;\n error: string;\n}\nexport class AddFailedEmpImportList implements IAddFailedEmpImportList {\n employeeImportId: number;\n employeeCode1: string;\n employeeCode2: string;\n employeeCode3: string;\n employeeCode4: string;\n firstName: string;\n lastName: string;\n email: string;\n employeeRole: string;\n approverEmail: string;\n error: string;\n constructor(employeeImportId: number,\n employeeCode1: string,\n employeeCode2: string,\n employeeCode3: string,\n employeeCode4: string,\n firstName: string,\n lastName: string,\n email: string,\n employeeRole: string,\n approverEmail: string,\n error: string,\n ) {\n this.employeeImportId = employeeImportId;\n this.employeeCode1 = employeeCode1;\n this.employeeCode2 = employeeCode2;\n this.employeeCode3 = employeeCode3;\n this.employeeCode4 = employeeCode4;\n this.firstName = firstName;\n this.lastName = lastName;\n this.email = email;\n this.employeeRole = employeeRole;\n this.approverEmail = approverEmail;\n this.error = error;\n }\n}\n\nexport interface IEmpLogRequestDto {\n OrgId: number;\n}\nexport class EmpLogRequestDto implements IEmpLogRequestDto {\n OrgId: number;\n constructor(OrgId: number) {\n this.OrgId = OrgId;\n }\n}\n\nexport interface IEmpLogResponseDto {\n logDetails: IEmpLogList[];\n}\nexport class EmpLogResponseDto implements IEmpLogResponseDto {\n logDetails: IEmpLogList[];\n}\n\nexport interface IEmpLogList {\n employeeImportId: number;\n totalRecords: number;\n recordsImported: number;\n recordsFailed: number;\n notes: string;\n isFailedExported: boolean;\n}\n\nexport class EmpLogList implements IEmpLogList {\n employeeImportId: number;\n totalRecords: number;\n recordsImported: number;\n recordsFailed: number;\n notes: string;\n isFailedExported: boolean;\n}\n\nexport interface IAddUpdateEmployeeRequestDto {\n employeeID: number;\n employeeCode: string;\n employeeCode2: string;\n employeeCode3: string;\n employeeCode4: string;\n firstName: string;\n lastName: string;\n email: string;\n status: number;\n employeeRole: number;\n vehicleTypeId: number;\n vehicleStatus: number;\n vehicleSubTypeId: number;\n rateType: number;\n orgVehicleTypeMapId: number;\n derivedName: string;\n approverId: number;\n approverEmail: string;\n costCentreId: number;\n costCentreRuleId:number\n userType:number;\n assignedExpCatIds:string;\n assignedFormIds:string;\n}\n\n\nexport class CSVRecord {\n\n public EmployeeID1: any;\n public EmployeeID2: any;\n public EmployeeID3: any;\n public EmployeeID4: any;\n public FirstName: any;\n public LastName: any;\n public Email: any;\n public Role: any;\n public ApproverName: any;\n public ApproverEmail: any;\n public CostCentreName: string;\n public CostCentreCode: string;\n public GradeName: string;\n public Error: string;\n public Warning: string;\n constructor() {\n\n }\n}\n\nexport class AddUpdateEmployeeRequestDto implements IAddUpdateEmployeeRequestDto {\n constructor(\n public employeeID: number,\n public employeeCode: string,\n public employeeCode2: string,\n public employeeCode3: string,\n public employeeCode4: string,\n public firstName: string,\n public lastName: string,\n public email: string,\n public status: number,\n public isPasswordReset: boolean,\n public employeeRole: number,\n public vehicleTypeId: number,\n public vehicleStatus: number,\n public vehicleSubTypeId: number,\n public rateType: number,\n public orgVehicleTypeMapId: number,\n public derivedName: string,\n public approverId: number,\n public approverEmail: string,\n public costCentreId: number,\n public costCentreName: string,\n public costCentreCode: string,\n public costCentreRuleId: number,\n public userType: number,\n public assignedExpCatIds: string,\n public assignedFormIds: string\n\n ) {\n }\n}\n\nexport interface IAddUpdateBulkEmployeeRequestDto {\n fmEmail: string;\n fmName: string;\n fmUserId: number;\n employees: IAddUpdateEmployeeRequestDto[]\n isImport: boolean;\n}\n\nexport class AddUpdateBulkEmployeeRequestDto implements IAddUpdateBulkEmployeeRequestDto {\n constructor(public fmEmail: string, public fmName: string, public fmUserId: number,\n public employees: AddUpdateEmployeeRequestDto[], public isImport: boolean) {\n\n }\n}\n\nexport interface IAppListRequestDto {\n orgId: number;\n}\n\nexport class AppListRequestDto implements IAppListRequestDto {\n orgId: number;\n constructor(\n orgId: number\n ) {\n this.orgId = orgId;\n }\n}\n\nexport interface IAppList {\n employeeId: number;\n displayName: string;\n email: string;\n}\n\n\nexport class AppList implements IAppList {\n employeeId: number;\n displayName: string;\n email: string;\n}\n\nexport interface IAppListResponseDto {\n approvers: IAppList[];\n}\n\n\nexport class AppListResponseDto implements IAppListResponseDto {\n approvers: IAppList[];\n}\n\nexport interface IEmpListRequestDto {\n orgId: number;\n status: number;\n searchText: string;\n sortOrder: number;\n sortColumn: string;\n pageNumber: number;\n pageSize: number\n}\n\nexport class EmpListRequestDto implements IEmpListRequestDto {\n constructor(\n public orgId: number,\n public status: number,\n public searchText: string,\n public sortOrder: number,\n public sortColumn: string,\n public pageNumber: number,\n public pageSize: number\n ) {\n }\n}\n\nexport interface IEmpList {\n employeeID: number;\n employeeCode: string;\n employeeCode2: string;\n employeeCode3: string;\n employeeCode4: string;\n displayName: string;\n firstName: string;\n lastName: string;\n email: string;\n status: string;\n employeeRole: string;\n vehicleTypeId: string;\n derivedName: string;\n vehicleStatus: number\n orgVehicleTypeMapId: number;\n rateType: number;\n vehicleSubTypeId: number;\n approverId: number;\n approverName: string;\n costCentreId: number;\n costCentreName: string;\n emailDisplayName: string;\n selected: boolean;\n updatedOn: any;\n isRowHighlighted: boolean;\n disableDeactivate: boolean;\n disableOthers: boolean;\n hideDeactivate: boolean;\n disableResendInvite: boolean;\n hideResendInvite: boolean;\n disableSendInvite: boolean;\n hideSendInvite: boolean;\n disableActivate: boolean;\n hideActivate: boolean;\n disableEdit: boolean;\n hideEdit: boolean;\n isCheckboxDisabled: boolean;\n createdOn: any;\n perPersonBillingType: boolean;\n hybridBillingType: boolean;\n costCentreCode1: string;\n gradeId: number;\n gradeName: string;\n linkedToXero: number;\n userType:number;\n kycStatus:number;\n assignedExpCatIds:string;\n assignedFormIds:string;\n companyName: string;\n isConvertedToPowerUser: boolean;\n costCentreRuleId:number;\n isDeleted:boolean;\n userUpdatedOn: number;\n}\n\n\nexport class EmpList implements IEmpList {\n employeeID: number;\n employeeCode: string;\n employeeCode2: string;\n employeeCode3: string;\n employeeCode4: string;\n displayName: string;\n firstName: string;\n lastName: string;\n email: string;\n status: string;\n employeeRole: string;\n vehicleTypeId: string;\n derivedName: string;\n vehicleStatus: number\n orgVehicleTypeMapId: number;\n rateType: number;\n vehicleSubTypeId: number;\n approverId: number;\n approverName: string;\n costCentreId: number;\n costCentreName: string;\n emailDisplayName: string;\n selected: boolean;\n updatedOn: any;\n isRowHighlighted: boolean;\n disableDeactivate: boolean;\n disableOthers: boolean;\n hideDeactivate: boolean;\n disableResendInvite: boolean;\n hideResendInvite: boolean;\n disableSendInvite: boolean;\n hideSendInvite: boolean;\n disableActivate: boolean;\n hideActivate: boolean;\n disableEdit: boolean;\n hideEdit: boolean;\n isCheckboxDisabled: boolean;\n createdOn: any;\n perPersonBillingType: boolean;\n hybridBillingType: boolean;\n costCentreCode1: string;\n gradeId: number;\n gradeName: string;\n linkedToXero: number;\n userType:number;\n kycStatus:number;\n assignedExpCatIds:string;\n assignedFormIds:string;\n companyName: string;\n isConvertedToPowerUser: boolean;\n costCentreRuleId: number;\n isDeleted:boolean;\n userUpdatedOn: number;\n}\n\nexport interface IEmpListResponseDto {\n counter: IEmployeeCounter;\n employees: IEmpList[];\n}\n\nexport class EmpListResponseDto implements IEmpListResponseDto {\n counter: IEmployeeCounter;\n employees: IEmpList[];\n}\n\nexport interface ILoginIDHistoryList {\n UserID: number;\n PrimaryEmail: string;\n UpdatedEmail: string;\n Notes: string;\n}\n\n\n\nexport class LoginIDHistoryList implements ILoginIDHistoryList {\n UserID: number;\n PrimaryEmail: string;\n UpdatedEmail: string;\n Notes: string;\n constructor(UserID: number, PrimaryEmail: string, UpdatedEmail: string, Notes: string) {\n this.UserID = UserID;\n this.PrimaryEmail = PrimaryEmail;\n this.UpdatedEmail = UpdatedEmail;\n this.Notes = Notes;\n }\n}\n\nexport interface IOwnershipTypeList {\n Wheeler4Id: number;\n Wheeler2Id: number;\n}\n\nexport interface IGetAllEmployeesRequest {\n OrgId: number;\n Type:number;\n IsFromManageEmployee:boolean;\n}\nexport class GetAllEmployeesRequest implements IGetAllEmployeesRequest {\n OrgId: number;\n Type:number;\n IsFromManageEmployee:boolean = false;\n constructor(OrgId: number) {\n this.OrgId = OrgId; \n }\n}\n\nexport interface IGetAllTypeEmployeesRequest {\n OrgId: number;\n Type:number[];\n}\nexport class GetAllTypeEmployeesRequest implements IGetAllTypeEmployeesRequest {\n OrgId: number;\n Type:number[];\n constructor(OrgId: number) {\n this.OrgId = OrgId; \n }\n}\n\nexport interface IGetExistingEmployeeCountRequest {\n email: string;\n}\nexport class GetExistingEmployeeCountRequest implements IGetExistingEmployeeCountRequest {\n email: string;\n constructor(email: string) {\n this.email = email;\n }\n}\n\nexport interface IGetExistingEmployeeCountResponse {\n count: number;\n}\nexport class GetExistingEmployeeCountResponse implements IGetExistingEmployeeCountResponse {\n count: number;\n}\n\nexport interface IGetAllEmployeesResponse {\n employees: IEmpList[];\n}\nexport class GetAllEmployeesResponse implements IGetAllEmployeesResponse {\n employees: IEmpList[];\n}\n\n\nexport class OwnershipTypeList implements IOwnershipTypeList {\n Wheeler4Id: number;\n Wheeler2Id: number;\n constructor(Wheeler4Id: number, Wheeler2Id: number) {\n this.Wheeler4Id = Wheeler4Id;\n this.Wheeler2Id = Wheeler2Id;\n }\n}\nexport interface IEmployeeCounter {\n EmployeeCount: number;\n ActiveEmployeeCount: number;\n InactiveEmployeeCount: number;\n NIEmployeeCount: number;\n PendingEmployeeCount: number;\n}\n\nexport class EmployeeCounter implements IEmployeeCounter {\n EmployeeCount: number;\n ActiveEmployeeCount: number;\n InactiveEmployeeCount: number;\n NIEmployeeCount: number;\n PendingEmployeeCount: number;\n constructor(EmployeeCount: number, ActiveEmployeeCount: number, InactiveEmployeeCount: number,\n NIEmployeeCount: number, PendingEmployeeCount: number) {\n this.EmployeeCount = EmployeeCount;\n this.ActiveEmployeeCount = ActiveEmployeeCount;\n this.InactiveEmployeeCount = InactiveEmployeeCount;\n this.NIEmployeeCount = NIEmployeeCount;\n this.PendingEmployeeCount = PendingEmployeeCount;\n }\n}\n\nexport interface IUpdateVehicleTypeRequest {\n BulkUpdateEmployeeVehicle: IBulkUpdateEmployeeVehicle[];\n}\n\nexport class UpdateVehicleTypeRequest implements IUpdateVehicleTypeRequest {\n BulkUpdateEmployeeVehicle: IBulkUpdateEmployeeVehicle[];\n}\n\n\nexport interface IBulkUpdateEmployeeVehicle {\n EmployeeID: number;\n OrgID: number;\n RateType: number;\n VehicleTypeId: number;\n vehicleStatus: number;\n vehicleSubTypeId: number;\n rateType: number;\n orgVehicleTypeMapId: number;\n derivedName: string;\n userId: number;\n openingBalance: number;\n averageMiles: number;\n isEmailTrigger: boolean;\n}\n\nexport class BulkUpdateEmployeeVehicle implements IBulkUpdateEmployeeVehicle {\n EmployeeID: number;\n OrgID: number;\n RateType: number;\n VehicleTypeId: number;\n vehicleStatus: number;\n vehicleSubTypeId: number;\n rateType: number;\n orgVehicleTypeMapId: number;\n derivedName: string;\n userId: number;\n openingBalance: number = 0;\n averageMiles: number = 0;\n isEmailTrigger: boolean = false;\n constructor(EmployeeID: number, VehicleTypeId: number, OrgID: number, RateType: number,\n vehicleStatus: number, vehicleSubTypeId: number, orgVehicleTypeMapId: number, derivedName: string, userId: number) {\n this.EmployeeID = EmployeeID;\n this.VehicleTypeId = VehicleTypeId;\n this.OrgID = OrgID;\n this.RateType = RateType;\n this.vehicleStatus = vehicleStatus;\n this.vehicleSubTypeId = vehicleSubTypeId;\n this.orgVehicleTypeMapId = orgVehicleTypeMapId;\n this.derivedName = derivedName;\n this.userId = userId;\n }\n}\n\nexport interface IBulkUpdateEmployeeRole {\n EmployeeID: number;\n EmployeeRole: number;\n}\n\nexport class BulkUpdateEmployeeRole implements IBulkUpdateEmployeeRole {\n EmployeeID: number;\n EmployeeRole: number;\n constructor(EmployeeID: number, EmployeeRole: number) {\n this.EmployeeID = EmployeeID;\n this.EmployeeRole = EmployeeRole;\n }\n}\n\nexport interface IBulkUpdateEmployeeStatus {\n EmployeeID: number;\n Status: number;\n}\n\nexport class BulkUpdateEmployeeStatus implements IBulkUpdateEmployeeStatus {\n EmployeeID: number;\n Status: number;\n constructor(EmployeeID: number, Status: number) {\n this.EmployeeID = EmployeeID;\n this.Status = Status;\n }\n}\n\n\nexport interface IOrgVehicleTypeRequest {\n orgId: number;\n employeeId: number;\n rateType: number;\n purchaseFunctionList: number[];\n}\n\nexport class OrgVehicleTypeRequest implements IOrgVehicleTypeRequest {\n orgId: number;\n employeeId: number;\n rateType: number;\n purchaseFunctionList: number[];\n constructor(\n orgId: number\n ) {\n this.orgId = orgId;\n }\n}\n\nexport interface IOrgVehicleTypeResponse {\n orgID: number;\n mileageUOM: number;\n mileageUOMLabel: string;\n rateType: number;\n triangulationRule: number;\n vehicleTypes: IVehicleList[];\n}\nexport class OrgVehicleTypeResponse implements IOrgVehicleTypeResponse {\n orgID: number;\n mileageUOM: number;\n mileageUOMLabel: string;\n rateType: number;\n triangulationRule: number;\n vehicleTypes: IVehicleList[];\n}\n\nexport interface IDropdownOptionModel {\n id: any;\n value: any;\n}\n\nexport class DropdownOptionModel implements IDropdownOptionModel {\n id: any;\n value: any;\n description: any;\n groupByField: any;\n disabled: boolean;\n isLink: boolean;\n constructor(id: any, value: any, description: any, groupByField: any, isLink: boolean) {\n this.id = id;\n this.value = value;\n this.description = description;\n this.groupByField = groupByField;\n this.isLink = isLink;\n }\n}\n\nexport class EmployeesFormModel {\n employeeId: number;\n employeeFirstName: string;\n employeeLastName: string;\n employeeEmail: string;\n employeeRole: number;\n employeeCode: string;\n employeeCode2: string;\n employeeCode3: string;\n employeeCode4: string;\n approverId: number;\n costCentreId: number;\n orgVehicleTypeMapId: number;\n vehicleTypeId: number;\n vehicleStatus: number;\n vehicleSubTypeId: number;\n rateType: number;\n derivedName: string;\n advancedMileagePurchased: boolean;\n isCompanyFmPopup: boolean;\n employeeStatus: number;\n employeeStatusToggle: boolean;\n loginUserId: number;\n isFmOnly: boolean;\n ismultipleVehiclePurchased: boolean;\n costCentreRuleId:number; \n userType:number;\n assignedExpCatIds:string;\n assignedFormIds:string;\n assignedExpenseCategories:number[];\n assignedForms:number[]; \n}\n\nexport class InviteEmployeesInputModel {\n public title: string;\n public employeeId: number;\n public isEditMode: boolean;\n public isCompanyFmPopup: boolean;\n public isFmOnly: boolean;\n public isNotOverLayDiv: boolean;\n}\n\nexport class InviteEmployeesOutputModel {\n public filterStatus: number;\n}\n\nexport class EmployeeBulkActionInputModel {\n public checkedEmployeesList: IEmpList[];\n public filterStatus: number;\n}\n\nexport class AssignNewApproverInputModel {\n public approveeList: IEmpList[];\n public approverList: IEmpList[];\n public oldApprover: IEmpList;\n public isProjectManager: boolean;\n}\n\nexport class AssignApproverFormModel {\n public newApproverId: number;\n}\n\nexport class AssignNewApproverOutputModel {\n public isProjectManagerUpdated: boolean;\n}\n\nexport class EmployeeBulkActionOutputModel {\n public filterStatus: number;\n}\n\n\nexport class AssignFmInputModel {\n public title: string;\n}\n\nexport class AssignFmOutputModel {\n\n}\n\nexport class AssignFmFormModel {\n employeeId: number;\n}\n\n\n//Bulk Save\n\nexport interface IImportEmployeeRequest {\n orgId: number;\n createdBy: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n employees: ImportEmployeeModel[];\n}\n\nexport class ImportEmployeeRequest implements IImportEmployeeRequest {\n orgId: number;\n createdBy: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n employees: ImportEmployeeModel[];\n constructor(orgId: number, createdBy: number, fmName: string, fmEmail: string, fmUserId: number, employees: ImportEmployeeModel[]) {\n this.orgId = orgId;\n this.createdBy = createdBy;\n this.fmName = fmName;\n this.fmEmail = fmEmail;\n this.fmUserId = fmUserId;\n this.employees = employees;\n }\n}\n\n// Response\nexport interface IImportEmployeeResponse {\n NewGradeList: string[];\n NewCostCentreList: string[];\n ErrorEmployeeList: ImportEmployeeModel[];\n SuccessRecordsCounts: number;\n ChangedClaimantsApproverCounts: number;\n ChangedClaimantsGradeCounts: number;\n ChangedClaimantsCostCentreCounts: number;\n ChangedClaimantsLastNameCounts: number;\n ChangedClaimantsFirstNameCounts: number;\n}\n\nexport class ImportEmployeeResponse implements IImportEmployeeResponse {\n NewGradeList: string[];\n NewCostCentreList: string[];\n ErrorEmployeeList: ImportEmployeeModel[];\n SuccessRecordsCounts: number;\n ChangedClaimantsApproverCounts: number;\n ChangedClaimantsGradeCounts: number;\n ChangedClaimantsCostCentreCounts: number;\n ChangedClaimantsLastNameCounts: number;\n ChangedClaimantsFirstNameCounts: number;\n}\n\nexport interface IImportEmployeeModel {\n uniqueRowId: number;\n employeeId: number;\n employeeCode: string;\n employeeCode2: string;\n employeeCode3: string;\n employeeCode4: string;\n firstName: string;\n lastName: string;\n email: string;\n status: number;\n employeeRole: number;\n approverId: number;\n approverName: string;\n approverEmail: string;\n gradeName: string;\n gradeDescription: string;\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n error: any;\n warning: any;\n failedErrors: any;\n failedWarnings: any;\n}\n\nexport class ImportEmployeeModel implements IImportEmployeeModel {\n uniqueRowId: number = 0;\n employeeId: number = 0;\n employeeCode: string = \"\";\n employeeCode2: string = \"\";\n employeeCode3: string = \"\";\n employeeCode4: string = \"\";\n firstName: string = \"\";\n lastName: string = \"\";\n email: string = \"\";\n status: number = EmployeeStatusEnum.NotInvited;\n employeeRole: number = UserTypeEnum.Claimant;\n approverId: number = 0;\n approverName: string = \"\";\n approverEmail: string = \"\";\n gradeName: string = \"\";\n gradeDescription: string = \"-\";\n costCentreName: string = \"\";\n costCentreCode1: string = \"\";\n costCentreCode2: string = \"\";\n error: any;\n warning: any;\n failedErrors: any;\n failedWarnings: any;\n}\n","import {\n IFunctionCategoryDetail,\n FunctionCategoryDetail,\n} from \"./function-category-detail\";\n\nexport interface IOrganisationSettingResponse {\n functionCategoryDetail: IFunctionCategoryDetail[];\n}\nexport class OrganisationSettingResponse\n implements IOrganisationSettingResponse {\n functionCategoryDetail: FunctionCategoryDetail[];\n}\nexport interface IListCartDetailsResponse {\n cartId: number;\n functionPackageId: number;\n functionPackageName: string;\n\n userId: number;\n organisationId: number;\n\n billingStatus: boolean;\n}\nexport interface IListCartDetails {\n listCartDetails: IListCartDetailsResponse[];\n}\n\nexport interface ICartDetailsResponse {\n CartId: number;\n FunctionPackageId: number;\n FunctionPackageName: string;\n\n UserId: number;\n OrganisationId: number;\n\n BillingStatus: boolean;\n}\nexport class CartDetailsResponse implements ICartDetailsResponse {\n CartId: number;\n FunctionPackageId: number;\n FunctionPackageName: string;\n UserId: number;\n OrganisationId: number;\n BillingStatus: boolean;\n}\nexport interface ICartDetailsRequest {\n FunctionPackageId: number;\n FunctionPackageName: string;\n\n UserId: number;\n OrganisationId: number;\n\n BillingStatus: boolean;\n SubscriptionType: number;\n}\nexport class CartDetailsRequest implements ICartDetailsRequest {\n FunctionPackageId: number;\n FunctionPackageName: string;\n UserId: number;\n OrganisationId: number;\n BillingStatus: boolean;\n SubscriptionType: number;\n constructor(\n UserId: number,\n OrganisationId: number,\n BillingStatus: boolean,\n FunctionPackageId: number,\n FunctionPackageName: string\n ) {\n this.UserId = UserId;\n this.OrganisationId = OrganisationId;\n this.BillingStatus = Boolean(BillingStatus);\n this.FunctionPackageId = Number(FunctionPackageId);\n this.FunctionPackageName = FunctionPackageName;\n }\n}\nexport interface IGetCartDetailsRequest {\n UserId: number;\n OrganisationId: number;\n FunctionPackageId: number;\n BillingStatus: boolean;\n}\nexport class GetCartDetailsRequest implements IGetCartDetailsRequest {\n UserId: number;\n OrganisationId: number;\n BillingStatus: boolean;\n FunctionPackageId: number;\n constructor(UserId: number, OrganisationId: number) {\n this.UserId = UserId;\n this.OrganisationId = OrganisationId;\n }\n}\nexport interface IFunctionDefaultCurrency {\n FunctionId: number;\n CurrencyId: number;\n}\nexport class FunctionDefaultCurrency implements IFunctionDefaultCurrency {\n FunctionId: number;\n CurrencyId: number;\n\n constructor(FunctionId: number, CurrencyId: number) {\n this.FunctionId = FunctionId;\n this.CurrencyId = CurrencyId;\n }\n}\nexport interface IRemoveFunction {\n FunctionId: number;\n UserId: number;\n OrgId: number;\n}\nexport class RemoveFunction implements IRemoveFunction {\n FunctionId: number;\n UserId: number;\n OrgId: number;\n\n constructor(FunctionId: number, UserId: number, OrgId: number) {\n this.FunctionId = FunctionId;\n this.UserId = UserId;\n this.OrgId = OrgId;\n }\n}\nexport interface IOrgDependentFunctionDetails {\n orgDependentFunctionList: IOrgDependentFunctionResponse[];\n}\nexport interface IOrgDependentFunctionResponse {\n orgDependentFunctionID: number;\n functionID: number;\n dependentFunctionID: number;\n createdBy: number;\n isSubscribed: boolean;\n}\nexport interface IGetOrgDependentFunctionListRequest {\n FunctionId: string;\n OrganisationId: number;\n}\nexport class GetOrgDependentFunctionListRequest\n implements IGetOrgDependentFunctionListRequest {\n FunctionId: string;\n OrganisationId: number;\n constructor(functionId: string, OrganisationId: number) {\n this.FunctionId = functionId;\n this.OrganisationId = OrganisationId;\n }\n}\n\nexport interface IPurchaseFunctionListDetails {\n orgPaidFunctionList: IPurchaseFunctionListResponse[];\n}\nexport interface IPurchaseFunctionListResponse {\n paidFunctions: IPurchaseFunctioninnerList[];\n}\nexport interface IPurchaseFunctioninnerList {\n paidFunctions: IPurchaseFunctioninnerList[];\n}\nexport interface IPurchaseFunctioninnerList {\n functionId: number;\n}\nexport interface IPurchaseFunctionListRequest {\n UserId: number;\n OrgId: number;\n}\nexport class PurchaseFunctionListRequest\n implements IPurchaseFunctionListRequest {\n UserId: number;\n OrgId: number;\n constructor(UserId: number, OrgId: number) {\n this.UserId = UserId;\n this.OrgId = OrgId;\n }\n}\nexport class DropdownItems {\n id: number;\n name: string;\n}\n\nexport interface IFunctionPackageCurrencyMappingResponse {\n functionPackageCurrencyMappingId: number;\n countryId: number;\n currencyId: number;\n commonCurrencyId: number;\n displayCurrencyId: number;\n IsActive: boolean;\n createdBy: number;\n createdOn: Date;\n updatedBy: number;\n updatedOn: Date;\n}\n\nexport class FunctionPackageCurrencyMappingResponse\n implements IFunctionPackageCurrencyMappingResponse {\n functionPackageCurrencyMappingId: number;\n countryId: number;\n currencyId: number;\n commonCurrencyId: number;\n displayCurrencyId: number;\n IsActive: boolean;\n createdBy: number;\n createdOn: Date;\n updatedBy: number;\n updatedOn: Date;\n}\nexport class RequestGetPreferences {\n orgId: number;\n}\n","\nexport interface IRequestEscalationSettings {\n orgId: number;\n reminderDuration: number;\n escalationReminderCount: number;\n escalationCopyToReminderCount: number;\n fmLoginId: string;\n fmName: string;\n}\n\nexport class RequestEscalationSettings implements IRequestEscalationSettings {\n orgId: number;\n reminderDuration: number;\n escalationReminderCount: number;\n escalationCopyToReminderCount: number;\n fmLoginId: string;\n fmName: string;\n}\n\nexport interface IResponseEscalationSettings {\n responseSaveString: string;\n}\n\nexport class ResponseEscalationSettings implements IResponseEscalationSettings {\n responseSaveString: string;\n}\n\nexport interface IRequestOtherPolicyData {\n orgId: number;\n policyType: number;\n gradeId: number;\n policyStatus: number;\n pageNo: number;\n noOfRecords: number;\n sortOrder: number;\n sortColumn: string;\n skipRecords: number;\n searchText: string;\n}\n\nexport class RequestOtherPolicyData implements IRequestOtherPolicyData {\n orgId: number;\n policyType: number;\n gradeId: number;\n policyStatus: number;\n pageNo: number;\n noOfRecords: number;\n sortOrder: number;\n sortColumn: string;\n skipRecords: number;\n searchText: string;\n}\n\nexport interface IRequestDuplicatePolicyData {\n orgId: number;\n duplicatePolicyStatus: number;\n}\n\nexport class RequestDuplicatePolicyData implements IRequestDuplicatePolicyData {\n orgId: number;\n duplicatePolicyStatus: number;\n}\n\n\nexport interface IDuplicatePolicyData {\n duplicatePolicyId: number;\n orgId: number;\n orgExpenseCategoryId: number;\n isEnabled: boolean;\n}\nexport class DuplicatePolicyData implements IDuplicatePolicyData {\n duplicatePolicyId: number;\n orgId: number;\n orgExpenseCategoryId: number;\n isEnabled: boolean;\n}\n\n\n\n\nexport interface IOtherPolicyData {\n orgId: number;\n gradeId: number;\n gradeName: string;\n employeeCount: number;\n amount: number;\n policyType: number;\n catCount: number;\n catWithPolicy: number;\n catWithoutPolicy: number;\n otherPolicyExpCatDataCurrent: OtherPolicyExpCatData[];\n otherPolicyExpCatDataFuture: OtherPolicyExpCatData[];\n otherPolicyExpCatDataExpired: OtherPolicyExpCatData[];\n selected: boolean;\n userEmail: string;\n userId: number;\n userName: string;\n catCountFormattedText: string;\n}\nexport class OtherPolicyData implements IOtherPolicyData {\n orgId: number;\n gradeId: number;\n gradeName: string;\n employeeCount: number;\n amount: number;\n policyType: number;\n catCount: number;\n catWithPolicy: number;\n catWithoutPolicy: number;\n otherPolicyExpCatDataCurrent: OtherPolicyExpCatData[];\n otherPolicyExpCatDataFuture: OtherPolicyExpCatData[];\n otherPolicyExpCatDataExpired: OtherPolicyExpCatData[];\n selected: boolean;\n userEmail: string;\n userId: number;\n userName: string;\n catCountFormattedText: string;\n}\n\nexport interface IOtherPolicyExpCatData {\n policyId: number;\n amount: number;\n expenseCategoryId: number;\n expenseCategoryName: string;\n effectiveFrom: string;\n effectiveTo: string;\n hasPolicy: boolean;\n isFuturePolicy: boolean;\n isEdit: boolean;\n status: number;\n errAmount: boolean;\n futurePolicyCount: number;\n currentPolicyCount: number;\n expiredPolicyCount:number;\n addFutureDateClicked: boolean;\n stoppedPolicyCount: number;\n showEditDelete: boolean;\n notes:string;\n isAmountChanged:boolean;\n}\n\nexport class OtherPolicyExpCatData implements IOtherPolicyExpCatData {\n policyId: number;\n amount: number;\n expenseCategoryId: number;\n expenseCategoryName: string;\n effectiveFrom: string;\n effectiveTo: string;\n hasPolicy: boolean;\n isFuturePolicy: boolean;\n isEdit: boolean;\n status: number;\n errAmount: boolean;\n futurePolicyCount: number;\n currentPolicyCount: number;\n expiredPolicyCount:number;\n addFutureDateClicked: boolean;\n stoppedPolicyCount: number;\n showEditDelete: boolean;\n alertPercentage: number;\n errAlertPercentage: boolean;\n isEditClicked: boolean;\n notes : string;\n isAmountChanged:boolean;\n constructor(policyId: number,\n amount: number,\n expenseCategoryId: number,\n expenseCategoryName: string,\n effectiveFrom: string,\n effectiveTo: string,\n hasPolicy: boolean,\n isFuturePolicy: boolean,\n isEdit: boolean,\n status: number,\n errAmount: boolean,\n futurePolicyCount: number,\n currentPolicyCount: number,\n addFutureDateClicked: boolean,\n stoppedPolicyCount: number,\n showEditDelete: boolean,\n alertPercentage: number,\n errAlertPercentage: boolean,\n isEditClicked: boolean,\n notes:string,\n isAmountChanged:boolean) {\n this.policyId = policyId;\n this.amount = amount;\n this.expenseCategoryId = expenseCategoryId;\n this.expenseCategoryName = expenseCategoryName;\n this.effectiveFrom = effectiveFrom;\n this.effectiveTo = effectiveTo;\n this.hasPolicy = hasPolicy;\n this.isFuturePolicy = isFuturePolicy;\n this.isEdit = isEdit;\n this.status = status;\n this.errAmount = errAmount;\n this.futurePolicyCount = futurePolicyCount;\n this.currentPolicyCount = currentPolicyCount;\n this.addFutureDateClicked = addFutureDateClicked;\n this.stoppedPolicyCount = stoppedPolicyCount;\n this.showEditDelete = showEditDelete;\n this.alertPercentage = alertPercentage;\n this.errAlertPercentage = errAlertPercentage;\n this.isEditClicked = isEditClicked;\n this.notes = notes;\n this.isAmountChanged = isAmountChanged;\n }\n}\n\nexport interface IResponseOtherPolicyData {\n totalNoOfGrades: number;\n gradeWithPolicy: number;\n gradeWithoutPolicy: number;\n otherPolicyData: IOtherPolicyData[];\n}\n\nexport class ResponseOtherPolicyData implements IResponseOtherPolicyData {\n totalNoOfGrades: number;\n gradeWithPolicy: number;\n gradeWithoutPolicy: number;\n otherPolicyData: IOtherPolicyData[];\n}\n\nexport interface IResponseDuplicatePolicyData {\n duplicatePolicyData: IDuplicatePolicyData[];\n totalPolicyData: number;\n categoryOffCount: number;\n categoryOnCount: number;\n}\n\nexport class ResponseDuplicatePolicyData implements IResponseDuplicatePolicyData {\n duplicatePolicyData: IDuplicatePolicyData[];\n totalPolicyData: number;\n categoryOffCount: number;\n categoryOnCount: number;\n}\n\nexport interface IRequestSaveOtherPolicyData {\n otherPolicyData: IOtherPolicyData[];\n userId: number;\n isSkipApproverRuleSet: boolean;\n}\n\nexport class RequestSaveOtherPolicyData implements IRequestSaveOtherPolicyData {\n otherPolicyData: IOtherPolicyData[];\n userId: number;\n isSkipApproverRuleSet: boolean;\n}\n\nexport interface IRequestSaveDuplicatePolicyData {\n duplicatePolicyData: IDuplicatePolicyData[];\n userId: number;\n}\n\nexport class RequestSaveDuplicatePolicyData implements IRequestSaveDuplicatePolicyData {\n duplicatePolicyData: IDuplicatePolicyData[];\n userId: number;\n}\n\nexport interface IResponseSaveOtherPolicyData {\n responseSaveString: string;\n}\n\nexport class ResponseSaveOtherPolicyData implements IResponseSaveOtherPolicyData {\n responseSaveString: string;\n}\n\nexport interface IResponseSaveDuplicatePolicyData {\n responseSaveString: string;\n}\n\nexport class ResponseSaveDuplicatePolicyData implements IResponseSaveDuplicatePolicyData {\n responseSaveString: string;\n}\n\nexport interface IReqBusinessPurpose {\n orgId: number;\n isBPAvailale: boolean;\n bpCaption: string;\n}\n\nexport class ReqBusinessPurpose implements IReqBusinessPurpose {\n orgId: number;\n isBPAvailale: boolean;\n bpCaption: string;\n}\n\nexport interface IRespBusinessPurpose {\n responseString: string;\n}\n\nexport class RespBusinessPurpose implements IRespBusinessPurpose {\n responseString: string;\n}\nexport interface ISaveAdditionalFieldsResponse {\n responseString: string;\n}\n\nexport class SaveAdditionalFieldsResponse implements ISaveAdditionalFieldsResponse {\n responseString: string;\n}\n\nexport interface IResponseGetAdditionalFieldValues {\n additionalFields: AdditionalFields[];\n}\n\nexport class ResponseGetAdditionalFieldValues implements IResponseGetAdditionalFieldValues {\n additionalFields: AdditionalFields[];\n}\n\nexport interface IAdditionalFields {\n additionalFieldId: number;\n isSwitchedOn: boolean;\n fieldName: string;\n isDataAvailable: boolean;\n fieldType: number;\n instruction: string;\n data: Data[];\n}\n\nexport class AdditionalFields implements IAdditionalFields {\n additionalFieldId: number;\n isSwitchedOn: boolean;\n fieldName: string;\n isDataAvailable: boolean;\n fieldType: number;\n instruction: string;\n data: Data[];\n}\n\nexport interface IData {\n fieldValueId: number;\n fieldValue: string;\n code: string;\n name: string;\n isRowHighlighted: boolean;\n}\n\nexport class Data implements IData {\n fieldValueId: number;\n fieldValue: string;\n code: string;\n name: string;\n isRowHighlighted: boolean;\n constructor(fieldValueId: number, fieldValue: string, code: string, name: string, isRowHighlighted: boolean) {\n this.fieldValueId = fieldValueId;\n this.fieldValue = fieldValue;\n this.code = code;\n this.name = name;\n this.isRowHighlighted = isRowHighlighted;\n }\n}\n\nexport interface ISaveAdditionalFieldsData {\n additionalFieldDataId: number;\n additionalFieldId: number;\n status: number;\n code: string;\n name: string;\n}\n\nexport class SaveAdditionalFieldsData implements ISaveAdditionalFieldsData {\n additionalFieldDataId: number;\n additionalFieldId: number;\n status: number;\n code: string;\n name: string;\n fieldValue: string;\n constructor(\n additionalFieldDataId: number, additionalFieldId: number, status: number, code: string, name: string, fieldValue: string) {\n this.additionalFieldDataId = additionalFieldDataId;\n this.additionalFieldId = additionalFieldId;\n this.status = status;\n this.code = code;\n this.name = name;\n this.fieldValue = fieldValue;\n }\n}\n\nexport interface ISaveAdditionalFieldsConfig {\n fieldNumber:number;\n additionalFieldId: number;\n isSwitchedOn: boolean;\n fieldName: string;\n isDataAvailable: boolean;\n fieldType: number;\n instruction: string;\n data: SaveAdditionalFieldsData[];\n}\n\nexport class SaveAdditionalFieldsConfig implements ISaveAdditionalFieldsConfig {\n fieldNumber: number;\n additionalFieldId: number;\n isSwitchedOn: boolean;\n fieldName: string;\n isDataAvailable: boolean;\n fieldType: number;\n instruction: string;\n data: SaveAdditionalFieldsData[];\n constructor(additionalFieldId: number, isSwitchedOn: boolean, fieldName: string, isDataAvailable: boolean, fieldType: number, instruction: string\n , data: SaveAdditionalFieldsData[]) {\n this.additionalFieldId = additionalFieldId;\n this.isSwitchedOn = isSwitchedOn;\n this.fieldName = fieldName;\n this.isDataAvailable = isDataAvailable;\n this.fieldType = fieldType;\n this.instruction = instruction;\n this.data = data;\n }\n}\n\nexport interface ISaveAdditionalFieldsRequest {\n AdditionalFields: SaveAdditionalFieldsConfig[];\n OrgID: number;\n UserID: number;\n}\n\nexport class SaveAdditionalFieldsRequest implements ISaveAdditionalFieldsRequest {\n AdditionalFields: SaveAdditionalFieldsConfig[];\n OrgID: number;\n UserID: number;\n constructor(AdditionalFields: SaveAdditionalFieldsConfig[], OrgID: number, UserID: number) {\n this.AdditionalFields = AdditionalFields;\n this.OrgID = OrgID;\n this.UserID = UserID;\n }\n}\n\nexport interface IDeleteFieldByIdRequest {\n AdditionalFieldDataId: number;\n}\n\nexport class DeleteFieldByIdRequest implements IDeleteFieldByIdRequest {\n AdditionalFieldDataId: number;\n constructor(AdditionalFieldDataId: number) {\n this.AdditionalFieldDataId = AdditionalFieldDataId;\n }\n}\n\n\nexport interface IDeleteAdditionalFieldRequest {\n AdditionalFieldId: number;\n AdditionalFieldType: number;\n}\n\nexport class DeleteAdditionalFieldRequest implements IDeleteAdditionalFieldRequest {\n AdditionalFieldId: number;\n AdditionalFieldType: number;\n constructor(AdditionalFieldId: number, AdditionalFieldType: number) {\n this.AdditionalFieldId = AdditionalFieldId;\n this.AdditionalFieldType = AdditionalFieldType;\n }\n}\n\nexport interface IRespGetBusinessPurposeValues {\n isBusinessPurposeAvailable: number;\n BusinessPurposeCaption: string;\n IsBusinessPurposeValuesAvailable: number;\n bpValues: IBPValues[];\n}\n\nexport class RespGetBusinessPurposeValues implements IRespGetBusinessPurposeValues {\n isBusinessPurposeAvailable: number;\n BusinessPurposeCaption: string;\n IsBusinessPurposeValuesAvailable: number;\n bpValues: IBPValues[];\n}\n\nexport interface IBPValues {\n bpId: number;\n bpValue: string;\n updatedOn: number;\n isRowHighlighted: boolean;\n}\n\nexport class BPValues implements IBPValues {\n bpId: number;\n bpValue: string;\n updatedOn: number;\n isRowHighlighted: boolean;\n constructor(\n bpId: number, bpValue: string, isRowHighlighted: boolean) {\n this.bpId = bpId;\n this.bpValue = bpValue;\n this.isRowHighlighted = isRowHighlighted;\n }\n}\n\nexport interface IReqSaveBPValues {\n userId: number;\n orgId: number;\n bPStatus: number;\n bpValues: IBPValues[];\n}\n\nexport class ReqSaveBPValues implements IReqSaveBPValues {\n userId: number;\n orgId: number;\n bPStatus: number;\n bpValues: IBPValues[];\n constructor(userId: number, orgId: number, bPStatus: number, bpValues: IBPValues[]) {\n this.userId = userId;\n this.bpValues = bpValues;\n this.orgId = orgId;\n this.bPStatus = bPStatus;\n }\n}\n\nexport interface IRespSaveBPValues {\n responseSaveString: string;\n}\n\nexport class RespSaveBPValues implements IRespSaveBPValues {\n responseSaveString: string;\n}\n\nexport interface IExpTimeLimitSaveRequest {\n orgId: number;\n expenseTimeLimit: number;\n notes:string;\n}\n\nexport class ExpTimeLimitSaveRequest implements IExpTimeLimitSaveRequest {\n orgId: number;\n expenseTimeLimit: number;\n notes:string;\n constructor(orgId: number, expenseTimeLimit: number, notes:string) {\n this.orgId = orgId;\n this.expenseTimeLimit = expenseTimeLimit;\n this.notes=notes;\n }\n \n}\nexport interface IYearEndSaveRequest {\n\n orgId: number;\n isYearEndRuleEnabled:boolean;\n yearEndDate: any;\n yearEndNoOfDays:number;\n yearEndNotes:string;\n}\n\nexport class YearEndSaveRequest implements IYearEndSaveRequest {\n orgId: number;\n isYearEndRuleEnabled:boolean;\n yearEndDate: any;\n yearEndNoOfDays:number;\n yearEndNotes:string;\n constructor(orgId: number,isYearEndRuleEnabled:boolean ,yearEndDate:any , yearEndNoOfDays: number, yearEndNotes:string) {\n this.orgId = orgId;\n this.isYearEndRuleEnabled=isYearEndRuleEnabled;\n this.yearEndDate=yearEndDate;\n this.yearEndNoOfDays = yearEndNoOfDays;\n this.yearEndNotes=yearEndNotes;\n }\n}\n\nexport class SelectAdditionalFieldDataPopupModel {\n additionalFieldId: number;\n fieldValueId: number;\n fieldValue: string;\n additionalFieldDataList: Data[];\n}\n\nexport interface IRequestPolicyConversion {\n orgId: number;\n policyType: number;\n changedBy: number;\n}\n\nexport class RequestPolicyConversion implements IRequestPolicyConversion {\n orgId: number;\n policyType: number;\n changedBy: number;\n}\n\nexport interface IRequestDeleteOtherPoliciesForConversionToGradeOrClaimantWise {\n orgId: number;\n policyType: number;\n changedBy: number;\n isClaimantWiseCappingEnabled: boolean;\n}\n\nexport class RequestDeleteOtherPoliciesForConversionToGradeOrClaimantWise implements IRequestDeleteOtherPoliciesForConversionToGradeOrClaimantWise {\n orgId: number;\n policyType: number;\n changedBy: number;\n isClaimantWiseCappingEnabled: boolean;\n}\n\nexport interface IClaimantWisePolicyExport {\n ClaimantName: string;\n Category: string;\n Limit: number;\n EffectiveFrom: string;\n AlertPercentage: number;\n}\n\nexport class ClaimantWisePolicyExport implements IClaimantWisePolicyExport {\n ClaimantName: string;\n Category: string;\n Limit: number;\n EffectiveFrom: string;\n AlertPercentage: number;\n}\n\nexport interface IRequestClaimantWisePolicyExport {\n orgId: number;\n policyType: number;\n}\n\nexport class RequestClaimantWisePolicyExport implements IRequestClaimantWisePolicyExport {\n orgId: number;\n policyType: number;\n}\n\nexport interface IResponseClaimantWisePolicyExport {\n claimantName: string;\n expenseCategoryName: string;\n limit: number;\n effectiveFrom: string;\n alertPercentage: number;\n}\n\nexport class ResponseClaimantWisePolicyExport implements IResponseClaimantWisePolicyExport {\n claimantName: string;\n expenseCategoryName: string;\n limit: number;\n effectiveFrom: string;\n alertPercentage: number;\n}\n\nexport interface IRequestClaimantWisePolicyHistoricalView {\n userId: number;\n orgId: number;\n policyType: number;\n}\nexport class RequestClaimantWisePolicyHistoricalView implements IRequestClaimantWisePolicyHistoricalView {\n userId: number;\n orgId: number;\n policyType: number;\n}\n\nexport interface IPolicyHistoryForCategory {\n month: string;\n limit: number;\n spentAmount: number;\n balanceAmount: number;\n}\nexport class PolicyHistoryForCategory implements IPolicyHistoryForCategory {\n month: string;\n limit: number;\n spentAmount: number;\n balanceAmount: number;\n\n constructor(\n month: string,\n limit: number,\n spentAmount: number,\n balanceAmount: number\n ) {\n this.month = month;\n this.limit = limit;\n this.spentAmount = spentAmount;\n this.balanceAmount = balanceAmount;\n }\n}\n\nexport interface IHistoricalDataForCategory {\n expenseCategoryId: number;\n expenseCategoryName: string;\n historicalData: PolicyHistoryForCategory[];\n isSelected: boolean;\n}\nexport class HistoricalDataForCategory implements IHistoricalDataForCategory {\n expenseCategoryId: number;\n expenseCategoryName: string;\n historicalData: PolicyHistoryForCategory[];\n isSelected: boolean;\n}\n\nexport interface IResponseClaimantWisePolicyHistoricalView {\n claimantName: string;\n historicalDataForCategory: IHistoricalDataForCategory[];\n}\nexport class ResponseClaimantWisePolicyHistoricalView implements IResponseClaimantWisePolicyHistoricalView {\n claimantName: string;\n historicalDataForCategory: IHistoricalDataForCategory[];\n}\n\n\nexport class PolicyDashboardOverviewDetail {\n expensesSubmitted :number;\n policyViolatedExpensesApproved:number; \n policyViolatedExpensesRejected :number;\n duplicateExpensesAttempts :number;\n duplicateExpensesAttemptsApproved:number;\n}\n\nexport class BreachedExpenseCategories{\n id:number;\n name:string;\n type:number;\n policyBreachCount:number;\n}\nexport class ClaimantsViolatingExpenses{\n id:number;\n name:string;\n type:number;\n policyBreachCount:number;\n}\nexport class ApproversApprovingExpenses{\n id:number;\n name:string;\n type:number;\n policyBreachCount:number;\n}\nexport class PolicyDashboardData{\n policyDashboardOverviewDetail:PolicyDashboardOverviewDetail;\n breachedExpenseCategories:BreachedExpenseCategories[];\n claimantsViolatingExpenses:ClaimantsViolatingExpenses[];\n approversApprovingExpenses:ApproversApprovingExpenses[];\n}\nexport interface IPolicyDashboardFilter {\n orgId:number;\n companyId:number;\n fromDate:Date;\n toDate:Date;\n loadCase:number;\n}\n\nexport class PolicyDashboardFilter implements IPolicyDashboardFilter {\n orgId:number;\n companyId:number;\n fromDate:Date;\n toDate:Date;\n loadCase:number;\n}\nexport class PolicyGridData\n{\n id:number;\n name:string;\n count:number;\n type:number\n}\nexport class GridHeader\n{\n Id:string;\n Name:string;\n Count:string;\n}\nexport class PolicyDashBoardPanelModel\n{\n fromDate?:any;\n toDate?:any;\n type?:number;\n Id?:number;\n case?:number;\n orgId?:number;\n companyId:number;\n Ids?:string;\n}\nexport class PanelInputData\n{\n fromDate?:Date;\n toDate?:Date;\n gridType?:number;\n}\nexport class PolicyDashboardPanelData\n{\n amount:number;\n approverId:number;\n approverName:string;\n category:string;\n companyId:number;\n companyName:string;\n currentStatus:string;\n currentStatusId:number;\n expenseDate:any;\n expenseDateToShow:any;\n expenseId:number\n isPolicyViolated:boolean;\n breachDetails?:BreachDetail[];\n policyBreached:string;\n breachAmountClass:string;\n breachAmount:any;\n isMultiplePolicyVoilated:boolean;\n orgExpenseCategoryId:number;\n status:number;\n submissionDate:number;\n userId:number;\n userName:string;\n}\nexport class BreachDetail\n{\n expenseId:number;\n policyType:number;\n violation:number;\n}\n\nexport class RespCategoryAdditionalFieldSettings\n{\n lstCategoryDetails: CategoryAdditionalFieldData[];\n}\n\nexport class CategoryAdditionalFieldData\n{\n orgExpenseCategoryId:number;\n expenseCategoryName:string;\n additionalField1:boolean;\n additionalField2:boolean;\n additionalField3:boolean;\n additionalField4:boolean; \n totalSwitchedOn:number;\n countAsPerCategory:number;\n}\n\nexport class ReqSaveCategoryAdditionalFieldDetails\n{\n lstCategoryDetails: CategoryAdditionalFieldData[];\n}\n\n\n","\n//\nexport interface IBillingDataForPricingRequest {\n currencyId: number;\n}\n\nexport class BillingDataForPricingRequest implements IBillingDataForPricingRequest {\n currencyId: number;\n constructor(currencyId: number) {\n this.currencyId = currencyId;\n }\n}\n\nexport interface IBillingDataForPricingResponse {\n billingMultiCurrencySetting: IBillingMultiCurrencySettingResponse;\n subscriptionDiscount: ISubscriptionDiscountResponse[];\n}\n\nexport class BillingDataForPricingResponse implements IBillingDataForPricingResponse {\n billingMultiCurrencySetting: IBillingMultiCurrencySettingResponse;\n subscriptionDiscount: ISubscriptionDiscountResponse[];\n}\n\nexport interface IBillingMultiCurrencySettingResponse {\n billingMultiCurrencySettingId: number;\n currencyId: number;\n basicPrice: number;\n assistedSupportPrice: number;\n minimumPricePerTransaction: number;\n minimumPricePerUser: number;\n isDefault: boolean;\n isActive: boolean;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n}\nexport interface ISubscriptionDiscountResponse {\n subscriptionDiscountId: number;\n discountName: string;\n minUnitCount: number;\n maxUnitCount: number;\n isPercentage: boolean;\n discount: number;\n createdBy: number;\n createdDate: number;\n modifiedBy: number;\n modifiedDate: number;\n userCount: number;\n userCountDiscount: number;\n userCountDiscountName: string;\n}\n\nexport class QuoteModel {\n firstName: string;\n lastName: string;\n email: string;\n business: string;\n emailQuote: boolean;\n noOfEmployee: number;\n hearAboutUs: string;\n\n}\n\nexport interface IPricingEmailQuoteRequest {\n email: string;\n business: string;\n firstName: string;\n lastName: string;\n noOfEmployee: number;\n hearAboutUs: string;\n CurrencySymbol: string;\n CurrencyCode: string;\n}\n\nexport class FunctionPackageQuote {\n FunctionPackageName: string;\n FunctionPackageId: number;\n FunctionAmount: number;\n DisplayAmount: string;\n constructor(\n FunctionPackageName: string,\n FunctionPackageId: number,\n FunctionAmount: number,\n DisplayAmount: string) {\n this.FunctionPackageName = FunctionPackageName;\n this.FunctionPackageId = FunctionPackageId;\n this.FunctionAmount = FunctionAmount;\n this.DisplayAmount = DisplayAmount;\n\n }\n}\n\nexport class PricingEmailQuoteRequest implements IPricingEmailQuoteRequest {\n email: string;\n business: string;\n firstName: string;\n lastName: string;\n noOfEmployee: number;\n hearAboutUs: string;\n emailQuote: boolean;\n CurrencySymbol: string;\n CurrencyCode: string;\n functionPackages: FunctionPackageQuote[];\n\n constructor(\n email: string,\n buisness: string,\n firstName: string,\n lastName: string,\n noOfEmployee: number,\n hearAboutUs: string,\n emailQuote: boolean,\n CurrencySymbol: string,\n CurrencyCode: string) {\n this.email = email;\n this.business = buisness;\n this.firstName = firstName;\n this.lastName = lastName;\n this.noOfEmployee = noOfEmployee;\n this.hearAboutUs = hearAboutUs;\n this.emailQuote = emailQuote;\n this.CurrencySymbol = CurrencySymbol;\n this.CurrencyCode = CurrencyCode;\n }\n}\n","\n\nexport interface IProjectBudgetListRequest {\n organisationId: number;\n status: number;\n pageNo: number;\n sortOrder: number;\n sortColumn: string;\n searchText: string;\n entityType: number;\n}\n\nexport class ProjectBudgetListRequest implements IProjectBudgetListRequest {\n organisationId: number;\n status: number;\n pageNo: number;\n sortOrder: number;\n sortColumn: string;\n searchText: string;\n entityType: number;\n constructor(organisationId: number, status: number, pageNo: number, sortOrder: number, sortColumn: string, searchText: string,\n entityType: number) {\n this.organisationId = organisationId;\n this.status = status;\n this.pageNo = pageNo;\n this.sortOrder = sortOrder;\n this.sortColumn = sortColumn;\n this.searchText = searchText;\n this.entityType = entityType;\n }\n}\n\nexport interface IProjectBudgetGridResponse {\n totalBudget: number,\n actualSpent: number,\n available: number,\n projectsCounts: number,\n overUnder: string,\n projectBudgetDetailsId: number,\n entityId: number,\n entityName: string,\n entityType: number,\n organisationId: number,\n userId: number,\n\n\n updatedOnForSort: Date;\n\n isRowHighlighted: boolean;\n selected: boolean;\n}\n\nexport class ProjectBudgetGridResponse implements IProjectBudgetGridResponse {\n totalBudget: number;\n actualSpent: number;\n available: number;\n projectsCounts: number;\n overUnder: string;\n projectBudgetDetailsId: number;\n entityId: number;\n entityName: string;\n entityType: number;\n organisationId: number;\n userId: number;\n updatedOn: number;\n updatedOnForSort: Date;\n isRowHighlighted: boolean;\n selected: boolean;\n\n}\n\nexport interface IProjectBudgetListResponse {\n projectBudgetList: IProjectBudgetGridResponse[];\n totalCount: number;\n costCentreCount: number;\n customerCount: number;\n}\n\nexport class ProjectSummaryPopupModel {\n constructor(public projectBudgetDetailsId: number, public entityType: number, public entityName: string) { }\n}\n\nexport class ProjectSummary {\n projectCode: string;\n projectName: string;\n projectBudget: number;\n actual: number;\n available: number;\n used: number;\n overUnder: string;\n}\n\nexport class ProjectSummaryResponse {\n projectSummaryList: ProjectSummary[];\n totalBudget: number;\n totalActual: number;\n totalAvailable: number;\n}\n\nexport class ProjectSummaryRequest {\n constructor(public projectBudgetDetailsId: number, public organisationId: number) { }\n}\n\nexport class ProjectBudgetOperationPopupModel {\n constructor(public projectBudgetDetailsId: number) { }\n}\n\nexport class GetCustomerCostCentreListRequest {\n constructor(public organisationId: number, public includeCostCentre: boolean, public includeCustomer: boolean) { }\n}\n\nexport class CostCentreCustomerList {\n entityId: number;\n entityName: string;\n entityType: number;\n projectBudgetDetailsId: number;\n disabled: boolean;\n mergedEntityName: string;\n}\n\nexport class GetActiveEmployeesForProjectBudgetRequest {\n constructor(public organisationId: number) { }\n}\n\nexport class GetActiveEmployeesForProjectBudgetResponse {\n userId: number;\n userName: string;\n loginId: string;\n orgRoleId: number;\n mergedUserName: string;\n}\n\nexport class GetProjectBudgetAllDetailsByProgBudIdRequest {\n constructor(public projectBudgetDetailsId: number, public organisationId: number) {\n\n }\n}\n\nexport class BudgetDetailsResponse {\n budgetDetailsId: number;\n projectBudgetDetailsId: number;\n totalBudget: any;\n status: number;\n approvalRule: number;\n overallSpendAlertAmount: any;\n overallSpendEMailToUserId: number;\n overallSpendEMailSent: boolean;\n organisationId: number;\n}\n\nexport class ProjectDetailsResponse {\n projectDetailsId: number;\n projectBudgetDetailsId: number;\n projectCode: string;\n projectName: string;\n projectManagerId: number;\n projectBudget: number;\n isBillable: boolean;\n status: number;\n organisationId: number;\n isProjectContainsExpense: boolean;\n projectAlertDetails: ProjectAlertDetailsResponse[];\n projectAlertRecipients: ProjectAlertRecipientsResponse[];\n updatedBy: number;\n updatedOn: number;\n closedType: number;\n spentAmount: number;\n}\n\nexport class ProjectAlertDetailsResponse {\n projectAlertDetailsId: number;\n projectDetailsId: number;\n expenseCategoryId: number;\n expenseCategoryBudget: number;\n alert1: number;\n alert2: number;\n alert3: number;\n alert1EmailSent: boolean;\n alert2EmailSent: boolean;\n alert3EmailSent: boolean;\n organisationId: number;\n}\n\nexport class ProjectAlertRecipientsResponse {\n projectAlertRecipientsId: number;\n projectDetailsId: number;\n recipientsUserId: number;\n organisationId: number;\n}\n\nexport class ProjectBudgetResponse {\n projectBudgetDetailsId: number;\n entityId: number;\n entityName: string;\n entityType: number;\n organisationId: number;\n userId: number;\n createdBy: number;\n createdOn: number;\n updatedBy: number;\n updatedOn: number;\n budgetDetails: BudgetDetailsResponse;\n projectDetails: ProjectDetailsResponse[];\n}\n\nexport class ProjectCategorySummaryRequest {\n constructor(public projectBudgetDetailsId: number, public organisationId: number) { }\n}\n\nexport class CategorySummaryDetailsResponse {\n expenseCategoryId: number;\n expenseCategoryBudget: number;\n expenseCategoryName: string;\n expenseCategoryActual: number;\n expenseCategoryAvailable: number;\n overUnder: string;\n used: number;\n}\n\nexport class CategorySummaryResponse {\n projectDetailsId: number;\n projectCode: string;\n projectName: string;\n projectManagerId: number;\n projectManagerName: string;\n projectBudget: number;\n categorySummaryDetailsResponse: CategorySummaryDetailsResponse[];\n}\n\nexport class ProjectBudgetForEntity {\n entityId: number;\n}\n\nexport class GetProjectBudgetByEntityTypeRequest {\n\n constructor(public organisationId: number, public entityTypeId: number) { }\n}\n\nexport class GetProjectManagerCountRequest {\n constructor(public organisationId: number) { }\n}\n\nexport class ProjectManagerDetails {\n projectManagerId: number;\n projectCount: number;\n}\n\nexport class UpdateProjectManagerRequest {\n constructor(public oldApproverId: number, public newApproverId: number, public organisationId: number, public claimantsIds: number[]) { }\n}\n\nexport class GetProjectListForCloseModel {\n projectBudgetDetailsId: number;\n projectDetailsId: number;\n entityName: string;\n entityType: string;\n projectName: string;\n projectCode: string;\n projectBudget: number;\n projectManager: string;\n status: string;\n selected: boolean;\n updatedOn: number;\n isRowHighlighted: boolean;\n tempStatus: string;\n closedType: number;\n spentAmount: number;\n}\n\nexport class GetProjectListForCloseResponse {\n projectList: GetProjectListForCloseModel[];\n totalProjectsCount: number;\n totalCustomersProjectsCount: number;\n totalCostCentreProjectsCount: number;\n totalOpenProjectsCount: number;\n totalClosedProjectsCount: number;\n}\n\nexport class CloseProjectRequest {\n constructor(public projectBudgetDetailsId: number, public projectDetailsId: number, public organisationId: number, public userId: number, public closedType: number, public spentAmount: number, public userName: string) { }\n}\n\n\n\n\nexport interface IGetCustomerCostCentreProjectsListRequest {\n organisationId: number;\n userId: number;\n includeCostCentre: boolean;\n includeCustomer: boolean;\n}\n\nexport class GetCustomerCostCentreProjectsListRequest implements IGetCustomerCostCentreProjectsListRequest {\n organisationId: number;\n userId: number;\n includeCostCentre: boolean;\n includeCustomer: boolean;\n constructor(organisationId: number, userId: number, includeCostCentre: boolean, includeCustomer: boolean) {\n this.organisationId = organisationId;\n this.userId = userId;\n this.includeCostCentre = includeCostCentre;\n this.includeCustomer = includeCustomer;\n }\n}\n\nexport interface ICostCentreCustomerProjectListResponse {\n customerCostCentreProjectList: CostCentreCustomerProjectList[];\n}\n\nexport class CostCentreCustomerProjectListResponse implements ICostCentreCustomerProjectListResponse {\n customerCostCentreProjectList: CostCentreCustomerProjectList[];\n}\n\nexport class CostCentreCustomerProjectList {\n entityId: number;\n entityName: string;\n entityCode:string;\n entityType: number;\n isHomeCostCentre: boolean;\n projectBudgetDetailsId: number;\n projectList: ProjectInfo[]\n}\n\nexport class ProjectInfo {\n projectDetailsId: number;\n projectCode: string;\n projectName: string;\n}","export interface ISubscriptionCardDetailsRequest {\n CardBrand: string;\n CardType: string;\n CardExpirationMonthYear: string;\n CardLastFourDigits: string;\n LogoUrl: string;\n OrgId: number;\n UserId: number;\n PaymentGatewayId: string;\n PaymentCustomerId: string;\n PaymentIntentId: string;\n}\n\nexport class SubscriptionCardDetailsRequest implements ISubscriptionCardDetailsRequest {\n CardBrand: string;\n CardType: string;\n CardExpirationMonthYear: string;\n CardLastFourDigits: string;\n LogoUrl: string;\n OrgId: number;\n UserId: number;\n PaymentGatewayId: string;\n PaymentCustomerId: string;\n PaymentIntentId: string;\n constructor(CardBrand: string,\n CardType: string,\n CardExpirationMonthYear: string,\n CardLastFourDigits: string,\n LogoUrl: string,\n OrgId: number,\n UserId: number,\n PaymentGatewayId: string,\n PaymentCustomerId: string,\n PaymentIntentId: string\n ) {\n this.CardBrand = CardBrand;\n this.CardType = CardType;\n this.CardExpirationMonthYear = CardExpirationMonthYear;\n this.CardLastFourDigits = CardLastFourDigits;\n this.LogoUrl = LogoUrl;\n this.OrgId = OrgId;\n this.UserId = UserId;\n this.PaymentGatewayId = PaymentGatewayId;\n this.PaymentCustomerId = PaymentCustomerId;\n this.PaymentIntentId = PaymentIntentId;\n }\n}\n","export interface IStripeSessionResponse {\n id: string;\n}\nexport class StripeSessionResponse implements IStripeSessionResponse {\n id: string;\n}\n\nexport interface IStripeSessionRequest {\n PageUrl: string;\n CustomerEmail: string;\n currencyCode: string;\n}\nexport class StripeSessionRequest implements IStripeSessionRequest {\n PageUrl: string;\n CustomerEmail: string;\n currencyCode: string;\n constructor(PageUrl: string, CustomerEmail: string, currencyCode: string) {\n this.PageUrl = PageUrl;\n this.CustomerEmail = CustomerEmail;\n this.currencyCode = currencyCode;\n }\n}\n\nexport interface IStripeGenerateInvoiceRequest {\n CustomerId: string;\n InvoiceItemList: StripeInvoiceItem[];\n BillingInvoiceFor: string;\n}\nexport class StripeGenerateInvoiceRequest\n implements IStripeGenerateInvoiceRequest {\n CustomerId: string;\n InvoiceItemList: StripeInvoiceItem[];\n BillingInvoiceFor: string;\n constructor(\n CustomerId: string,\n InvoiceItemList: StripeInvoiceItem[],\n BillingInvoiceFor: string\n ) {\n this.CustomerId = CustomerId;\n this.InvoiceItemList = InvoiceItemList;\n this.BillingInvoiceFor = BillingInvoiceFor;\n }\n}\n\nexport interface IStripeInvoiceItem {\n Customer: string;\n Amount: number;\n Currency: string;\n Description: string;\n}\nexport class StripeInvoiceItem implements IStripeInvoiceItem {\n Customer: string;\n Amount: number;\n Currency: string;\n Description: string;\n}\n\nexport interface IStripeRegisterUserResponse {\n customerId: string;\n paymentMethodId: string;\n cardBrand: string;\n cardType: string;\n cardExpirationMonth: string;\n cardExpirationYear: string;\n cardLastFourDigits: string;\n}\nexport class StripeRegisterUserResponse implements IStripeRegisterUserResponse {\n customerId: string;\n paymentMethodId: string;\n cardBrand: string;\n cardType: string;\n cardExpirationMonth: string;\n cardExpirationYear: string;\n cardLastFourDigits: string;\n}\n\nexport interface IStripeChangeUserCardRequest {\n SessionId: string;\n CustomerId: string;\n CurrencyCode: string;\n}\nexport class StripeChangeUserCardRequest\n implements IStripeChangeUserCardRequest {\n SessionId: string;\n CustomerId: string;\n CurrencyCode: string;\n constructor(SessionId: string, CustomerId: string, CurrencyCode: string) {\n this.SessionId = SessionId;\n this.CustomerId = CustomerId;\n this.CurrencyCode = CurrencyCode;\n }\n}\n\nexport interface IStripeInstantPaymentInvoiceItem {\n Name: string;\n Description: string;\n Amount: number;\n Currency: string;\n Quantity: number;\n}\nexport class StripeInstantPaymentInvoiceItem\n implements IStripeInstantPaymentInvoiceItem {\n Name: string;\n Description: string;\n Amount: number;\n Currency: string;\n Quantity: number;\n}\n\nexport interface IStripeInstantPaymentSessionRequest {\n PageUrl: string;\n CustomerId: string;\n CustomerEmail: string;\n currencyCode: string;\n InvoiceItemList: StripeInstantPaymentInvoiceItem[];\n}\nexport class StripeInstantPaymentSessionRequest\n implements IStripeInstantPaymentSessionRequest {\n PageUrl: string;\n CustomerId: string;\n CustomerEmail: string;\n currencyCode: string;\n InvoiceItemList: StripeInstantPaymentInvoiceItem[];\n constructor(\n PageUrl: string,\n CustomerId: string,\n CustomerEmail: string,\n currencyCode: string,\n InvoiceItemList: StripeInstantPaymentInvoiceItem[]\n ) {\n this.PageUrl = PageUrl;\n this.CustomerId = CustomerId;\n this.CustomerEmail = CustomerEmail;\n this.currencyCode = currencyCode;\n this.InvoiceItemList = InvoiceItemList;\n }\n}\n\nexport interface IStripeInstantPaymentRegisterUserResponse {\n customerId: string;\n paymentMethodId: string;\n}\nexport class StripeInstantPaymentRegisterUserResponse\n implements IStripeInstantPaymentRegisterUserResponse {\n customerId: string;\n paymentMethodId: string;\n}\n","import { Mileage } from \"../claimant-on-web/claimant-on-web\";\nimport { IMileageRateInfo } from \"../manage-emp/manage-emp\";\nimport { CustomFields, OrgSubCategoryMapping } from \"../manage-category/manage-category-list-response\";\nimport { TaxDetails } from \"../tax-rate/tax-details\";\nimport { ManualVatDetail } from \"./manual-vat-detail\";\n\nexport interface IRequestGetPolicyDetail {\n orgExpenseCategoryId: number;\n expenseDate: number;\n userId: number;\n}\nexport class RequestGetPolicyDetail implements IRequestGetPolicyDetail {\n orgExpenseCategoryId: number;\n expenseDate: number;\n userId: number;\n}\nexport interface IPolicyDetail {\n policyName: string;\n policyType: number;\n policyValue: number;\n functionId: number;\n notes: string;\n highlightedClass: string;\n policyTypeForFM: number;\n}\n\nexport class PolicyDetail implements IPolicyDetail {\n policyName: string;\n policyType: number;\n policyValue: number;\n functionId: number;\n notes: string;\n highlightedClass: string;\n policyTypeForFM: number;\n}\nexport class IResponsePolicyDetail {\n policy: IPolicyDetail[];\n}\nexport class ResponsePolicyDetail implements IResponsePolicyDetail {\n policy: IPolicyDetail[];\n}\n\nexport interface IRequestPolicyViolation {\n expenseId: number;\n orgSubCategoryMappings:OrgSubCategoryMapping[];\n}\n\nexport class RequestPolicyViolation implements IRequestPolicyViolation {\n expenseId: number;\n orgSubCategoryMappings:OrgSubCategoryMapping[];\n}\n\nexport interface IRequestFraudDetails {\n expenseId: number;\n}\n\nexport class RequestFraudDetails implements IRequestFraudDetails {\n expenseId: number;\n}\n\nexport interface IResponsePolicyViolation {\n policyViolation: IPolicyViolation;\n orgSubCategoryMappings:OrgSubCategoryMapping[];\n}\n\nexport class ResponsePolicyViolation implements IResponsePolicyViolation {\n policyViolation: IPolicyViolation;\n orgSubCategoryMappings:OrgSubCategoryMapping[];\n}\n\nexport interface IResponseFraudDetails {\n lstExpenses: IPotentialFraudDetails[];\n}\n\nexport class ResponseFraudDetails implements IResponseFraudDetails {\n lstExpenses: IPotentialFraudDetails[];\n}\n\nexport interface IPotentialFraudDetails {\n expenseId: number;\n userId: number;\n displayName: string;\n supplierName: string;\n supplierId: number;\n expenseDate: number;\n expenseAmount: number;\n receiptInfo: IReceiptInfo[];\n viewMapDetail: IMileageInfo[];\n}\n\nexport interface IPolicyViolation {\n duplicate: IDuplicatePolicy[];\n perNightLimit: IPerItemLimit;\n perPersonLimit: IPerItemLimit;\n dailyCappingLimit: IPerItemLimit;\n monthlyCappingLimit: IPerItemLimit;\n yearlyCappingLimit: IPerItemLimit;\n overallDailyLimit: IOverallLimit;\n expenseTimeLimit: IExpenseTimeLimitViolation;\n vatNovatReceiptType: IVatNovatReceiptType;\n expenseOperationalInfo: ExpenseOperationalInfo[];\n defaultVehicleType: DefaultVehicleType;\n justificationNotes: string;\n}\n\nexport class PolicyViolation implements IPolicyViolation {\n duplicate: IDuplicatePolicy[];\n perNightLimit: IPerItemLimit;\n perPersonLimit: IPerItemLimit;\n dailyCappingLimit: IPerItemLimit;\n monthlyCappingLimit: IPerItemLimit;\n yearlyCappingLimit: IPerItemLimit;\n overallDailyLimit: IOverallLimit;\n expenseTimeLimit: IExpenseTimeLimitViolation;\n vatNovatReceiptType: IVatNovatReceiptType;\n expenseOperationalInfo: ExpenseOperationalInfo[];\n defaultVehicleType: DefaultVehicleType;\n justificationNotes: string;\n}\n\nexport interface IDefaultVehicleType {\n defaultVehicle: string;\n selectedVehicle: string;\n}\n\nexport class DefaultVehicleType implements IDefaultVehicleType {\n defaultVehicle: string;\n selectedVehicle: string;\n}\n\nexport interface IExpenseOperationalInfo {\n fieldId: number;\n expenseId: number;\n fieldTitle: string;\n fieldValue: boolean;\n fieldType: number;\n isMandatory: boolean;\n isPolicyViolated: boolean;\n fieldValueString: string;\n}\n\nexport class ExpenseOperationalInfo implements IExpenseOperationalInfo {\n fieldId: number;\n expenseId: number;\n fieldTitle: string;\n fieldValue: boolean;\n fieldType: number;\n isMandatory: boolean;\n isPolicyViolated: boolean;\n fieldValueString: string;\n}\n\nexport interface IExpenseTimeLimitViolation {\n expenseTimeLimit: number;\n}\n\nexport class ExpenseTimeLimitViolation implements IExpenseTimeLimitViolation {\n expenseTimeLimit: number;\n}\n\nexport interface IPerItemLimit {\n limit: number;\n spentAmount: number;\n currencyId: number;\n spentCurrencyId: number;\n violation: number;\n violationDate: number;\n expenseItems: number;\n categoryName: string;\n}\nexport class PerItemLimit implements IPerItemLimit {\n limit: number;\n spentAmount: number;\n currencyId: number;\n spentCurrencyId: number;\n violation: number;\n violationDate: number;\n expenseItems: number;\n categoryName: string;\n}\n\nexport interface IOverallLimit {\n dailiLimit: number;\n amountSpent: number;\n currencyId: number;\n spentCurrencyId: number;\n violation: number;\n}\n\nexport class OverallLimit implements IOverallLimit {\n dailiLimit: number;\n amountSpent: number;\n currencyId: number;\n spentCurrencyId: number;\n violation: number;\n}\n\nexport interface IDuplicatePolicy {\n expenseId: number;\n expenseCategoryId: number;\n expenseDate: number;\n expenseAmount: number;\n spentCurrencyId: number;\n currencyId: number;\n receiptNumber:string;\n receiptInfo: IReceiptInfo[];\n viewMapDetail: IMileageInfo[];\n}\n\nexport class DuplicatePolicy implements IDuplicatePolicy {\n expenseId: number;\n expenseCategoryId: number;\n expenseDate: number;\n expenseAmount: number;\n spentCurrencyId: number;\n currencyId: number;\n receiptNumber:string;\n receiptInfo: IReceiptInfo[];\n viewMapDetail: IMileageInfo[];\n}\n\nexport interface IVatNovatReceiptType {\n receiptJustificationNotes: string;\n vatNoVatReceiptTypeId: number;\n vatNoVatReceiptTypeName: string;\n}\n\nexport class VatNovatReceiptType implements IVatNovatReceiptType {\n receiptJustificationNotes: string;\n vatNoVatReceiptTypeId: number;\n vatNoVatReceiptTypeName: string;\n}\n\nexport interface IMileageInfo {\n fromLocation: ILocationInfo;\n toLocation: ILocationInfo;\n gpsLocation: ILocationInfo[];\n route: ILocationInfo[];\n returnRoute: ILocationInfo[];\n distance: number;\n returnDistance: number;\n totalDistance: number;\n mileageUOM: number;\n hasReturnJourney: boolean;\n mileageRate: number;\n detour: number;\n detourJustificationNotes: string;\n triangulatedDistance: number;\n returnTriangulatedDistance: number;\n totalTriangulatedDistance: number;\n milesTraveled: number;\n returnMilesTraveled: number;\n totalMilesTraveled: number;\n isMultiRange: boolean;\n mileageRateInfo: IMileageRateInfo[];\n}\n\nexport class MileageInfo implements IMileageInfo {\n fromLocation: ILocationInfo;\n toLocation: ILocationInfo;\n gpsLocation: ILocationInfo[];\n route: ILocationInfo[];\n returnRoute: ILocationInfo[];\n distance: number;\n returnDistance: number;\n totalDistance: number;\n mileageUOM: number;\n hasReturnJourney: boolean;\n mileageRate: number;\n detour: number;\n detourJustificationNotes: string;\n triangulatedDistance: number;\n returnTriangulatedDistance: number;\n totalTriangulatedDistance: number;\n milesTraveled: number;\n returnMilesTraveled: number;\n totalMilesTraveled: number;\n isMultiRange: boolean;\n mileageRateInfo: IMileageRateInfo[];\n}\n\nexport interface ILocationInfo {\n location: string;\n latitude: number;\n longitude: number;\n locationTrackTime: number;\n placeId: string;\n}\nexport class LocationInfo implements ILocationInfo {\n location: string;\n latitude: number;\n longitude: number;\n locationTrackTime: number;\n placeId: string;\n}\n\nexport interface IMapDetails {\n gpsLocation: ILocationInfo[];\n route: ILocationInfo[];\n returnRoute: ILocationInfo[];\n}\n\nexport class MapDetails implements IMapDetails {\n gpsLocation: ILocationInfo[];\n route: ILocationInfo[];\n returnRoute: ILocationInfo[];\n}\n\nexport interface IClaimantExpenseDetailResponse {\n expenseId: number;\n expenseDate: number;\n orgExpenseCategoryId: number;\n baseCategoryId: number;\n stateId: number;\n expenseCategory: string;\n noOfEmployees: number;\n noOfGuests: number;\n noOfRooms: number;\n noOfNight: number;\n billAmount: number;\n tips: number;\n amount: number;\n orgId: number;\n currencyId: number;\n notes: string;\n supplier: string;\n paymentTypeId: number;\n hasReceipt: boolean;\n hasTags: boolean;\n hasVoiceMeno: boolean;\n Tags: string;\n bpValue: string;\n workflowCount: number;\n approverNotes: IApproverNotes[];\n taxRate: number;\n isPolicyViolated: boolean;\n receipts: IReceiptInfo[];\n mileage: Mileage;\n employeesTaxRate: number;\n guestTaxRate: number;\n tipsTaxRate: number;\n customerName: string;\n isWorkflowAvailable: boolean;\n expenseCategoryId: number;\n taxAmount: number;\n expenseManualVatList: ManualVatDetail[];\n reasonForVATChange: string;\n vatNoVatReceiptTypeId: number;\n receiptJustificationNotes: string;\n additionalFields: IDataSave[];\n projectBudgetDetailsName: string;\n projectDetailsName: string;\n entityType: number;\n spentAmount: number;\n spentCurrencyId: number;\n conversionRate: number;\n isManualVatPanelVisible: boolean;\n paymentType: string;\n expenseDateString: string;\n attendeeList: AttendeeList;\n cardNumber: string;\n cardReferenceNo: string;\n cardDescription: string;\n currentStatus: number;\n taxDetails: TaxDetails\n newCostCentreName: string;\n bpCaption: string;\n newCostCentreCode1: string;\n customerCode1: string;\n isTipsEnabled: boolean;\n customFields: CustomFields[];\n costCentreDerivedName: string;\n isApproverNotesMandatory:boolean;\n receiptNumber:string;\n isExpenseEditedByFM: boolean;\n exportId: number;\n isCFPReporting: boolean;\n orgSubCategoryMappings: OrgSubCategoryMapping[];\n}\n\nexport class ClaimantExpenseDetailResponse implements IClaimantExpenseDetailResponse {\n expenseId: number;\n expenseDate: number;\n orgExpenseCategoryId: number;\n baseCategoryId: number;\n stateId: number;\n expenseCategory: string;\n noOfEmployees: number;\n noOfGuests: number;\n noOfRooms: number;\n noOfNight: number;\n billAmount: number;\n tips: number;\n amount: number;\n orgId: number;\n currencyId: number;\n notes: string;\n supplier: string;\n paymentTypeId: number;\n bpValue: string;\n hasReceipt: boolean;\n hasTags: boolean;\n hasVoiceMeno: boolean;\n Tags: string;\n workflowCount: number;\n approverNotes: IApproverNotes[];\n taxRate: number;\n isPolicyViolated: boolean;\n receipts: IReceiptInfo[];\n mileage: Mileage;\n employeesTaxRate: number;\n guestTaxRate: number;\n tipsTaxRate: number;\n customerName: string;\n isWorkflowAvailable: boolean;\n expenseCategoryId: number;\n additionalFields: IDataSave[];\n taxAmount: number;\n expenseManualVatList: ManualVatDetail[];\n reasonForVATChange: string;\n vatNoVatReceiptTypeId: number;\n receiptJustificationNotes: string;\n projectBudgetDetailsName: string;\n projectDetailsName: string;\n entityType: number;\n spentAmount: number;\n spentCurrencyId: number;\n conversionRate: number;\n isManualVatPanelVisible: boolean;\n paymentType: string;\n expenseDateString: string;\n attendeeList: AttendeeList;\n cardNumber: string;\n cardReferenceNo: string;\n cardDescription: string;\n currentStatus: number;\n taxDetails: TaxDetails;\n newCostCentreName: string;\n bpCaption: string;\n newCostCentreCode1: string;\n customerCode1: string;\n isTipsEnabled: boolean;\n customFields: CustomFields[];\n costCentreDerivedName: string;\n isApproverNotesMandatory:boolean;\n receiptNumber:string;\n isExpenseEditedByFM: boolean;\n exportId: number;\n isCFPReporting: boolean;\n orgSubCategoryMappings: OrgSubCategoryMapping[];\n}\n\nexport interface IDataSave {\n fieldValueId: number;\n fieldValue: string;\n fieldName: string;\n}\n\nexport class DataSave implements IDataSave {\n fieldValueId: number;\n fieldValue: string;\n fieldName: string;\n}\n\nexport interface IReceiptInfo {\n expenseReceiptId: number;\n receiptName: string;\n action: number;\n isDeletable: boolean;\n receiptDate: number;\n receiptLocationInfo: IReceiptLatLong;\n receiptUrl: string;\n receiptFor: number;\n isEmailedReceipt: boolean;\n receiptFormatId: number;\n receiptSize: number;\n}\n\nexport class ReceiptInfo implements IReceiptInfo {\n expenseReceiptId: number;\n receiptName: string;\n action: number;\n isDeletable: boolean;\n receiptDate: number;\n receiptLocationInfo: ReceiptLatLong = new ReceiptLatLong();\n receiptUrl: string;\n receiptFor: number;\n isEmailedReceipt: boolean;\n receiptFormatId: number;\n receiptSize: number;\n}\n\nexport interface IReceiptLatLong {\n location: string;\n latitude: number;\n longitude: number;\n}\n\nexport class ReceiptLatLong implements IReceiptLatLong {\n location: string;\n latitude: number;\n longitude: number;\n}\n\nexport interface IApproverNotes {\n actionString: number;\n justificationNotes: string;\n justificationNotesLength: number;\n createdOn: number;\n}\n\nexport class ApproverNotes implements IApproverNotes {\n actionString: number;\n justificationNotes: string;\n justificationNotesLength: number;\n createdOn: number;\n}\n\nexport class EmpList {\n employeeId: number;\n name: string;\n emailId: string;\n costCenterId: number;\n costCenterName: string;\n customerId?: any;\n customerName?: any;\n}\n\nexport class AttendeeList {\n empList: EmpList[];\n guestList: EmpList[];\n}\n\nexport class ReceiptWithMultipleRatesPanelInputModel {\n amount: any;\n taxAmount: any;\n updatedAmount: any;\n reasonForVATChange: string;\n manualVatInfo: any;\n expenseManualVatList: any;\n receiptInfo: IReceiptInfo[];\n receiptCount: number = 0;\n currency: any;\n claimType: any;\n baseCategoryId:number;\n}\n\nexport class ReceiptWithMultipleRatesPanelOutputModel {\n reasonForVATChange: string;\n expenseManualVatList: any;\n updatedAmount: number;\n}\n\nexport class MultipleLineFormModel {\n amount: any;\n taxAmount: any;\n updatedAmount: any;\n updatedAmountText: any;\n reasonForVATChange: string;\n manualVatInfo: any;\n expenseManualVatList: any;\n}\n","import { ErrorInfo } from \"../common/error-info\";\nimport { CcImportModel, ClaimantAssociatedExpenseListRequest } from \"../credit-card/credit-card\";\nimport { EmployeeStatusEnum, UserTypeEnum } from \"src/app/_models/common/manage-emp-enum.enum\";\nimport { VehicleTypeEnum, VehicleStatusEnum, MileageRateTypeEnum } from \"src/app/_models\";\n\nexport class HeaderTemplateStepsConfig {\n constructor(\n public stepNo: string,\n public title: string,\n public isCompleted: boolean,\n public isActive: boolean,\n public isFirst: boolean,\n public isLast: boolean\n ) {\n }\n}\n\nexport class HeaderTemplateButtonConfig {\n constructor(\n public title: string,\n public isDisabled: boolean,\n public isVisible: boolean\n ) {\n }\n}\n\nexport class ImportEmployeeMapping {\n public id: number;\n public columnName: string;\n public srNo: string;\n public header: string;\n public data: string;\n public mappedFieldId: number;\n public mappedFieldColumn: string;\n}\n\n\nexport interface IUniversalImportFieldMasterResponse {\n universalImportFieldMasterId: number;\n templateType: number;\n columnName: string;\n displayName: string;\n functionId: number;\n isRequired: boolean;\n isActive: boolean;\n matchingFields: string;\n isNotMap: boolean;\n id: any;\n value: any;\n isDisabled: boolean;\n disabled: boolean;\n}\n\nexport class UniversalImportFieldMasterResponse implements IUniversalImportFieldMasterResponse {\n universalImportFieldMasterId: number;\n templateType: number;\n columnName: string;\n displayName: string;\n functionId: number;\n isRequired: boolean;\n isActive: boolean;\n matchingFields: string;\n isNotMap: boolean;\n id: any;\n value: any;\n isDisabled: boolean;\n disabled: boolean;\n}\n\nexport interface IEmployeeImportModel {\n uniqueRowId: number;\n //employee details\n employeeId: number;\n employeeCode: string;\n employeeCode2: string;\n employeeCode3: string;\n employeeCode4: string;\n firstName: string;\n lastName: string;\n email: string;\n status: number;\n employeeRole: number;\n approverId: number;\n approverName: string;\n approverEmail: string;\n\n //vehicle Details\n vehicleTypeId: number;\n vehicleStatus: number;\n vehicleSubTypeId: number;\n rateType: number;\n orgVehicleTypeMapId: number;\n derivedName: string;\n statusName: string;\n ownershipType: string;\n baseOwnershipType: number;\n\n //Privileges\n isFinanceApprover: string;\n isAdministrator: string;\n\n //grade\n gradeName: string;\n gradeDescription: string;\n\n //cost centre\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n\n //credit Card\n cardNumber: string;\n\n //triangulation\n homePostCode: string;\n officeName: string;\n officePostCode: string;\n milesHomeToOffice: number;\n\n //advance Mileage\n fuelType: number;\n hpEngineSizeSmall: string;\n hpEngineSizeMedium: string;\n hpEngineSizeLarge: string;\n initialMileage: number;\n\n //doc\n vehicleRegNo: string;\n licence: number;\n registration: number;\n insurance: number;\n mot: number;\n carTax: number;\n isDocRequired: string;\n\n selected: boolean;\n disableEdit: boolean;\n hideEdit: boolean;\n disableDelete: boolean;\n hideDelete: boolean;\n errors: ErrorInfo[];\n errorsCount: number;\n updatedOn: any;\n isRowHighlighted: boolean;\n\n}\nexport class EmployeeImportModel implements IEmployeeImportModel {\n uniqueRowId: number = 0;\n //employee details\n employeeId: number = 0;\n employeeCode: string = \"\";\n employeeCode2: string = \"\";\n employeeCode3: string = \"\";\n employeeCode4: string = \"\";\n firstName: string = \"\";\n lastName: string = \"\";\n email: string = \"\";\n status: number = EmployeeStatusEnum.NotInvited;\n employeeRole: number = UserTypeEnum.Claimant;\n approverId: number = 0;\n approverName: string = \"\";\n approverEmail: string = \"\";\n\n //vehicle Details\n vehicleTypeId: number = VehicleTypeEnum.No_Vehicle;\n vehicleStatus: number = VehicleStatusEnum.NoVehicle;\n vehicleSubTypeId: number = 0;\n rateType: number = MileageRateTypeEnum.FreeForLife;\n orgVehicleTypeMapId: number = 0;\n derivedName: string = \"No Vehicle\";\n statusName: string = \"\";\n ownershipType: string = \"No Vehicle\"\n baseOwnershipType: number = Number(0);\n\n //Privileges\n isFinanceApprover: string = '';\n isAdministrator: string = '';\n //grade\n gradeName: string = \"\";\n gradeDescription: string = \"\";\n\n //cost centre\n costCentreName: string = \"\";\n costCentreCode1: string = \"\";\n costCentreCode2: string = \"\";\n\n //credit Card\n cardNumber: string = \"\";\n\n homePostCode: string = \"\";\n officeName: string = \"\";\n officePostCode: string = \"\";\n milesHomeToOffice: number = 0;\n\n //advance Mileage\n fuelType: number = 0;\n hpEngineSizeSmall: string = \"\";\n hpEngineSizeMedium: string = \"\";\n hpEngineSizeLarge: string = \"\";\n initialMileage: number = 0;\n\n //doc\n vehicleRegNo: string = \"\";\n licence: any;\n registration: any;\n insurance: any;\n mot: any;\n carTax: any;\n isDocRequired: string = \"\";\n\n errors: ErrorInfo[] = [];\n errorsCount: number = 0;\n\n updatedOn: any;\n selected: boolean;\n disableEdit: boolean;\n hideEdit: boolean;\n disableDelete: boolean;\n hideDelete: boolean;\n isRowHighlighted: boolean;\n}\n\nexport class ImportEmployeesEditInputModel {\n public title: string;\n public uniqueRowId: number;\n}\n\nexport interface IValidateUniversalImportEmployeesRequest {\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n employees: EmployeeImportModel[];\n}\n\nexport class ValidateUniversalImportEmployeesRequest implements IValidateUniversalImportEmployeesRequest {\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n isImport: boolean;\n employees: EmployeeImportModel[];\n constructor(fmName: string, fmEmail: string, fmUserId: number,isImport: boolean, employees: EmployeeImportModel[]) {\n this.fmName = fmName;\n this.fmEmail = fmEmail;\n this.fmUserId = fmUserId;\n this.isImport = isImport;\n this.employees = employees;\n }\n}\n\n// Response\nexport interface IValidateUniversalImportEmployeesResponse {\n responseFailedInviteEmployees: IResponseInviteEmployee[];\n passedEmployeesUniqueIds: number[];\n responsePassedInviteEmployees: IUniversalPassedEmployeesResponse[];\n}\n\nexport class ValidateUniversalImportEmployeesResponse implements IValidateUniversalImportEmployeesResponse {\n responseFailedInviteEmployees: IResponseInviteEmployee[];\n passedEmployeesUniqueIds: number[];\n responsePassedInviteEmployees: IUniversalPassedEmployeesResponse[];\n}\n\nexport interface IResponseInviteEmployee {\n uniqueRowId: number;\n employeeEmail: string;\n employeeId: number;\n employeeRole: number;\n approverId: number;\n responseMessage: string;\n errors: ErrorInfo[]\n failedRecord: EmployeeFailedRecord;\n}\n\nexport class ResponseInviteEmployee implements IResponseInviteEmployee {\n uniqueRowId: number;\n employeeEmail: string;\n employeeId: number;\n employeeRole: number;\n approverId: number;\n responseMessage: string;\n errors: ErrorInfo[]\n failedRecord: EmployeeFailedRecord;\n}\nexport class EmployeeFailedRecord {\n uid: number;\n eid: string;\n eid2: string;\n eid3: string;\n eid4: string;\n fn: string;\n ln: string;\n e: number;\n r: number;\n ai: number;\n err: string;\n}\n\n\n//Bulk Save\n\nexport interface IBulkSaveUniversalImportEmployeesRequest {\n orgId: number;\n createdBy: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n employees: EmployeeImportModel[];\n}\n\nexport class BulkSaveUniversalImportEmployeesRequest implements IBulkSaveUniversalImportEmployeesRequest {\n orgId: number;\n createdBy: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n employees: EmployeeImportModel[];\n constructor(orgId: number, createdBy: number, fmName: string, fmEmail: string, fmUserId: number, employees: EmployeeImportModel[]) {\n this.orgId = orgId;\n this.createdBy = createdBy;\n this.fmName = fmName;\n this.fmEmail = fmEmail;\n this.fmUserId = fmUserId;\n this.employees = employees;\n }\n}\n\n// Response\nexport interface IBulkSaveUniversalImportEmployeesResponse {\n NewGradeList: string[];\n NewCostCentreList: string[];\n SuccessRecordsCounts: number;\n ActivatedOwnershipTypeList: string[];\n NewOfficeSetupList: string[];\n}\n\nexport class BulkSaveUniversalImportEmployeesResponse implements IBulkSaveUniversalImportEmployeesResponse {\n NewGradeList: string[];\n NewCostCentreList: string[];\n SuccessRecordsCounts: number;\n ActivatedOwnershipTypeList: string[];\n NewOfficeSetupList: string[];\n}\n\nexport class UniversalGradeResponse {\n gradeId: number;\n gradeName: string;\n gradeDescription: string;\n createdDate: number;\n organisationId: number;\n gradeStatus: boolean;\n}\n\nexport class UniversalCostCentreResponse {\n costCentreId: number;\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n createdDate: number;\n organisationId: number;\n status: boolean;\n}\n\nexport class CheckListPanelModel {\n public title: string;\n public isSmallPanel: boolean;\n public isGridPanel: boolean;\n public data: CheckListData[];\n}\n\nexport class CheckListData {\n public icon: string;\n public id: number;\n public name: string;\n public buttonTitle: string;\n public isButtonVisible: boolean;\n}\nexport class ImportCatMapping {\n id: number;\n srNo: string;\n eodCategoryName: string;\n eodAccountingCode: string;\n eodVatRate: string;\n smbCategoryName: string;\n smbAccountingCode: string;\n smbVatRate: string;\n guestAccountingCode: string;\n guestVatRate: string;\n tipsAccountingCode: string;\n tipsVatRate: string;\n buttonText: string;\n buttonClass: string;\n baseCategoryId: number;\n IsRowOnTop: boolean;\n IsRowHighlighted: boolean;\n IsmappingComplete: boolean;\n taxRateMasterId: number;\n guestTaxRateMasterId: number;\n tipsTaxRateMasterId: number;\n textBeforeBtn: string;\n expenseCategoryId: number;\n}\n\nexport class StorageData {\n importTemplate: number;\n templateData: any;\n importTemplateExtension: any;\n importTemplatFileName: any;\n defineHeaderData: any;\n importedTemplateData: any;\n isTemplateContainsHeader: boolean;\n importStep: number;\n importedTemplateMappedData: any;\n gridData: any;\n cardImportTemplateHeaderConfiguration: CcImportModel;\n}\n\nexport interface IUniversalPassedEmployeesResponse {\n uniqueRowId: number;\n employeeID: number;\n email: string;\n employeeRole: number;\n costCentreId: number;\n gradeId: number;\n status: number;\n}\n\nexport class UniversalPassedEmployeesResponse implements IUniversalPassedEmployeesResponse {\n uniqueRowId: number;\n employeeID: number;\n email: string;\n employeeRole: number;\n costCentreId: number;\n gradeId: number;\n status: number;\n}\n\nexport interface IAssignApproverToCostCentresImportModel {\n uniqueRowId: number;\n approverId: number;\n approverName: string;\n approverEmail: string;\n costCentreName: string;\n costCentreCode1: string;\n costCentreCode2: string;\n errors: any;\n errorsCount: number;\n disableDelete: boolean;\n hideDelete: boolean;\n selected: boolean;\n removeApprover: string;\n\n}\nexport class AssignApproverToCostCentresImportModel implements IAssignApproverToCostCentresImportModel {\n uniqueRowId: number = 0;\n approverId: number = 0;\n approverName: string = \"\";\n approverEmail: string = \"\";\n costCentreName: string = \"\";\n costCentreCode1: string = \"\";\n costCentreCode2: string = \"\";\n errors: any;\n errorsCount: number;\n disableDelete: boolean;\n hideDelete: boolean;\n selected: boolean;\n removeApprover: string;\n}\n\nexport class ImportAssignApproverToCostCentresMapping {\n public id: number;\n public columnName: string;\n public srNo: string;\n public header: string;\n public data: string;\n public mappedFieldId: number;\n public mappedFieldColumn: string;\n}\n\nexport interface IBulkSaveUniversalCostCentreApproversRequest {\n orgId: number;\n createdBy: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n costCentreApprovers: IAssignApproverToCostCentresImportModel[];\n}\n\nexport class BulkSaveUniversalCostCentreApproversRequest implements IBulkSaveUniversalCostCentreApproversRequest {\n orgId: number;\n createdBy: number;\n fmName: string;\n fmEmail: string;\n fmUserId: number;\n costCentreApprovers: IAssignApproverToCostCentresImportModel[];\n constructor(orgId: number, createdBy: number, fmName: string, fmEmail: string, fmUserId: number, costCentreApprovers: IAssignApproverToCostCentresImportModel[]) {\n this.orgId = orgId;\n this.createdBy = createdBy;\n this.fmName = fmName;\n this.fmEmail = fmEmail;\n this.fmUserId = fmUserId;\n this.costCentreApprovers = costCentreApprovers;\n }\n}\n\n// Response\nexport interface IBulkSaveUniversalCostCentreApproversResponse {\n NewCostCentreList: string[];\n SuccessRecordsCounts: number;\n TotalApproversCounts: number;\n TotalCostCentresCounts: number;\n}\n\nexport class BulkSaveUniversalCostCentreApproversResponse implements IBulkSaveUniversalCostCentreApproversResponse {\n NewCostCentreList: string[];\n SuccessRecordsCounts: number;\n TotalApproversCounts: number;\n TotalCostCentresCounts: number;\n}\n\nexport class ImportCustomerMapping {\n public id: number;\n public columnName: string;\n public srNo: string;\n public header: string;\n public data: string;\n public mappedFieldId: number;\n public mappedFieldColumn: string;\n}\n\nexport class ImportCardTransactionsMapping {\n public id: number;\n public columnName: string;\n public srNo: string;\n public header: string;\n public data: string;\n public mappedFieldId: number;\n public mappedFieldColumn: string;\n}\n\nexport class ICounterAppDetails {\n uniqueRowId: number = 0;\n approverEmail: string = \"\";\n approverLimit: string = \"\";\n cApp1: string = \"\";\n cAppCond1: string = \"\";\n cAppLimit1: string = \"\";\n cApp2: string = \"\";\n cAppCond2: string = \"\";\n cAppLimit2: string = \"\";\n cApp3: string = \"\";\n cAppCond3: string = \"\";\n cAppLimit3: string = \"\";\n cApp4: string = \"\";\n cAppCond4: string = \"\";\n cAppLimit4: string = \"\";\n cApp5: string = \"\";\n cAppCond5: string = \"\";\n cAppLimit5: string = \"\";\n cApp6: string = \"\";\n cAppCond6: string = \"\";\n cAppLimit6: string = \"\";\n errors: any;\n errorsCount: number;\n disableDelete: boolean;\n hideDelete: boolean;\n selected: boolean; \n}\n\nexport class CounterAppDetails implements ICounterAppDetails {\n uniqueRowId: number = 0;\n approverEmail: string = \"\";\n approverLimit: string = \"\";\n cApp1: string = \"\";\n cAppCond1: string = \"\";\n cAppLimit1: string = \"\";\n cApp2: string = \"\";\n cAppCond2: string = \"\";\n cAppLimit2: string = \"\";\n cApp3: string = \"\";\n cAppCond3: string = \"\";\n cAppLimit3: string = \"\";\n cApp4: string = \"\";\n cAppCond4: string = \"\";\n cAppLimit4: string = \"\";\n cApp5: string = \"\";\n cAppCond5: string = \"\";\n cAppLimit5: string = \"\";\n cApp6: string = \"\";\n cAppCond6: string = \"\";\n cAppLimit6: string = \"\";\n errors: any;\n errorsCount: number;\n disableDelete: boolean;\n hideDelete: boolean;\n selected: boolean; \n}","export interface IUserRequestBase {\n WebApiName: string;\n WebApiVersion: number;\n RequestId: string;\n RequestInfo: Userrequestdto;\n}\n\nexport class UserRequestBase implements IUserRequestBase {\n WebApiName: string;\n WebApiVersion: number;\n RequestId: string;\n RequestInfo: Userrequestdto;\n}\n\nexport interface ISocialMediaInfo {\n SocialMediaUserId: string;\n SocialMediaSiteId: string;\n}\n\nexport class SocialMediaInfo implements ISocialMediaInfo {\n SocialMediaUserId: string;\n SocialMediaSiteId: string;\n}\n\nexport interface IUserrequestdto {\n FirstName: string;\n LastName: string;\n LoginId: string;\n Password: string;\n ReferralCode: string;\n socialMediaInfo: SocialMediaInfo;\n IsfromOrgId:boolean;\n}\n\nexport class Userrequestdto implements IUserrequestdto {\n FirstName: string;\n LastName: string;\n LoginId: string;\n Password: string;\n ReferralCode: string;\n socialMediaInfo: SocialMediaInfo;\n OTP: number;\n IsfromOrgId:boolean;\n}\n\nexport interface IInviteInfo {\n email: string;\n firstName: string;\n lastName: number;\n roleId: Number;\n vehicleType: number;\n}\n\nexport class InviteInfo implements IInviteInfo {\n email: string;\n firstName: string;\n lastName: number;\n roleId: Number;\n vehicleType: number;\n}\n\nexport interface ICurrencyInfo {\n currencyCode: string;\n currencyId: number;\n currencyName: string;\n}\n\nexport class CurrencyInfo implements ICurrencyInfo {\n countryId: number;\n countryName: string;\n currencyCode: string;\n currencyId: number;\n currencyName: string;\n}\n\nexport interface IMileageInfo {\n fMVehicleType: number;\n mileageRateFor: string;\n mileageRate: number;\n mileageRateFor4Wheeler: number;\n mileageRateFor2Wheeler: number;\n mileageUOM: number;\n}\n\nexport class MileageInfo implements IMileageInfo {\n fMVehicleType: number;\n mileageRateFor: string;\n mileageRate: number;\n mileageRateFor4Wheeler: number;\n mileageRateFor2Wheeler: number;\n mileageUOM: number;\n}\n\nexport interface IProfileinfo {\n organisationName: string;\n}\n\nexport class Profileinfo implements IProfileinfo {\n organisationName: string;\n}\n\nexport interface ISetupInfo {\n inviteInfo: InviteInfo[];\n currencyInfo: CurrencyInfo;\n mileageInfo: MileageInfo;\n profileInfo: Profileinfo;\n}\n\nexport class SetupInfo implements ISetupInfo {\n inviteInfo: InviteInfo[];\n currencyInfo: CurrencyInfo;\n mileageInfo: MileageInfo;\n profileInfo: Profileinfo;\n}\n\nexport interface IOrganisationBasicSetupRequestInfo {\n userId: string;\n platform: number;\n loginId: string;\n languageCode: string;\n setUpInfo: SetupInfo;\n}\n\nexport interface IOrganisationBasicSetupRequestInfo {\n userId: string;\n platform: number;\n loginId: string;\n languageCode: string;\n setUpInfo: SetupInfo;\n}\n\nexport class OrganisationBasicSetupRequestInfo\n implements IOrganisationBasicSetupRequestInfo\n{\n userId: string;\n platform: number;\n loginId: string;\n languageCode: string;\n setUpInfo: SetupInfo;\n}\n\nexport interface IOrganisationBasicSetup {\n WebApiName: string;\n WebApiVersion: number;\n RequestId: string;\n RequestInfo: OrganisationBasicSetupRequestInfo;\n}\n\nexport class OrganisationBasicSetup implements IOrganisationBasicSetup {\n WebApiName: string;\n WebApiVersion: number;\n RequestId: string;\n RequestInfo: OrganisationBasicSetupRequestInfo;\n}\n\nexport interface IOrganisationLocationUpdate {\n WebApiName: string;\n WebApiVersion: number;\n RequestId: string;\n RequestInfo: OrganisationUpdateRequestInfo;\n}\n\nexport class OrganisationLocationUpdate implements IOrganisationLocationUpdate {\n WebApiName: string;\n WebApiVersion: number;\n RequestId: string;\n RequestInfo: OrganisationUpdateRequestInfo;\n}\n\nexport interface IOrganisationLocationUpdateRequestInfo {\n OrganisationLocationId: number;\n OrganisationId: number;\n Address: string;\n Address1: string;\n City: string;\n StateId: number;\n CountryId: number;\n PostalCode: string;\n IsActive: boolean;\n}\n\nexport class OrganisationUpdateRequestInfo\n implements IOrganisationLocationUpdateRequestInfo\n{\n OrganisationLocationId: number;\n OrganisationId: number;\n Address: string;\n Address1: string;\n City: string;\n StateId: number;\n CountryId: number;\n PostalCode: string;\n IsActive: boolean;\n}\n\nexport interface IVerifyYourEmail {\n WebApiName: string;\n WebApiVersion: number;\n RequestId: string;\n RequestInfo: VerifyYourEmailRequestInfo;\n}\n\nexport class VerifyYourEmail implements IVerifyYourEmail {\n WebApiName: string;\n WebApiVersion: number;\n RequestId: string;\n RequestInfo: VerifyYourEmailRequestInfo;\n}\n\nexport interface IVerifyYourEmailRequestInfo {\n OldEmailId: string;\n NewEmailId: string;\n Password: string;\n VerificationKey: string;\n OrgId: number;\n}\n\nexport class VerifyYourEmailRequestInfo implements IVerifyYourEmailRequestInfo {\n OldEmailId: string;\n NewEmailId: string;\n Password: string;\n VerificationKey: string;\n OrgId: number;\n}\n\nexport class UserBrowserDetails {\n userBrowserDetailId: number;\n userId: number;\n browser: string;\n timezoneOffset: number;\n employeeRole: number;\n browserName: string;\n}\n","import * as i0 from '@angular/core';\nimport { Component, NgModule, Directive, Optional, ViewChild } from '@angular/core';\nimport * as i2 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i1 from '@ngx-formly/core';\nimport { FieldWrapper, FormlyModule, FieldType as FieldType$1 } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nclass FormlyWrapperFormField extends FieldWrapper {\n}\nFormlyWrapperFormField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyWrapperFormField, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyWrapperFormField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyWrapperFormField, selector: \"formly-wrapper-form-field\", usesInheritance: true, ngImport: i0, template: `\n \n \n \n\n
\n \n \n \n\n \n\n \n \n \n\n
\n \n
\n\n {{ props.description }}\n
\n `, isInline: true, components: [{ type: i1.ɵFormlyValidationMessage, selector: \"formly-validation-message\", inputs: [\"field\"] }], directives: [{ type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyWrapperFormField, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-wrapper-form-field',\n template: `\n \n \n \n\n
\n \n \n \n\n \n\n \n \n \n\n
\n \n
\n\n {{ props.description }}\n
\n `,\n }]\n }] });\n\nclass FormlyBootstrapFormFieldModule {\n}\nFormlyBootstrapFormFieldModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapFormFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapFormFieldModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapFormFieldModule, declarations: [FormlyWrapperFormField], imports: [CommonModule,\n ReactiveFormsModule, i1.FormlyModule] });\nFormlyBootstrapFormFieldModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapFormFieldModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyModule.forChild({\n wrappers: [\n {\n name: 'form-field',\n component: FormlyWrapperFormField,\n },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapFormFieldModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyWrapperFormField],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyModule.forChild({\n wrappers: [\n {\n name: 'form-field',\n component: FormlyWrapperFormField,\n },\n ],\n }),\n ],\n }]\n }] });\n\nclass FieldType extends FieldType$1 {\n constructor(hostContainerRef) {\n super();\n this.hostContainerRef = hostContainerRef;\n }\n set content(templateRef) {\n if (templateRef && this.hostContainerRef) {\n this.hostContainerRef.createEmbeddedView(templateRef);\n }\n }\n}\nFieldType.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FieldType, deps: [{ token: i0.ViewContainerRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nFieldType.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FieldType, viewQueries: [{ propertyName: \"content\", first: true, predicate: [\"fieldTypeTemplate\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FieldType, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { content: [{\n type: ViewChild,\n args: ['fieldTypeTemplate', { static: true }]\n }] } });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FieldType, FormlyBootstrapFormFieldModule };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i2 from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\n\nclass FormlyFieldInput extends FieldType {\n get type() {\n return this.props.type || 'text';\n }\n}\nFormlyFieldInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldInput, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyFieldInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyFieldInput, selector: \"formly-field-input\", usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i2.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { type: i3.ɵFormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }, { type: i2.NumberValueAccessor, selector: \"input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldInput, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-input',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n\nclass FormlyBootstrapInputModule {\n}\nFormlyBootstrapInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapInputModule, declarations: [FormlyFieldInput], imports: [CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule, i3.FormlyModule] });\nFormlyBootstrapInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapInputModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'input',\n component: FormlyFieldInput,\n wrappers: ['form-field'],\n },\n { name: 'string', extends: 'input' },\n {\n name: 'number',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number',\n },\n },\n },\n {\n name: 'integer',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number',\n },\n },\n },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapInputModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldInput],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'input',\n component: FormlyFieldInput,\n wrappers: ['form-field'],\n },\n { name: 'string', extends: 'input' },\n {\n name: 'number',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number',\n },\n },\n },\n {\n name: 'integer',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number',\n },\n },\n },\n ],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapInputModule, FormlyFieldInput };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i2 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i1 from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\n\nclass FormlyFieldTextArea extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n cols: 1,\n rows: 1,\n },\n };\n }\n}\nFormlyFieldTextArea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldTextArea, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyFieldTextArea.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyFieldTextArea, selector: \"formly-field-textarea\", usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n `, isInline: true, directives: [{ type: i1.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i1.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { type: i2.ɵFormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldTextArea, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-textarea',\n template: `\n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n\nclass FormlyBootstrapTextAreaModule {\n}\nFormlyBootstrapTextAreaModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapTextAreaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapTextAreaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapTextAreaModule, declarations: [FormlyFieldTextArea], imports: [CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule, i2.FormlyModule] });\nFormlyBootstrapTextAreaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapTextAreaModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'textarea',\n component: FormlyFieldTextArea,\n wrappers: ['form-field'],\n },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapTextAreaModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldTextArea],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'textarea',\n component: FormlyFieldTextArea,\n wrappers: ['form-field'],\n },\n ],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapTextAreaModule, FormlyFieldTextArea };\n","import * as i0 from '@angular/core';\nimport { Pipe, NgModule } from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport { map, filter, tap } from 'rxjs/operators';\n\nclass FormlySelectOptionsPipe {\n transform(options, field) {\n if (!(options instanceof Observable)) {\n options = this.observableOf(options, field);\n }\n else {\n this.dispose();\n }\n return options.pipe(map((value) => this.transformOptions(value, field)));\n }\n ngOnDestroy() {\n this.dispose();\n }\n transformOptions(options, field) {\n const to = this.transformSelectProps(field);\n const opts = [];\n const groups = {};\n options?.forEach((option) => {\n const o = this.transformOption(option, to);\n if (o.group) {\n const id = groups[o.label];\n if (id === undefined) {\n groups[o.label] = opts.push(o) - 1;\n }\n else {\n o.group.forEach((o) => opts[id].group.push(o));\n }\n }\n else {\n opts.push(o);\n }\n });\n return opts;\n }\n transformOption(option, props) {\n const group = props.groupProp(option);\n if (Array.isArray(group)) {\n return {\n label: props.labelProp(option),\n group: group.map((opt) => this.transformOption(opt, props)),\n };\n }\n option = {\n label: props.labelProp(option),\n value: props.valueProp(option),\n disabled: !!props.disabledProp(option),\n };\n if (group) {\n return { label: group, group: [option] };\n }\n return option;\n }\n transformSelectProps(field) {\n const props = field?.props || field?.templateOptions || {};\n const selectPropFn = (prop) => (typeof prop === 'function' ? prop : (o) => o[prop]);\n return {\n groupProp: selectPropFn(props.groupProp || 'group'),\n labelProp: selectPropFn(props.labelProp || 'label'),\n valueProp: selectPropFn(props.valueProp || 'value'),\n disabledProp: selectPropFn(props.disabledProp || 'disabled'),\n };\n }\n dispose() {\n if (this._options) {\n this._options.complete();\n this._options = null;\n }\n if (this._subscription) {\n this._subscription.unsubscribe();\n this._subscription = null;\n }\n }\n observableOf(options, f) {\n this.dispose();\n if (f && f.options && f.options.fieldChanges) {\n this._subscription = f.options.fieldChanges\n .pipe(filter(({ property, type, field }) => {\n return (type === 'expressionChanges' &&\n (property.indexOf('templateOptions.options') === 0 || property.indexOf('props.options') === 0) &&\n field === f &&\n Array.isArray(field.props.options) &&\n !!this._options);\n }), tap(() => this._options.next(f.props.options)))\n .subscribe();\n }\n this._options = new BehaviorSubject(options);\n return this._options.asObservable();\n }\n}\nFormlySelectOptionsPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectOptionsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\nFormlySelectOptionsPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectOptionsPipe, name: \"formlySelectOptions\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectOptionsPipe, decorators: [{\n type: Pipe,\n args: [{ name: 'formlySelectOptions' }]\n }] });\n\nclass FormlySelectModule {\n}\nFormlySelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlySelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectModule, declarations: [FormlySelectOptionsPipe], exports: [FormlySelectOptionsPipe] });\nFormlySelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlySelectModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlySelectOptionsPipe],\n exports: [FormlySelectOptionsPipe],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlySelectModule, FormlySelectOptionsPipe };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i2 from '@angular/forms';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport * as i4 from '@ngx-formly/core/select';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\n\nclass FormlyFieldRadio extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n formCheck: 'default',\n },\n };\n }\n get disabledControl() {\n return new FormControl({ value: this.formControl.value, disabled: true });\n }\n}\nFormlyFieldRadio.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldRadio, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyFieldRadio.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyFieldRadio, selector: \"formly-field-radio\", usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i2.RadioControlValueAccessor, selector: \"input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]\", inputs: [\"name\", \"formControlName\", \"value\"] }, { type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i2.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { type: i3.ɵFormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }], pipes: { \"async\": i1.AsyncPipe, \"formlySelectOptions\": i4.FormlySelectOptionsPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldRadio, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-radio',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n\nclass FormlyBootstrapRadioModule {\n}\nFormlyBootstrapRadioModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapRadioModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapRadioModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapRadioModule, declarations: [FormlyFieldRadio], imports: [CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule, i3.FormlyModule] });\nFormlyBootstrapRadioModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapRadioModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'radio',\n component: FormlyFieldRadio,\n wrappers: ['form-field'],\n },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapRadioModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldRadio],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'radio',\n component: FormlyFieldRadio,\n wrappers: ['form-field'],\n },\n ],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapRadioModule, FormlyFieldRadio };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i2 from '@angular/forms';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\n\nclass FormlyFieldCheckbox extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n indeterminate: true,\n hideLabel: true,\n formCheck: 'default',\n },\n };\n }\n}\nFormlyFieldCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyFieldCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyFieldCheckbox, selector: \"formly-field-checkbox\", usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i2.CheckboxControlValueAccessor, selector: \"input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]\" }, { type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i2.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { type: i3.ɵFormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }, { type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldCheckbox, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-checkbox',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n\nclass FormlyBootstrapCheckboxModule {\n}\nFormlyBootstrapCheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapCheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapCheckboxModule, declarations: [FormlyFieldCheckbox], imports: [CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule, i3.FormlyModule] });\nFormlyBootstrapCheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapCheckboxModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'checkbox',\n component: FormlyFieldCheckbox,\n wrappers: ['form-field'],\n },\n {\n name: 'boolean',\n extends: 'checkbox',\n },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapCheckboxModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldCheckbox],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'checkbox',\n component: FormlyFieldCheckbox,\n wrappers: ['form-field'],\n },\n {\n name: 'boolean',\n extends: 'checkbox',\n },\n ],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapCheckboxModule, FormlyFieldCheckbox };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport * as i2 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i3 from '@ngx-formly/core/select';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\n\nclass FormlyFieldMultiCheckbox extends FieldType {\n constructor() {\n super(...arguments);\n this.defaultOptions = {\n props: {\n formCheck: 'default', // 'default' | 'inline' | 'switch' | 'inline-switch'\n },\n };\n }\n onChange(value, checked) {\n this.formControl.markAsDirty();\n if (this.props.type === 'array') {\n this.formControl.patchValue(checked\n ? [...(this.formControl.value || []), value]\n : [...(this.formControl.value || [])].filter((o) => o !== value));\n }\n else {\n this.formControl.patchValue({ ...this.formControl.value, [value]: checked });\n }\n this.formControl.markAsTouched();\n }\n isChecked(option) {\n const value = this.formControl.value;\n return value && (this.props.type === 'array' ? value.indexOf(option.value) !== -1 : value[option.value]);\n }\n}\nFormlyFieldMultiCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldMultiCheckbox, deps: null, target: i0.ɵɵFactoryTarget.Component });\nFormlyFieldMultiCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyFieldMultiCheckbox, selector: \"formly-field-multicheckbox\", usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { type: i2.ɵFormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }], pipes: { \"async\": i1.AsyncPipe, \"formlySelectOptions\": i3.FormlySelectOptionsPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldMultiCheckbox, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-multicheckbox',\n template: `\n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }] });\n\nclass FormlyBootstrapMultiCheckboxModule {\n}\nFormlyBootstrapMultiCheckboxModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapMultiCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapMultiCheckboxModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapMultiCheckboxModule, declarations: [FormlyFieldMultiCheckbox], imports: [CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule, i2.FormlyModule] });\nFormlyBootstrapMultiCheckboxModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapMultiCheckboxModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'multicheckbox',\n component: FormlyFieldMultiCheckbox,\n wrappers: ['form-field'],\n },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapMultiCheckboxModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldMultiCheckbox],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'multicheckbox',\n component: FormlyFieldMultiCheckbox,\n wrappers: ['form-field'],\n },\n ],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapMultiCheckboxModule, FormlyFieldMultiCheckbox };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, ViewChild, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i2 from '@angular/forms';\nimport { SelectControlValueAccessor, ReactiveFormsModule } from '@angular/forms';\nimport * as i3 from '@ngx-formly/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport * as i4 from '@ngx-formly/core/select';\nimport { FormlySelectModule } from '@ngx-formly/core/select';\nimport { FieldType, FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\nimport { take } from 'rxjs/operators';\n\nclass FormlyFieldSelect extends FieldType {\n constructor(ngZone, hostContainerRef) {\n super(hostContainerRef);\n this.ngZone = ngZone;\n this.defaultOptions = {\n props: {\n compareWith(o1, o2) {\n return o1 === o2;\n },\n },\n };\n }\n // workaround for https://github.com/angular/angular/issues/10010\n /**\n * TODO: Check if this is still needed\n */\n set selectAccessor(s) {\n if (!s) {\n return;\n }\n const writeValue = s.writeValue.bind(s);\n if (s._getOptionId(s.value) === null) {\n writeValue(s.value);\n }\n s.writeValue = (value) => {\n const id = s._idCounter;\n writeValue(value);\n if (value === null) {\n this.ngZone.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n if (id !== s._idCounter &&\n s._getOptionId(value) === null &&\n s._elementRef.nativeElement.selectedIndex !== -1) {\n writeValue(value);\n }\n });\n }\n };\n }\n}\nFormlyFieldSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldSelect, deps: [{ token: i0.NgZone }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });\nFormlyFieldSelect.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyFieldSelect, selector: \"formly-field-select\", viewQueries: [{ propertyName: \"selectAccessor\", first: true, predicate: SelectControlValueAccessor, descendants: true }], usesInheritance: true, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `, isInline: true, directives: [{ type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i2.SelectMultipleControlValueAccessor, selector: \"select[multiple][formControlName],select[multiple][formControl],select[multiple][ngModel]\", inputs: [\"compareWith\"] }, { type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { type: i2.FormControlDirective, selector: \"[formControl]\", inputs: [\"formControl\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"], exportAs: [\"ngForm\"] }, { type: i3.ɵFormlyAttributes, selector: \"[formlyAttributes]\", inputs: [\"formlyAttributes\", \"id\"] }, { type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { type: i2.NgSelectOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { type: i2.ɵNgSelectMultipleOption, selector: \"option\", inputs: [\"ngValue\", \"value\"] }, { type: i2.SelectControlValueAccessor, selector: \"select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]\", inputs: [\"compareWith\"] }], pipes: { \"async\": i1.AsyncPipe, \"formlySelectOptions\": i4.FormlySelectOptionsPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyFieldSelect, decorators: [{\n type: Component,\n args: [{\n selector: 'formly-field-select',\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i0.ViewContainerRef }]; }, propDecorators: { selectAccessor: [{\n type: ViewChild,\n args: [SelectControlValueAccessor]\n }] } });\n\nclass FormlyBootstrapSelectModule {\n}\nFormlyBootstrapSelectModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapSelectModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapSelectModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapSelectModule, declarations: [FormlyFieldSelect], imports: [CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule, i3.FormlyModule] });\nFormlyBootstrapSelectModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapSelectModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'select',\n component: FormlyFieldSelect,\n wrappers: ['form-field'],\n },\n { name: 'enum', extends: 'select' },\n ],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapSelectModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyFieldSelect],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyBootstrapFormFieldModule,\n FormlySelectModule,\n FormlyModule.forChild({\n types: [\n {\n name: 'select',\n component: FormlyFieldSelect,\n wrappers: ['form-field'],\n },\n { name: 'enum', extends: 'select' },\n ],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapSelectModule, FormlyFieldSelect };\n","import * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, ViewChild, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport * as i1$1 from '@ngx-formly/core';\nimport { FieldWrapper, FormlyModule } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nclass FormlyWrapperAddons extends FieldWrapper {\n constructor(hostContainerRef) {\n super();\n this.hostContainerRef = hostContainerRef;\n }\n set content(templateRef) {\n if (templateRef && this.hostContainerRef) {\n this.hostContainerRef.createEmbeddedView(templateRef);\n }\n }\n addonRightClick($event) {\n this.props.addonRight.onClick?.(this.field, $event);\n }\n addonLeftClick($event) {\n this.props.addonLeft.onClick?.(this.field, $event);\n }\n}\nFormlyWrapperAddons.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyWrapperAddons, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });\nFormlyWrapperAddons.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.3.12\", type: FormlyWrapperAddons, selector: \"formly-wrapper-addons\", viewQueries: [{ propertyName: \"content\", first: true, predicate: [\"fieldTypeTemplate\"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: \"\\n
\\n \\n \\n {{ props.addonLeft.text }}\\n
\\n \\n \\n \\n {{ props.addonRight.text }}\\n \\n \\n
\\n\", styles: [\"formly-wrapper-form-field .input-group-btn{cursor:pointer}\\n\"], directives: [{ type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyWrapperAddons, decorators: [{\n type: Component,\n args: [{ selector: 'formly-wrapper-addons', encapsulation: ViewEncapsulation.None, template: \"\\n
\\n \\n \\n {{ props.addonLeft.text }}\\n
\\n \\n \\n \\n {{ props.addonRight.text }}\\n \\n \\n
\\n\", styles: [\"formly-wrapper-form-field .input-group-btn{cursor:pointer}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; }, propDecorators: { content: [{\n type: ViewChild,\n args: ['fieldTypeTemplate', { static: true }]\n }] } });\n\nfunction addonsExtension(field) {\n if (!field.props || (field.wrappers && field.wrappers.indexOf('addons') !== -1)) {\n return;\n }\n if (field.props.addonLeft || field.props.addonRight) {\n field.wrappers = [...(field.wrappers || []), 'addons'];\n }\n}\n\nclass FormlyBootstrapAddonsModule {\n}\nFormlyBootstrapAddonsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapAddonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapAddonsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapAddonsModule, declarations: [FormlyWrapperAddons], imports: [CommonModule,\n ReactiveFormsModule, i1$1.FormlyModule] });\nFormlyBootstrapAddonsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapAddonsModule, imports: [[\n CommonModule,\n ReactiveFormsModule,\n FormlyModule.forChild({\n wrappers: [{ name: 'addons', component: FormlyWrapperAddons }],\n extensions: [{ name: 'addons', extension: { postPopulate: addonsExtension } }],\n }),\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapAddonsModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [FormlyWrapperAddons],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n FormlyModule.forChild({\n wrappers: [{ name: 'addons', component: FormlyWrapperAddons }],\n extensions: [{ name: 'addons', extension: { postPopulate: addonsExtension } }],\n }),\n ],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapAddonsModule };\n","import * as i0 from '@angular/core';\nimport { NgModule } from '@angular/core';\nimport { FormlyBootstrapFormFieldModule } from '@ngx-formly/bootstrap/form-field';\nimport { FormlyBootstrapInputModule } from '@ngx-formly/bootstrap/input';\nimport { FormlyBootstrapTextAreaModule } from '@ngx-formly/bootstrap/textarea';\nimport { FormlyBootstrapRadioModule } from '@ngx-formly/bootstrap/radio';\nimport { FormlyBootstrapCheckboxModule } from '@ngx-formly/bootstrap/checkbox';\nimport { FormlyBootstrapMultiCheckboxModule } from '@ngx-formly/bootstrap/multicheckbox';\nimport { FormlyBootstrapSelectModule } from '@ngx-formly/bootstrap/select';\nimport { FormlyBootstrapAddonsModule } from '@ngx-formly/bootstrap/addons';\n\nclass FormlyBootstrapModule {\n}\nFormlyBootstrapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nFormlyBootstrapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapModule, imports: [FormlyBootstrapFormFieldModule,\n FormlyBootstrapInputModule,\n FormlyBootstrapTextAreaModule,\n FormlyBootstrapRadioModule,\n FormlyBootstrapCheckboxModule,\n FormlyBootstrapMultiCheckboxModule,\n FormlyBootstrapSelectModule,\n FormlyBootstrapAddonsModule] });\nFormlyBootstrapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapModule, imports: [[\n FormlyBootstrapFormFieldModule,\n FormlyBootstrapInputModule,\n FormlyBootstrapTextAreaModule,\n FormlyBootstrapRadioModule,\n FormlyBootstrapCheckboxModule,\n FormlyBootstrapMultiCheckboxModule,\n FormlyBootstrapSelectModule,\n FormlyBootstrapAddonsModule,\n ]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.3.12\", ngImport: i0, type: FormlyBootstrapModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n FormlyBootstrapFormFieldModule,\n FormlyBootstrapInputModule,\n FormlyBootstrapTextAreaModule,\n FormlyBootstrapRadioModule,\n FormlyBootstrapCheckboxModule,\n FormlyBootstrapMultiCheckboxModule,\n FormlyBootstrapSelectModule,\n FormlyBootstrapAddonsModule,\n ],\n }]\n }] });\n\n/*\n * Public API Surface of bootstrap\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FormlyBootstrapModule };\n","
\n \n \n \n {{ 'tag' | translate }}\n \n 0\" style=\"top:-17px !important\">\n {{formControl.value.length}}\n \n
\n\n\n","import { Component } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { SelectTagsPopupModel } from 'src/app/_models/claimant-on-web/claimant-on-web';\n\n@Component({\n selector: 'formly-tag-input',\n templateUrl: \"./formly-tag-input.component.html\"\n})\nexport class FormlyTagInputComponent extends FieldType {\n\n inputModel: SelectTagsPopupModel;\n showCreateTagPanel: boolean = false;\n\n fnOpenCreateTagPanel() {\n this.inputModel = new SelectTagsPopupModel();\n this.inputModel.tagList = this.formControl.value;\n this.inputModel.claimantId = this.model.userId;\n this.inputModel.claimantName = this.model.userName;\n this.showCreateTagPanel = true;\n }\n\n fnSelectCreateTag(data) {\n if (data && data.tagList) {\n this.formControl.setValue(data.tagList);\n this.to.change(this.field, data);\n }\n this.fnCloseCreateTagPanel(true);\n }\n\n fnCloseCreateTagPanel(isClose: boolean) {\n if (isClose) {\n this.showCreateTagPanel = false;\n }\n }\n\n}\n","\n\n\n\n","import { Component } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\n\n@Component({\n selector: 'formly-advance-balance-input',\n templateUrl: \"./formly-advance-balance-input.component.html\"\n})\nexport class FormlyAdvanceBalanceInputComponent extends FieldType {\n\n showAdvancePassbookPanel: boolean = false;\n currencyCode: string=\"\";\n\n showAdvancePassbook() {\n this.showAdvancePassbookPanel = true;\n this.currencyCode = this.model.currencyCode;\n }\n\n closeAdvancePassbookPanel() {\n this.showAdvancePassbookPanel = false;\n }\n\n}\n","
\n \n \n {{ field.templateOptions.options[0].label }}\n \n ({{field.templateOptions.options[0].name}})\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n {{to.attributes.instruction}}\n \n \n\n \n \n \n\n\n \n \n \n\n
\n \n {{ \"label_Required\" | translate }}\n \n
\n\n
\n {{ \"enter_valid_email\" | translate }}\n
\n\n \n
\n \n {{error}}\n \n
\n
\n \n {{error}}\n \n
\n \n\n\n\n

\n \n {{field.templateOptions.note}}\n \n \n {{formControl.value ? formControl.value.length : 0}} / {{ field.templateOptions.maxLength}}\n \n \n

\n\n

\n \n {{formControl.value ? formControl.value.length : 0}} / {{ field.templateOptions.maxLength}}\n \n

\n \n\n\n

\n \n

\n\n
","import { AfterViewInit, ChangeDetectorRef, Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'formly-text-input',\n templateUrl: \"./formly-text-input.component.html\"\n})\nexport class FormlyTextInputComponent extends FieldType implements OnInit, OnDestroy, AfterViewInit {\n\n @ViewChild('textboxToShowTooltip') textarea: ElementRef\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n mainClass: string = \"input-group margin-top-20\";\n notesClass: string = \"\";\n constructor(private dynamicFormService: DynamicFormService, private cdRef: ChangeDetectorRef\n , private sanitizer: DomSanitizer) {\n super();\n }\n ngAfterViewInit() {\n //https://gitter.im/formly-js/ng2-formly?at=5ddf7f0b55066245982d0e87\n //https://stackblitz.com/edit/angular-x3wc97-gijbl3\n this.form.valueChanges.subscribe(() => {\n this.cdRef.detectChanges()\n });\n\n setTimeout(() => {\n this.checkOverflow();\n }, 300);\n\n }\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n if (this.field?.templateOptions?.mainClass) {\n this.mainClass = this.field?.templateOptions?.mainClass;\n }\n if (this.field?.templateOptions?.headingClass) {\n this.notesClass = this.field?.templateOptions?.headingClass;\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n if (this.isFormSubmitted) {\n if (!this.formControl.value || this.formControl.value.trim() == '') {\n this.formControl.setValue('');\n }\n }\n setTimeout(() => {\n this.cdRef.detectChanges()\n }, 100);\n \n });\n\n\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n this.cdRef.detectChanges()\n }\n }\n\n omitSpecialChar(event) {\n if (this.field.templateOptions.omitSpecialChar) {\n let k;\n k = event.charCode;\n return (k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32;\n } \n if (this.field.templateOptions.alphaNumericOnly) {\n return this.alphaNumericOnly(event);\n }\n if (this.field.templateOptions.allowOnlyApostropheAndHyphenChar) {\n return this.allowOnlyApostropheAndHyphenChar(event);\n }\n if (this.field.templateOptions.allowAcuteChar) {\n return this.allowAcuteChar(event);\n }\n if (this.field.templateOptions.allowOnlyNumeric) {\n return this.numaricOnly(event);\n }\n if (this.field.templateOptions.alphaNumericSpecialWithoutComma) {\n return this.alphaNumericSpecialWithoutComma(event);\n }\n return this.notAllowOnlySpaceChar(event);\n }\n\n numaricOnly(e) {\n let regex =this.field.templateOptions.allowSpecialChar ? new RegExp(\"^[ 0-9_~`!$%^*(){};:\\\"'<>,@./#&+-]*$\") : new RegExp(\"^[0-9 ]+$\");\n let str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\n if (regex.test(str)) {\n return true;\n }\n else return false;\n //return e.charCode >= 48 && e.charCode <= 57\n }\n alphaNumericOnly(e) {\n let regex =this.field.templateOptions.allowSpecialChar ?\n new RegExp(\"^[ A-Za-z0-9_~`!$%^*(){};:\\\"'<>,@./#&+-]*$\") : new RegExp(\"^[a-zA-Z0-9 ]+$\");\n let str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\n if (regex.test(str)) {\n return true;\n }\n else return false;\n\n }\n\n allowOnlyApostropheAndHyphenChar(e) {\n let regex = new RegExp(\"^[a-zA-Z '-]+$\");\n let str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\n if (regex.test(str)) {\n return true;\n }\n else return false;\n }\n\n allowAcuteChar(e) {\n let regex = this.field.templateOptions.allowSpecialChar ?\n new RegExp(\"^[ A-Za-z_~`!$%^*(){};:\\\"'<>,@./#&+-]*$\"): new RegExp(\"^[a-zA-ZÀ-ú\\p{L} '-]+$\");\n let str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\n if (regex.test(str)) {\n return true;\n }\n else return false;\n }\n alphaNumericSpecialWithoutComma(e) {\n let regex = new RegExp(\"^[ A-Za-z0-9_~`!$%^*(){};:\\\"'<>@./#&+-]*$\"); \n let str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\n if (regex.test(str)) {\n return true;\n }\n else return false;\n\n }\n \n notAllowOnlySpaceChar(e) {\n if(this.field.templateOptions.notAllowOnlySpaceChar)\n { \n let str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\n let s = str.trim();\n if(!s && !this.formControl.value)\n {\n return false;\n }\n }\n return true;\n }\n\n showTooltip = false;\n checkOverflow() {\n this.showTooltip = this.textarea.nativeElement.offsetHeight < this.textarea.nativeElement.scrollHeight ||\n this.textarea.nativeElement.offsetWidth < this.textarea.nativeElement.scrollWidth;\n }\n sanitizerHtml(htmlCustomMsg) {\n if (htmlCustomMsg) {\n let safeText = this.sanitizer.bypassSecurityTrustHtml(htmlCustomMsg);\n return safeText;\n\n }\n else {\n return ' ';\n }\n }\n}","
\n \n \n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n\n
\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { DatePipe } from '@angular/common';\n\n\n@Component({\n selector: 'formly-integer-input',\n templateUrl: \"./formly-integer-input.component.html\"\n})\nexport class FormlyIntegerInputComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(private dynamicFormService: DynamicFormService, private datePipe: DatePipe, private cdr:ChangeDetectorRef) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n this.cdr.detectChanges();\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onNumberInput() {\n this.to.change(this.field, this.formControl.value);\n }\n\n numberOnly(event): boolean {\n const charCode = event.which ? event.which : event.keyCode;\n if (this.field?.templateOptions?.allowNotZero && charCode == 48 && \n ((this.formControl.value != null && parseInt(this.formControl.value)==0) || this.formControl.value == null)) {\n return false;\n }\n\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\n return false;\n }\n return true;\n }\n\n}","
\n

\n {{field.templateOptions.label}}*\n

\n \n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n

\n \n {{field.templateOptions.note}}\n \n \n {{formControl.value ? formControl.value.length : 0}} / {{ field.templateOptions.maxLength}}\n \n

\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n\n@Component({\n selector: 'formly-textarea-input',\n templateUrl: \"./formly-textarea-input.component.html\"\n})\nexport class FormlyTextareaInputComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n if (this.isFormSubmitted) {\n if (!this.formControl.value || this.formControl.value.trim() == '') {\n this.formControl.setValue('');\n }\n }\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onTextInput() {\n this.to.change(this.field, this.formControl.value);\n }\n\n}\n","
\n \n \n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n
","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n\n@Component({\n selector: 'formly-number-input',\n templateUrl: \"./formly-number-input.component.html\"\n})\nexport class FormlyNumberInputComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onNumberInput() {\n this.to.change(this.field, this.formControl.value);\n }\n\n}","import { Component } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\n\n@Component({\n selector: 'formly-disabled-input',\n templateUrl: \"./formly-disabled-input.component.html\"\n})\nexport class FormlyDisabledInputComponent extends FieldType {\n\n fieldKey: string;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n }\n}","
\n \n \n
","
\n \n \n \n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n

\n \n {{field.templateOptions.note}}\n \n

\n
\n","import { AfterViewInit, Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { FlatpickrOptions } from 'ng2-flatpickr';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-calendar-input',\n templateUrl: \"./formly-calendar-input.component.html\"\n})\nexport class FormlyCalendarInputComponent extends FieldType implements OnInit, OnDestroy, AfterViewInit {\n @Output() dateChange = new EventEmitter();\n \n @ViewChild(\"dateInput\") dateInput: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n isLabelVisible: boolean = false;\n addTopMargin: boolean = false;\n calendarLabel: string = \"\";\n dateFormats = [\n {\n id:1,\n name:\"d/m/y\"\n },\n { \n id:2,\n name:\"d/m/Y\"\n },\n {\n id:3,\n name:\"m/d/d\"\n },\n {\n id:4,\n name:\"m/d/Y\"\n },\n {\n id:5,\n name:\"y/m/d\"\n },\n {\n id:6,\n name:\"Y/M\"\n },\n {\n id:7,\n name:\"m-d-y\"\n },\n {\n id:8,\n name:\"d-m-y\"\n },\n {\n id:9,\n name:\"d-M-y\"\n },\n {\n id:10,\n name:\"d-M-Y\"\n },\n {\n id:11,\n name:\"d.m.y\"\n },\n {\n id:12,\n name:\"d.m.Y\"\n },\n {\n id:13,\n name:\"y.m.d\"\n },\n {\n id:14,\n name:\"M d, y\"\n },\n {\n id:15,\n name:\"M d, Y\"\n },\n {\n id:16,\n name:\"dmy\"\n },\n {\n id:17,\n name:\"ymd\"\n },\n {\n id:18,\n name:\"dmY\"\n },\n {\n id:19,\n name:\"Ymd\"\n },\n ];\n dateFormatString: string = \"d-M-Y\";\n datePickerOptions: FlatpickrOptions = {\n mode: \"single\",\n defaultDate: new Date(),\n altInput: true,\n altFormat: this.dateFormatString,\n dateFormat: this.dateFormatString\n };\n disabled:boolean;\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n \n\n ngOnInit() {\n this.datePickerOptions.defaultDate = new Date();\n if (this.field && this.field.formControl && this.field.formControl.value) {\n this.datePickerOptions.defaultDate = new Date(this.field.formControl.value);\n }\n\n if (this.field && this.field.props) {\n this.calendarLabel = this.field.props.label ? this.field.props.label :'';\n this.isLabelVisible = this.field.props.isLabelVisible;\n this.addTopMargin = this.field.props.addTopMargin;\n if(this.field.props.hideDefaultDate)\n {\n this.datePickerOptions.defaultDate = this.field.props.hideDefaultDate ? '' : this.datePickerOptions.defaultDate;\n }\n }\n\n if (this.field && this.field.props && this.field.props.maxDate) {\n this.datePickerOptions.maxDate = new Date(this.field.props.maxDate);\n }\n\n if (this.field && this.field.props && this.field.props.minDate) {\n this.datePickerOptions.minDate = new Date(this.field.props.minDate);\n }\n\n if (this.field && this.field.props && this.field.props.dateFormat) {\n this.datePickerOptions.dateFormat = this.field.props.dateFormat;\n this.dateFormatString = this.dateFormats.find(it=>it.id==this.field.props.dateFormat).name;\n this.datePickerOptions = {\n mode: \"single\",\n defaultDate: new Date(),\n altInput: true,\n altFormat: this.dateFormatString,\n dateFormat: this.dateFormatString\n };\n }\n\n if (this.field && this.field.props && this.field.props.altFormat) {\n this.datePickerOptions.altFormat = this.field.props.altFormat;\n }\n\n \n\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n ngAfterViewInit() {\n //Initialize datePicker\n this.dateInput.nativeElement.flatpickr(this.datePickerOptions);\n }\n\n onValueChange() {\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n }\n}\n","
\n \n \n \n \n \n\n 0\">\n \n \n {{ \"label_ViewExpensePolicy\" | translate }}\n \n \n \n\n \n \n \n

\n {{ 'pre_approval_balance' | translate }}: {{model.preApprovalBalance| number: \"1.2-2\"}}\n

\n\n

\n {{ 'registration_number' | translate }}:\n {{fnReturnRegNum(model.mileage.registrationNumber)}}{{fnReturnMakeModel(model.mileage.makeModel)}}\n

\n\n
\n \n {{ \"label_Required\" | translate }}\n \n
\n\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n \n ","import { Component, OnDestroy, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { BaseCategoryTypeEnum, ExpenseStatusEnum, ProjectBudgetEntityType } from 'src/app/_models';\nimport { SelectBusinessPurposePopupModel, SelectCostCentrePopupModel, SelectCustomerPopupModel, SelectExpenseCategoryPopupModel, SelectForignCurrencyPopupModel, SelectLocationPopupModel, SelectPreApprovalTagPopupModel, SelectProjectPopupModel, SelectReceiptTypePopupModel, SelectStatesPopupModel } from 'src/app/_models/claimant-on-web/claimant-on-web';\nimport { SelectAdditionalFieldDataPopupModel } from 'src/app/_models/policy/policy-data';\nimport { UTCDateTime } from 'src/app/common/commonvariables';\nimport { Constants } from 'src/util/constants';\nimport { SelectVehicleModel } from '../../../../_models/claimant-on-web/claimant-on-web';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { AlertPanelModel } from 'src/app/_models/common/alertPanelModel';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { SelectContainerInputModel } from \"src/app/_models/container/container\";\n\n@Component({\n selector: 'formly-field-input',\n templateUrl: \"./formly-input-panel.component.html\"\n})\nexport class FormlyFieldInputPanelComponent extends FieldType implements OnInit, OnDestroy {\n\n inputModel: any;\n showSelectExpenseCategoryPanel: boolean;\n showSelectPreApprovalTagPanel: boolean;\n showSelectForeignCurrencyPanel: boolean;\n showSelectStatesPanel: boolean;\n showSelectBusinessPurposePanel: boolean;\n showSelectAdditionalFieldDataPanel: boolean;\n showExpensePolicyPanel: boolean;\n showSelectCustomerPanel: boolean;\n showSelectProjectPanel: boolean;\n showSelectCostCentrePanel: boolean;\n showSelectReceiptTypePanel: boolean;\n showVehiclePanel: boolean;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n openPanelSubscription: Subscription;\n showContainerListPanel: boolean;\n showSelectLocationPanel: boolean;\n fieldKey: string = 'InputPanel';\n\n showPolicyInputModel: SelectExpenseCategoryPopupModel;\n alertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n isCostCentreSelectionHide: boolean = false;\n isLocationSelectionHide = false;\n constructor(private dynamicFormService: DynamicFormService, private translate: TranslateService, private cdr: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit() {\n if (this.field.id) {\n this.fieldKey = this.field.id ?? 'InputPanel';\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n this.cdr.detectChanges();\n });\n this.openPanelSubscription = this.dynamicFormService.getOpenPanelEvent().subscribe(key => {\n if (key == this.field.key) {\n this.fnOpenSelectionPanel();\n }\n });\n\n if (this.field && this.field.templateOptions) {\n let isVisibleOnLoad = this.field.templateOptions.isVisibleOnLoad;\n\n if (isVisibleOnLoad && this.field.key == 'expenseCategoryName') {\n this.fnOpenSelectionPanel();\n }\n\n this.isCostCentreSelectionHide = this.field.templateOptions.isCostCentreSelectionHide;\n this.isLocationSelectionHide = this.field.templateOptions.isLocationSelectionHide;\n }\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n if (this.openPanelSubscription) {\n this.openPanelSubscription.unsubscribe();\n }\n }\n\n fnOpenSelectionPanel() {\n if (this.field.key.toString().startsWith(Constants.ADDITIONAL_FIELD_DYNAMIC_KEY)) {\n let additionalFieldId = parseInt(this.field.key.toString().replace(Constants.ADDITIONAL_FIELD_DYNAMIC_KEY, ''));\n let additionalFieldValueId = this.model[this.field.key.toString() + Constants.ADDITIONAL_FIELD_DYNAMIC_ID_KEY];\n this.inputModel = new SelectAdditionalFieldDataPopupModel();\n this.inputModel.additionalFieldDataList = this.field.templateOptions.attributes.data;\n this.inputModel.additionalFieldId = additionalFieldId;\n this.inputModel.fieldValueId = additionalFieldValueId;\n this.showSelectAdditionalFieldDataPanel = true;\n }\n else {\n switch (this.field.key.toString()) {\n case 'preApprovalTag':\n this.inputModel = new SelectPreApprovalTagPopupModel();\n this.inputModel.preApprovalId = this.model.preApprovalId;\n this.inputModel.claimantId = this.model.userId;\n this.inputModel.claimantName = this.model.userName;\n this.showSelectPreApprovalTagPanel = true;\n break;\n case 'expenseCategoryName':\n this.inputModel = new SelectExpenseCategoryPopupModel();\n this.inputModel.orgExpenseCategoryId = this.model.orgExpenseCategoryId;\n this.inputModel.expenseDate = this.model.expenseDate;\n\n let disableBaseCategoryIds = [];\n if (this.model.isEditMode && this.model.saveStatus == ExpenseStatusEnum.IncompleteCardExpense) {\n disableBaseCategoryIds.push(BaseCategoryTypeEnum.Mileage);\n disableBaseCategoryIds.push(BaseCategoryTypeEnum.MileageGoogle);\n disableBaseCategoryIds.push(BaseCategoryTypeEnum.MileageGPS);\n if (this.model.amount < 0) {\n disableBaseCategoryIds.push(BaseCategoryTypeEnum.Entertainment);\n }\n\n this.inputModel.isIncompleteCreditCardExpense = true;\n }\n this.inputModel.disableBaseCategoryIds = disableBaseCategoryIds;\n this.inputModel.claimantId = this.model.userId;\n this.inputModel.claimantName = this.model.userName;\n this.inputModel.baseCategoryId = this.model.baseCategoryId;\n this.inputModel.isFmEditingExpense = this.model.isFmEditingExpense;\n this.inputModel.nrfcStatus = this.model.nrfcStatus;\n this.inputModel.receiptsInfo = this.model.receiptsInfo;\n\n this.showSelectExpenseCategoryPanel = true;\n break;\n case 'spentCurrencyCode':\n case 'currencyCode':\n if (!this.model.spentCurrencyId) {\n this.model.spentAmount = this.model.amount;\n }\n this.inputModel = new SelectForignCurrencyPopupModel();\n this.inputModel.expenseDate = this.model.expenseDate;\n this.inputModel.currencyId = this.model.currencyId;\n this.inputModel.currencyCode = this.model.currencyCode;\n this.inputModel.spentCurrencyId = this.model.spentCurrencyId;\n this.inputModel.spentCurrencyCode = this.model.spentCurrencyCode;\n this.inputModel.conversionRate = this.model.conversionRate;\n this.inputModel.baseCurrencyIcon = this.model.baseCurrencyIcon;\n this.showSelectForeignCurrencyPanel = true;\n break;\n case 'stateName':\n this.inputModel = new SelectStatesPopupModel();\n this.inputModel.stateId = this.model.stateId;\n this.inputModel.stateName = this.model.stateName;\n this.showSelectStatesPanel = true;\n break;\n case 'bpValue':\n this.inputModel = new SelectBusinessPurposePopupModel();\n this.inputModel.bpId = this.model.bpId;\n this.inputModel.bpValue = this.model.bpValue;\n this.inputModel.businessPurposeCaption = this.field.templateOptions.label.replace('Select ', '');\n this.showSelectBusinessPurposePanel = true;\n break;\n case 'vatNoVatReceiptType':\n this.inputModel = new SelectReceiptTypePopupModel();\n this.inputModel.vatNoVatReceiptTypeId = this.model.vatNoVatReceiptTypeId;\n this.inputModel.options = this.field.templateOptions.options;\n this.showSelectReceiptTypePanel = true;\n break;\n case 'derivedName':\n this.inputModel = new SelectVehicleModel();\n this.inputModel.vehicleId = this.model.mileage.vehicleId;\n this.inputModel.derivedName = this.model.mileage.derivedName;\n this.inputModel.registrationNumber = this.fnReturnRegNum(this.model.mileage.registrationNumber);\n this.inputModel.makeModel = this.fnReturnMakeModel(this.model.mileage.makeModel);\n this.inputModel.claimantId = this.model.userId;\n this.inputModel.claimantName = this.model.userName;\n\n this.inputModel.options = this.field.templateOptions.options;\n let todaysDate = this.getUTCTimeStamp(new Date());\n let expenseDateUnix = this.getUTCTimeStamp(new Date(this.model.expenseDate));\n if (expenseDateUnix < todaysDate) {\n this.fnDisplayAlertPanel()\n }\n else {\n this.showVehiclePanel = true;\n }\n\n break;\n case 'customerName':\n this.inputModel = new SelectCustomerPopupModel();\n this.inputModel.customerId = this.model.customerId;\n this.showSelectCustomerPanel = true;\n break;\n case 'newCostCentreName':\n this.inputModel = new SelectCostCentrePopupModel();\n this.inputModel.costCentreId = this.model.newCostCentreId;\n this.inputModel.isSelectionHide = this.isCostCentreSelectionHide;\n this.showSelectCostCentrePanel = true;\n break;\n case 'newLocationName':\n this.inputModel = new SelectLocationPopupModel();\n this.inputModel.locationId = this.model.newLocationId;\n this.inputModel.isSelectionHide = this.isLocationSelectionHide;\n this.showSelectLocationPanel = true;\n break;\n case 'entityName':\n case 'projectName':\n this.inputModel = new SelectProjectPopupModel();\n this.inputModel.entityId = this.model.entityId;\n this.inputModel.projectDetailsId = this.model.projectDetailsId;\n\n this.inputModel.isCostCentrePackagePurchasedOrTrial = this.model.isCostCentrePackagePurchasedOrTrial;\n this.inputModel.isCustomerPackagePurchasedOrTrial = this.model.isCustomerPackagePurchasedOrTrial;\n this.inputModel.isProjectBudgetPurchasedOrTrial = this.model.isProjectBudgetPurchasedOrTrial;\n this.inputModel.claimantId = this.model.userId;\n this.inputModel.claimantName = this.model.userName;\n\n this.showSelectProjectPanel = true;\n break;\n case 'containerName':\n this.inputModel = new SelectContainerInputModel();\n this.inputModel.claimantId = this.model.userId;\n this.inputModel.containerId = this.model.containerId;\n this.inputModel.containerName = this.model.containerName;\n this.showContainerListPanel = true;\n break;\n }\n }\n }\n getUTCTimeStamp(date) {\n let now_utc = Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n 0,\n 0,\n 0\n );\n\n return now_utc;\n }\n fnDisplayAlertPanel() {\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [this.translate.instant(\"past_date_selected_veh_msg1\")],\n \"\",\n this.translate.instant(\"oK_text\"),\n true,\n \"\"\n );\n }\n alertPanelReceiver(returnValue) {\n this.alertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n }\n closeSelectionPanel(isClose) {\n if (isClose) {\n this.hidePanel();\n }\n }\n\n onSelection(data) {\n let value = data.value;\n\n if (this.field.key == 'preApprovalTag') {\n this.model.preApprovalId = data.preApprovalId;\n this.model.preApprovalTag = data.preApprovalTag;\n this.model.preApprovalBalance = data.preApprovalBalance;\n value = data.preApprovalTag;\n }\n else if (this.field.key == 'expenseCategoryName') {\n value = data.expenseCategoryName;\n this.model.customFields = data.customFields;\n this.model.categoryAdditionalFieldData = data.categoryAdditionalFieldData;\n this.model.isNotesMandatory = data.isNotesMandatory;\n this.model.isCFPReporting = data.isCFPReporting;\n this.model.baseCategoryId = data.baseCategoryId;\n this.model.orgSubCategoryMappings = data.orgSubCategoryMappings;\n data.amount = this.model.amount;\n data.receiptsInfo = this.model.receiptsInfo;\n data.expenseDate = this.model.expenseDate;\n data.supplier = this.model.supplier;\n }\n else if (this.field.key === 'spentCurrencyCode') {\n value = data.spentCurrencyCode;\n }\n else if (this.field.key === 'currencyCode') {\n value = data.currencyCode;\n }\n else if (this.field.key == 'bpValue') {\n value = data.bpValue;\n this.model.bpId = data.bpId;\n }\n else if (this.field.key == 'stateName') {\n value = data.stateName;\n this.model.stateId = data.stateId;\n this.model.stateName = data.stateName;\n }\n else if (this.field.key.toString().startsWith(Constants.ADDITIONAL_FIELD_DYNAMIC_KEY)) {\n value = data.fieldValue;\n }\n else if (this.field.key == 'vatNoVatReceiptType') {\n value = data.vatNoVatReceiptType;\n this.model.vatNoVatReceiptType = data.vatNoVatReceiptType;\n this.model.vatNoVatReceiptTypeId = data.vatNoVatReceiptTypeId;\n }\n else if (this.field.key == 'customerName') {\n value = data.customerName;\n this.model.customerId = data.customerId;\n this.model.customerName = data.customerName;\n }\n else if (this.field.key == 'newCostCentreName') {\n value = data.costCentreName;\n this.model.newCostCentreId = data.costCentreId;\n this.model.newCostCentreName = data.costCentreName;\n }\n else if (this.field.key == 'derivedName') {\n value = data.derivedName;\n this.model.mileage.vehicleId = data.vehicleId;\n this.model.mileage.registrationNumber = this.fnReturnRegNum(data.registrationNumber);\n this.model.mileage.makeModel = this.fnReturnMakeModel(data.makeModel);\n this.model.mileage.derivedName = data.derivedName;\n this.model.mileage.vehicleTypeId = data.vehicleTypeId;\n this.model.mileage.orgVehicleTypeMapId = data.orgVehicleTypeMapId;\n this.model.mileage.mileageAllowance = data.mileageAllowance;\n this.model.mileage.docStatus = data.docStatus;\n }\n else if (this.field.key == 'entityName' || this.field.key == 'projectName') {\n value = data[this.field.key];\n this.model.customerId = data.entityType == ProjectBudgetEntityType.Customer ? data.entityId : 0;\n this.model.customerName = data.entityType == ProjectBudgetEntityType.Customer ? data.entityName : null;\n this.model.projectDetailsId = data.projectDetailsId;\n this.model.projectName = data.projectName;\n this.model.projectBudgetDetailsId = data.projectBudgetDetailsId;\n this.model.newCostCentreId = data.entityType == ProjectBudgetEntityType.CostCentre ? data.entityId : 0;\n this.model.entityId = data.entityId;\n this.model.entityType = data.entityType;\n this.model.entityName = data.entityName;\n }\n else if (this.field.key == 'containerName') {\n value = data[this.field.key];\n this.model.containerId = data.containerId;\n this.model.containerName = data.containerName;\n this.model.preApprovalId = data.preApprovalId;\n }\n else if (this.field.key == 'newLocationName') {\n value = data.locationName;\n this.model.newLocationId = data.locationId;\n this.model.newLocationName = data.locationName;\n }\n\n this.formControl.setValue(value);\n this.to.change(this.field, data);\n this.hidePanel();\n }\n\n hidePanel() {\n this.showSelectForeignCurrencyPanel = false;\n this.showSelectExpenseCategoryPanel = false;\n this.showSelectPreApprovalTagPanel = false;\n this.showSelectStatesPanel = false;\n this.showSelectBusinessPurposePanel = false;\n this.showSelectAdditionalFieldDataPanel = false;\n this.showExpensePolicyPanel = false;\n this.showSelectCustomerPanel = false;\n this.showSelectCostCentrePanel = false;\n this.showSelectProjectPanel = false;\n this.showSelectReceiptTypePanel = false;\n this.showVehiclePanel = false;\n this.showContainerListPanel = false;\n this.showSelectLocationPanel = false;\n }\n\n fnShowExpPolicy() {\n if (this.model.orgExpenseCategoryId) {\n this.showPolicyInputModel = new SelectExpenseCategoryPopupModel();\n this.showPolicyInputModel.orgExpenseCategoryId = this.model.orgExpenseCategoryId;\n this.showPolicyInputModel.expenseCategoryName = this.model.expenseCategoryName;\n this.showPolicyInputModel.claimantId = this.model.userId;\n this.showPolicyInputModel.expenseDate =\n new Date(UTCDateTime.getUTCDate(new Date(this.model.expenseDate))).valueOf();\n this.showExpensePolicyPanel = true;\n }\n }\n fnReturnRegNum(registrationNumber) {\n let regNum = '';\n if (registrationNumber == '' || registrationNumber == null\n || !registrationNumber) {\n regNum = '-';\n }\n else {\n regNum = registrationNumber;\n }\n return regNum;\n }\n fnReturnMakeModel(makeModel) {\n\n let makeMod = '';\n if (makeModel == '' || makeModel == null\n || !makeModel) {\n makeMod = '';\n }\n else {\n makeModel = makeModel.replace('(', '');\n makeModel = makeModel.replace(' ', '');\n makeModel = makeModel.replace(')', '');\n makeMod = ' (' + makeModel + ')';\n }\n return makeMod;\n }\n}\n","
\n
\n
\n
\n
\n

{{ (isAdvancesDisplay ? 'select_advance' : 'select_category') | translate }}

\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n {{ \"select_advance_text\" | translate: param }}\n
\n
\n
\n
    \n
  • \n \n \n \n {{item.expenseCategoryName}} \n \n \n \n
    \n \n ({{ 'vehicle_mangt_msg10' | translate }})\n \n \n
    \n \n
  • \n
\n\n
    \n
  • \n {{ 'cash_advance_on_credit_card_title' | translate }}\n {{item.amount}}\n
  • \n
\n
\n
\n
\n
\n
\n
\n\n","import { OnInit, Component, EventEmitter, Input, Output, OnDestroy, ChangeDetectorRef } from \"@angular/core\";\nimport { ExpenseCategoryRequest, ExpenseCategoryRequestInfo } from 'src/app/_models/claimant/expense-category-request';\nimport { environment } from \"src/environments/environment\";\nimport { SelectExpenseCategoryPopupModel } from 'src/app/_models/claimant-on-web/claimant-on-web';\nimport { BaseCategoryTypeEnum, EmailEnum, ApiRequest, IApiresponse } from \"src/app/_models\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { ExpenseCategoryService } from \"src/app/_services\";\nimport { Subscription } from \"rxjs\";\nimport { AdvancesService } from \"src/app/_services/advances/advance-service\";\nimport { AdvancePassbookItem } from \"src/app/_models/advances/advances\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { EmailSendRequest, IEmailSendRequest, ISendReminderResponse } from \"src/app/_models/common/email.model\";\nimport { EmailService } from \"src/app/_services/common/email.service\";\nimport { FunctionPackageEnum } from \"../../../../_models\";\nimport { OrganisationFunctionService } from \"../../../../_services/organisation-setting/organisation-function.service\";\n@Component({\n selector: \"select-category-panel\",\n templateUrl: \"./select-category-panel.component.html\"\n})\nexport class SelectCategoryPanelComponent implements OnInit, OnDestroy {\n\n @Input()\n inputData: SelectExpenseCategoryPopupModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n claimsSubscription: Subscription;\n claims: Claims;\n param: any;\n orgExpenseCategoryList = [];\n recentCategoryList: any = [];\n selectedOrgExpenseCategoryId: number = 0;\n selectedCategoryModel: SelectExpenseCategoryPopupModel;\n showPopUpForNoCategorySetup: boolean;\n showPopUpForNoCategorySetupModel: AlertPanelModel;\n isAdvancesDisplay: boolean = false;\n advancesList: any[] = [];\n selectedAdvanceId: number = 0;\n isAssignCategoriesToGradePurchased: boolean = false;\n isSupplierPurchased: boolean = false;\n hasReciept : boolean=false;\n constructor(\n private claimsService: ClaimsService,\n private expenseCategoryService: ExpenseCategoryService,\n private advancesService: AdvancesService,\n private translate: TranslateService,\n private emailService: EmailService,\n private organisationFunctionService: OrganisationFunctionService,\n private changeDetectorRef: ChangeDetectorRef,\n ) {\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {\n this.checkFunctionPurchased();\n this.fnGetOrgExpenseCategoryList();\n this.fnSetExpenseCategoryInputValues();\n }\n\n ngOnDestroy(): void {\n this.claimsSubscription.unsubscribe();\n }\n\n fnGetOrgExpenseCategoryList() {\n let request = new ExpenseCategoryRequest();\n request.WebApiName = \"GetExpenseCategoryByID\";\n request.WebApiVersion = environment.applicationVersion;\n request.RequestId = Number(environment.requestId);\n\n request.RequestInfo = new ExpenseCategoryRequestInfo();\n request.RequestInfo.OrgId = this.claims.OrgId;\n request.RequestInfo.LastUpdatedTimeStamp = 0;\n request.RequestInfo.IsForCreditCardExpense = this.inputData.isIncompleteCreditCardExpense;\n request.RequestInfo.UserId = this.inputData.claimantId;\n this.expenseCategoryService\n .getOrgExpenseCategory(request)\n .subscribe((response) => {\n if (response.responseInfo != null) {\n let resData = response.responseInfo;\n this.orgExpenseCategoryList = resData.categories.filter(i => i.isActive === true && i.baseCategoryId !== BaseCategoryTypeEnum.MileageGPS);\n let disableBaseCategoryIds = this.inputData && this.inputData.disableBaseCategoryIds ? this.inputData.disableBaseCategoryIds : [];\n if(this.inputData.receiptsInfo)\n {\n this.hasReciept = this.inputData.receiptsInfo.length> 0 ? true : false;\n if(this.hasReciept)\n {\n this.orgExpenseCategoryList = this.orgExpenseCategoryList.filter(i => i.baseCategoryId != BaseCategoryTypeEnum.Mileage && \n i.baseCategoryId != BaseCategoryTypeEnum.MileageGPS && i.baseCategoryId != BaseCategoryTypeEnum.MileageGoogle)\n }\n }\n \n if (this.isAssignCategoriesToGradePurchased)\n this.orgExpenseCategoryList = this.orgExpenseCategoryList.filter(i => !disableBaseCategoryIds.includes(i.baseCategoryId) && i.isAssignedToGrade);\n else\n this.orgExpenseCategoryList = this.orgExpenseCategoryList.filter(i => !disableBaseCategoryIds.includes(i.baseCategoryId));\n\n if (this.inputData.isFmEditingExpense)\n {\n this.orgExpenseCategoryList = this.orgExpenseCategoryList.filter(i => i.baseCategoryId == this.inputData.baseCategoryId);\n }\n \n \n if (this.orgExpenseCategoryList.length > 0) {\n this.fnSortCategoryList();\n this.fnGetRecentCategoriesOnTop();\n }\n else {\n this.fnShowNoCategoriesAssigned();\n }\n }\n });\n }\n fnSelectExpenseCategory(item: any) {\n if (item) { \n this.selectedCategoryModel = new SelectExpenseCategoryPopupModel();\n this.selectedCategoryModel.orgExpenseCategoryId = item.orgExpenseCategoryId;\n this.selectedCategoryModel.expenseCategoryName = item.expenseCategoryName;\n this.selectedCategoryModel.baseCategoryId = item.baseCategoryId;\n this.selectedCategoryModel.isPolicyAvailable = item.isPolicyAvailable;\n this.selectedCategoryModel.advanceId = 0;\n this.selectedCategoryModel.isTipsEnabled = item.isTipsEnabled;\n this.selectedCategoryModel.customFields = item.customFields;\n this.selectedCategoryModel.isNotesMandatory = item.isNotesMandatory;\n this.selectedCategoryModel.categoryAdditionalFieldData = item.categoryAdditionalFieldData\n this.selectedCategoryModel.isCFPReporting = item.isCFPReporting;\n this.selectedCategoryModel.orgSubCategoryMappings = item.orgSubCategoryMappings;\n if (item.expenseCategoryId == 28) {\n //cash advance on credit card category handling\n this.showAdvancesList();\n }\n else {\n this.selectItemEvent.emit(this.selectedCategoryModel);\n }\n }\n }\n\n fnShowNoCategoriesAssigned() {\n this.showPopUpForNoCategorySetupModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n this.translate.instant(\"text_cancel\"),\n this.translate.instant(\"label_confirm\"),\n true,\n this.translate.instant(\"no_categories_assigned\")\n );\n this.showPopUpForNoCategorySetup = true;\n this.changeDetectorRef.detectChanges();\n }\n\n checkFunctionPurchased() {\n const functionIds = [FunctionPackageEnum.assigncategoriestograde, FunctionPackageEnum.Supplier];\n this.organisationFunctionService.checkFunctionsSubscribed(functionIds, this.claims.OrgId).subscribe((subscription) => {\n this.isAssignCategoriesToGradePurchased = subscription.indexOf(FunctionPackageEnum.assigncategoriestograde) > -1;\n this.isSupplierPurchased = subscription.indexOf(FunctionPackageEnum.Supplier) > -1;\n });\n } \n\n fnShowPopUpForNoCategorySetupReceiver(returnValue) {\n if (returnValue) {\n let claimantName = this.inputData.claimantName;\n let keyValuePairs: { [key: string]: string; } = {};\n keyValuePairs[\"CategoryName\"] = \"\";\n keyValuePairs[\"ClaimantName\"] = claimantName.trim();\n keyValuePairs[\"OrgCategoryId\"] = \"0\";\n this.fnSendReminderEmail(EmailEnum.GradeNotAssigned, keyValuePairs);\n }\n this.showPopUpForNoCategorySetupModel = new AlertPanelModel(false, \"\", [\"\"], \"\", \"\", true, \"\");\n this.showPopUpForNoCategorySetup = false;\n this.fnClosePanel(true);\n }\n\n fnSendReminderEmail(templateName, keyValuePairs) {\n let request = new ApiRequest(\"GetSetDetailForSendEmail\", environment.applicationVersion, environment.requestId);\n request.requestInfo = new EmailSendRequest(templateName, this.inputData.claimantId, this.claims.OrgId, keyValuePairs);\n\n this.emailService.SendReminderEmail(request)\n .subscribe((response: IApiresponse) => { });\n }\n\n fnClosePanel(isClose: boolean) {\n this.closePanelEvent.emit(isClose);\n }\n fnSetExpenseCategoryInputValues() {\n if (this.inputData) {\n this.selectedOrgExpenseCategoryId = this.inputData.orgExpenseCategoryId;\n }\n }\n fnSortCategoryList() {\n if (this.orgExpenseCategoryList && this.orgExpenseCategoryList.length > 0) {\n this.orgExpenseCategoryList.sort((a: any, b: any) => {\n //sort\n if (a.expenseCategoryName.toLocaleLowerCase() > b.expenseCategoryName.toLocaleLowerCase()) {\n return 1;\n } else if (b.expenseCategoryName.toLocaleLowerCase() > a.expenseCategoryName.toLocaleLowerCase()) {\n return -1;\n } else {\n return 0;\n }\n });\n }\n }\n\n showAdvancesList() {\n this.advancesService.getAdvancesPassbookNotLinked(this.inputData.claimantId).subscribe((result: AdvancePassbookItem[]) => {\n if (result && result.length > 0) {\n this.isAdvancesDisplay = true;\n this.advancesList = result.map(r => {\n return {\n advanceId: r.advanceId,\n amount: r.amount.toFixed(2)\n }\n });\n }\n });\n }\n\n fnSelectAdvanceItem(item) {\n this.isAdvancesDisplay = false;\n this.selectedAdvanceId = item.advanceId;\n this.selectedCategoryModel.advanceId = item.advanceId;\n this.selectItemEvent.emit(this.selectedCategoryModel);\n }\n\n fnGetRecentCategoriesOnTop() {\n this.recentCategoryList = this.orgExpenseCategoryList.filter(it=>it.isRecentCategory).sort(function(a, b){return b.recentExpenseCount-a.recentExpenseCount});; \n this.recentCategoryList = this.recentCategoryList.concat(this.orgExpenseCategoryList.filter(it=>it.isRecentCategory==false)); \n\n this.changeDetectorRef.detectChanges();\n }\n\n}\n","
\n
\n
\n
\n
\n

{{'select_customer' | translate:param}}

\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
{{'select_customer' | translate:param}}
\n\n
\n {{ \"no_data_available\" | translate: param }}\n
\n\n
    0\">\n
  • \n
    \n
    1)? 'margin-top-10':'margin-top-0'\">\n \n \n \n {{item.customerName}} - {{item.customerCode1}}\n \n
    \n
    \n
\n \n \n
\n
\n
\n
\n
\n
\n","import { OnInit, Component, EventEmitter, Input, Output, OnDestroy, ChangeDetectorRef } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { IApiresponse } from \"src/app/_models\";\nimport { first } from \"rxjs/operators\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { CustomerService } from \"src/app/_services/customer/customer.service\";\nimport { IGetCustomerResponse, ActiveCustomerResponse } from \"src/app/_models/customer/customer\";\nimport { SelectCustomerPopupModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\n\n@Component({\n selector: \"select-customer-panel\",\n templateUrl: \"./select-customer-panel.component.html\"\n})\nexport class SelectCustomerPanelComponent extends BaseComponent implements OnInit, OnDestroy {\n\n @Input()\n inputData: SelectCustomerPopupModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n userActionEventSubscription: Subscription;\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n searchText: string = '';\n hasFormChanges: boolean = false;\n\n customersList = [];\n selectedCustomerId: number = 0;\n\n constructor(\n private alertService: AlertService,\n private customerService: CustomerService,\n private cdr:ChangeDetectorRef\n ) {\n super();\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n ngOnInit(): void {\n this.fnGetActiveCustomersList();\n this.fnSetCustomerInputValues();\n }\n\n ngOnDestroy(): void {\n this.userActionEventSubscription.unsubscribe();\n }\n\n canDeactivate(): boolean {\n return !this.hasFormChanges;\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n fnGetActiveCustomersList() {\n this.customerService\n .GetActiveCustomers()\n .pipe(first())\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.customersList = response.responseInfo.customerValues;\n this.fnGetSelectedCustomerOnTop();\n this.cdr.detectChanges();\n }\n });\n }\n\n fnSelectCustomer() {\n let selectCustomersOutputModel = new SelectCustomerPopupModel();\n if (this.selectedCustomerId > 0) {\n let customserDetails = this.customersList.find(item => item.customerId == this.selectedCustomerId);\n if (customserDetails) {\n selectCustomersOutputModel.customerId = customserDetails.customerId;\n selectCustomersOutputModel.customerName = customserDetails.customerName +' - '+ customserDetails.customerCode1;\n }\n } else {\n selectCustomersOutputModel.customerId = 0;\n selectCustomersOutputModel.customerName = '';\n }\n this.selectItemEvent.emit(selectCustomersOutputModel);\n }\n\n fnOnChangeCustomer(customerId: number) {\n if (customerId == this.selectedCustomerId) {\n this.selectedCustomerId = 0;\n } else {\n this.selectedCustomerId = customerId;\n }\n }\n\n fnSetCustomerInputValues() {\n if (this.inputData) {\n this.selectedCustomerId = this.inputData.customerId;\n }\n }\n fnGetSelectedCustomerOnTop() {\n let customerId = this.inputData && this.inputData.customerId ? this.inputData.customerId : 0;\n\n if (customerId && this.customersList && this.customersList.length > 0) {\n const sortedArr = this.customersList.reduce((acc, element) => {\n if (element.customerId == customerId) {\n return [element, ...acc];\n }\n return [...acc, element];\n }, []);\n this.customersList = sortedArr;\n }\n }\n}\n","
\n
\n
\n
\n
\n

{{'text_select_cost_centre' | translate:param}}

\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
{{'text_select_cost_centre' | translate:param}}\n
\n\n
\n {{ \"no_data_available\" | translate: param }}\n
\n\n
    0\">\n
  • \n
    \n
    1)? 'margin-top-10':'margin-top-0'\">\n
    \n \n \n
    \n {{item.derivedName}}\n \n {{'home_cost_centre' | translate:param}}\n \n
    \n
    \n
    \n
    \n
    \n
  • \n
\n
\n
\n
\n
\n
\n
\n","import { OnInit, Component, EventEmitter, Input, Output, OnDestroy, ChangeDetectorRef } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { CostCentreService } from \"src/app/_services\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { SelectCostCentrePopupModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { ActiveCostCentreResponse, IGetCostCentreResponse } from \"src/app/_models/costCentre/costCentre\";\nimport { IApiresponse } from \"src/app/_models\";\n\n@Component({\n selector: \"select-cost-centre-panel\",\n templateUrl: \"./select-cost-centre-panel.component.html\"\n})\nexport class SelectCostCentrePanelComponent extends BaseComponent implements OnInit, OnDestroy {\n\n @Input()\n inputData: SelectCostCentrePopupModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n searchText: string = '';\n hasFormChanges: boolean = false;\n\n userActionEventSubscription: Subscription;\n costCentreList = [];\n selectedCostCentreId: number = 0;\n isSelectionHide: boolean = false;\n disableSave: boolean= true;\n\n constructor(private alertService: AlertService,\n private costCentreService: CostCentreService, private cdr:ChangeDetectorRef) {\n super();\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n ngOnInit(): void {\n this.fnGetActiveCostCentreList();\n this.fnSetCostCentreInputValues();\n }\n\n canDeactivate(): boolean {\n return !this.hasFormChanges;\n }\n\n ngOnDestroy() {\n this.userActionEventSubscription.unsubscribe();\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n fnGetActiveCostCentreList() {\n this.costCentreService\n .GetActiveCostCentre()\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.costCentreList = response.responseInfo.costCentreValues;\n this.fnGetSelectedCostCentreOnTop();\n this.cdr.detectChanges();\n }\n });\n }\n\n fnSelectCostCentre() {\n \n let selectCostCentreOutputModel = new SelectCostCentrePopupModel();\n if (this.selectedCostCentreId > 0) {\n let costCentreDetails = this.costCentreList.find(item => item.costCentreId == this.selectedCostCentreId);\n if (costCentreDetails) {\n selectCostCentreOutputModel.costCentreId = costCentreDetails.costCentreId;\n selectCostCentreOutputModel.costCentreName = costCentreDetails.derivedName;\n }\n } else {\n selectCostCentreOutputModel.costCentreId = 0;\n selectCostCentreOutputModel.costCentreName = '';\n }\n this.selectItemEvent.emit(selectCostCentreOutputModel);\n }\n\n fnOnChangeCostCentre(costCentreId: number) {\n if (costCentreId == this.selectedCostCentreId) {\n this.selectedCostCentreId = 0;\n } else {\n this.selectedCostCentreId = costCentreId;\n }\n\n //enabled / disabled save button\n if(this.isSelectionHide){\n if(!this.selectedCostCentreId){\n this.disableSave = true;\n }\n else{\n this.disableSave = false;\n }\n } \n else{\n this.disableSave = false;\n }\n }\n\n fnSetCostCentreInputValues() {\n if (this.inputData) {\n this.selectedCostCentreId = this.inputData.costCentreId;\n this.isSelectionHide = this.inputData.isSelectionHide;\n }\n }\n fnGetSelectedCostCentreOnTop() {\n let costCentreId = this.inputData && this.inputData.costCentreId ? this.inputData.costCentreId : 0;\n\n if (costCentreId && this.costCentreList && this.costCentreList.length > 0) {\n const sortedArr = this.costCentreList.reduce((acc, element) => {\n if (element.costCentreId == costCentreId) {\n return [element, ...acc];\n }\n return [...acc, element];\n }, []);\n this.costCentreList = sortedArr;\n }\n }\n}\n","
\n
\n
\n
\n
\n

{{this.fnGetPanelTitle()}}

\n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
{{this.fnGetGridTitle()}}
\n
\n {{ \"no_data_available\" | translate: param }}\n
\n\n
    0\">\n
  • \n
    \n
    1)? 'margin-top-10':'margin-top-0'\">\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    0\">\n
    \n {{'select_project' | translate:param}}
    \n \n
      \n
    • \n \n {{project.projectName}}\n
    • \n\n
    \n
    \n
    \n
    \n {{'no_project_setup' | translate:param}}\n
    \n\n
    \n
    \n
    \n
    \n
    \n
\n \n \n
\n
\n
\n
\n
","import { OnInit, Component, EventEmitter, Input, Output, OnDestroy, ChangeDetectorRef } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { DatePipe } from \"@angular/common\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ApiRequest, IApiresponse } from \"src/app/_models\";\nimport { first } from \"rxjs/operators\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ProjectBudgetService } from \"src/app/_services/project-budget/project-budget.service\";\nimport {\n IGetCustomerCostCentreProjectsListRequest, GetCustomerCostCentreProjectsListRequest,\n ICostCentreCustomerProjectListResponse, CostCentreCustomerProjectList\n} from \"src/app/_models/project-budget/project-budget\";\nimport { SelectProjectPopupModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { ProjectBudgetEntityType } from \"src/app/_models/enum/solo-enum\";\n\n@Component({\n selector: \"select-project-panel\",\n templateUrl: \"./select-project-panel.component.html\"\n})\nexport class SelectProjectPanelComponent extends BaseComponent implements OnInit, OnDestroy {\n\n @Input()\n inputData: SelectProjectPopupModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n userActionEventSubscription: Subscription;\n claimsSubscription: Subscription;\n localOrganisationId: any;\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n searchText: string = '';\n hasFormChanges: boolean = false;\n\n customerCostCentreProjectList = [];\n selectedEntityId: number = 0;\n selectedProjectDetailsId: number = 0;\n\n isCostCentrePackagePurchasedOrTrial: boolean = false;\n isCustomerPackagePurchasedOrTrial: boolean = false;\n\n get projectBudgetEntityType() {\n return ProjectBudgetEntityType;\n }\n\n constructor(\n public datepipe: DatePipe,\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private alertService: AlertService,\n private projectBudgetService: ProjectBudgetService,\n private cdfr: ChangeDetectorRef\n ) {\n super();\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.localOrganisationId = claims.OrgId;\n });\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n ngOnInit(): void {\n this.fnSetProjectInputValues();\n this.fnGetCustomerCostCentreProjectList();\n }\n\n ngOnDestroy(): void {\n this.claimsSubscription.unsubscribe();\n this.userActionEventSubscription.unsubscribe();\n }\n\n canDeactivate(): boolean {\n return !this.hasFormChanges;\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n fnGetCustomerCostCentreProjectList() {\n let isCostCentrePackagePurchasedOrTrial = this.isCostCentrePackagePurchasedOrTrial ? this.isCostCentrePackagePurchasedOrTrial : false;\n let isCustomerPackagePurchasedOrTrial = this.isCustomerPackagePurchasedOrTrial ? this.isCustomerPackagePurchasedOrTrial : false;\n\n let request = new ApiRequest(\"GetPreApprovalTagList\", environment.applicationVersion, environment.requestId);\n let requestInfo = new GetCustomerCostCentreProjectsListRequest(this.localOrganisationId, this.inputData.claimantId, isCostCentrePackagePurchasedOrTrial, isCustomerPackagePurchasedOrTrial);\n request.requestInfo = requestInfo;\n this.projectBudgetService\n .GetCustomerCostCentreProjectList(request)\n .pipe(first())\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.customerCostCentreProjectList = response.responseInfo.customerCostCentreProjectList;\n this.fnGetSelectedProjectOnTop();\n this.cdfr.detectChanges();\n }\n });\n }\n\n fnSelectCustomerCostCentreProject() {\n let selectProjectOutputModel = new SelectProjectPopupModel();\n if (this.selectedEntityId > 0) {\n let entityDetails = this.customerCostCentreProjectList.find(item => item.entityId == this.selectedEntityId);\n if (entityDetails) {\n selectProjectOutputModel.entityId = entityDetails.entityId;\n selectProjectOutputModel.entityName = entityDetails.entityName +' - '+ entityDetails.entityCode;\n selectProjectOutputModel.entityType = entityDetails.entityType;\n selectProjectOutputModel.projectBudgetDetailsId = entityDetails.projectBudgetDetailsId;\n if (this.selectedProjectDetailsId > 0) {\n let projectDetails = entityDetails.projectList ? entityDetails.projectList.find(p => p.projectDetailsId == this.selectedProjectDetailsId) : null;\n if (projectDetails) {\n selectProjectOutputModel.projectDetailsId = projectDetails.projectDetailsId;\n selectProjectOutputModel.projectName = projectDetails.projectName;\n } else {\n selectProjectOutputModel.projectDetailsId = 0;\n selectProjectOutputModel.projectName = null;\n }\n }\n }\n } else {\n selectProjectOutputModel.entityId = 0;\n selectProjectOutputModel.entityName = null;\n selectProjectOutputModel.entityType = 0;\n selectProjectOutputModel.projectBudgetDetailsId = 0;\n selectProjectOutputModel.projectDetailsId = 0;\n selectProjectOutputModel.projectName = null;\n }\n this.selectItemEvent.emit(selectProjectOutputModel);\n }\n\n fnOnChangeEntity(entityId: number) {\n if (entityId == this.selectedEntityId) {\n this.selectedEntityId = 0;\n this.selectedProjectDetailsId = 0;\n } else {\n this.selectedEntityId = entityId;\n this.selectedProjectDetailsId = 0;\n }\n }\n\n fnOnChangeProject(event, projectDetailsId: number) {\n if (event.target.checked) {\n this.selectedProjectDetailsId = projectDetailsId;\n } else {\n this.selectedProjectDetailsId = 0;\n }\n }\n\n fnSetProjectInputValues() {\n if (this.inputData) {\n this.isCostCentrePackagePurchasedOrTrial = this.inputData.isCostCentrePackagePurchasedOrTrial;\n this.isCustomerPackagePurchasedOrTrial = this.inputData.isCustomerPackagePurchasedOrTrial;\n this.selectedEntityId = this.inputData.entityId;\n this.selectedProjectDetailsId = this.inputData.projectDetailsId;\n }\n }\n\n fnIsSubmitDisabled() {\n let isDisabled = false;\n if (this.selectedEntityId > 0) {\n if (this.customerCostCentreProjectList && this.customerCostCentreProjectList.length > 0) {\n let entityDetails = this.customerCostCentreProjectList.find(item => item.entityId == this.selectedEntityId);\n if (entityDetails && entityDetails.projectList && entityDetails.projectList.length > 0 && this.selectedProjectDetailsId == 0) {\n isDisabled = true;\n }\n }\n }\n return isDisabled;\n }\n\n fnGetPanelTitle() {\n let title = \"\";\n if (this.isCustomerPackagePurchasedOrTrial && this.isCostCentrePackagePurchasedOrTrial) {\n title = this.translate.instant(\"select_customer_cost_centre_project\");\n } else if (this.isCustomerPackagePurchasedOrTrial && !this.isCostCentrePackagePurchasedOrTrial) {\n title = this.translate.instant(\"select_customer_project\");\n } else if (!this.isCustomerPackagePurchasedOrTrial && this.isCostCentrePackagePurchasedOrTrial) {\n title = this.translate.instant(\"select_cost_centre_project\");\n }\n return title;\n }\n\n fnGetGridTitle() {\n let title = \"\";\n if (this.isCustomerPackagePurchasedOrTrial && this.isCostCentrePackagePurchasedOrTrial) {\n title = this.translate.instant(\"select_customers_cost_centres\");\n } else if (this.isCustomerPackagePurchasedOrTrial && !this.isCostCentrePackagePurchasedOrTrial) {\n title = this.translate.instant(\"select_customer\");\n } else if (!this.isCustomerPackagePurchasedOrTrial && this.isCostCentrePackagePurchasedOrTrial) {\n title = this.translate.instant(\"select_cost_centres\");\n }\n return title;\n }\n\n fnGetSelectedProjectOnTop() {\n let entityId = this.inputData && this.inputData.entityId ? this.inputData.entityId : 0;\n\n if (entityId && this.customerCostCentreProjectList && this.customerCostCentreProjectList.length > 0) {\n const sortedArr = this.customerCostCentreProjectList.reduce((acc, element) => {\n if (element.entityId == entityId) {\n return [element, ...acc];\n }\n return [...acc, element];\n }, []);\n this.customerCostCentreProjectList = sortedArr;\n }\n }\n}\n","
\n
\n
\n
\n
\n

{{'link_to_pre_approval_tag' | translate:param}}

\n
\n
\n\t\t\t\t\n \n
\n
\n
\n
\n
\n
{{'choose_a_pre_approval_tag' | translate:param}}
\n\n
\n {{ \"no_data_available\" | translate: param }}\n
\n\n
\n \n \n \n
\n

{{item.preApprovalTag}} {{item.remainingDays}}\n {{'days_left' | translate:param}}{{'date_of_approval' | translate:param}}:\n {{item.approvalDate| date: \"dd-MMM-yyyy\" }} Pre-Approval\n {{'label_balance' | translate:param}}:\n {{item.balance | number: \"1.2-2\" | noComma}}

\n
\n \n
\n\n
\n
\n
\n
\n
","import { OnInit, Component, EventEmitter, Input, Output, OnDestroy, ChangeDetectorRef } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ApiRequest, IApiresponse } from \"src/app/_models\";\nimport { first } from \"rxjs/operators\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { IPreApprovalBaseRequest, PreApprovalBaseRequest, IPreApprovalTagListResponse, SelectPreApprovalTagPopupModel, preApprovalTags } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { ClaimantOnWebService } from \"src/app/_services/claimant-on-web/claimant-on-web.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\n\n@Component({\n selector: \"select-pre-approval-tag-panel\",\n templateUrl: \"./select-pre-approval-tag-panel.component.html\"\n})\nexport class SelectPreApprovalTagPanelComponent extends BaseComponent implements OnInit, OnDestroy {\n\n @Input()\n inputData: SelectPreApprovalTagPopupModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n userActionEventSubscription: Subscription;\n claimsSubscription: Subscription;\n localOrganisationId: any;\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n hasFormChanges: boolean = false;\n\n disableSubmitButton: boolean = false;\n preApprovalTagList = [];\n selectedPreApprovalTag: number = 0;\n\n constructor(private alertService: AlertService,\n private claimsService: ClaimsService,\n private claimantOnWebService: ClaimantOnWebService, private cdr:ChangeDetectorRef) {\n super();\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.localOrganisationId = claims.OrgId;\n });\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n\n ngOnInit(): void {\n this.fnGetPreApprovalTagList();\n this.fnSetPreApprovalDetails();\n }\n\n ngOnDestroy(): void {\n this.userActionEventSubscription.unsubscribe();\n this.claimsSubscription.unsubscribe();\n }\n\n canDeactivate(): boolean {\n return !this.hasFormChanges;\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n fnGetPreApprovalTagList() {\n let request = new ApiRequest(\"GetPreApprovalTagList\", environment.applicationVersion, environment.requestId);\n let requestInfo = new PreApprovalBaseRequest(this.localOrganisationId, this.inputData.claimantId);\n request.requestInfo = requestInfo;\n\n this.claimantOnWebService\n .GetPreApprovalTagList(request)\n .pipe(first())\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.preApprovalTagList = response.responseInfo.preApprovalTagList;\n this.fnGetSelectedPreApprovalTagOnTop();\n this.cdr.detectChanges();\n }\n });\n }\n fnOnChangeApprovalTag(event, preApprovalId: number) {\n if (event.target.checked) {\n this.selectedPreApprovalTag = preApprovalId;\n } else {\n this.selectedPreApprovalTag = 0;\n }\n }\n\n fnSelectApprovalTag() {\n let selectPreApprovalTagOutputModel = new SelectPreApprovalTagPopupModel();\n if (this.selectedPreApprovalTag > 0) {\n let preApprovalTag = this.preApprovalTagList.find(item => item.preApprovalId == this.selectedPreApprovalTag);\n if (preApprovalTag) {\n selectPreApprovalTagOutputModel.preApprovalId = preApprovalTag.preApprovalId;\n selectPreApprovalTagOutputModel.preApprovalBalance = preApprovalTag.balance;\n selectPreApprovalTagOutputModel.preApprovalTag = preApprovalTag.preApprovalTag;\n }\n } else {\n selectPreApprovalTagOutputModel.preApprovalId = 0;\n selectPreApprovalTagOutputModel.preApprovalBalance = '0';\n selectPreApprovalTagOutputModel.preApprovalTag = null;\n }\n this.selectItemEvent.emit(selectPreApprovalTagOutputModel);\n }\n\n fnSetPreApprovalDetails() {\n if (this.inputData) {\n this.selectedPreApprovalTag = this.inputData.preApprovalId;\n }\n }\n\n fnGetSelectedPreApprovalTagOnTop() {\n let preApprovalId = this.inputData && this.inputData.preApprovalId ? this.inputData.preApprovalId : 0;\n\n if (preApprovalId && this.preApprovalTagList && this.preApprovalTagList.length > 0) {\n const sortedArr = this.preApprovalTagList.reduce((acc, element) => {\n if (element.preApprovalId == preApprovalId) {\n return [element, ...acc];\n }\n return [...acc, element];\n }, []);\n this.preApprovalTagList = sortedArr;\n }\n }\n}\n","
\n
\n
\n
\n
\n
\n

{{'add_detour' | translate:param}}

\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n
\n
\n
\n
\n \n \n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n

\n 190 }\">{{createDetourForm.controls.detourJustificationNotes.value\n ?\n createDetourForm.controls.detourJustificationNotes.value.length : 0}}\n /\n 200\n \n

\n
\n
\n
\n
\n
\n
\n
","import { OnInit, Component, EventEmitter, Input, Output, ViewChild, ElementRef, AfterViewInit } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { Userresponsedto } from \"src/app/_models/user/userresponsedto\";\nimport { Router } from \"@angular/router\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { DatePipe } from \"@angular/common\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ApiRequest, IApiresponse } from \"src/app/_models\";\nimport { first } from \"rxjs/operators\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { Observable } from \"rxjs\";\nimport { FormBuilder, UntypedFormGroup, UntypedFormControl, Validators, FormArray } from \"@angular/forms\";\nimport { SelectDetourInputModel, SelectDetourOutputModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { ClaimantOnWebService } from \"src/app/_services/claimant-on-web/claimant-on-web.service\";\nimport { environment } from \"src/environments/environment\";\n\n@Component({\n selector: \"create-detour-panel\",\n templateUrl: \"./create-detour-panel.component.html\"\n})\nexport class CreateDetourPanelComponent extends BaseComponent implements OnInit, AfterViewInit {\n\n @Input()\n inputData: SelectDetourInputModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n currentUserSubscription: Subscription;\n userActionEventSubscription: Subscription;\n currentUser: Userresponsedto;\n claims: Claims;\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n\n createDetourForm: UntypedFormGroup;\n isDetourFormSubmitted: boolean = false;\n disableSubmitButton: boolean = false;\n\n constructor(\n private router: Router,\n private toastr: ToastrService,\n private authenticationService: AuthenticationService,\n public datepipe: DatePipe,\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private alertService: AlertService,\n public fb: FormBuilder,\n private claimantOnWebService: ClaimantOnWebService\n ) {\n super();\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n this.currentUserSubscription = this.authenticationService.currentUser.subscribe(\n (user) => {\n this.currentUser = user;\n }\n );\n this.observeUnsavedChangesAlerts();\n }\n ngOnInit(): void {\n this.createDetourForm = this.fnCreateDetourForm();\n this.fnSetDetourInputDetails();\n }\n\n ngAfterViewInit() {\n\n }\n canDeactivate(): boolean {\n return !this.createDetourForm.dirty;\n }\n\n observeUnsavedChangesAlerts() {\n var currentContext = this;\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n fnCreateDetourForm() {\n let form = this.fb.group({\n detour: [null, [Validators.required]],\n detourJustificationNotes: [null, [Validators.required, this.noWhitespaceValidator]]\n });\n return form;\n }\n\n fnOnSubmitDetour() {\n\n if (!Number(this.createDetourForm.value.detour)) {\n this.createDetourForm.controls.detour.setErrors({ 'required': true });\n }\n\n if (this.createDetourForm.invalid) {\n this.isDetourFormSubmitted = true;\n this.disableSubmitButton = false;\n return;\n }\n let selectDetourOutputModel = new SelectDetourOutputModel();\n selectDetourOutputModel.detour = this.createDetourForm.value.detour;\n selectDetourOutputModel.detourJustificationNotes = this.createDetourForm.value.detourJustificationNotes;\n this.disableSubmitButton = true;\n this.selectItemEvent.emit(selectDetourOutputModel);\n }\n\n fnSetDetourInputDetails() {\n if (this.inputData) {\n this.createDetourForm.patchValue({\n detour: this.inputData.detour ? this.inputData.detour : null,\n detourJustificationNotes: this.inputData.detourJustificationNotes ? this.inputData.detourJustificationNotes : null\n })\n }\n }\n public noWhitespaceValidator(control: UntypedFormControl) {\n const isWhitespace = (control.value || \"\").trim().length === 0;\n const isValid = !isWhitespace;\n return isValid ? null : { whitespace: true };\n }\n}\n","
\n
\n
\n
\n
\n

{{'text_select' | translate:param}} {{this.businessPurposeCaption}}

\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 {{ \"no_data_available\" | translate: param }}\n
\n\n
    \n
  • \n {{item.bpValue}}\n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n","import { OnInit, Component, EventEmitter, Input, Output, ChangeDetectorRef } from \"@angular/core\";\nimport { IApiresponse } from \"src/app/_models\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { SelectBusinessPurposePopupModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { PolicyDataService } from 'src/app/_services/policy/policy-data.service';\nimport { IRespGetBusinessPurposeValues, IBPValues } from 'src/app/_models/policy/policy-data';\n\n@Component({\n selector: \"select-business-purpose-panel\",\n templateUrl: \"./select-business-purpose-panel.component.html\"\n})\nexport class SelectBusinessPurposePanelComponent implements OnInit {\n\n @Input()\n inputData: SelectBusinessPurposePopupModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n searchText: string = '';\n\n bpValuesList = [];\n selectedBpId: number = 0;\n businessPurposeCaption: string = '';\n\n constructor(private policyService: PolicyDataService, private cd:ChangeDetectorRef) {\n }\n\n ngOnInit(): void {\n this.fnGetBusinessPurposeValues();\n this.fnSetBusinessPurposeInputValues();\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n fnGetBusinessPurposeValues() {\n this.policyService.GetBusinessPurposeValues()\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.bpValuesList = response.responseInfo.bpValues;\n this.fnGetSelectedBpValueOnTop();\n }\n });\n }\n\n fnSelectBusinessPurposeValues(item: IBPValues) {\n if (item) {\n let selectBusinessPurposeOutputModel = new SelectBusinessPurposePopupModel();\n selectBusinessPurposeOutputModel.bpId = item.bpId;\n selectBusinessPurposeOutputModel.bpValue = item.bpValue;\n this.selectItemEvent.emit(selectBusinessPurposeOutputModel);\n }\n }\n fnSetBusinessPurposeInputValues() {\n if (this.inputData) {\n this.selectedBpId = this.inputData.bpId;\n this.businessPurposeCaption = this.inputData.businessPurposeCaption;\n }\n }\n\n fnGetSelectedBpValueOnTop() {\n let bpId = this.inputData && this.inputData.bpId ? this.inputData.bpId : 0;\n\n if (bpId && this.bpValuesList && this.bpValuesList.length > 0) {\n const sortedArr = this.bpValuesList.reduce((acc, element) => {\n if (element.bpId == bpId) {\n return [element, ...acc];\n }\n return [...acc, element];\n }, []);\n this.bpValuesList = sortedArr;\n }\n this.cd.detectChanges();\n }\n\n}\n","
\n
\n
\n
\n
\n

{{ 'text_select_receipttype' | translate }}

\n
\n
\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n\n
\n
\n
\n\n
\n {{ \"no_data_available\" | translate: param }}\n
\n\n
    \n
  • \n {{item.vatNoVatReceiptType}}\n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n","import { OnInit, Component, EventEmitter, Input, Output, OnDestroy, ChangeDetectorRef } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { SelectReceiptTypeOutputModel, SelectReceiptTypePopupModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { first } from \"rxjs/operators\";\nimport { OrganisationSettingService } from \"src/app/_services/organisation-setting/organisation-setting.service\";\n@Component({\n selector: \"select-receipt-type-panel\",\n templateUrl: \"./select-receipt-type-panel.component.html\"\n})\nexport class SelectReceiptTypePanelComponent implements OnInit, OnDestroy {\n\n @Input()\n inputData: SelectReceiptTypePopupModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n claimsSubscription: Subscription;\n claims: Claims;\n howDoIVideoLinks = HowDoIVideoLinks;\n searchText: string = '';\n\n receiptTypesList: SelectReceiptTypeOutputModel[] = [];\n vatNoVatReceiptTypeId: number = 0;\n \n constructor(private claimsService: ClaimsService,\n private changeDetectorRef: ChangeDetectorRef,\n private organisationSettingService: OrganisationSettingService) {\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit(): void {\n this.fnGetReceiptTypeSettings();\n this.vatNoVatReceiptTypeId = this.inputData.vatNoVatReceiptTypeId;\n }\n\n fnGetReceiptTypeSettings()\n {\n this.organisationSettingService\n .getVatNoVatReceiptType()\n .pipe(first())\n .subscribe(\n (data) => {\n if (data.responseInfo != null) {\n this.receiptTypesList = data.responseInfo.receiptTypes.map(e => this.mapReceiptType(e)).filter(it=>it.isDisplayOn);\n this.changeDetectorRef.detectChanges();\n }\n }\n );\n }\n\n mapReceiptType(e): any {\n let receiptTypeDetail: any = e;\n receiptTypeDetail.vatNoVatReceiptType = e.receiptType; \n return receiptTypeDetail;\n }\n\n ngOnDestroy(): void {\n this.claimsSubscription.unsubscribe();\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n\n fnSelectReceiptType(item: SelectReceiptTypeOutputModel) {\n if(item) {\n this.selectItemEvent.emit(item);\n }\n }\n\n}\n","
\n
\n
\n
\n
\n

{{'select_state' | translate:param}}

\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 {{ \"no_data_available\" | translate: param }}\n
\n
    \n
  • \n {{item.stateName}}\n
  • \n
\n
\n
\n
\n
\n
\n
\n","import { OnInit, Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { StateService } from \"src/app/_services\";\nimport { first } from \"rxjs/operators\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { State } from \"src/app/_models\";\nimport { SelectStatesPopupModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\n\n@Component({\n selector: \"select-state-panel\",\n templateUrl: \"./select-state-panel.component.html\"\n})\nexport class SelectStatePanelComponent implements OnInit {\n\n @Input()\n inputData: SelectStatesPopupModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n searchText: string = '';\n\n stateList = [];\n selectedStateId: number = 0;\n\n constructor(private stateService: StateService) {\n }\n ngOnInit(): void {\n this.fnGetStates();\n this.fnSetStatesInputValues();\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n\n fnGetStates() {\n this.stateService.getAllExpenseState()\n .pipe(first())\n .subscribe((response: State[]) => {\n this.stateList = response;\n this.fnGetSelectedStateOnTop();\n });\n }\n\n fnSelectStates(item: State) {\n if (item) {\n let selectStatesOutputModel = new SelectStatesPopupModel();\n selectStatesOutputModel.stateId = item.stateId;\n selectStatesOutputModel.stateName = item.stateName;\n this.selectItemEvent.emit(selectStatesOutputModel);\n }\n }\n\n fnSetStatesInputValues() {\n if (this.inputData) {\n this.selectedStateId = this.inputData.stateId;\n }\n }\n fnGetSelectedStateOnTop() {\n let stateId = this.inputData && this.inputData.stateId ? this.inputData.stateId : 0;\n\n if (stateId && this.stateList && this.stateList.length > 0) {\n const sortedArr = this.stateList.reduce((acc, element) => {\n if (element.stateId == stateId) {\n return [element, ...acc];\n }\n return [...acc, element];\n }, []);\n this.stateList = sortedArr;\n }\n }\n\n}\n","
\n
\n
\n
\n
\n

{{'text_select' | translate:param}}

\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 {{ \"no_data_available\" | translate: param }}\n
\n
    \n
  • \n {{item.fieldValue}}\n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n","import { OnInit, Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { SelectAdditionalFieldDataPopupModel, IData } from 'src/app/_models/policy/policy-data';\n\n@Component({\n selector: \"select-additional-field-data-panel\",\n templateUrl: \"./select-additional-field-data-panel.component.html\"\n})\nexport class SelectAdditionalFieldDataPanelComponent implements OnInit {\n\n @Input()\n inputData: SelectAdditionalFieldDataPopupModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n searchText: string = '';\n\n additionalFieldDataList = [];\n selectedFieldValueId: number = 0;\n\n ngOnInit(): void {\n this.fnSetAdditionalFieldDataInputValues();\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n\n fnSelectBusinessPurposeValues(item: IData) {\n if (item) {\n let selectAdditionalFieldDataOutputModel = new SelectAdditionalFieldDataPopupModel();\n selectAdditionalFieldDataOutputModel.additionalFieldId = this.inputData.additionalFieldId;\n selectAdditionalFieldDataOutputModel.fieldValueId = item.fieldValueId;\n selectAdditionalFieldDataOutputModel.fieldValue = item.fieldValue;\n this.selectItemEvent.emit(selectAdditionalFieldDataOutputModel);\n }\n }\n\n fnSetAdditionalFieldDataInputValues() {\n if (this.inputData) {\n this.additionalFieldDataList = this.inputData.additionalFieldDataList;\n this.selectedFieldValueId = this.inputData.fieldValueId;\n this.fnGetSelectedAdditionalFieldOnTop();\n }\n }\n\n fnGetSelectedAdditionalFieldOnTop() {\n let fieldValueId = this.inputData && this.inputData.fieldValueId ? this.inputData.fieldValueId : 0;\n\n if (fieldValueId && this.additionalFieldDataList && this.additionalFieldDataList.length > 0) {\n const sortedArr = this.additionalFieldDataList.reduce((acc, element) => {\n if (element.fieldValueId == fieldValueId) {\n return [element, ...acc];\n }\n return [...acc, element];\n }, []);\n this.additionalFieldDataList = sortedArr;\n }\n }\n\n}\n","
\n
\n
\n
\n
\n

{{'text_associate' | translate:param}}

\n
\n
\n \n
\n
\n
\n
\n

\n {{ \"no_data_available\" | translate: param }}

\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 {{'text_category' | translate:param}}\n {{'ExpenseDate' | translate:param}}{{'text_amount' | translate:param}}\n ({{ this.fnGetCurrencyCode(item.currencyId)}}){{'text_supplier' | translate:param}}{{'text_notes' | translate:param}}
{{this.inputData.expenseCategoryName}} {{ this.datePipe.transform(item.expenseDate) }}\n {{ item.amount | number: \"1.2-2\" | noComma }}\n {{item.supplier}}{{item.notes}}
\n
\n
\n
0\">\n \n
\n
\n
\n","import { OnInit, Component, EventEmitter, Input, Output, ViewChild, ElementRef, AfterViewInit,ChangeDetectorRef } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { Userresponsedto } from \"src/app/_models/user/userresponsedto\";\nimport { Router } from \"@angular/router\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { DatePipe } from \"@angular/common\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ApiRequest, IApiresponse, ExpenseStatusEnum } from \"src/app/_models\";\nimport { first } from \"rxjs/operators\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { Observable } from \"rxjs\";\nimport { FormBuilder, FormGroup, FormControl, Validators, FormArray } from \"@angular/forms\";\nimport { AssociateCreditCardExpenseInputModel, AssociateCreditCardExpenseOutputModel, ExpenseCurrency } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { environment } from \"src/environments/environment\";\nimport { CreditCardService } from \"src/app/_services/credit-card/credit-card.service\";\nimport {\n IClaimantAssociatedExpenseListResponse, IClaimantAssociatedExpenseListRequest, ClaimantAssociatedExpenseListRequest, IAssociatedExpenseDetail\n} from \"src/app/_models/credit-card/credit-card\";\n\nimport { MonthFormatPipe, DateFormatPipe } from \"src/app/_helpers/pipe.module\";\nimport { CurrencyService } from \"src/app/_services/claimant/currency.service\";\n\n@Component({\n selector: \"associate-credit-card-expense-panel\",\n templateUrl: \"./associate-credit-card-expense-panel.component.html\"\n})\n\nexport class AssociateCreditCardExpensePanelComponent extends BaseComponent implements OnInit {\n\n @Input()\n inputData: AssociateCreditCardExpenseInputModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n currentUserSubscription: Subscription;\n userActionEventSubscription: Subscription;\n currentUser: Userresponsedto;\n claims: Claims;\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n hasFormChanges: boolean = false;\n\n claimantAssociatedExpenseList = [];\n selectedExpenseId: number = 0;\n currencytList = [];\n\n constructor(\n private router: Router,\n private toastr: ToastrService,\n private authenticationService: AuthenticationService,\n public datepipe: DatePipe,\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private alertService: AlertService,\n public fb: FormBuilder,\n private creditCardService: CreditCardService,\n private datePipe: DateFormatPipe,\n private currencyService: CurrencyService,\n private cdr:ChangeDetectorRef\n ) {\n super();\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n this.currentUserSubscription = this.authenticationService.currentUser.subscribe(\n (user) => {\n this.currentUser = user;\n }\n );\n this.observeUnsavedChangesAlerts();\n }\n ngOnInit(): void {\n this.getCurrrencyList();\n this.fnGetClaimantAssociatedExpenseList();\n this.fnSeAssociateCreditCardExpenseInputValues();\n }\n\n canDeactivate(): boolean {\n return !this.hasFormChanges;\n }\n\n observeUnsavedChangesAlerts() {\n var currentContext = this;\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n fnGetClaimantAssociatedExpenseList() {\n let request = new ApiRequest(\"GetPreApprovalTagList\", environment.applicationVersion, environment.requestId);\n let requestInfo = new ClaimantAssociatedExpenseListRequest(this.claims.OrgId, this.inputData.claimantId, this.inputData.orgExpenseCategoryId, this.inputData.supplier);\n request.requestInfo = requestInfo;\n\n this.creditCardService.GetClaimantAssociatedExpenseList(request)\n .pipe(first())\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.claimantAssociatedExpenseList = response.responseInfo.expenseList;\n this.cdr.detectChanges();\n }\n });\n }\n\n fnOnExpenseChange(expenseId: number) {\n if (expenseId) {\n this.selectedExpenseId = expenseId;\n }\n }\n\n\n fnSelectAssociateCreditCardExpense() {\n if (this.selectedExpenseId && this.selectedExpenseId > 0) {\n let selectAssociateCreditCardExpenseOutputModel = new AssociateCreditCardExpenseOutputModel();\n let expenseDetails = this.claimantAssociatedExpenseList.find(item => item.expenseId == this.selectedExpenseId);\n if (expenseDetails) {\n selectAssociateCreditCardExpenseOutputModel.expenseId = expenseDetails.expenseId;\n selectAssociateCreditCardExpenseOutputModel.expenseDate = expenseDetails.expenseDate;\n selectAssociateCreditCardExpenseOutputModel.amount = expenseDetails.amount;\n selectAssociateCreditCardExpenseOutputModel.currencyId = expenseDetails.currencyId;\n selectAssociateCreditCardExpenseOutputModel.currencyCode = this.fnGetCurrencyCode(expenseDetails.currencyId);\n selectAssociateCreditCardExpenseOutputModel.supplier = expenseDetails.supplier;\n }\n this.selectItemEvent.emit(selectAssociateCreditCardExpenseOutputModel);\n }\n }\n\n fnSeAssociateCreditCardExpenseInputValues() {\n if (this.inputData) {\n this.selectedExpenseId = this.inputData.expenseId;\n }\n }\n getCurrrencyList() {\n this.currencyService.getAllExpenseCurrency(this.claims.OrgId)\n .subscribe((data: any) => {\n if (data && data.length > 0) {\n this.currencytList = data;\n }\n });\n }\n fnGetCurrencyCode(currencyId: number) {\n let currencyCode = this.claims.CurrentOrganisationCurrencyCode ? this.claims.CurrentOrganisationCurrencyCode : \"\";\n if (currencyId && this.currencytList.length > 0) {\n let currency = this.currencytList.find(item => item.currencyId == currencyId);\n if (currency) {\n currencyCode = currency.currencyCode;\n }\n }\n return currencyCode;\n }\n}\n","
\n
\n
\n
\n
\n
\n

{{'enter_tag' | translate:param}}

\n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n \n \n \n \n \n\n \n\n \n \n\n \n\n \n \n \n
\n
\n
0\">\n
\n
{{'recent_tags' | translate:param}}
\n
\n
\n
    \n
  • \n \n \n \n \n \n
  • \n
\n
\n
\n
\n
\n
\n
\n
","import { OnInit, Component, EventEmitter, Input, Output, ViewChild, ElementRef, AfterViewInit, ChangeDetectorRef } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { Userresponsedto } from \"src/app/_models/user/userresponsedto\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { DatePipe } from \"@angular/common\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ApiRequest, IApiresponse } from \"src/app/_models\";\nimport { first } from \"rxjs/operators\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { FormBuilder, UntypedFormGroup, UntypedFormControl, Validators } from \"@angular/forms\";\nimport { IRecentTagsRequest, RecentTagsRequest, IRecentTagsResponse, SelectTagsPopupModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { ClaimantOnWebService } from \"src/app/_services/claimant-on-web/claimant-on-web.service\";\nimport { environment } from \"src/environments/environment\";\n\n@Component({\n selector: \"create-tag-panel\",\n templateUrl: \"./create-tag-panel.component.html\"\n})\nexport class CreateTagPanelComponent extends BaseComponent implements OnInit, AfterViewInit {\n\n @Input()\n inputData: SelectTagsPopupModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n currentUserSubscription: Subscription;\n userActionEventSubscription: Subscription;\n currentUser: Userresponsedto;\n claims: Claims;\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n\n recentTagsList = [];\n createTagsForm: UntypedFormGroup;\n isCreateTagsFormSubmitted: boolean = false;\n disableSubmitButton: boolean = false;\n tagList = [];\n\n @ViewChild(\"tagName\") tagNameInput: ElementRef;\n\n constructor(\n private authenticationService: AuthenticationService,\n public datepipe: DatePipe,\n private claimsService: ClaimsService,\n private alertService: AlertService,\n public fb: FormBuilder,\n private claimantOnWebService: ClaimantOnWebService,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n super();\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n this.currentUserSubscription = this.authenticationService.currentUser.subscribe(\n (user) => {\n this.currentUser = user;\n }\n );\n this.observeUnsavedChangesAlerts();\n }\n ngOnInit(): void {\n this.createTagsForm = this.fnCreateTagsForm();\n this.fnGetTagListControl();\n this.fnGetRecentTags();\n }\n\n ngAfterViewInit() {\n this.tagNameInput.nativeElement.focus();\n }\n canDeactivate(): boolean {\n return !this.createTagsForm.dirty;\n }\n\n observeUnsavedChangesAlerts() {\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n fnCreateTagsForm() {\n let form = this.fb.group({\n tagName: ['', [Validators.required, this.noWhitespaceValidator]],\n });\n return form;\n }\n\n fnGetRecentTags() {\n let request = new ApiRequest(\"RecentTags\", environment.applicationVersion, environment.requestId);\n let requestInfo = new RecentTagsRequest(this.claims.OrgId, this.inputData.claimantId);\n request.requestInfo = requestInfo;\n\n this.claimantOnWebService\n .GetRecentTags(request)\n .pipe(first())\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null && response.responseInfo.recentTagList) {\n this.recentTagsList = [...new Set(response.responseInfo.recentTagList)];\n this.changeDetectorRef.detectChanges();\n }\n });\n }\n\n fnSelectTag() {\n\n if (this.createTagsForm.value.tagName && this.createTagsForm.value.tagName.trim()) {\n this.fnAddTag();\n }\n let selectTagsPopupModel = new SelectTagsPopupModel();\n if (this.tagList && this.tagList.length > 0) {\n selectTagsPopupModel.tagList = this.tagList;\n } else {\n selectTagsPopupModel.tagList = [];\n }\n this.selectItemEvent.emit(selectTagsPopupModel);\n }\n\n fnAddTag() {\n let isAvailable = this.tagList.find(item => item.toLowerCase() == this.createTagsForm.value.tagName.toLowerCase())\n if (!isAvailable) {\n this.tagList.push(this.createTagsForm.value.tagName.trim());\n }\n this.createTagsForm.reset();\n this.createTagsForm.markAsDirty();\n this.tagNameInput.nativeElement.focus();\n }\n\n fnRemoveTag(i: number) {\n this.tagList.splice(i, 1);\n this.tagNameInput.nativeElement.focus();\n this.createTagsForm.markAsDirty();\n }\n\n fnGetTagListControl() {\n if (this.inputData.tagList && this.inputData.tagList.length > 0) {\n this.tagList = [];\n this.inputData.tagList.forEach(item => {\n this.tagList.push(item);\n })\n }\n }\n\n fnAddRecentTag(tagName: string) {\n if (tagName) {\n this.tagList.push(tagName);\n }\n this.tagNameInput.nativeElement.focus();\n this.createTagsForm.markAsDirty();\n }\n\n fnGetFilteredRecentTagList() {\n let recentTagList = [];\n if (this.recentTagsList && this.recentTagsList.length > 0) {\n recentTagList = this.recentTagsList.filter(r => !this.tagList.map(v => v.toLowerCase()).includes(r.toLowerCase()));\n }\n return recentTagList;\n }\n public noWhitespaceValidator(control: UntypedFormControl) {\n const isWhitespace = (control.value || \"\").trim().length === 0;\n const isValid = !isWhitespace;\n return isValid ? null : { whitespace: true };\n }\n}\n","
\n
\n
\n
\n
\n

{{ \"recent_journeys\" | translate: param }}

\n
\n
\n \n
\n
\n
\n
\n\n
\n

\n {{ \"no_data_available\" | translate: param }}

\n
\n\n
\n
\n
\n \n

{{item.fromLocation.location}} \n

\n
\n
\n \n

\n {{item.toLocation.location}}\n

\n
\n
\n
 
\n

\n {{item.totalDistance | number: \"1.2-2\" | noComma}}\n {{'text_km' | translate:param}}\n {{'text_m' | translate:param}}\n

\n
\n
\n \n
\n
\n
","import { OnInit, Component, EventEmitter, Input, Output, OnDestroy, ChangeDetectorRef } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { ApiRequest, IApiresponse } from \"src/app/_models\";\nimport { first } from \"rxjs/operators\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { environment } from \"src/environments/environment\";\nimport { IRecentJourneysResponse, IRecentJourneysRequest, RecentJourneysRequest, SelectRecentJourneyInputModel, SelectRecentJourneyOutputModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { ClaimantOnWebService } from \"src/app/_services/claimant-on-web/claimant-on-web.service\";\nimport { MileageUOMEnum } from \"src/app/_models/enum/solo-enum\";\n\n@Component({\n selector: \"select-recent-journeys-panel\",\n templateUrl: \"./select-recent-journeys-panel.component.html\"\n})\nexport class SelectRecentJourneysPanelComponent implements OnInit, OnDestroy {\n\n @Input()\n inputData: SelectRecentJourneyInputModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n claimsSubscription: Subscription;\n localOrganisationId: any;\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n\n recentJourneysList = [];\n\n get mileageUOMEnum() {\n return MileageUOMEnum;\n }\n\n constructor(private claimsService: ClaimsService,\n private claimantOnWebService: ClaimantOnWebService, private cdr: ChangeDetectorRef) {\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.localOrganisationId = claims.OrgId;\n });\n }\n\n ngOnInit(): void {\n this.fnGetRecentJourneys();\n }\n\n ngOnDestroy(): void {\n this.claimsSubscription.unsubscribe();\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n\n fnGetRecentJourneys() {\n let request = new ApiRequest(\"RecentJourneys\", environment.applicationVersion, environment.requestId);\n let requestInfo = new RecentJourneysRequest(this.inputData.baseCategoryId, this.localOrganisationId, this.inputData.claimantId);\n request.requestInfo = requestInfo;\n\n this.claimantOnWebService\n .GetRecentJourneys(request)\n .pipe(first())\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.recentJourneysList = response.responseInfo.journeyList;\n }\n this.cdr.detectChanges();\n });\n }\n fnSelectRecentJourneys(item: any) {\n \n if (item) {\n let selectRecentJourneyOutputModel = new SelectRecentJourneyOutputModel();\n selectRecentJourneyOutputModel.fromLocation = item.fromLocation;\n selectRecentJourneyOutputModel.toLocation = item.toLocation;\n selectRecentJourneyOutputModel.totalDistance = item.totalDistance;\n this.selectItemEvent.emit(selectRecentJourneyOutputModel);\n }\n }\n\n}\n","
\n
\n
\n
\n
\n

{{\"advance_passbook\" | translate:param}}

\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n {{\"advance_balance_title\" | translate:param}}\n
\n
\n {{balanceAdvanceAmount | number: \"1.2-2\" | noComma}} {{currencyCode}}\n
\n
\n
\n
\n
{{\"text_details\" | translate:param}}
\n
\n
0\" class=\"margin-top-5 w-100pc\">\n
\n

\n {{item.details}}\n \n {{'text_amount' | translate }}: {{item.spentAmount | number: \"1.2-2\" | noComma}}\n {{item.currencyCode}}\n \n \n {{\"text_exchange_rate\" | translate:param}}: {{item.conversionRate}}\n \n

\n \n {{ (item.isLinkedToCC ? 'linked_cc_advance' : 'not_linked_cc_advance') | translate }}\n \n
\n
\n {{item.dateString}}\n {{item.expenseId > 0 ?item.expenseAmount: item.cashAmount}}\n 0, 'color-green': item.expenseId==0}\">\n {{(item.expenseId > 0 || item.advanceReturnId > 0) ? 'Dr' : 'Cr'}}\n \n
\n
\n
\n
\n

\n {{item.details}}\n

\n \n {{ (item.isLinkedToCC ? 'linked_cc_advance' : 'not_linked_cc_advance') | translate }}\n \n
\n
\n {{item.dateString}}\n {{item.expenseId > 0 ?item.expenseAmount: item.cashAmount}}\n 0, 'color-green': item.expenseId==0}\">\n {{(item.expenseId > 0 || item.advanceReturnId > 0) ? 'Dr' : 'Cr'}}
\n
\n
\n
\n
\n
\n
\n
\n","import { formatDate } from \"@angular/common\";\nimport { OnInit, Component, Output, EventEmitter,Input, ChangeDetectorRef } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AdvancePassbookItem } from \"src/app/_models/advances/advances\";\nimport { ExpenseCurrency } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { ExpenseCategoryRequest, ExpenseCategoryRequestInfo } from \"src/app/_models/claimant/expense-category-request\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { CurrencyService, ExpenseCategoryService } from \"src/app/_services\";\nimport { AdvancesService } from \"src/app/_services/advances/advance-service\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { environment } from \"src/environments/environment\";\n\n@Component({\n selector: \"advance-passbook-panel\",\n templateUrl: \"./advance-passbook-panel.component.html\"\n})\nexport class AdvancePassbookPanelComponent extends BaseComponent implements OnInit {\n\n @Output() closePanelEvent = new EventEmitter();\n\n @Input()\n currencyCode: number;\n \n advanceBalance: number;\n claims: Claims;\n categoryList: any;\n advanceClaimantList: any[] = [];\n balanceAdvanceAmount: number;\n currencytList: ExpenseCurrency[];\n param: any;\n\n constructor(private expenseCategoryService: ExpenseCategoryService,\n private advancesService: AdvancesService, private claimsService: ClaimsService,\n private translate: TranslateService, private currencyService: CurrencyService,\n private cdr:ChangeDetectorRef\n ) {\n super();\n\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit(): void { this.getAdvancePassbook(); this.getAdvancePassbookBalance(); this.getCurrrencyList(); }\n\n getAdvancePassbook() {\n let request = new ExpenseCategoryRequest();\n request.WebApiName = \"AddUpdateFxRateSetup\";\n request.WebApiVersion = environment.applicationVersion;\n request.RequestId = Number(environment.requestId);\n request.RequestInfo = new ExpenseCategoryRequestInfo();\n request.RequestInfo.OrgId = this.claims.OrgId;\n request.RequestInfo.LastUpdatedTimeStamp = 0;\n this.currencyService.getAllExpenseCurrency(this.claims.OrgId)\n .subscribe((data: any) => {\n if (data && data.length > 0) {\n this.currencytList = data;\n this.expenseCategoryService.getOrgExpenseCategory(request).subscribe((response) => {\n if (response.responseInfo != null) {\n this.categoryList = response.responseInfo.categories;\n\n this.advancesService.getAdvancesPassbook(this.claims.UserId).subscribe(result => {\n if (result) {\n\n this.advanceClaimantList = [];\n result.forEach(row => {\n this.advanceClaimantList.push({\n passbookId: row.advancePassbookId,\n advanceId: row.advanceId,\n expenseId: row.expenseId,\n date: row.createdDate,\n dateString: formatDate(row.createdDate, 'dd-MMM-yyyy', 'en-US'),\n details: this.getCategoryDetail(row),\n creditCardAmount: row.categoryId == 2 && row.advanceId ? row.amount.toFixed(2) : '',\n cashAmount: row.amount.toFixed(2),\n expenseAmount: row.expenseId || row.advanceReturnId ? row.amount.toFixed(2) : '',\n balance: row.advanceBalance.toFixed(2),\n hasReceipt: row.hasReceipt,\n conversionRate: row.conversionRate,\n spentCurrencyId: row.spentCurrencyId ?? 0,\n currencyId: row.currencyId,\n spentAmount: row.spentAmount,\n currencyCode: this.getCurrencyName(row.spentCurrencyId),\n advanceReturnId: row.advanceReturnId,\n categoryId: row.categoryId,\n isLinkedToCC: row.isLinkedToCreditCardTransaction\n });\n });\n }\n\n this.cdr.detectChanges();\n });\n }\n });\n }\n });\n }\n\n getCurrrencyList() {\n this.currencyService.getAllExpenseCurrency(this.claims.OrgId)\n .subscribe((data: any) => {\n if (data && data.length > 0) {\n this.currencytList = data;\n this.cdr.detectChanges();\n }\n });\n }\n\n getCurrencyName(currencyId: number) {\n if (this.currencytList) {\n return this.currencytList.filter(a => a.currencyId == currencyId).map(function (b) { return b.currencyCode })[0];\n }\n }\n\n getCategoryDetail(row: AdvancePassbookItem): string {\n let details: string = '';\n if (row.advanceId) {\n if (row.categoryId == 1) {\n details = this.translate.instant('cash_advance_title');\n }\n else if (row.categoryId == 2) {\n details = this.translate.instant('cash_on_cc_advance');\n }\n }\n else if (row.expenseId) {\n const category = this.categoryList.find(c => c.orgExpenseCategoryId == row.categoryId);\n if (category) {\n details = category.expenseCategoryName;\n }\n }\n else if (row.advanceReturnId) {\n details = this.translate.instant('advance_balance_return');\n }\n return details;\n }\n\n\n getAdvancePassbookBalance() {\n this.advancesService.getAdvancePassbookBalance().subscribe(result => {\n if (result && result.responseInfo) {\n\n this.balanceAdvanceAmount = result.responseInfo.balance;\n }\n else {\n this.balanceAdvanceAmount = 0;\n }\n this.cdr.detectChanges();\n });\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n\n\n canDeactivate(): boolean {\n return true;\n }\n}\n\n","
\n\n \n\n \n \n \n {{ item.value }}\n \n \n \n {{ item.value }}\n \n \n\n \n\n
\n {{ \"label_Required\" | translate: param }}\n
\n\n \n
\n {{error}}\n
\n
\n\n
\n {{ field.templateOptions.alertNote }}\n
\n\n

\n \n \n \n

\n\n

\n \n

\n\n
","import { Component, OnDestroy, OnInit, EventEmitter } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { FunctionPackageEnum, IApiresponse } from '../../../../_models';\nimport { Claims } from '../../../../_models/common/claims';\nimport { MarketingPopup } from '../../../../_models/common/marketing-popup';\nimport { ApproverCADetails, IApproverCADetails, IRespApproverCADetails } from '../../../../_models/counter-approver/counter-approver.model';\nimport { ClaimsService } from '../../../../_services/common/claims.service';\nimport { CounterApproverService } from '../../../../_services/counter-approver/counter-approver.service';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'formly-ng-select-input',\n templateUrl: \"./formly-ng-select-input.component.html\"\n})\nexport class FormlyNgSelectInputComponent extends FieldType implements OnInit, OnDestroy {\n\n param: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n claims: Claims;\n linkType:boolean=false;\n orgId:number;\n constructor(\n private dynamicFormService: DynamicFormService,\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private caService:CounterApproverService,\n private sanitizer: DomSanitizer\n ) {\n super();\n this.claimsService.currentClaims.subscribe(claims => {\n this.claims = claims; \n this.orgId = this.claims.OrgId; \n });\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n if(this.fieldKey == 'approverId')\n this.linkType=true;\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n }); \n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n }\n\n allowAcuteChar(e) {\n let regex = new RegExp(\"^[a-zA-ZÀ-ú\\p{L} '-]+$\");\n let str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\n if (regex.test(str)) {\n return true;\n }\n else return false;\n }\n\n omitSpecialChar(event) { \n \n if (this.field.templateOptions.allowAcuteChar) {\n return this.allowAcuteChar(event);\n }\n \n }\n\n fnOpenPanel() {\n this.to.click(this.field);\n }\n\n sanitizerHtml(element) {\n let safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return safeText;\n }\n}","
\n \n \n {{ to.attributes.headingValue }}\n
\n
\n
\n \n \n
\n

{{ item.value }}

\n

{{ item.description }}

\n
\n \n \n {{ item.value }}\n \n \n
\n
\n\n
\n {{ \"label_Required\" | translate }}\n
\n\n \n
\n {{error}}\n
\n
\n\n
\n {{ field.templateOptions.alertNote }}\n
\n
\n\n \n {{to.attributes.tinyText}}\n \n\n
","import { Component, OnDestroy, OnInit, EventEmitter } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-ng-select-description-input',\n templateUrl: \"./formly-ng-select-description-input.component.html\"\n})\nexport class FormlyNgSelectDescriptionInputComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(\n private dynamicFormService: DynamicFormService\n ) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n }\n clickAction() {\n if (this.to.attributes && this.to.attributes.isReadonly == 0) {\n if (this.to.onClick) {\n this.to.onClick(this.field, this.to.attributes.isReadonly)\n }\n }\n }\n onTinyClick(){\n this.to.onTinyClick();\n }\n}","
    \n
  • \n \n \n {{ item.value | translate }}\n \n
  • \n
","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-ul',\n templateUrl: \"./formly-ul.component.html\"\n})\nexport class FormlyUlComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n listOptions: any;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.listOptions = this.to.options;\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onClick(item) {\n this.model[this.field.key.toString()] = item.key;\n if (this.to.click) {\n this.to.click(this, item.key);\n }\n }\n\n}","\n {{ item.value }}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-radio-button',\n templateUrl: \"./formly-radio-button.component.html\",\n styleUrls: ['./formly-radio-button.component.scss']\n})\nexport class FormlyRadioButtonComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n valueSubscription: Subscription;\n\n currentSelection: string;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n this.initialize();\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n if (this.valueSubscription) {\n this.valueSubscription.unsubscribe();\n }\n }\n\n initialize() {\n const fieldKey = this.field.key.toString();\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n this.valueSubscription = this.formControl.valueChanges.subscribe(value => {\n if (value && value.length > 0) {\n this.currentSelection = value[0];\n }\n else {\n this.currentSelection = '';\n }\n });\n if (this.field.key && this.model[fieldKey] && this.model[fieldKey].length > 0) {\n this.currentSelection = this.model[fieldKey][0];\n }\n else {\n this.currentSelection = '';\n }\n }\n\n onClick(item: any) {\n this.currentSelection = item.key;\n this.model[this.field.key.toString()] = [this.currentSelection];\n if (this.to.change) {\n this.to.change(this, this.currentSelection);\n }\n }\n\n}\n","
\n
\n
\n \n \n \n \n {{ option.value }}\n \n \n
\n
\n
","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n\n@Component({\n selector: 'formly-vehicle-button',\n templateUrl: \"./formly-vehicle-button.component.html\"\n})\n\nexport class FormlyVehicleButtonComponent extends FieldType implements OnInit, OnDestroy {\n param: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange(selectedValue) {\n this.formControl.setValue(selectedValue);\n this.to.change(this.field, this.formControl.value);\n }\n classupdateWhenNoAdvanceMileage(option) {\n let className = ''\n let options = this.field.templateOptions.options;\n let itemCount = 0;\n options.forEach(element => {\n itemCount = itemCount+1;\n });\n if (itemCount > 1) {\n if (this.formControl.value == option.id) {\n className = 'btn-vehicleType-active';\n }\n else {\n className = 'btn-vehicleType';\n }\n }\n else {\n className = 'btn-vehicleType-active disabled';\n }\n return className;\n }\n\n}","

\n \n  {{ item.value }}\n

","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-checkbox-input',\n templateUrl: \"./formly-checkbox-input.component.html\"\n})\nexport class FormlyCheckboxInputComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n valueSubscription: Subscription;\n checkedItems: number[] = [];\n allItems: any;\n fieldKey: string;\n\n constructor(private dynamicFormService: DynamicFormService, private translate: TranslateService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.initialize();\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n this.valueSubscription = this.formControl.valueChanges.subscribe(value => {\n this.setCheckedItems(value);\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n if (this.valueSubscription) {\n this.valueSubscription.unsubscribe();\n }\n }\n\n initialize() {\n this.allItems = [];\n if (this.to.options) {\n this.allItems = this.to.options;\n if (this.allItems.filter(i => i.key == 0).length == 0) {\n this.allItems.splice(0, 0, {\n value: this.translate.instant('label_select_all'),\n key: 0,\n checked: this.allItems.filter(i => i.key > 0).length == this.allItems.filter(i => i.checked == true).length,\n class:\"margin-bottom-10\"\n });\n }\n else {\n this.allItems.find(i => i.key == 0).checked = this.allItems.filter(i => i.key > 0).length == this.allItems.filter(i => i.checked == true).length;\n }\n\n this.allItems.forEach(element => {\n if (element.checked)\n this.checkedItems.push(element.key);\n });\n if (this.model && this.field.key) {\n const items = this.model[this.field.key.toString()];\n this.setCheckedItems(items);\n }\n }\n\n }\n\n setCheckedItems(items) {\n if (items && items.length > 0) {\n this.checkedItems = items;\n this.allItems.forEach(i => {\n let isItemChecked = this.checkedItems.indexOf(i.key) > -1;\n if (this.checkedItems && isItemChecked) {\n i.checked = true;\n }\n else {\n i.checked = false;\n }\n });\n this.checkUncheckAll();\n }\n\n }\n\n onClick($event, item) {\n item.checked = $event.target.checked;\n if (item.checked) {\n if (item.key == 0) {\n this.checkedItems = [];\n this.allItems.forEach(i => {\n i.checked = true;\n if (i.key > 0) {\n this.checkedItems.push(i.key);\n }\n });\n }\n else if (item.key > 0 && this.checkedItems.indexOf(item.key) < 0) {\n this.checkedItems.push(item.key);\n this.checkUncheckAll();\n }\n }\n else {\n if (item.key == 0) {\n this.checkedItems = [];\n this.allItems.forEach(i => {\n i.checked = false;\n });\n }\n else {\n this.checkedItems = this.checkedItems.filter(i => i != item.key);\n this.checkUncheckAll();\n }\n }\n this.checkedItems = this.checkedItems.filter(i => i > 0);\n\n this.model[this.field.key.toString()] = this.checkedItems;\n\n if (this.to.change) {\n this.to.change(this.field, this.checkedItems);\n }\n }\n\n checkUncheckAll() {\n var selectAllItem = this.allItems.find(i => i.key == 0);\n if (selectAllItem) {\n let checkedItemsLength = this.checkedItems.filter(i => i > 0).length;\n let allItemsLength = this.allItems.filter(i => i.key > 0).length;\n if (this.checkedItems && checkedItemsLength == allItemsLength) {\n selectAllItem.checked = true;\n }\n else {\n selectAllItem.checked = false;\n }\n }\n\n }\n\n}\n","import { EMAIL_REGEX } from \"src/util/constants\";\nimport { ValidationErrors, UntypedFormControl } from \"@angular/forms\";\n\nexport function EmailValidator(control: UntypedFormControl): ValidationErrors {\n return !control.value || EMAIL_REGEX.test(control.value) ? null : { invalidEmail: true };\n}\n\nexport function NoWhitespaceValidator(control: UntypedFormControl): ValidationErrors {\n const isWhitespace = (control.value || \"\").trim().length === 0;\n const isValid = !isWhitespace;\n return isValid ? null : { whitespace: true };\n}\n","

\n \n \n \n 0\">\n {{field.templateOptions.options[0].receiptCount}}\n \n \n \n \n {{field.templateOptions.options[0].label}}\n \n \n \n

","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n\n@Component({\n selector: 'formly-receipt',\n templateUrl: \"./formly-receipt.component.html\"\n})\nexport class FormlyReceiptComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n getReceipt($event) {\n if (this.to.onClick && this.to.options[0].isClick) {\n this.to.onClick(this.field, $event);\n }\n }\n\n}","
\n \n \n {{ field.templateOptions.options[0].otherInfo.title1 }}\n \n {{ field.templateOptions.options[0].otherInfo.title2 }}\n \n
\n\n {{ field.templateOptions.options[0].otherInfo.notesCount }}\n\n
0\">\n
    \n
  • \n

    \n {{ item.justificationNotes\n }}\n \n \n {{ fnActionString(item) }}\n \n \n

    \n
  • \n
\n
\n
\n

\n {{ \"no_notes_available\" | translate: param }}\n

\n
","import { DatePipe } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { DateFormatPipe, EODDateFormatPipe, TimeFormatPipe, TimeFormatPipeNew } from \"src/app/_helpers/pipe.module\";\n\n@Component({\n selector: 'formly-notes',\n templateUrl: \"./formly-notes.component.html\"\n})\nexport class FormlyNotesComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n\n constructor(private dynamicFormService: DynamicFormService, public datepipe: EODDateFormatPipe, public dateFormatPipe: DateFormatPipe, public timeFormatPipeNew: TimeFormatPipeNew) {\n super();\n }\n\n ngOnInit() {\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onClick(item) {\n this.to.click(item, this.formControl.value);\n }\n\n fnActionString(item) {\n if (item) {\n if (this.field.templateOptions?.cTimeformat) {\n return this.datepipe.transform(item.createdOn)+ \" \" + item.actionString;\n }\n let date = this.dateFormatPipe.transform(item.createdOn, \"dd-MMM-yyyy\");\n let time = this.timeFormatPipeNew.transform(item.createdOn, \"HH:mm\");\n let actionString = date + \" / \" + time + \" \" + item.actionString\n return actionString;\n }\n return '';\n }\n\n}\n","
\n \n \n {{ \"policy_violation_2\" | translate }}\n
\n
\n
\n
\n\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n \n {{ \"advance_limit\" | translate }}\n \n \n {{ model.advanceLimit }}\n \n
  • \n
  • \n \n {{ \"advance_balance\" | translate }}\n \n \n {{ model.passbookBalance }}\n \n
  • \n
  • \n \n {{ \"advance_amount\" | translate }}\n \n \n {{ model.amount }}\n \n
  • \n
  • \n \n {{ \"advance_above_limit\" | translate }}\n \n \n {{ model.advanceOverLimit }}\n \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-advance-policy',\n templateUrl: \"./formly-advance-policy.component.html\"\n})\nexport class FormlyAdvancePolicyComponent extends FieldType implements OnInit, OnDestroy {\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n\n advanceCappingLimit = false;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n\n if(this.model.advanceLimit) {\n this.advanceCappingLimit =true;\n }\n\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n}\n","
\n
\n
\n \n \n {{ 'click_to_view_policy_violation' | translate }}\n \n
\n \n
\n
\n\n\n\n \n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription, first } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { PolicyViolationInputModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { RequestPolicyViolation,IRequestPolicyViolation,IResponsePolicyViolation } from 'src/app/_models/twostepapproval/claimant-expense-detail';\nimport { IApiRequest, ApiRequest, BaseCategoryTypeEnum } from 'src/app/_models';\nimport { PolicyDataService } from 'src/app/_services/policy/policy-data.service';\n\n@Component({\n selector: 'formly-policy-violation',\n templateUrl: \"./formly-policy-violation.component.html\"\n})\n\nexport class FormlyPolicyViolationComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n openPanelSubscription: Subscription;\n zindexClass:string;\n showPolicyViolationPanel: boolean = false;\n policyViolationInputModel: PolicyViolationInputModel;\n isReceiptNumberSettingsEnabled:boolean=false;\n expenseModel: any;\n getPolicyRequest: IApiRequest = new ApiRequest(\"\", 1, \"\");\n getPolicyResponse: IResponsePolicyViolation;\n\n constructor(private dynamicFormService: DynamicFormService,private policyDataService: PolicyDataService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n \n if (this.field && this.field.templateOptions) {\n this.isReceiptNumberSettingsEnabled = this.field.templateOptions.isReceiptNumberSettingsEnabled;\n }\n\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n this.openPanelSubscription = this.dynamicFormService.getOpenPanelEvent().subscribe(key => {\n if (key == this.field.key) {\n this.fnOpenPolicyViolationPanel();\n }\n // if (key == this.field.key && this.model \n // && this.model.baseCategoryId != BaseCategoryTypeEnum.SpecialCategory) {\n // this.fnOpenPolicyViolationPanel();\n // }\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n if(this.openPanelSubscription) {\n this.openPanelSubscription.unsubscribe();\n }\n }\n\n fnOpenPolicyViolationPanel() {\n if(this.model.orgExpenseCategoryId) {\n\n if(this.model.baseCategoryId == BaseCategoryTypeEnum.SpecialCategory)\n {\n if(this.model.expenseId && this.model.expenseId > 0)\n {\n this.getPolicyRequest.requestInfo = new RequestPolicyViolation();\n this.getPolicyRequest.requestInfo.expenseId = this.model.expenseId;\n this.getPolicyRequest.requestInfo.orgSubCategoryMappings = this.model.orgSubCategoryMappings;\n this.expenseModel = this.model; \n this.policyDataService.GetPolicyData(this.getPolicyRequest)\n .pipe(first())\n .subscribe(\n data => {\n if (data.statusCode == 0) {\n this.getPolicyResponse = data.responseInfo;\n this.expenseModel.orgSubCategoryMappings = this.getPolicyResponse.orgSubCategoryMappings;\n this.expenseModel.PolicyOnMainCategory = this.getPolicyResponse.policyViolation;\n this.props.click(this.field, this.model.baseCategoryId);\n }\n },\n error => {\n //this.toastr.error(this.translate.instant(\"failed\"));\n }\n );\n }\n else\n {\n this.props.click(this.field, this.model.baseCategoryId); \n }\n \n \n }\n else\n {\n this.zindexClass=\"z-99999\";\n this.policyViolationInputModel = new PolicyViolationInputModel(\n this.model.expenseId,\n this.model.expenseCategoryName,\n this.model.baseCategoryId,\n this.model.justificationNotes,\n false,\n ''\n );\n this.policyViolationInputModel.policyViolationDetails = this.model.policyViolation;\n this.showPolicyViolationPanel = true;\n }\n\n }\n }\n\n fnClosePolicyViolationPanel(justificationNotes) {\n this.policyViolationInputModel = null;\n this.showPolicyViolationPanel = false;\n if (justificationNotes) {\n this.to.change(this.field, justificationNotes);\n }\n }\n\n}\n","
\n
\n
\n \n \n {{ 'click_to_view_policy_violation' | translate }}\n \n
\n \n
\n
\n\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-advance-policy-violation',\n templateUrl: \"./formly-advance-policy-violation.component.html\"\n})\nexport class FormlyAdvancePolicyViolationComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n openPanelSubscription: Subscription;\n\n showPolicyViolationPanel: boolean = false;\n policyViolationInputModel: any;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n this.openPanelSubscription = this.dynamicFormService.getOpenPanelEvent().subscribe(key => {\n if (key == this.field.key) {\n this.fnOpenPolicyViolationPanel();\n }\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n if(this.openPanelSubscription) {\n this.openPanelSubscription.unsubscribe();\n }\n }\n\n fnOpenPolicyViolationPanel() {\n if(this.model.amount) {\n\n this.policyViolationInputModel = {\n justificationNotes: this.model.justificationNotes ? this.model.justificationNotes : '',\n amount: this.model.amount,\n advanceBalance: this.model.passbookBalance,\n advanceLimit: this.model.advanceLimit,\n advanceOverLimit: this.model.advanceOverLimit,\n disableJustificationNotes: true\n };\n this.showPolicyViolationPanel = true;\n }\n }\n\n fnClosePolicyViolationPanel(justificationNotes) {\n this.policyViolationInputModel = null;\n this.showPolicyViolationPanel = false;\n if (justificationNotes) {\n this.to.change(this.field, justificationNotes);\n }\n }\n\n}\n","\n\n
\n
\n \n \n \n
\n
\n \n
\n \n
","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n\n@Component({\n selector: 'formly-toggle-input',\n templateUrl: \"./formly-toggle-input.component.html\"\n})\nexport class FormlyToggleInputComponent extends FieldType implements OnInit, OnDestroy {\n param: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n mainClass: string;\n enableBigToggle = true;\n extraMessage = '';\n \n constructor(private dynamicFormService: DynamicFormService,private sanitizer: DomSanitizer) {\n super();\n }\n\n ngOnInit() {\n if (this.to.options && this.to.options[0] && this.to.options[0].mainClass) {\n this.mainClass = this.to.options[0].mainClass;\n }\n else {\n this.mainClass = \"custom-control custom-switch text-right position-relative top--10px margin-right-15\";\n }\n if (this.to.options && this.to.options[0] && this.to.options[0].enableBigToggle != undefined){\n this.enableBigToggle = this.to.options[0].enableBigToggle;\n }\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n if(this.to.options && this.to.options[0] && this.to.options[0].extraMsgHtml)\n {\n this.extraMessage = this.to.options[0].extraMsgHtml;\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n sanitizerHtml(element) {\n return this.sanitizer.bypassSecurityTrustHtml(element);\n }\n \n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n this.to.change(this.field, this.formControl.value);\n }\n\n}","
\n
\n \n \n \n
\n\n
","import { Component, OnDestroy, OnInit, EventEmitter } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-radio-input',\n templateUrl: \"./formly-radio-input.component.html\"\n})\nexport class FormlyRadioInputComponent extends FieldType implements OnInit, OnDestroy {\n\n param: any;\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(\n private dynamicFormService: DynamicFormService,\n private sanitizer: DomSanitizer\n ) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n }\n\n sanitizerHtml(element) {\n var safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return safeText;\n }\n}\n","
\n\n \n \n
\n
\n {{ item.value }}\n
\n
\n
\n {{ 'all' | translate}}\n
\n
1\n \" class=\"ng-value\">\n (+{{ items.length - 1 }})\n
\n
\n \n \n {{ 'all' | translate}}\n \n \n \n {{ item.value }}\n \n
\n\n
\n {{ \"label_Required\" | translate: param }}\n
\n\n \n
\n {{error}}\n
\n
\n\n
\n {{ field.templateOptions.alertNote }}\n
\n\n
","import { Component, OnDestroy, OnInit, EventEmitter } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-ng-multi-select-input',\n templateUrl: \"./formly-ng-multi-select-input.component.html\"\n})\nexport class FormlyNgMultiSelectInputComponent extends FieldType implements OnInit, OnDestroy {\n\n param: any;\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(\n private dynamicFormService: DynamicFormService\n ) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n }\n\n onOpen() {\n setTimeout(() => {\n const scrollContainer = document.querySelector(\n \".ng-dropdown-panel-items\"\n );\n if (scrollContainer) {\n scrollContainer.scrollTop = 0;\n }\n }, 0);\n }\n}","
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n {{field.templateOptions.dimension}}\n {{field.templateOptions.size}}\n {{field.templateOptions.accepted_formats}}\n

    \n \n

    \n
  • \n
  •  
  • \n
  • \n {{field.templateOptions.h_30px}} | {{field.templateOptions.w_30px}}\n {{field.templateOptions.kb_50}}\n \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n\n \n \n
\n
\n\n","import { Component, ElementRef, ViewChild, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport {\n HttpClientModule,\n HttpClient,\n HttpRequest,\n HttpResponse,\n HttpEventType\n} from \"@angular/common/http\";\nimport { AlertPanelModel } from '../../../../_models/common/alertPanelModel';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'formly-currency-image-uploder',\n templateUrl: \"./formly-currency-image-uploder.component.html\"\n})\nexport class FormlyCurrencyImageUploderComponent extends FieldType {\n\n fieldKey: string;\n size: number;\n width: number;\n height: number;\n imgUrl: string;\n imgName: string;\n alertPanelModel = new AlertPanelModel(false, \"\", [\"\"], \"\", \"\", true, this.translate.instant(\"please_review_or_confirm\"));\n public message: string;\n ShowErrorPanel: boolean = false;\n formSubmissionSubscription: Subscription;\n isFormSubmitted: boolean = false;\n filedata: any;\n\n constructor(private translate: TranslateService, private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n this.imgUrl = this.field.templateOptions.orgLogo;\n //this.formControl.setValue(this.field.templateOptions.orgLogo);\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onChange(evt: any) {\n this.realImgDimension(evt);\n let tempFile = evt.target.files[0];\n\n if (tempFile) {\n let fileExtension = tempFile.type.split('/')[1];\n if (fileExtension &&\n (fileExtension.toLowerCase() == \"png\" ||\n fileExtension.toLowerCase() == \"jpg\" ||\n fileExtension.toLowerCase() == \"jpeg\")) {\n } else {\n this.ShowErrorPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.field.templateOptions.alert,\n [],\n '',\n this.field.templateOptions.close,\n true\n ,\n this.field.templateOptions.formatNotSupport\n );\n return;\n }\n if (fileExtension && tempFile.size < 50000) {\n } else {\n this.ShowErrorPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.field.templateOptions.alert,\n [],\n '',\n this.field.templateOptions.close,\n true\n ,\n this.field.templateOptions.fileSizeMessage\n );\n return;\n }\n }\n if (tempFile) {\n this.filedata = tempFile;\n this.formControl.setValue(tempFile);\n this.to.change(this.field, tempFile);\n }\n }\n\n realImgDimension(evt: any) {\n let image: any = evt.target.files[0];\n let fr = new FileReader();\n fr.readAsDataURL(image);\n\n fr.onload = (event) => {\n // when file has loaded\n var img = new Image();\n img.onload = () => {\n this.width = img.width;\n this.height = img.height;\n if (img.width > 50 && img.height > 50) {\n this.ShowErrorPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.field.templateOptions.alert,\n [],\n '',\n this.field.templateOptions.close,\n true,\n this.field.templateOptions.widthHeighMessage\n );\n return;\n }\n else {\n this.imgUrl = event.target.result.toString();\n }\n };\n img.src = fr.result.toString();\n };\n }\n\n\n alertPanelReceiver(returnValue) {\n this.ShowErrorPanel = false;\n }\n\n}\n","","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n\n@Component({\n selector: 'formly-button',\n templateUrl: \"./formly-button.component.html\"\n})\n\nexport class FormlyButtonComponent extends FieldType implements OnInit, OnDestroy {\n param: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n label: string;\n buttonClass: string;\n iconClass: string;\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n\n if (this.field.templateOptions && this.field.templateOptions.label) {\n this.label = this.field.templateOptions.label;\n }\n if (this.field.templateOptions && this.field.templateOptions.buttonClass) {\n this.buttonClass = this.field.templateOptions.buttonClass;\n }\n if (this.field.templateOptions && this.field.templateOptions.iconClass) {\n this.iconClass = this.field.templateOptions.iconClass;\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onClick() {\n this.to.click(this.field);\n }\n\n}\n","
\n \n \n \n \n\n\n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n

\n \n {{field.templateOptions.note}}\n \n

\n
","import { AfterViewInit, Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { FlatpickrOptions } from 'ng2-flatpickr';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-calendar-date-month-input',\n templateUrl: \"./formly-calendar-date-month-input.component.html\"\n})\nexport class FormlyCalendarDateMonthInputComponent extends FieldType implements OnInit, OnDestroy, AfterViewInit {\n @Output() dateChange = new EventEmitter();\n datePickerOptions: FlatpickrOptions = {\n mode: \"single\",\n defaultDate: new Date(),\n altInput: true,\n altFormat: \"d-M\",\n dateFormat: \"m/d/Y\"\n };\n @ViewChild(\"fydate\") fydate: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n isLabelVisible: boolean = false;\n calendarLabel: string = \"\";\n addTopMargin: boolean = true;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n this.datePickerOptions.defaultDate = new Date();\n if (this.field && this.field.formControl && this.field.formControl.value) {\n this.datePickerOptions.defaultDate = new Date(this.field.formControl.value);\n }\n else{\n this.formControl.setValue(new Date());\n }\n\n\n if (this.field && this.field.templateOptions) {\n this.calendarLabel = this.field.templateOptions.calendarLabel;\n this.isLabelVisible = this.field.templateOptions.isLabelVisible;\n }\n\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n ngAfterViewInit() {\n //Initialize datePicker\n this.fydate.nativeElement.flatpickr(this.datePickerOptions);\n }\n\n onValueChange() {\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n }\n\n\n}","
\n \n\n \n \n
","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n\n@Component({\n selector: 'formly-toggle-input-left-aligned',\n templateUrl: \"./formly-toggle-input-left-aligned.component.html\"\n})\nexport class FormlyToggleInputLeftAlignedComponent extends FieldType implements OnInit, OnDestroy {\n param: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n mainClass: string;\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.to.options && this.to.options[0] && this.to.options[0].mainClass) {\n this.mainClass = this.to.options[0].mainClass;\n }\n else {\n this.mainClass = \"custom-control custom-switch position-relative top--10px margin-left-10\";\n }\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n this.to.change(this.field, this.formControl.value);\n }\n\n}","\n
\n
{{ baseCategoryNameModel }}
\n \"Mobile\n \"Mobile\n \"Mobile\n \"Mobile\n \"Mobile\n \"Mobile\n \"Mobile\n \"Mobile\n
0\">\n

\n {{ \"manageCat_templateUsing_msg1\" | translate: param}}\n {{ orgCategoryListByBaseCatId.length }}\n {{\"manageCat_templateUsing_msg2\" | translate: param}}\n \n

\n
\n
    \n

    \n \n {{\"manageCat_templateUsing_msg2\" | translate: param}}\n \n \n \n \n

    \n \n
  • \n {{ item.expenseCategoryName }}\n
  • \n
\n
\n
\n \n
\n\n","import { ChangeDetectorRef, Component, OnChanges, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { BaseCategoryTypeEnum } from 'src/app/_models';\nimport { IManageCategoryListResponse } from 'src/app/_models/manage-category/manage-category-list-response';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n\n@Component({\n selector: 'formly-category-view',\n templateUrl: \"./formly-category-view.component.html\"\n})\n\nexport class FormlyCategoryViewComponent extends FieldType implements OnInit, OnDestroy {\n param: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n valueChangeSubscription: Subscription;\n baseCategoryNameModel: string;\n baseCategoryId: number;\n baseCategoryTypeEnum = BaseCategoryTypeEnum;\n orgCategoryListByBaseCatId = [];\n isActiveCategoryForTemplate: boolean;\n\n constructor(private dynamicFormService: DynamicFormService, private translate: TranslateService\n ,private cdr:ChangeDetectorRef) {\n super();\n }\n\n ngOnInit() {\n if (this.to.options && this.to.options[0] && this.to.options[0].categoryDetail) {\n this.baseCategoryId = Number(this.to.options[0].categoryDetail.baseCategoryId);\n this.fnGetTemplateName();\n this.fnOpenTemplateDiv();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n this.valueChangeSubscription = this.dynamicFormService.getValueChangeEvent().subscribe(data => {\n this.baseCategoryId = data;\n this.fnGetTemplateName();\n this.fnOpenTemplateDiv();\n this.cdr.detectChanges();\n });\n }\n fnGetTemplateName() {\n switch (this.baseCategoryId) {\n case this.baseCategoryTypeEnum.Entertainment:\n this.baseCategoryNameModel = this.translate.instant(\"Entertainment\");\n break;\n case this.baseCategoryTypeEnum.Generic:\n this.baseCategoryNameModel = this.translate.instant(\"standard_category\");\n break;\n case this.baseCategoryTypeEnum.Hotel:\n this.baseCategoryNameModel = this.translate.instant(\"HotelandLodgings\");\n break;\n case this.baseCategoryTypeEnum.Mileage:\n this.baseCategoryNameModel = this.translate.instant(\"Mileage\");\n break;\n case this.baseCategoryTypeEnum.MileageGPS:\n this.baseCategoryNameModel = this.translate.instant(\"mileage_gps\");\n break;\n case this.baseCategoryTypeEnum.MileageGoogle:\n this.baseCategoryNameModel = this.translate.instant(\"mileage_google\");\n break;\n case this.baseCategoryTypeEnum.NoReceiptCategory:\n this.baseCategoryNameModel = this.translate.instant(\"receipt_type_text9\");\n break;\n }\n }\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange(selectedValue) {\n this.formControl.setValue(selectedValue);\n this.to.change(this.field, this.formControl.value);\n\n }\n\n fnOpenTemplateDiv() {\n this.orgCategoryListByBaseCatId = [];\n let manageCategoryList = [];\n if (this.to.options && this.to.options[0] && this.to.options[0].categoryDetail && this.to.options[0].manageCategoryView) {\n manageCategoryList = this.to.options[0].manageCategoryList\n }\n this.orgCategoryListByBaseCatId = manageCategoryList.filter(a => a.baseCategoryId == this.baseCategoryId && a.isActive == true);\n }\n fnCloseTemplateDiv() {\n this.orgCategoryListByBaseCatId = [];\n this.isActiveCategoryForTemplate = false;\n }\n\n\n}","
\n \n \n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n \n
\n {{error}}\n
\n
\n \n
\n {{field.templateOptions.supportLabel}}\n
\n
\n\n
","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n\n@Component({\n selector: 'formly-two-decimal-number-input',\n templateUrl: \"./formly-two-decimal-number-input.component.html\"\n})\nexport class FormlyTwoDecimalNumberInputComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n \n constructor(private dynamicFormService: DynamicFormService,private cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n setTimeout(() => {\n this.cdRef.detectChanges()\n }, 100);\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onNumberInput() {\n this.to.change(this.field, this.formControl.value);\n }\n\n onKeyPress(event) {\n const value = parseInt(this.formControl.value + event.key);\n if(this.to.max) {\n if(value > this.to.max) {\n return false;\n }\n }\n if(this.to.min) {\n if(value < this.to.min) {\n return false;\n }\n }\n if(this.to.omitNegativeSign){\n return event.charCode != 45; \n }\n return true;\n }\n\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[threeDigitBeforeAndTwoDigitAfterDecimalNumber]'\n})\nexport class ThreeDigitBeforeAndTwoDigitAfterDecimalNumberDirective {\n // Allow decimal numbers and negative values\n private regex: RegExp = new RegExp(/^\\d{1,3}(\\.$|\\.\\d{1,2}$|$)/);\n // Allow key codes for special events. Reflect :\n // Backspace, tab, end, home\n private specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\n\n constructor(private el: ElementRef) {\n }\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n // Allow Backspace, tab, end, and home keys\n if (this.specialKeys.indexOf(event.key) !== -1) {\n return;\n }\n let current: string = this.el.nativeElement.value;\n const position = this.el.nativeElement.selectionStart;\n const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join('');\n if (next && !String(next).match(this.regex)) {\n event.preventDefault();\n }\n }\n}","
\n \n \n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n\n@Component({\n selector: 'formly-three-digit-decimal-input',\n templateUrl: \"./formly-three-digit-decimal-input.component.html\"\n})\nexport class FormlyThreeDigitDecimalInputComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onNumberInput() {\n this.to.change(this.field, this.formControl.value);\n }\n\n}\n","
\n \n \n

\n {{'text_associate' | translate:param}}\n

\n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n
\n\n\n\n\n\n\n","import { DatePipe } from '@angular/common';\nimport { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { AssociateCreditCardExpenseInputModel, AssociateCreditCardExpenseOutputModel } from 'src/app/_models/claimant-on-web/claimant-on-web';\nimport { AlertPanelModel } from 'src/app/_models/common/alertPanelModel';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-expense-amount-input',\n templateUrl: \"./formly-expense-amount-input.component.html\"\n})\nexport class FormlyExpenseAmountInputComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n showAdvancePassbookPanel: boolean;\n\n selectAssociateCategoryAlert = new AlertPanelModel(false, \"\", [\"\"], \"\", \"\", true, \"\");\n showAssociateCreditCardExpensePanel: boolean = false;\n associateCreditCardExpenseInputModel: AssociateCreditCardExpenseInputModel;\n digitDirective: string = \"sixDigitBeforeAndTwoDigitAfterDecimalNumber\";\n isSix: boolean = false;\n\n constructor(private dynamicFormService: DynamicFormService,\n private translate: TranslateService,\n private datePipe: DatePipe, private cdr:ChangeDetectorRef) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.digitDirective = \"sixDigitBeforeAndTwoDigitAfterDecimalNumber\";\n if (this.field?.templateOptions?.digitDirective) { \n this.digitDirective = this.field?.templateOptions?.digitDirective;\n } \n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => { \n this.isFormSubmitted = data;\n this.cdr.detectChanges();\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onNumberInput() {\n this.to.change(this.field, this.formControl.value);\n }\n\n fnOpenAssociateCreditCardExpensePanel() {\n if (this.model.orgExpenseCategoryId && this.model.orgExpenseCategoryId > 0) {\n this.associateCreditCardExpenseInputModel = new AssociateCreditCardExpenseInputModel();\n this.associateCreditCardExpenseInputModel.orgExpenseCategoryId = this.model.orgExpenseCategoryId;\n this.associateCreditCardExpenseInputModel.supplier = this.model.supplier;\n this.associateCreditCardExpenseInputModel.expenseId = this.model.cardAssociateId;\n this.associateCreditCardExpenseInputModel.expenseCategoryName = this.model.expenseCategoryName;\n this.associateCreditCardExpenseInputModel.claimantId = this.model.userId;\n this.associateCreditCardExpenseInputModel.claimantName = this.model.userName;\n\n this.showAssociateCreditCardExpensePanel = true;\n\n } else {\n this.selectAssociateCategoryAlert = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n this.translate.instant(\"text_cancel\"),\n this.translate.instant(\"text_ok\"),\n true,\n this.translate.instant(\"please_select_relevant_category_first_to_associate_this_expense\")\n );\n }\n }\n\n fnCloseAssociateCreditCardExpensePanel() {\n this.showAssociateCreditCardExpensePanel = false;\n }\n\n fnSelectAssociateCreditCardExpense(data: AssociateCreditCardExpenseOutputModel) {\n if (data) {\n let cardDescription = this.model.cardDescription;\n cardDescription += '\\n\\n' + this.translate.instant(\"association_details\") +\n '\\n' + this.translate.instant(\"expense_date\") + \": \" + this.datePipe.transform(new Date(data.expenseDate), \"yyyy-MM-dd\") +\n '\\n' + this.translate.instant(\"amount\") + \": \" + data.amount + ' ' + data.currencyCode +\n '\\n' + this.translate.instant(\"supplier\") + \": \" + data.supplier;\n\n this.model.cardAssociateId = data.expenseId;\n this.model.cardDescription = cardDescription;\n\n this.form.controls[\"cardDescription\"].setValue(cardDescription);\n }\n this.showAssociateCreditCardExpensePanel = false;\n }\n\n selectAssociateCategoryAlertPanelReceiver(returnValue) {\n this.selectAssociateCategoryAlert = new AlertPanelModel(false, \"\", [\"\"], \"\", \"\", true, \"\");\n }\n\n numberOnly(event): boolean {\n const charCode = event.which ? event.which : event.keyCode;\n if (this.field?.templateOptions?.allowNotZero && charCode == 48 && !this.formControl.value) { \n return false;\n } \n return true;\n }\n\n}\n","
\n \n \n \n
\n

\n {{ option.value }}\n \n {{ option.description }}\n \n

\n
\n
","import { Component, OnDestroy, OnInit, EventEmitter } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-radio-description-input',\n templateUrl: \"./formly-radio-description-input.component.html\"\n})\nexport class FormlyRadioDescriptionInputComponent extends FieldType implements OnInit, OnDestroy {\n param: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(\n private dynamicFormService: DynamicFormService\n ) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n }\n}\n","
\n
\n
\n
\n
\n
\n \"logo\"\n
\n
\n

\n \n \n

\n
\n
\n
\n\n
\n
\n
    \n
  • \n {{'logo_dimensions' | translate}}\n {{'size'| translate}}\n {{'accepted_formats' | translate }}\n

    \n \n

    \n
  • \n
  •  
  • \n
  • \n {{'w_160px' | translate }} | {{'h_50px' | translate}}\n 200Kb\n {{'png_jpg_jpeg' | translate}}\n
  • \n
\n
\n
\n
\n\n\n","import { Component, ElementRef, ViewChild, OnInit, AfterViewInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AlertPanelModel } from '../../../../_models/common/alertPanelModel';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'formly-logo-uploader',\n templateUrl: \"./formly-logo-uploader.component.html\"\n})\nexport class FormlyLogoUploaderComponent extends FieldType implements OnInit, OnDestroy, AfterViewInit {\n\n fieldKey: string;\n formSubmissionSubscription: Subscription;\n isFormSubmitted: boolean = false;\n\n imgUrl: string = \"\";\n alertPanelModel: AlertPanelModel;\n showAlertPanel: boolean = false;\n fileExtensions: string[] = [\".png\", \".jpg\", \".jpeg\"];\n\n constructor(\n private translate: TranslateService,\n private dynamicFormService: DynamicFormService, private cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n this.imgUrl = this.field.templateOptions.defaultLogo;\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n ngAfterViewInit() {\n this.form.valueChanges.subscribe(() => {\n this.cdRef.detectChanges()\n });\n }\n\n onValueChange(files: any) {\n if (files) {\n \n if (this.isValidFile(files[0])) {\n let reader = new FileReader();\n reader.readAsDataURL(files[0]);\n reader.onload = (event) => {\n const img = new Image();\n img.src = reader.result as string;\n img.onload = () => {\n const height = img.naturalHeight;\n const width = img.naturalWidth;\n if (height <= 50 && width <= 160) {\n this.imgUrl = reader.result.toString();\n this.formControl.setValue(this.imgUrl);\n this.to.change(this.field, files[0]);\n } else {\n this.showAlertPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n '',\n this.translate.instant(\"Close\"),\n true,\n this.translate.instant(\"logo_resize_validation\")\n );\n this.formControl.setValue(null);\n this.to.change(this.field, files[0]);\n this.cdRef.detectChanges();\n return;\n }\n };\n };\n } else {\n this.formControl.setValue(null);\n this.to.change(this.field, files[0]);\n }\n\n }\n }\n\n getSupportedExtensionsText() {\n let text = \"\";\n if (this.fileExtensions) {\n text = this.fileExtensions.join(' / ');\n }\n return text;\n }\n\n isValidFile(file: any) {\n let isValid = true;\n if (!this.checkExtension(file.name)) {\n this.showAlertPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [\n this.translate.instant(\"Please_upload_the_images_only\") + ' ' + this.getSupportedExtensionsText() + ''\n ],\n '',\n this.translate.instant(\"Close\"),\n true,\n this.translate.instant(\"invalid_image_format\")\n );\n isValid = false;\n this.cdRef.detectChanges();\n return isValid;\n }\n\n let mimeType = file.type;\n\n if (mimeType.match(/image\\/*/) == null) {\n this.showAlertPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [this.translate.instant(\"Please_upload_the_images_only\"),\n this.translate.instant(\"only_images_are_supported\")\n ],\n '',\n this.translate.instant(\"Close\"),\n true\n , this.translate.instant(\"only_images_are_supported\")\n );\n isValid = false;\n this.cdRef.detectChanges();\n return isValid;\n }\n\n if (file.size > 200000) {\n this.showAlertPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n '',\n this.translate.instant(\"Close\"),\n true,\n this.translate.instant(\"file_size_exceeded\")\n );\n isValid = false;\n this.cdRef.detectChanges();\n return isValid;\n }\n return isValid;\n }\n\n checkExtension(fileName: any) {\n return this.fileExtensions.some(el => fileName.toLowerCase().endsWith(el));\n }\n\n alertPanelReceiver(returnValue: any) {\n this.showAlertPanel = false;\n this.alertPanelModel = null;\n this.cdRef.detectChanges();\n }\n\n}\n","
\n \n \n \n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n
\n","import { AfterViewInit, Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { FlatpickrOptions } from 'ng2-flatpickr';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-calendar-date-input',\n templateUrl: \"./formly-calendar-date-input.component.html\"\n})\nexport class FormlyCalendarDateInputComponent extends FieldType implements OnInit, OnDestroy, AfterViewInit {\n @Output() dateChange = new EventEmitter();\n dateFormats = [\n {\n id:1,\n name:\"d/m/y\"\n },\n { \n id:2,\n name:\"d/m/Y\"\n },\n {\n id:3,\n name:\"m/d/d\"\n },\n {\n id:4,\n name:\"m/d/Y\"\n },\n {\n id:5,\n name:\"y/m/d\"\n },\n {\n id:6,\n name:\"Y/M\"\n },\n {\n id:7,\n name:\"m-d-y\"\n },\n {\n id:8,\n name:\"d-m-y\"\n },\n {\n id:9,\n name:\"d-M-y\"\n },\n {\n id:10,\n name:\"d-M-Y\"\n },\n {\n id:11,\n name:\"d.m.y\"\n },\n {\n id:12,\n name:\"d.m.Y\"\n },\n {\n id:13,\n name:\"y.m.d\"\n },\n {\n id:14,\n name:\"M d, y\"\n },\n {\n id:15,\n name:\"M d, Y\"\n },\n {\n id:16,\n name:\"dmy\"\n },\n {\n id:17,\n name:\"ymd\"\n },\n {\n id:18,\n name:\"dmY\"\n },\n {\n id:19,\n name:\"Ymd\"\n },\n ];\n dateFormatString: string = \"d-M-Y\";\n defaultDate: Date = new Date();\n datePickerOptions: FlatpickrOptions = {\n mode: \"single\",\n defaultDate: new Date(),\n altInput: true,\n altFormat: this.dateFormatString,\n dateFormat: this.dateFormatString\n };\n @ViewChild(\"dateInput\") dateInput: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n\n this.datePickerOptions.defaultDate = new Date();\n if (this.field && this.field.formControl && this.field.formControl.value) {\n if(typeof this.field.formControl.value === 'string')\n {\n this.datePickerOptions.defaultDate = new Date(+this.field.formControl.value);\n } else\n this.datePickerOptions.defaultDate = new Date(this.field.formControl.value);\n this.defaultDate = this.datePickerOptions.defaultDate;\n } else {\n this.formControl.setValue(new Date());\n }\n\n if (this.field && this.field.templateOptions && this.field.templateOptions.dateFormat) {\n this.datePickerOptions.dateFormat = this.field.templateOptions.dateFormat;\n this.dateFormatString = this.dateFormats.find(it=>it.id==this.field.templateOptions.dateFormat).name ;\n this.datePickerOptions = {\n mode: \"single\",\n defaultDate: this.defaultDate,\n altInput: true,\n altFormat: this.dateFormatString,\n dateFormat: this.dateFormatString\n };\n }\n\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n ngAfterViewInit() {\n //Initialize datePicker\n this.dateInput.nativeElement.flatpickr(this.datePickerOptions);\n }\n\n onValueChange() {\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\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 {{'home' | translate }}\n

    \n

    \n {{model.mileage?.userHomeAddressInfo?.address}}\n

    \n
  • \n
  • \n

    \n {{'office' | translate }}\n

    \n

    \n {{model.mileage?.userOfficeAddressInfo?.address}}\n

    \n
  • \n
\n
\n
\n
    \n
  • {{item.description}}
  • \n
\n
\n\n
\n
    \n
  • {{'no_match_found' | translate }}
  • \n
\n
\n\n
\n \n {{ \"label_Required\" | translate }}\n \n
\n
\n\n \n
\n
\n \n {{ 'return_journey' | translate }}\n
\n\n \n
\n\n
\n\n\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { ApiRequest, BaseCategoryTypeEnum, IApiresponse } from 'src/app/_models';\nimport { LocationCommonDetail, SelectRecentJourneyInputModel, SelectRecentJourneyOutputModel } from 'src/app/_models/claimant-on-web/claimant-on-web';\nimport { IOrganisationGooglePackageUpdateCallsRequest, OrganisationGooglePackageUpdateCallsRequest } from 'src/app/_models/google-mapping/google-mapping';\nimport { ClaimsService } from 'src/app/_services/common/claims.service';\nimport { GoogleMappingService } from 'src/app/_services/google-mapping/google-mapping.service';\nimport { environment } from 'src/environments/environment';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Component({\n selector: 'formly-location-input',\n templateUrl: \"./formly-location-input.component.html\"\n})\nexport class FormlyLocationInputComponent extends FieldType implements OnInit, OnDestroy {\n\n claimsSubscription: Subscription;\n localUserId: number;\n localLoginId: string;\n localOrganisationId: number;\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n queryWait: boolean = false;\n googleDynamicAddressList: any;\n isGoogleDropdownVisible: boolean = false;\n isHomeOfcDropdownVisible: boolean = false;\n isGoogleAddressNotFound: boolean = false;\n countOfGoogleCalls: number = 0;\n\n showSelectRecentJourneyPanel: boolean = false;\n selectRecentJourneyInputModel: SelectRecentJourneyInputModel;\n hasReturnJourney: boolean = false;\n gm_lable: string;\n\n constructor(private dynamicFormService: DynamicFormService,\n private claimsService: ClaimsService,\n private googleMappingService: GoogleMappingService,\n private translate: TranslateService,\n private cdr: ChangeDetectorRef) {\n super();\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.localUserId = claims.UserId;\n this.localLoginId = claims.LoginId;\n this.localOrganisationId = claims.OrgId;\n });\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n this.hasReturnJourney = this.model.mileage && this.model.mileage.hasReturnJourney;\n if (this.fnIsMileageGoogleExpense()) this.gm_lable = ' ' + this.translate.instant('gm_message');\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n if (this.claimsSubscription) {\n this.claimsSubscription.unsubscribe();\n }\n }\n\n onTextInput() {\n this.model.mileage[this.field.key.toString()].location = this.formControl.value;\n this.to.change(this.field, this.formControl.value);\n\n }\n\n onReturnJourneyInput() {\n this.model.mileage.hasReturnJourney = !this.hasReturnJourney;\n this.to.change(this.field, this.formControl.value);\n }\n\n fnIsMileageGoogleExpense() {\n return this.model.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle;\n }\n fnIsManualMileageExpense() {\n return this.model.baseCategoryId == BaseCategoryTypeEnum.Mileage;\n }\n isCharLimit: boolean = false;\n isToDelIconDisplay: boolean = false;\n fnSearchAddress(value) {\n if (value.length == 0) {\n this.isToDelIconDisplay = false;\n }\n this.isCharLimit = false;\n if (this.model.mileage.googleCallsInfo\n && Number(this.model.mileage.googleCallsInfo.limitChar) > 0\n && value.length > Number(this.model.mileage.googleCallsInfo.limitChar)) {\n this.isCharLimit = true;\n return false;\n }\n\n this.isHomeOfcDropdownVisible = false;\n if (this.fnIsMileageGoogleExpense()) {\n this.model.mileage[this.field.key.toString()].placeId = null;\n this.model.mileage[this.field.key.toString()].location = this.formControl.value;\n\n if (!this.queryWait) {\n this.queryWait = true;\n setTimeout(() => {\n this.fnGetFromAutocompletePredictions();\n this.queryWait = false;\n }, 200);\n }\n this.cdr.detectChanges();\n }\n }\n\n private fnGetFromAutocompletePredictions() {\n\n if (this.model.mileage[this.field.key.toString()].location.length < 6) {\n this.googleDynamicAddressList = null;\n if (this.model.mileage[this.field.key.toString()].location.length > 0) {\n this.isGoogleAddressNotFound = true;\n this.isHomeOfcDropdownVisible = false;\n }\n else {\n if (this.model.mileage.triangulationRule) {\n this.isHomeOfcDropdownVisible = true;\n }\n this.isGoogleAddressNotFound = false;\n this.isGoogleDropdownVisible = false;\n }\n }\n if (this.model.mileage[this.field.key.toString()].location.length != 6 && this.model.mileage[this.field.key.toString()].location.length < 10) {\n return;\n }\n this.fnGetPlacePredictions(this.model.mileage[this.field.key.toString()].location)\n .then(data => {\n this.googleDynamicAddressList = data;\n this.isGoogleDropdownVisible = this.googleDynamicAddressList != null ? true : false;\n this.isGoogleAddressNotFound = this.googleDynamicAddressList == null ? true : false;\n this.isHomeOfcDropdownVisible = false;\n this.countOfGoogleCalls++;\n })\n .catch(err => {\n this.isGoogleDropdownVisible = false;\n this.isGoogleAddressNotFound = true;\n this.isHomeOfcDropdownVisible = false;\n });\n }\n\n private fnGetPlacePredictions(query: string): Promise {\n let autocompleteSrv = new google.maps.places.AutocompleteService();\n return new Promise((resolve, reject) => {\n autocompleteSrv.getPlacePredictions({\n types: ['geocode'],\n input: query\n }, function (predictions, status) {\n if (status == google.maps.places.PlacesServiceStatus.OK) {\n resolve(predictions);\n } else {\n reject(status);\n }\n });\n });\n }\n fnOnInputClick() {\n if (this.model.mileage.triangulationRule) {\n if ((!this.googleDynamicAddressList || this.googleDynamicAddressList == null\n || this.googleDynamicAddressList.length == 0) && (!this.formControl.value || this.formControl.value == '')) {\n this.isGoogleDropdownVisible = false;\n this.isGoogleAddressNotFound = false;\n this.isHomeOfcDropdownVisible = true;\n }\n }\n }\n fnCloseGoogleDropdown() {\n if (this.fnIsMileageGoogleExpense()) {\n setTimeout(() => {\n this.isGoogleDropdownVisible = false;\n this.isGoogleAddressNotFound = false;\n this.isHomeOfcDropdownVisible = false;\n }, 300);\n\n if (this.countOfGoogleCalls > 0) {\n this.fnUpdateOrganisationGooglePackageCalls();\n }\n }\n }\n\n fnUpdateOrganisationGooglePackageCalls() {\n let request = new ApiRequest(\"UpdateOrganisationGooglePackageCalls\", environment.applicationVersion, environment.requestId);\n let requestInfo = new OrganisationGooglePackageUpdateCallsRequest();\n requestInfo.OrganisationId = this.localOrganisationId;\n requestInfo.CallsUsed = this.countOfGoogleCalls;\n requestInfo.UpdatedBy = this.localUserId;\n request.requestInfo = requestInfo;\n this.googleMappingService.UpdateOrganisationGooglePackageCalls(request).subscribe((res: IApiresponse) => {\n this.countOfGoogleCalls = 0;\n });\n }\n\n fnSetAddress(place: object) {\n this.formControl.setValue(place['description']);\n this.model.mileage[this.field.key.toString()].location = place['description'];\n this.model.mileage[this.field.key.toString()].placeId = place['place_id'];\n this.isGoogleDropdownVisible = false;\n this.googleDynamicAddressList = null;\n this.isGoogleAddressNotFound = false;\n this.isHomeOfcDropdownVisible = false;\n this.fnIsDelIconDisplay();\n this.to.change(this.field, this.formControl.value);\n this.cdr.detectChanges();\n }\n fnSetAddressFromTriangulation(location: LocationCommonDetail) {\n if (location) {\n this.formControl.setValue(location.address);\n this.model.mileage[this.field.key.toString()].location = location.address;\n this.model.mileage[this.field.key.toString()].placeId = location.placeId;\n this.isGoogleDropdownVisible = false;\n this.googleDynamicAddressList = null;\n this.isGoogleAddressNotFound = false;\n this.isHomeOfcDropdownVisible = false;\n this.fnIsDelIconDisplay();\n this.to.change(this.field, this.formControl.value);\n this.cdr.detectChanges();\n }\n\n }\n fnDeleteText() {\n this.model.mileage[this.field.key.toString()].placeId = null;\n this.model[this.field.key.toString()] = null;\n this.model.mileage[this.field.key.toString()].location = null;\n this.model.mileage[this.field.key.toString()].placeId = null;\n this.to.change(this.field, this.formControl.value);\n this.isToDelIconDisplay = false;\n }\n fnIsDelIconDisplay() {\n this.isToDelIconDisplay = true;\n }\n\n fnOpenSelectRecentJourneyPanel() {\n this.selectRecentJourneyInputModel = new SelectRecentJourneyInputModel();\n this.selectRecentJourneyInputModel.baseCategoryId = this.model.baseCategoryId;\n this.selectRecentJourneyInputModel.claimantId = this.model.userId;\n this.selectRecentJourneyInputModel.claimantName = this.model.userName;\n\n this.showSelectRecentJourneyPanel = true;\n }\n\n fnCloseSelectRecentJourneyPanel() {\n this.showSelectRecentJourneyPanel = false;\n }\n\n fnSelectRecentJourney(data: SelectRecentJourneyOutputModel) {\n if (data) {\n this.to.click(this.field, data);\n }\n this.fnCloseSelectRecentJourneyPanel();\n }\n\n fnSearchPlacePrediction() {\n this.fnGetPlacePredictions(this.model.mileage[this.field.key.toString()].location)\n .then(data => {\n this.googleDynamicAddressList = data;\n this.isGoogleDropdownVisible = this.googleDynamicAddressList != null ? true : false;\n this.isGoogleAddressNotFound = this.googleDynamicAddressList == null ? true : false;\n this.isHomeOfcDropdownVisible = false;\n this.countOfGoogleCalls++;\n })\n .catch(_err => {\n this.isGoogleDropdownVisible = false;\n this.isGoogleAddressNotFound = true;\n this.isHomeOfcDropdownVisible = false;\n });\n }\n}\n","\n
\n
\n
\n \n
\n
\n
\n
\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
    \n
  • \n

    \n \n {{'current_location' | translate }}\n

    \n
  • \n
  • \n

    \n {{'home' | translate }}\n

    \n

    \n {{model.mileage?.userHomeAddressInfo?.address}}\n

    \n
  • \n
  • \n

    \n {{'office' | translate }}\n

    \n

    \n {{model.mileage?.userOfficeAddressInfo?.address}}\n

    \n
  • \n
  • \n

    \n {{'office_address_other' | translate }}\n

    \n
  • \n \n
\n
\n
\n
    \n
  • {{item.description}}
  • \n
\n
\n \n
\n
    \n
  • {{'no_match_found' | translate }}
  • \n
\n
\n \n
\n \n {{ \"label_Required\" | translate }}\n \n
\n
\n
\n
\n \n {{ model.mileage.googleCallsInfo.notesForGoogle }}\n \n
\n
\n
\n \n \n \n \"\"\n \n {{ 'recent_journeys' | translate }}\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 {{'current_location' | translate }}\n

    \n
  • \n
  • \n

    \n {{'home' | translate }}\n

    \n

    \n {{model.mileage?.userHomeAddressInfo?.address}}\n

    \n
  • \n
  • \n

    \n {{'office' | translate }}\n

    \n

    \n {{model.mileage?.userOfficeAddressInfo?.address}}\n

    \n
  • \n
  • \n

    \n {{'office_address_other' | translate }}\n

    \n
  • \n \n
\n
\n
\n
    \n
  • {{item.description}}
  • \n
\n
\n \n
\n
    \n
  • {{'no_match_found' | translate }}
  • \n
\n
\n \n
\n \n {{ \"label_Required\" | translate }}\n \n
\n
\n
\n
\n \n {{ model.mileage.googleCallsInfo.notesForGoogle }}\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n \n {{ 'return_journey' | translate }}\n \n
\n
\n
\n\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n \n \n \n
\n
\n\n\n
\n\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n
\n\n
\n
\n
\n \n \n \n \n \n {{'text_add_detour' | translate }}\n \n \n
\n
\n\n
0\">\n
\n \n \n
\n
\n
\n\n
\n
\n
\n \n \n

\n {{model.notes ? model.notes.length : \"0\"}} / 200\n

\n
\n
\n
\n\n
\n \n
\n
\n
\n
\n \n
\n \n {{ 'legs_added' | translate }}: {{this.model.mileage.sourceDestinationInformation ? this.model.mileage.sourceDestinationInformation.length : \"0\"}} / 12\n \n \n \n \n \n
\n\n
\n
\n
\n
\n

0)}\">\n \n \n \n {{ 'view_map_calculation' | translate }}\n

\n
\n
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","import { Component, OnDestroy, OnInit, ChangeDetectorRef, ChangeDetectionStrategy, OnChanges, SimpleChanges } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { DateFormatPipe } from 'src/app/_helpers/pipe.module';\nimport { BaseCategoryTypeEnum, MileageUOMEnum, ApiRequest, IApiresponse, JourneyTypeEnum } from 'src/app/_models';\nimport {\n MileageMultipleDateDetails, SelectDetourInputModel, SelectDetourOutputModel,\n SelectTagsPopupModel, LocationCommonDetail, SelectRecentJourneyInputModel, SelectRecentJourneyOutputModel\n} from 'src/app/_models/claimant-on-web/claimant-on-web';\nimport { AlertPanelModel } from 'src/app/_models/common/alertPanelModel';\nimport { ClaimantOnWebService } from 'src/app/_services/claimant-on-web/claimant-on-web.service';\nimport { ClaimsService } from 'src/app/_services/common/claims.service';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { IOrganisationGooglePackageUpdateCallsRequest, OrganisationGooglePackageUpdateCallsRequest } from 'src/app/_models/google-mapping/google-mapping';\nimport { GoogleMappingService } from 'src/app/_services/google-mapping/google-mapping.service';\nimport { environment } from 'src/environments/environment';\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'formly-mileage-details',\n templateUrl: \"./formly-mileage-details.component.html\",\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FormlyMileageDetailsComponent extends FieldType implements OnInit, OnDestroy, OnChanges {\n\n get mileageUOMEnum() {\n return MileageUOMEnum;\n }\n\n claimsSubscription: Subscription;\n claims: Claims;\n userHomeCurrencyCode: string;\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n showSelectDetourPanel: boolean = false;\n selectDetourInputModel: SelectDetourInputModel;\n selectedMileageDateUniqueId: number;\n\n showDebtourNotActivatedAlertPanel: boolean;\n debtourNotActivatedAlertModel: AlertPanelModel;\n\n showCreateMileageTagPanel: boolean = false;\n createMileageTagInputModel: SelectTagsPopupModel;\n\n activeTab: string;\n showSelectRecentJourneyPanel: boolean = false;\n selectRecentJourneyInputModel: SelectRecentJourneyInputModel;\n gm_lable: string;\n\n queryWait: boolean = false;\n googleDynamicAddressList: any;\n isFromGoogleDropdownVisible: boolean = false;\n isToGoogleDropdownVisible: boolean = false;\n isFromHomeOfcDropdownVisible: boolean = false;\n isToHomeOfcDropdownVisible: boolean = false;\n isFromGoogleAddressNotFound: boolean = false;\n isToGoogleAddressNotFound: boolean = false;\n countOfGoogleCalls: number = 0;\n\n fromLocation: string = '';\n toLocation: string = '';\n\n showSwitchMultipleLegAlertPanel: boolean;\n switchMultipleLegAlertModel: AlertPanelModel;\n showMileageSection: boolean = true;\n carbonEmissionText: string;\n isCarbonFootprintReporting: boolean = false;\n isFromCurrentLocationVisible: boolean = false;\n isToCurrentLocationVisible: boolean = false;\n constructor(private dynamicFormService: DynamicFormService,\n private datePipe: DateFormatPipe,\n private translate: TranslateService,\n private claimsService: ClaimsService,\n private claimantOnWebService: ClaimantOnWebService,\n private googleMappingService: GoogleMappingService,\n private cdr: ChangeDetectorRef, private sanitizer: DomSanitizer\n\n ) {\n super();\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n this.userHomeCurrencyCode = claims.UserHomeCurrencyCode;\n });\n }\n\n ngOnInit() {\n\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n\n if (this.field?.templateOptions?.isCarbonFootprintReporting) {\n this.carbonEmissionText = this.translate.instant('text_carbonemission');\n this.isCarbonFootprintReporting = this.field?.templateOptions?.isCarbonFootprintReporting;\n }\n\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n if (this.fnIsMileageGoogleExpense()) this.gm_lable = ' ' + this.translate.instant('gm_message');\n this.fnSetGoogleCallsMsg();\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n if (this.claimsSubscription) {\n this.claimsSubscription.unsubscribe();\n }\n }\n\n fnGetActiveMileageMultipleDateDetails() {\n return this.model.mileageMultipleDateDetails.filter(item => !item.isDeleted);\n }\n fnSetGoogleCallsMsg() {\n if (this.model.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle) {\n if (this.model.fromLocation) {\n this.isFromGoogleNotesDisplay = false;\n this.isFromDelIconDisplay = true;\n }\n if (this.model.toLocation) {\n this.isToGoogleNotesDisplay = false;\n this.isToDelIconDisplay = true;\n }\n }\n\n }\n fnIsMileageGoogleExpense() {\n return this.model.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle;\n }\n fnIsManualMileageExpense() {\n return this.model.baseCategoryId == BaseCategoryTypeEnum.Mileage;\n }\n\n fnGetActiveMileageTab() {\n this.showMileageSection = false;\n let type = 'nav-roundTrip';\n if (this.model.mileage && this.model.mileage.journeyType == JourneyTypeEnum.Multiple) {\n type = 'nav-multipleLeg'\n }\n this.activeTab = type;\n this.showMileageSection = true;\n return type;\n }\n\n fnOpenSelectDetourPanel(mileageDateDetails: MileageMultipleDateDetails) {\n\n if (this.model.isDetourEnabled) {\n\n this.selectedMileageDateUniqueId = mileageDateDetails.mileageDateUniqueId;\n this.selectDetourInputModel = new SelectDetourInputModel();\n this.selectDetourInputModel.detour = mileageDateDetails.detour;\n this.selectDetourInputModel.detourJustificationNotes = mileageDateDetails.detourJustificationNotes;\n\n this.showSelectDetourPanel = true;\n\n } else {\n this.fnShowDebtourNotActivatedAlertPanel();\n }\n }\n\n fnCloseSelectDetourPanel(isClose: boolean) {\n if (isClose) {\n this.showSelectDetourPanel = false;\n }\n }\n\n fnSelectDetourPanel(data: SelectDetourOutputModel) {\n if (data) {\n let selectedMileageDateDetails = this.model.mileageMultipleDateDetails.find(item => item.mileageDateUniqueId == this.selectedMileageDateUniqueId);\n if (selectedMileageDateDetails) {\n selectedMileageDateDetails.detour = data.detour;\n selectedMileageDateDetails.detourJustificationNotes = data.detourJustificationNotes;\n }\n this.showSelectDetourPanel = false;\n this.props.click(this.field, {\n key: 'calculateMileage',\n data: data,\n type:'detour'\n });\n }\n }\n\n fnShowDebtourNotActivatedAlertPanel() {\n this.debtourNotActivatedAlertModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n \"\",\n this.translate.instant(\"text_ok\"),\n true,\n this.translate.instant(\"create_expense_detour_not_subscribed_alert\")\n );\n\n this.showDebtourNotActivatedAlertPanel = true;\n }\n\n fnCloseDebtourNotActivatedAlertPanel(event) {\n this.showDebtourNotActivatedAlertPanel = false;\n }\n\n //Mileage Tag\n fnOpenCreateMileageTagPanel(mileageDateDetails: MileageMultipleDateDetails) {\n this.selectedMileageDateUniqueId = mileageDateDetails.mileageDateUniqueId;\n this.createMileageTagInputModel = new SelectTagsPopupModel();\n this.createMileageTagInputModel.tagList = mileageDateDetails.tags;\n this.createMileageTagInputModel.claimantId = this.model.userId;\n this.createMileageTagInputModel.claimantName = this.model.userName;\n this.showCreateMileageTagPanel = true;\n }\n\n fnCloseCreateMileageTagPanel(isClose: boolean) {\n if (isClose) {\n this.showCreateMileageTagPanel = false;\n }\n }\n\n fnSelectCreateMileageTag(data: SelectTagsPopupModel) {\n if (data) {\n let selectedMileageDateDetails = this.model.mileageMultipleDateDetails.find(item => item.mileageDateUniqueId == this.selectedMileageDateUniqueId);\n if (selectedMileageDateDetails) {\n selectedMileageDateDetails.tags = data.tagList;\n }\n }\n this.showCreateMileageTagPanel = false;\n }\n\n fnViewMileageMapAndCalculations() {\n if (this.model.mileageMultipleDateDetails && this.model.mileageMultipleDateDetails.length > 0) {\n this.props.click(this.field, {\n key: 'viewMileageMap',\n data: this.model.mileageMultipleDateDetails[0]\n });\n }\n }\n fnOpenAddPassengerLoadPanel() {\n this.props.click(this.field, {\n key: 'addPassengerLoad'\n });\n }\n\n fnSetAllowanceText() {\n if (this.model.mileage.selectedMileageAllowance && this.model.mileage.selectedMileageAllowance.allowanceId) {\n return this.claimantOnWebService.fnSetAllowanceText(this.model.mileage.selectedMileageAllowance, this.model.mileage.selectedMileageAllowance.allowanceId)\n }\n else {\n return null;\n }\n\n }\n\n fnOnRoundTripClick() {\n if (this.model.mileage.journeyType == JourneyTypeEnum.Multiple && this.model.mileage.sourceDestinationInformation && this.model.mileage.sourceDestinationInformation.length > 0) {\n this.fnShowSwitchMultipleLegAlertPanel();\n }\n else {\n this.activeTab = 'nav-roundTrip';\n this.model.mileage.journeyType = JourneyTypeEnum.Single;\n this.props.click(this.field, {\n key: 'switchRoundTrip'\n });\n\n }\n }\n\n fnOnMultipleLegsClick() {\n this.activeTab = 'nav-multipleLeg';\n this.model.mileage.journeyType = JourneyTypeEnum.Multiple;\n if (this.model.mileage.sourceDestinationInformation && this.model.mileage.sourceDestinationInformation.length == 0) {\n this.props.click(this.field, {\n key: 'switchMultipleLeg'\n });\n }\n }\n\n fnViewMultipleLegPanel() {\n this.props.click(this.field, {\n key: 'viewMultipleLegs'\n });\n }\n fncheckMultipleVehicle() {\n let todaysDate = this.getUTCTimeStamp(new Date());\n let expenseDateUnix = this.getUTCTimeStamp(new Date(this.model.expenseDate));\n if (this.model.isMultipleVehiclePurchase && this.model.mileage.vehicleId) {\n return false;\n }\n else if (!this.model.isMultipleVehiclePurchase) { return false; }\n else if (expenseDateUnix < todaysDate) { return false; }\n else if (expenseDateUnix == todaysDate && !this.model.mileage.vehicleId) { return true; }\n else { return false; }\n }\n getUTCTimeStamp(date) {\n let now_utc = Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n 0,\n 0,\n 0\n );\n\n return now_utc;\n }\n fnOpenSelectRecentJourneyPanel() {\n this.selectRecentJourneyInputModel = new SelectRecentJourneyInputModel();\n this.selectRecentJourneyInputModel.baseCategoryId = this.model.baseCategoryId;\n this.selectRecentJourneyInputModel.claimantId = this.model.userId;\n this.selectRecentJourneyInputModel.claimantName = this.model.userName;\n\n this.showSelectRecentJourneyPanel = true;\n }\n\n fnCloseSelectRecentJourneyPanel() {\n this.showSelectRecentJourneyPanel = false;\n }\n\n fnSelectRecentJourney(data: SelectRecentJourneyOutputModel) {\n if (data) {\n this.props.click(this.field, {\n key: 'recentJourney',\n data: data\n });\n this.fnIsDelIconDisplay('all')\n }\n this.fnCloseSelectRecentJourneyPanel();\n }\n\n onReturnJourneyInput() {\n this.props.click(this.field, {\n key: 'returnJourney'\n });\n if (this.model.mileageMultipleDateDetails && this.model.mileageMultipleDateDetails.length > 0) {\n if (this.model.mileageMultipleDateDetails[0].totalTriangulatedDistanceText) {\n\n this.model.mileageMultipleDateDetails[0].totalTriangulatedDistanceText = '';\n }\n }\n }\n\n onCalculateMileageClick() {\n this.props.click(this.field, {\n key: 'calculateMileage',\n templateOptions: {\n change: (field, $event) => {\n this.cdr.detectChanges();\n }\n },\n });\n }\n\n onTotalDistanceOfMultipleInput() {\n this.props.change(this.field, {\n key: 'totalDistanceOfMultiple'\n });\n }\n\n // Google search\n\n onTextInput(key: any) {\n this.model.mileage[key.toString()].location = this.model[key.toString()];\n this.props.change(this.field, { key: key.toString() });\n\n }\n isCharLimitFrom: boolean = false;\n isCharLimitTo: boolean = false;\n fnKeypress(key: any, value) {\n\n if (key == 'fromLocation') {\n this.isCharLimitFrom = false;\n if (this.model.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle && this.model.mileage.googleCallsInfo\n && Number(this.model.mileage.googleCallsInfo.limitChar) > 0\n && value.length >= Number(this.model.mileage.googleCallsInfo.limitChar)) {\n this.isCharLimitFrom = true;\n return false;\n }\n }\n else if (key == 'toLocation') {\n\n this.isCharLimitTo = false;\n if (this.model.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle && this.model.mileage.googleCallsInfo\n && Number(this.model.mileage.googleCallsInfo.limitChar) > 0\n && value.length >= Number(this.model.mileage.googleCallsInfo.limitChar)) {\n this.isCharLimitTo = true;\n return false;\n }\n }\n\n return true;\n }\n fnSearchAddress(key: any, value) {\n if (key == 'fromLocation') {\n if (value.length == 0) {\n this.isFromDelIconDisplay = false;\n }\n this.isFromHomeOfcDropdownVisible = false;\n this.isFromCurrentLocationVisible = false;\n if (this.model.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle && this.model.mileage.googleCallsInfo\n && Number(this.model.mileage.googleCallsInfo.limitChar) > 0\n && value.length <= Number(this.model.mileage.googleCallsInfo.limitChar)) {\n this.isCharLimitFrom = false;\n }\n }\n else if (key == 'toLocation') {\n if (value.length == 0) {\n this.isToDelIconDisplay = false;\n }\n this.isToHomeOfcDropdownVisible = false;\n this.isToCurrentLocationVisible = false;\n if (this.model.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle && this.model.mileage.googleCallsInfo\n && Number(this.model.mileage.googleCallsInfo.limitChar) > 0\n && value.length <= Number(this.model.mileage.googleCallsInfo.limitChar)) {\n this.isCharLimitTo = false;\n }\n }\n if (!this.isCharLimitFrom || !this.isCharLimitTo) {\n if (this.fnIsMileageGoogleExpense()) {\n this.model.mileage[key.toString()].placeId = null;\n this.model.mileage[key.toString()].location = this.model[key.toString()];\n\n if (!this.queryWait) {\n this.queryWait = true;\n setTimeout(() => {\n this.fnGetFromAutocompletePredictions(key);\n this.queryWait = false;\n }, 200);\n }\n \n }\n }\n }\n\n private fnGetFromAutocompletePredictions(key: any) {\n\n if (this.model.mileage[key.toString()].location.length < 6) {\n this.googleDynamicAddressList = null;\n if (this.model.mileage[key.toString()].location.length > 0) {\n\n if (key == 'fromLocation') {\n this.isFromGoogleAddressNotFound = true;\n this.isFromHomeOfcDropdownVisible = false;\n this.isFromCurrentLocationVisible = false;\n this.cdr.detectChanges();\n }\n else if (key == 'toLocation') {\n this.isToGoogleAddressNotFound = true;\n this.isToHomeOfcDropdownVisible = false;\n this.isToCurrentLocationVisible = false;\n }\n\n }\n else {\n if (this.model.mileage.triangulationRule) {\n\n if (key == 'fromLocation') {\n this.isFromHomeOfcDropdownVisible = true;\n this.isFromCurrentLocationVisible = true;\n this.cdr.detectChanges();\n }\n else if (key == 'toLocation') {\n this.isToHomeOfcDropdownVisible = true;\n this.isToCurrentLocationVisible = true;\n }\n }\n\n if (key == 'fromLocation') {\n this.isFromGoogleAddressNotFound = false;\n this.isFromGoogleDropdownVisible = false;\n }\n else if (key == 'toLocation') {\n this.isToGoogleAddressNotFound = false;\n this.isToGoogleDropdownVisible = false;\n }\n }\n }\n if (this.model.mileage[key.toString()].location.length != 6 && this.model.mileage[key.toString()].location.length < 10) {\n return;\n }\n this.fnGetPlacePredictions(this.model.mileage[key.toString()].location)\n .then(data => {\n this.googleDynamicAddressList = data;\n\n if (key == 'fromLocation') {\n this.isFromGoogleDropdownVisible = this.googleDynamicAddressList != null ? true : false;\n this.isFromGoogleAddressNotFound = this.googleDynamicAddressList == null ? true : false;\n this.isFromHomeOfcDropdownVisible = false;\n this.isFromCurrentLocationVisible = false;\n }\n else if (key == 'toLocation') {\n this.isToGoogleDropdownVisible = this.googleDynamicAddressList != null ? true : false;\n this.isToGoogleAddressNotFound = this.googleDynamicAddressList == null ? true : false;\n this.isToHomeOfcDropdownVisible = false;\n this.isToCurrentLocationVisible = false;\n }\n\n this.countOfGoogleCalls++;\n this.cdr.detectChanges();\n })\n .catch(err => {\n\n if (key == 'fromLocation') {\n this.isFromGoogleDropdownVisible = false;\n this.isFromGoogleAddressNotFound = true;\n this.isFromHomeOfcDropdownVisible = false;\n this.isFromCurrentLocationVisible = false;\n }\n else if (key == 'toLocation') {\n this.isToGoogleDropdownVisible = false;\n this.isToGoogleAddressNotFound = true;\n this.isToHomeOfcDropdownVisible = false;\n this.isToCurrentLocationVisible = false;\n }\n });\n }\n\n private fnGetPlacePredictions(query: string): Promise {\n let autocompleteSrv = new google.maps.places.AutocompleteService();\n return new Promise((resolve, reject) => {\n autocompleteSrv.getPlacePredictions({\n types: ['geocode'],\n input: query\n }, function (predictions, status) {\n if (status == google.maps.places.PlacesServiceStatus.OK) {\n resolve(predictions);\n } else {\n reject(status);\n }\n });\n });\n }\n fnOnInputClick(key: any) {\n if (this.model.mileage.triangulationRule) {\n if ((!this.googleDynamicAddressList || this.googleDynamicAddressList == null\n || this.googleDynamicAddressList.length == 0) && (!this.model[key.toString()] || this.model[key.toString()] == '')) {\n\n if (key == 'fromLocation') {\n this.isFromGoogleDropdownVisible = false;\n this.isFromGoogleAddressNotFound = false;\n this.isFromHomeOfcDropdownVisible = true;\n this.isFromCurrentLocationVisible = true;\n this.cdr.detectChanges();\n }\n else if (key == 'toLocation') {\n this.isToGoogleDropdownVisible = false;\n this.isToGoogleAddressNotFound = false;\n this.isToHomeOfcDropdownVisible = true;\n this.isToCurrentLocationVisible = true;\n }\n\n }\n }\n else if(this.model.mileage.currentLocation && this.model.baseCategoryId != BaseCategoryTypeEnum.Mileage)\n {\n if (key == 'fromLocation') {\n this.isFromGoogleDropdownVisible = false;\n this.isFromGoogleAddressNotFound = false;\n this.isFromHomeOfcDropdownVisible = false;\n this.isFromCurrentLocationVisible = true;\n this.cdr.detectChanges();\n }\n else if (key == 'toLocation') {\n this.isToGoogleDropdownVisible = false;\n this.isToGoogleAddressNotFound = false;\n this.isToHomeOfcDropdownVisible = false;\n this.isToCurrentLocationVisible = true;\n }\n }\n }\n fnFromKeyDown() {\n if (this.isFromDelIconDisplay) {\n return false;\n }\n else {\n return true;\n }\n }\n fnToKeyDown() {\n if (this.isToDelIconDisplay) {\n return false;\n }\n else {\n return true;\n }\n }\n fnCloseGoogleDropdown(key: any) {\n if (this.fnIsMileageGoogleExpense()) {\n setTimeout(() => {\n\n if (key == 'fromLocation') {\n this.isFromGoogleDropdownVisible = false;\n this.isFromGoogleAddressNotFound = false;\n this.isFromHomeOfcDropdownVisible = false;\n this.isFromCurrentLocationVisible = false;\n }\n else if (key == 'toLocation') {\n this.isToGoogleDropdownVisible = false;\n this.isToGoogleAddressNotFound = false;\n this.isToHomeOfcDropdownVisible = false;\n this.isToCurrentLocationVisible = false;\n }\n this.cdr.detectChanges();\n }, 300);\n\n if (!(this.isToDelIconDisplay || this.isFromDelIconDisplay) && this.countOfGoogleCalls > 0) {\n this.fnUpdateOrganisationGooglePackageCalls();\n }\n }\n }\n\n fnUpdateOrganisationGooglePackageCalls() {\n let request = new ApiRequest(\"UpdateOrganisationGooglePackageCalls\", environment.applicationVersion, environment.requestId);\n let requestInfo = new OrganisationGooglePackageUpdateCallsRequest();\n requestInfo.OrganisationId = this.claims.OrgId;\n requestInfo.CallsUsed = this.countOfGoogleCalls;\n requestInfo.UpdatedBy = this.claims.UserId;\n request.requestInfo = requestInfo;\n this.googleMappingService.UpdateOrganisationGooglePackageCalls(request).subscribe((res: IApiresponse) => {\n this.countOfGoogleCalls = 0;\n });\n }\n isFromGoogleNotesDisplay: boolean = true;\n isToGoogleNotesDisplay: boolean = true;\n fnSetAddress(place: object, key: any) {\n this.model[key.toString()] = place['description'];\n this.model.mileage[key.toString()].location = place['description'];\n this.model.mileage[key.toString()].placeId = place['place_id'];\n this.googleDynamicAddressList = null;\n\n if (key == 'fromLocation') {\n this.isFromGoogleDropdownVisible = false;\n this.isFromGoogleAddressNotFound = false;\n this.isFromHomeOfcDropdownVisible = false;\n this.isFromCurrentLocationVisible = false;\n this.isFromGoogleNotesDisplay = false;\n this.fnIsDelIconDisplay(key);\n }\n else if (key == 'toLocation') {\n this.isToGoogleDropdownVisible = false;\n this.isToGoogleAddressNotFound = false;\n this.isToHomeOfcDropdownVisible = false;\n this.isToCurrentLocationVisible = false;\n this.isToGoogleNotesDisplay = false;\n this.fnIsDelIconDisplay(key);\n }\n\n this.props.change(this.field, { key: key.toString() });\n this.cdr.detectChanges();\n }\n fnSetAddressFromTriangulation(location: LocationCommonDetail, key: any) {\n if (location) {\n this.model[key.toString()] = location.address\n this.model.mileage[key.toString()].location = location.address;\n this.model.mileage[key.toString()].placeId = location.placeId;\n this.googleDynamicAddressList = null;\n if (key == 'fromLocation') {\n this.isFromGoogleDropdownVisible = false;\n this.isFromGoogleAddressNotFound = false;\n this.isFromHomeOfcDropdownVisible = false;\n this.isFromCurrentLocationVisible = false;\n this.isFromGoogleNotesDisplay = false;\n this.fnIsDelIconDisplay(key);\n }\n else if (key == 'toLocation') {\n this.isToGoogleDropdownVisible = false;\n this.isToGoogleAddressNotFound = false;\n this.isToHomeOfcDropdownVisible = false;\n this.isToCurrentLocationVisible = false;\n this.isToGoogleNotesDisplay = false;\n this.fnIsDelIconDisplay(key);\n }\n this.props.change(this.field, { key: key.toString() });\n this.cdr.detectChanges();\n }\n\n }\n fnSetCurrentLocation(key: any) {\n if (location) {\n this.model[key.toString()] = this.model.mileage.currentLocation.formatted_address;\n this.model.mileage[key.toString()].location = this.model.mileage.currentLocation.formatted_address;\n this.model.mileage[key.toString()].placeId = this.model.mileage.currentLocation.place_id;\n this.googleDynamicAddressList = null;\n if (key == 'fromLocation') {\n this.isFromGoogleDropdownVisible = false;\n this.isFromGoogleAddressNotFound = false;\n this.isFromHomeOfcDropdownVisible = false;\n this.isFromCurrentLocationVisible = false;\n this.isFromGoogleNotesDisplay = false;\n this.fnIsDelIconDisplay(key);\n }\n else if (key == 'toLocation') {\n this.isToGoogleDropdownVisible = false;\n this.isToGoogleAddressNotFound = false;\n this.isToHomeOfcDropdownVisible = false;\n this.isToCurrentLocationVisible = false;\n this.isToGoogleNotesDisplay = false;\n this.fnIsDelIconDisplay(key);\n }\n this.props.change(this.field, { key: key.toString() });\n this.cdr.detectChanges();\n }\n\n }\n\n fnSearchPlacePrediction(key: any) {\n this.fnGetPlacePredictions(this.model.mileage[key.toString()].location)\n .then(data => {\n this.googleDynamicAddressList = data;\n if (key == 'fromLocation') {\n this.isFromGoogleDropdownVisible = this.googleDynamicAddressList != null ? true : false;\n this.isFromGoogleAddressNotFound = this.googleDynamicAddressList == null ? true : false;\n this.isFromHomeOfcDropdownVisible = false;\n this.isFromCurrentLocationVisible = false;\n }\n else if (key == 'toLocation') {\n this.isToGoogleDropdownVisible = this.googleDynamicAddressList != null ? true : false;\n this.isToGoogleAddressNotFound = this.googleDynamicAddressList == null ? true : false;\n this.isToHomeOfcDropdownVisible = false;\n this.isToCurrentLocationVisible = false;\n }\n this.countOfGoogleCalls++;\n })\n .catch(_err => {\n if (key == 'fromLocation') {\n this.isFromGoogleDropdownVisible = false;\n this.isFromGoogleAddressNotFound = true;\n this.isFromHomeOfcDropdownVisible = false;\n this.isFromCurrentLocationVisible = false;\n }\n else if (key == 'toLocation') {\n this.isToGoogleDropdownVisible = false;\n this.isToGoogleAddressNotFound = true;\n this.isToHomeOfcDropdownVisible = false;\n this.isToCurrentLocationVisible = false;\n }\n });\n }\n fnDeleteText(key: any) {\n if (key == 'fromLocation') {\n this.model.mileage[key.toString()].placeId = null;\n this.isFromGoogleNotesDisplay = true;\n\n this.model[key.toString()] = null;\n this.model.mileage[key.toString()].location = null;\n this.props.change(this.field, { key: key.toString() });\n this.isFromDelIconDisplay = false;\n }\n else if (key == 'toLocation') {\n this.model.mileage[key.toString()].placeId = null;\n this.model[key.toString()] = null;\n this.isToGoogleNotesDisplay = true;\n this.model.mileage[key.toString()].location = null;\n this.props.change(this.field, { key: key.toString() });\n this.isToDelIconDisplay = false;\n\n }\n if (this.model.mileageMultipleDateDetails && this.model.mileageMultipleDateDetails.length > 0) {\n if (this.model.mileageMultipleDateDetails[0].totalTriangulatedDistanceText) {\n\n this.model.mileageMultipleDateDetails[0].totalTriangulatedDistanceText = '';\n }\n }\n }\n isToDelIconDisplay: boolean;\n isFromDelIconDisplay: boolean;\n fnIsDelIconDisplay(key: any) {\n if (this.model.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle) {\n if (key == 'fromLocation') {\n this.isFromDelIconDisplay = true;\n }\n else if (key == 'toLocation') {\n this.isToDelIconDisplay = true;\n }\n else if (key == 'all') {\n this.isFromDelIconDisplay = true;\n this.isToDelIconDisplay = true;\n this.isToGoogleNotesDisplay = false;\n this.isFromGoogleNotesDisplay = false;\n }\n }\n\n }\n\n fnShowSwitchMultipleLegAlertPanel() {\n this.switchMultipleLegAlertModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [\n this.translate.instant(\"switch_multiple_leg_confirmation_note1\"),\n this.translate.instant(\"switch_multiple_leg_confirmation_note2\")\n ],\n this.translate.instant(\"label_cancel\"),\n this.translate.instant(\"label_confirm\"),\n true,\n this.translate.instant(\"switch_multiple_leg_confirmation_note2\")\n );\n\n this.showSwitchMultipleLegAlertPanel = true;\n }\n\n fnCloseSwitchMultipleLegAlertPanel(returnValue) {\n this.showMileageSection = false;\n if (returnValue) {\n this.activeTab = 'nav-roundTrip';\n this.model.mileage.journeyType = JourneyTypeEnum.Single;\n this.model.mileage.sourceDestinationInformation = [];\n this.props.click(this.field, {\n key: 'switchRoundTrip'\n });\n this.isFromDelIconDisplay = false;\n this.isToDelIconDisplay = false;\n }\n else {\n this.activeTab = 'nav-multipleLeg';\n this.model.mileage.journeyType = JourneyTypeEnum.Multiple;\n }\n setTimeout(() => {\n this.showMileageSection = true;\n this.switchMultipleLegAlertModel = null;\n this.showSwitchMultipleLegAlertPanel = false;\n }, 100);\n\n }\n\n fnGetRateText(mileageDateDetails: MileageMultipleDateDetails) {\n let rateText = \"\";\n if (mileageDateDetails) {\n let rate = mileageDateDetails.mileageRateInfo && mileageDateDetails.mileageRateInfo.length > 0\n ? this.fnGetMileageRateString(mileageDateDetails.mileageRateInfo)\n : 0;\n rateText = `${rate}${this.userHomeCurrencyCode} / ${this.model.mileage.mileageUOM == MileageUOMEnum.Kilometre ? \"km\" : \"m\"}`;\n }\n return rateText;\n }\n fnGetMileageRateString(mileageRateInfo) {\n let str = \"\";\n let length = 1;\n let arraylength = mileageRateInfo.length;\n mileageRateInfo.forEach(itemMileage => {\n if (length == arraylength)\n str = str + itemMileage.mileageRate.toFixed(2) + \" \";\n else\n str = str + itemMileage.mileageRate.toFixed(2) + \" / \" + \"\";\n ++length;\n });\n return str;\n }\n\n fnGetAmountText(mileageDateDetails: MileageMultipleDateDetails) {\n let amountText = \"\";\n if (mileageDateDetails) {\n let amount = mileageDateDetails.amount\n ? mileageDateDetails.amount\n : 0;\n amountText = `${amount.toFixed(2)} ${this.userHomeCurrencyCode}`;\n }\n return amountText;\n }\n isTriangulatedDistanceTextDisplay: boolean;\n\n\n sanitizerHtml(model) {\n if (model.mileageMultipleDateDetails && model.mileageMultipleDateDetails.length > 0) {\n if (model.mileageMultipleDateDetails[0].totalTriangulatedDistanceText) {\n\n let safeText = this.sanitizer.bypassSecurityTrustHtml(model.mileageMultipleDateDetails[0].totalTriangulatedDistanceText);\n return safeText;\n }\n else {\n return ' ';\n }\n }\n }\n\n fnGetDetour(data) {\n let detour = null;\n if (data) {\n detour = Number(data).toFixed(2);\n }\n return detour;\n }\n isOfficeAddressPanel: boolean;\n ofcKeyType: string;\n closeOfficeAddPanel(location) {\n this.isOfficeAddressPanel = false;\n if (location) {\n this.model[this.ofcKeyType.toString()] = location.officeAddress\n this.model.mileage[this.ofcKeyType.toString()].location = location.officeAddress;\n this.model.mileage[this.ofcKeyType.toString()].placeId = location.placeId;\n this.googleDynamicAddressList = null;\n if (this.ofcKeyType == 'fromLocation') {\n this.isFromGoogleDropdownVisible = false;\n this.isFromGoogleAddressNotFound = false;\n this.isFromHomeOfcDropdownVisible = false;\n this.isFromCurrentLocationVisible = false;\n this.isFromGoogleNotesDisplay = false;\n this.fnIsDelIconDisplay(this.ofcKeyType);\n }\n else if (this.ofcKeyType == 'toLocation') {\n this.isToGoogleDropdownVisible = false;\n this.isToGoogleAddressNotFound = false;\n this.isToHomeOfcDropdownVisible = false;\n this.isToCurrentLocationVisible = false;\n this.isToGoogleNotesDisplay = false;\n this.fnIsDelIconDisplay(this.ofcKeyType);\n }\n this.props.change(this.field, { key: this.ofcKeyType.toString() });\n this.cdr.detectChanges();\n }\n\n }\n openOfficeAddPanel(key: any) {\n this.ofcKeyType = key;\n this.isOfficeAddressPanel = true;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.form.valueChanges.subscribe( () => {\n this.cdr.detectChanges()\n });\n }\n\n \n}\n\n\n\n\n","import { Component, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { MileageUOMEnum } from 'src/app/_models';\n\n@Component({\n selector: 'formly-nr-display',\n templateUrl: \"./formly-nr-display.component.html\"\n})\nexport class FormlyNrDisplayComponent extends FieldType implements OnInit {\n fieldKey: string;\n nrAvailableDistance: any;\n get mileageUOMEnum() {\n return MileageUOMEnum;\n }\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) { this.fieldKey =this.field.id??this.field.key.toString(); }\n if(this.model.mileage)\n {\n if (this.model.mileage && this.model.mileage.nrAvailableDistance) {\n this.model.mileage.nrAvailableDistance = parseFloat(this.model.mileage.nrAvailableDistance).toFixed(2).toString();\n }\n else {\n this.model.mileage.nrAvailableDistance = \"0.00\";\n }\n }\n }\n}\n","
\n \n {{'distance_to_empty' | translate}}\n ({{model.mileage && model.mileage.mileageUOM == mileageUOMEnum.Kilometre ? \"km\" : \"m\"}})\n {{model.mileage && model.mileage.nrAvailableDistance}}\n \n
\n","
\n
\n

\n \n {{\"you_have_exhausted_your_free_500_call\" | translate}}\n \n
\n {{\"the_google_mileage_and_gps_uses_a_chargeable_service\" | translate}}\n
\n {{\"please_click_on_purhcase_for_this_service\" | translate}}\n
\n

\n
\n \n
\n
\n
","import { DatePipe } from '@angular/common';\nimport { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { Router } from \"@angular/router\";\n\n@Component({\n selector: 'formly-google-purchase',\n templateUrl: \"./formly-google-purchase.component.html\"\n})\nexport class FormlyGooglePurchaseComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n\n constructor(private dynamicFormService: DynamicFormService, public datepipe: DatePipe, private router: Router) {\n super();\n }\n\n ngOnInit() {\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n let dddd = this.model;\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onClick(item) {\n this.to.click(item, this.formControl.value);\n }\n fnGoToPurchaseGooglePackage() {\n localStorage.setItem(\"InvoiceDefaultActiveTab\", \"nav-googleMapping\");\n let url = \"orgsetting/mileagewizard\";\n this.router.navigate([url], {\n queryParams: {\n step: \"5\",\n },\n });\n }\n}","
\n {{field.templateOptions.sectionHeading}} \n {{'no_forms_selected' | translate }}\n 0\"> {{count}} {{'forms_required' | translate }}\n \n
","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'app-formly-link-component',\n templateUrl: './formly-link-component.component.html'\n})\nexport class FormlyLinkComponentComponent extends FieldType implements OnInit, OnDestroy {\n fieldKey: string;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n count:number=0;\n userType:number=0;\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString(); \n }\n\n if (this.to.options && this.to.options[0]) {\n this.count = this.to.options[0].count; \n this.userType = this.to.options[0].userType; \n } \n \n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onClick() {\n this.to.click(this.field);\n }\n\n}\n","
\n
\n
\n
\n
\n

{{ 'select_vehicle' | translate }}

\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 {{ \"no_data_available\" | translate: param }}\n
\n\n
    \n
  • \n {{item.derivedName}}\n ({{item.registrationNumber}})\n {{fnBindDefaultVehicle(item.isDefault)}}\n \n\n
  • \n
\n
\n
\n
\n
\n
\n
\n\n","import { OnInit, Component, EventEmitter, Input, Output, ChangeDetectorRef } from \"@angular/core\";\nimport { IApiresponse } from \"src/app/_models\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { EmailService } from \"src/app/_services/common/email.service\";\nimport { IVehicleInfo, IVehicleListResponse, SelectVehicleModel } from \"../../../../_models/claimant-on-web/claimant-on-web\";\nimport { ClaimantOnWebService } from \"../../../../_services/claimant-on-web/claimant-on-web.service\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ApiRequest, EmailEnum, VehicleStatusEnum } from \"../../../../_models\";\nimport { environment } from \"../../../../../environments/environment\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { EmailSendRequest, IEmailSendRequest, ISendReminderResponse } from \"src/app/_models/common/email.model\";\n@Component({\n selector: 'app-select-vehicle-panel',\n templateUrl: './select-vehicle-panel.component.html',\n styleUrls: ['./select-vehicle-panel.component.scss']\n})\nexport class SelectVehiclePanelComponent implements OnInit {\n\n @Input() inputData: SelectVehicleModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n vehicleTypeId: number;\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n searchText: string = '';\n showVehicleNotAppprovedPopuModel: AlertPanelModel;\n showVehicleNotAppprovedPopup: boolean;\n vehicleResponse: any;\n vehicleId: number = 0;\n claims: Claims;\n constructor(private claimantOnWebService: ClaimantOnWebService,\n private translate: TranslateService,\n private emailService: EmailService,\n private claimsService: ClaimsService,\n private cdfr:ChangeDetectorRef) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit(): void {\n this.vehicleResponse = [];\n this.fnGetVehicleDetails();\n\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n fnGetVehicleDetails() {\n this.claimantOnWebService.GetUserVehicleInfo(this.inputData.claimantId)\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.vehicleResponse = response.responseInfo.userVehicleList.filter(a => a.vehicleStatus == VehicleStatusEnum.Approved);\n this.fnSetVehicleInputValues();\n this.cdfr.detectChanges();\n }\n });\n }\n\n fnSelectVehicleModel(item: IVehicleInfo) {\n if (item) {\n if (item.vehicleStatus != VehicleStatusEnum.Approved) {\n this.vehicleTypeId = item.vehicleTypeId;\n this.fnShowVehicleNotAppprovedPopup()\n }\n else {\n let selectVehicleModel = new SelectVehicleModel();\n selectVehicleModel.vehicleId = item.vehicleId;\n selectVehicleModel.derivedName = item.derivedName;\n selectVehicleModel.makeModel = item.makeModel;\n selectVehicleModel.registrationNumber = item.registrationNumber;\n selectVehicleModel.mileageAllowance = item.mileageAllowance;\n selectVehicleModel.docStatus = item.docStatus;\n this.selectItemEvent.emit(selectVehicleModel);\n }\n }\n }\n\n fnSetVehicleInputValues() {\n if (this.inputData) {\n this.vehicleId = this.inputData.vehicleId;\n }\n }\n\n fnShowVehicleNotAppprovedPopup() {\n this.showVehicleNotAppprovedPopuModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n this.translate.instant(\"text_cancel\"),\n this.translate.instant(\"text_send_reminder\"),\n true,\n this.translate.instant(\"vehicle_details_have_been_sent_to_the_finance_manager_alert_note\")\n );\n this.showVehicleNotAppprovedPopup = true;\n }\n\n fnShowVehicleNotAppprovedPopupReceiver(returnValue) {\n if (returnValue) {\n\n let claimantName = this.inputData.claimantName;\n let keyValuePairs: { [key: string]: string; } = {};\n keyValuePairs[\"VehicleTypeId\"] = this.vehicleTypeId.toString();\n keyValuePairs[\"ClaimantName\"] = claimantName.trim();\n this.fnSendReminderEmail(EmailEnum.ClaimMilesAndVehicleNotApproved, keyValuePairs);\n }\n\n this.showVehicleNotAppprovedPopuModel = new AlertPanelModel(false, \"\", [\"\"], \"\", \"\", true, \"\");\n this.showVehicleNotAppprovedPopup = false;\n this.fnClosePanel();\n }\n\n\n fnSendReminderEmail(templateName, keyValuePairs) {\n let request = new ApiRequest(\"GetSetDetailForSendEmail\", environment.applicationVersion, environment.requestId);\n request.requestInfo = new EmailSendRequest(templateName, this.inputData.claimantId, this.claims.OrgId, keyValuePairs);\n\n this.emailService.SendReminderEmail(request)\n .subscribe((response: IApiresponse) => { });\n }\n\n fnGetSelectedVehicleOnTop() {\n let vehicleId = this.inputData && this.inputData.vehicleId ? this.inputData.vehicleId : 0;\n\n if (vehicleId && this.vehicleResponse && this.vehicleResponse.length > 0) {\n const sortedArr = this.vehicleResponse.reduce((acc, element) => {\n if (element.vehicleId == vehicleId) {\n return [element, ...acc];\n }\n return [...acc, element];\n }, []);\n this.vehicleResponse = sortedArr;\n }\n\n\n }\n fnBindDefaultVehicle(isDefault) {\n if (this.claims.isPolicyOnVehicleChange) {\n if (isDefault) {\n return ' (' + this.translate.instant(\"default_vehicle\") + ')';\n }\n }\n else {\n if (isDefault) {\n return ' (' + this.translate.instant(\"preferred_vehicle\") + ')';\n }\n }\n }\n}\n","
\n \n \n
\n

\n {{ option.value }} \n {{ option.description }}

\n
\n
\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'app-formly-radio-input-with-side-description',\n templateUrl: './formly-radio-input-with-side-description.component.html' \n})\n\nexport class FormlyRadioInputWithSideDescriptionComponent extends FieldType implements OnInit, OnDestroy {\n\n param: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(\n private dynamicFormService: DynamicFormService\n ) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n }\n}\n\n\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'app-formly-toggle-rule',\n templateUrl: './formly-toggle-rule.component.html',\n styleUrls: ['./formly-toggle-rule.component.scss']\n})\nexport class FormlyToggleRuleComponent extends FieldType implements OnInit, OnDestroy {\n\n param: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n mainClass: string;\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n this.to.change(this.field, this.formControl.value);\n }\n\n}\n","
\n
\n

{{field.templateOptions.label}} \n {{field.templateOptions.description}}

\n
\n
\n
\n \n \n
\n
\n
","
\n
\n
\n
\n
\n
\n

{{this.panelHeading}}\n \n ({{ 'text_leg' | translate }} - {{this.journeyFormModel && this.journeyFormModel.sequence}})\n \n

\n
\n
\n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","import { OnInit, Component, ViewChild, Output, EventEmitter, Input } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { environment } from \"src/environments/environment\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { DelegateService } from \"src/app/_services/delegate/delegate.service\";\nimport { ApiRequest, IApiresponse, MileageUOMEnum, JourneyTypeEnum, ExpenseErrorWarningTypeEnum } from \"src/app/_models\";\nimport { FormlyFieldConfig } from \"@ngx-formly/core\";\nimport { DynamicFormComponent } from \"src/app/shared/forms/dynamic-form/dynamic-form.component\";\nimport { DynamicFormService } from \"src/app/shared/forms/dynamic-form/dynamic-form.service\";\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\nimport {\n MultipleLegsAddJourneyFormModel, CalculateMileageResponse, SourceDestinationResponse,\n LocationDetail, MultipleLegsPopupModel, SelectDetourInputModel, SelectDetourOutputModel, MileageAllowance,\n IResourceMileageDetailsResponse, MileageData, CalculateMileageRequest, SelectTagsPopupModel\n} from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { AlertPanelModel } from 'src/app/_models/common/alertPanelModel';\nimport { ClaimantOnWebService } from \"src/app/_services/claimant-on-web/claimant-on-web.service\";\nimport { GetField } from \"src/app/shared/forms/form-functions/form-functions\";\nimport { BaseCategoryTypeEnum } from \"../../../../_models\";\n\n@Component({\n selector: \"add-journey-panel\",\n templateUrl: \"./add-journey-panel.component.html\"\n})\nexport class AddjourneyPanelComponent extends BaseComponent implements OnInit {\n @ViewChild(DynamicFormComponent) journeyForm: DynamicFormComponent;\n\n @Input() inputModel: MultipleLegsPopupModel;\n @Input() mileageAllowance: MileageAllowance[];\n @Input() resourceMileageDetails: IResourceMileageDetailsResponse;\n @Input() vehicleResponse: any;\n @Input() expenseModel: any;\n @Input() isCarbonFootprintReporting:boolean;\n @Output() closePanelEvent = new EventEmitter();\n @Output() submitEvent = new EventEmitter();\n @Output() deleteEvent = new EventEmitter();\n\n claimsSubscription: Subscription;\n userActionEventSubscription: Subscription;\n claims: Claims;\n panelHeading: string;\n\n disableSaveButton: boolean = false;\n\n journeyFormModel: MultipleLegsAddJourneyFormModel;\n journeyFormFields: FormlyFieldConfig[] = [];\n\n showWarningAlerts: boolean = false;\n showWarningAlertsModel: AlertPanelModel;\n\n showCreateMileageTagPanel: boolean = false;\n createMileageTagInputModel: SelectTagsPopupModel;\n\n showSelectDetourPanel: boolean = false;\n selectDetourInputModel: SelectDetourInputModel;\n\n showDebtourNotActivatedAlertPanel: boolean;\n debtourNotActivatedAlertModel: AlertPanelModel;\n\n showAddPassengerLoadPanel: boolean = false;\n passengerLoadInputModel: MileageAllowance[];\n\n showPassengerLoadNotActivatedAlertPanel: boolean;\n passengerLoadNotActivatedAlertModel: AlertPanelModel;\n mileageUOMText: string;\n carbonEmissionText:string;\n\n showDeleteConfirmationAlert: boolean = false;\n deleteConfirmationAlertModel: AlertPanelModel;\n\n constructor(\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private toastr: ToastrService,\n private alertService: AlertService,\n private delegateService: DelegateService,\n private ngxService: NgxUiLoaderService,\n private dynamicFormService: DynamicFormService,\n private claimantOnWebService: ClaimantOnWebService,\n ) {\n super();\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n\n this.fnObserveUnsavedChangesAlerts();\n }\n\n ngOnInit(): void {\n this.fnSetPanelHeading();\n if (this.inputModel) {\n this.carbonEmissionText = this.translate.instant('text_carbonemission');\n this.mileageUOMText = this.inputModel.mileageUOM == MileageUOMEnum.Kilometre\n ? this.translate.instant(\"text_km\")\n : this.translate.instant(\"text_m\");\n\n if (!this.inputModel.isEditMode) {\n if (this.inputModel.isReturnJourney) {\n this.fnOnReturnJourney(this.inputModel.selectedSequence);\n }\n else {\n this.fnInitializeForm();\n }\n }\n else {\n if (this.inputModel.isEditMode) {\n this.fnEditInputLeg(this.inputModel.selectedSequence);\n }\n }\n }\n }\n\n fnOnReturnJourney(selectedSequence) {\n\n if (this.inputModel.multipleLegList && this.inputModel.multipleLegList.length > 0) {\n let data = this.inputModel.multipleLegList.find(d => d.sequence == selectedSequence);\n\n if (data) {\n this.journeyFormModel = new MultipleLegsAddJourneyFormModel();\n this.journeyFormModel.fromLocation = data.toLocation;\n this.journeyFormModel.toLocation = data.fromLocation;\n this.journeyFormModel.sequence = data.sequence + 1;\n this.journeyFormModel.notes = data.notes;\n this.journeyFormModel.detour = data.detour ? data.detour : null;\n this.journeyFormModel.detourJustificationNotes = data.detourJustificationNotes;\n this.journeyFormModel.tagList = data.tagList;\n this.journeyFormModel.isEditMode = false;\n this.journeyFormModel.distance = 0.00;\n this.journeyFormModel.isFromLocationDisabled = true;\n this.journeyFormModel.mileageAllowance = data.mileageAllowance;\n this.journeyFormModel.allowanceDescription = data.mileageAllowance ? data.mileageAllowance.allowanceDescription : \"\";\n this.journeyFormModel.fromLocationDescription = this.journeyFormModel.fromLocation.location;\n this.journeyFormModel.toLocationDescription = this.journeyFormModel.toLocation.location;\n this.journeyFormModel.userHomeAddressInfo = this.resourceMileageDetails?.userHomeAddressInfo;\n this.journeyFormModel.userOfficeAddressInfo = this.resourceMileageDetails?.userOfficeAddressInfo;\n this.journeyFormModel.triangulationRule = this.resourceMileageDetails?.triangulationRule;\n this.journeyFormModel.googleCallsInfo = this.resourceMileageDetails?.googleCallsInfo;\n this.journeyFormModel.totalTriangulatedDistanceText = data.totalTriangulatedDistanceText;\n this.journeyFormModel.carbonFootprint = data.carbonFootprint;\n this.journeyFormModel.isOtherOfficeAvailable = this.resourceMileageDetails?.isOtherOfficeAvailable;\n this.journeyFormModel.currentLocation = this.expenseModel.mileage.currentLocation;\n setTimeout(() => {\n this.fnInitializeForm();\n }, 80);\n \n this.fnUpdateTagDisplay(this.journeyFormModel.tagList);\n }\n }\n }\n\n fnEditInputLeg(sequence) {\n if (this.inputModel.multipleLegList && this.inputModel.multipleLegList.length > 0) {\n let editLegDetails = this.inputModel.multipleLegList.find(d => d.sequence == sequence);\n if (editLegDetails) {\n this.fnSelectLegDetailsForEdit(editLegDetails);\n }\n }\n }\n\n\n fnSelectLegDetailsForEdit(data) {\n this.journeyFormModel = new MultipleLegsAddJourneyFormModel();\n this.journeyFormModel.fromLocation = data.fromLocation;\n this.journeyFormModel.toLocation = data.toLocation;\n this.journeyFormModel.distance = data.distance;\n this.journeyFormModel.sequence = data.sequence;\n this.journeyFormModel.carbonFootprint = data.carbonFootprint;\n this.journeyFormModel.notes = data.notes;\n this.journeyFormModel.detour = data.detour ? data.detour : null;\n this.journeyFormModel.detourJustificationNotes = data.detourJustificationNotes;\n this.journeyFormModel.tagList = data.tagList;\n this.journeyFormModel.isEditMode = true;\n this.journeyFormModel.isFromLocationDisabled = data.sequence > 1 ? true : false;\n this.journeyFormModel.mileageAllowance = data.mileageAllowance;\n this.journeyFormModel.allowanceDescription = data.mileageAllowance ? data.mileageAllowance.allowanceDescription : \"\";\n this.journeyFormModel.fromLocationDescription = this.journeyFormModel.fromLocation.location;\n this.journeyFormModel.toLocationDescription = this.journeyFormModel.toLocation.location;\n this.journeyFormModel.userHomeAddressInfo = this.resourceMileageDetails?.userHomeAddressInfo;\n this.journeyFormModel.userOfficeAddressInfo = this.resourceMileageDetails?.userOfficeAddressInfo;\n this.journeyFormModel.triangulationRule = this.resourceMileageDetails?.triangulationRule;\n this.journeyFormModel.googleCallsInfo = this.resourceMileageDetails?.googleCallsInfo;\n this.journeyFormModel.totalTriangulatedDistanceText = data.totalTriangulatedDistanceText;\n this.journeyFormModel.isOtherOfficeAvailable = this.resourceMileageDetails?.isOtherOfficeAvailable;\n this.journeyFormModel.currentLocation = this.expenseModel.mileage.currentLocation;\n this.fnInitializeForm();\n this.fnUpdateTagDisplay(this.journeyFormModel.tagList);\n }\n\n\n fnSetPanelHeading() {\n if (this.inputModel) {\n this.panelHeading = this.inputModel.isEditMode\n ? this.translate.instant('edit_journey')\n : this.translate.instant('add_journey');\n }\n }\n\n ngOnDestroy() {\n this.claimsSubscription.unsubscribe();\n this.userActionEventSubscription.unsubscribe();\n }\n\n canDeactivate(): boolean {\n return !this.journeyForm.form.dirty;\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n fnObserveUnsavedChangesAlerts() {\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n\n fnInitializeForm() {\n\n if (!this.inputModel.isEditMode && !this.inputModel.isReturnJourney) {\n this.fnInitialiseFormModel();\n }\n\n let fields: FormlyFieldConfig[] = [];\n\n fields.push({\n fieldGroupClassName: 'block row',\n fieldGroup: [\n {\n key: 'fromLocationDescription',\n type: 'google-location-input',\n className: 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-left-3',\n templateOptions: {\n label: this.translate.instant('text_from'),\n placeholder: '',\n required: true,\n modelKey: 'fromLocation',\n change: (field, $event) => {\n this.fnOnMileageAddressChange();\n }\n },\n expressionProperties: { 'templateOptions.disabled': 'model.isFromLocationDisabled' }\n },\n {\n key: 'toLocationDescription',\n type: 'google-location-input',\n className: 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-left-3',\n templateOptions: {\n label: this.translate.instant('text_to'),\n placeholder: '',\n required: true,\n modelKey: 'toLocation',\n change: (field, $event) => {\n this.fnOnMileageAddressChange();\n }\n }\n },\n {\n key: 'distance',\n type: 'text-input',\n className: 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-left-3',\n templateOptions: {\n label: `${this.translate.instant('text_distance')} (${this.mileageUOMText})`,\n placeholder: '',\n required: true,\n disabled: true,\n htmlCustomMsg: this.journeyFormModel.totalTriangulatedDistanceText\n\n },\n },\n {\n key: 'calculateMileage',\n type: 'formly-button',\n templateOptions: {\n label: this.translate.instant('text_calculate'),\n placeholder: '',\n required: false,\n buttonClass: 'btn btn-outline-primary bg-white margin-top-15',\n iconClass: 'far fa-route',\n click: (field, $event) => {\n this.fnCalculateMileageMultipleLeg()\n }\n },\n expressionProperties: {\n 'templateOptions.disabled': 'model.disabledCalculateBtn'\n }\n },\n {\n key: 'carbonFootprint',\n type: 'text-input',\n className: 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-left-3',\n hideExpression: !this.isCarbonFootprintReporting,\n templateOptions: {\n label: `${this.translate.instant('carbon_emission')} (${this.carbonEmissionText})`,\n placeholder: '',\n required: true,\n disabled: true\n }\n },\n {\n className: this.isCarbonFootprintReporting ? 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-right-0' : '',\n },\n {\n key: 'allowanceDescription',\n type: 'text-input',\n className: 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-left-3',\n hideExpression: !(this.expenseModel.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle),\n templateOptions: {\n label: this.translate.instant('text_passenger_load'),\n placeholder: '',\n required: false,\n readonly: true,\n click: (field, $event) => {\n this.fnShowAddPassengerLoadPanel();\n }\n }\n },\n {\n className: 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-right-0',\n },\n {\n key: 'detour',\n type: 'text-input',\n className: 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-left-3',\n hideExpression: !(this.expenseModel.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle),\n templateOptions: {\n label: `${this.translate.instant('enter_detour')} (${this.mileageUOMText})`,\n placeholder: '',\n required: false,\n readonly: true,\n click: (field, $event) => {\n this.fnShowSelectDetourPanel();\n }\n }\n },\n {\n key: 'detourJustificationNotes',\n type: 'text-input',\n className: 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-left-3',\n hideExpression: !(this.expenseModel.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle),\n templateOptions: {\n label: this.translate.instant('enter_detour_justification_notes'),\n placeholder: '',\n required: false,\n readonly: true,\n click: (field, $event) => {\n this.fnShowSelectDetourPanel();\n }\n }\n },\n {\n key: 'notes',\n type: 'text-input',\n className: 'col-xl-12 col-lg-12 col-md-12 col-sm-12 padding-left-3',\n hideExpression: !(this.expenseModel.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle),\n templateOptions: {\n label: this.translate.instant('label_notes'),\n placeholder: '',\n required: false,\n maxLength: 200,\n maxLengthCount: true,\n }\n },\n {\n key: 'tagList',\n type: 'formly-button',\n hideExpression: !(this.expenseModel.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle),\n templateOptions: {\n label: this.translate.instant('tag'),\n placeholder: '',\n required: false,\n buttonClass: 'create-expense-tag margin-top-15',\n iconClass: 'fas fa-tag text-charcoal-black',\n click: (field, $event) => {\n this.fnShowCreateMileageTagPanel();\n }\n }\n }] \n }); \n\n this.journeyFormFields = fields;\n }\n\n fnInitialiseFormModel() {\n this.journeyFormModel = new MultipleLegsAddJourneyFormModel();\n\n let location: LocationDetail = { location: '', latitude: 0, longitude: 0, locationTrackTime: 0, placeId: 0 };\n this.journeyFormModel.fromLocation = location;\n this.journeyFormModel.toLocation = location;\n this.journeyFormModel.sequence = this.inputModel.multipleLegList.length > 0 ? this.inputModel.multipleLegList.length + 1 : 1;\n this.journeyFormModel.notes = \"\";\n this.journeyFormModel.detour = null;\n this.journeyFormModel.detourJustificationNotes = \"\";\n this.journeyFormModel.tagList = [];\n this.journeyFormModel.mileageAllowance = null;\n this.journeyFormModel.allowanceDescription = \"\";\n this.journeyFormModel.userHomeAddressInfo = this.resourceMileageDetails?.userHomeAddressInfo;\n this.journeyFormModel.userOfficeAddressInfo = this.resourceMileageDetails?.userOfficeAddressInfo;\n this.journeyFormModel.triangulationRule = this.resourceMileageDetails?.triangulationRule;\n this.journeyFormModel.googleCallsInfo = this.resourceMileageDetails?.googleCallsInfo;\n this.journeyFormModel.disabledCalculateBtn = true;\n this.journeyFormModel.carbonFootprint = null;\n //set from location\n this.journeyFormModel.fromLocation = this.fnGetFromLocation();\n this.journeyFormModel.fromLocationDescription = this.journeyFormModel.fromLocation.location;\n this.journeyFormModel.toLocationDescription = this.journeyFormModel.toLocation.location;\n this.journeyFormModel.isFromLocationDisabled = this.inputModel.multipleLegList.length > 0 ? true : false;\n this.journeyFormModel.isOtherOfficeAvailable = this.resourceMileageDetails?.isOtherOfficeAvailable;\n this.journeyFormModel.currentLocation = this.expenseModel.mileage.currentLocation;\n }\n\n fnGetFromLocation() {\n let location: LocationDetail = { location: '', latitude: 0, longitude: 0, locationTrackTime: 0, placeId: 0 };\n if (this.inputModel.multipleLegList && this.inputModel.multipleLegList.length > 0) {\n let lastLegDetails = this.inputModel.multipleLegList[this.inputModel.multipleLegList.length - 1];\n if (lastLegDetails) {\n location = lastLegDetails.toLocation;\n }\n }\n return location;\n }\n\n\nfnIsBtnCalculateMileageDisbled() {\n let isDisabled = false;\n if (!this.journeyFormModel.fromLocation.location\n || !this.journeyFormModel.fromLocation.location.trim()\n || !this.journeyFormModel.toLocation.location\n || !this.journeyFormModel.toLocation.location.trim()\n || !this.journeyFormModel.fromLocation.placeId\n || !this.journeyFormModel.toLocation.placeId) {\n isDisabled = true;\n }\n this.journeyFormModel.disabledCalculateBtn = isDisabled;\n}\n\n fnSaveJourneyDetails() {\n this.dynamicFormService.onFormSubmitted(true);\n this.disableSaveButton = true;\n\n if (this.journeyForm.form.invalid) {\n this.disableSaveButton = false;\n return;\n }\n // zero distance validation\n if (!Number(this.journeyFormModel.distance)\n && !(this.calculateMileageDetails && this.calculateMileageDetails.mileageDetailList\n && this.calculateMileageDetails.mileageDetailList.length > 0\n && this.calculateMileageDetails.mileageDetailList[0].amount)) {\n this.journeyFormModel.distance = null;\n this.disableSaveButton = false;\n this.fnShowWarningAlerts(ExpenseErrorWarningTypeEnum.ZeroDistance);\n return;\n }\n\n let legModel = new SourceDestinationResponse();\n let location: LocationDetail = { location: '', latitude: 0, longitude: 0, locationTrackTime: 0, placeId: 0 };\n legModel.fromLocation = location;\n legModel.toLocation = location;\n legModel.fromLocation = this.journeyFormModel.fromLocation;\n legModel.toLocation = this.journeyFormModel.toLocation;\n legModel.notes = this.journeyFormModel.notes;\n legModel.sequence = this.journeyFormModel.sequence;\n legModel.detour = this.journeyFormModel.detour ? Number(this.journeyFormModel.detour) : 0;\n legModel.detourJustificationNotes = this.journeyFormModel.detourJustificationNotes;\n legModel.mileageAllowance = this.journeyFormModel.mileageAllowance;\n legModel.distance = this.journeyFormModel.distance;\n legModel.tagList = this.journeyFormModel.tagList;\n legModel.carbonFootprint = this.journeyFormModel.carbonFootprint;\n this.submitEvent.emit(legModel);\n }\n\n fnOnMileageAddressChange() {\n this.journeyFormModel.distance = null;\n this.journeyForm.form.controls.distance.setValue(null);\n let htmlCustomMsg = GetField('distance', this.journeyFormFields);\n if (htmlCustomMsg) {\n htmlCustomMsg.templateOptions.htmlCustomMsg = '';\n }\n this.fnIsBtnCalculateMileageDisbled();\n }\n calculateMileageDetails: CalculateMileageResponse;\n fnCalculateMileageMultipleLeg() {\n\n this.fnMarkFormAsDirty();\n\n //check validation\n if (!this.journeyFormModel.fromLocation.location || !this.journeyFormModel.toLocation.location ||\n !this.journeyFormModel.fromLocation.placeId || !this.journeyFormModel.toLocation.placeId) {\n return;\n }\n\n // Start Loader\n\n this.ngxService.start();\n this.disableSaveButton = true;\n\n let vehicleId = 0;\n\n let defaultVehicle = this.vehicleResponse.find(it => it.isDefault);\n if (defaultVehicle) {\n vehicleId = defaultVehicle.vehicleId\n }\n\n let request = new ApiRequest(\"CalculateMileageMultipleLeg\", environment.applicationVersion, environment.requestId);\n let requestInfo = new CalculateMileageRequest();\n requestInfo.baseCategoryId = this.expenseModel.baseCategoryId;\n requestInfo.orgExpenseCategoryId = this.expenseModel.orgExpenseCategoryId;\n requestInfo.journeyType = JourneyTypeEnum.Multiple;\n let vehicleDetail = this.vehicleResponse.find(it => it.vehicleId == this.expenseModel.mileage.vehicleId);\n requestInfo.orgVehicleTypeMapId = (this.inputModel.isMultipleVehiclePurchase\n ? (vehicleDetail ? vehicleDetail.orgVehicleTypeMapId : 0) : this.resourceMileageDetails ? this.resourceMileageDetails.vehicleDetailResponse.orgVehicleTypeMapId : 0);\n\n requestInfo.vehicleTypeId = (this.inputModel.isMultipleVehiclePurchase\n ? (vehicleDetail ? vehicleDetail.vehicleTypeId : 0) : this.resourceMileageDetails ? this.resourceMileageDetails.vehicleDetailResponse.vehicleTypeId : 0);\n\n requestInfo.vehicleId = (this.inputModel.isMultipleVehiclePurchase ? this.expenseModel.mileage.vehicleId : vehicleId);\n requestInfo.mileageDateDetails = this.fnCalculateMileageMultipleLegRequest(null);\n requestInfo.userId = this.inputModel.claimantId;\n requestInfo.orgID = this.claims.OrgId;\n request.requestInfo = requestInfo;\n this.claimantOnWebService.CalculateMileageMultipleLeg(request).subscribe((response: IApiresponse) => {\n\n //Stop Loader\n this.ngxService.stop();\n this.disableSaveButton = false;\n\n if (response.responseInfo != null) {\n if (response.errorInfo && response.errorInfo.length > 0) {\n this.expenseModel.disabledCalculateBtn = false;\n this.ShowGoogleServiceErrorPanel();\n }\n else {\n this.calculateMileageDetails = response.responseInfo;\n\n let sourceDestinationInformation = this.calculateMileageDetails.mileageDetailList[0].sourceDestinationInformation;\n if (sourceDestinationInformation && sourceDestinationInformation.length > 0) {\n let calculatedDetails = sourceDestinationInformation[0];\n if (calculatedDetails) {\n if (this.journeyForm.form && this.journeyForm.form.controls && this.journeyForm.form.controls.distance) {\n this.journeyForm.form.controls.distance.setValue(calculatedDetails.distance.toFixed(2));\n if(this.isCarbonFootprintReporting)\n this.journeyForm.form.controls.carbonFootprint.setValue(calculatedDetails.carbonFootprint.toFixed(2));\n if (this.calculateMileageDetails.mileageDetailList[0].totalTriangulatedDistance) {\n let totalTriangulatedDistanceText = this.translate.instant(\"passenger_load_step_10_msg\")\n + '' + this.translate.instant(\"passenger_load_step_11_msg\")\n + calculatedDetails.triangulatedDistance.toFixed(2).toString()\n + ' ' + (this.expenseModel.mileage.mileageUOM == MileageUOMEnum.Kilometre ? 'km' : 'm')\n + ''\n + this.translate.instant(\"passenger_load_step_12_msg\");\n\n let htmlCustomMsg = GetField('distance', this.journeyFormFields);\n if (htmlCustomMsg) {\n htmlCustomMsg.props.htmlCustomMsg = totalTriangulatedDistanceText;\n }\n }\n else {\n let htmlCustomMsg = GetField('distance', this.journeyFormFields);\n if (htmlCustomMsg) {\n htmlCustomMsg.props.htmlCustomMsg = '';\n }\n }\n }\n }\n }\n }\n\n }\n\n });\n }\n\n fnCalculateMileageMultipleLegRequest(detourJustificationNotes) {\n let vehicleId = 0;\n\n let defaultVehicle = this.vehicleResponse.find(it => it.isDefault);\n if (defaultVehicle) {\n vehicleId = defaultVehicle.vehicleId\n }\n\n let mileage = new MileageData();\n mileage.journeyType = JourneyTypeEnum.Single;\n mileage.mileageDate = new Date(this.expenseModel.expenseDate).valueOf();\n mileage.operationalInformation = null;\n mileage.vehicleId = (this.inputModel.isMultipleVehiclePurchase ? this.expenseModel.mileage.vehicleId : vehicleId);\n mileage.customMileageRate = this.resourceMileageDetails ? this.resourceMileageDetails.customMileageRate : null;\n\n let sourceDestinationarray = [];\n let legModel = new SourceDestinationResponse();\n let location: LocationDetail = { location: '', latitude: 0, longitude: 0, locationTrackTime: 0, placeId: 0 };\n legModel.fromLocation = location;\n legModel.toLocation = location;\n legModel.fromLocation = this.journeyFormModel.fromLocation;\n legModel.toLocation = this.journeyFormModel.toLocation;\n legModel.notes = this.journeyFormModel.notes;\n legModel.sequence = this.journeyFormModel.sequence;\n legModel.detour = this.journeyFormModel.detour ? Number(this.journeyFormModel.detour) : 0;\n legModel.detourJustificationNotes = this.journeyFormModel.detourJustificationNotes;\n legModel.mileageAllowance = this.journeyFormModel.mileageAllowance;\n sourceDestinationarray.push(legModel)\n\n mileage.sourceDestinationInformation = sourceDestinationarray;\n let mileageData = [];\n mileageData.push(mileage);\n return mileageData;\n }\n\n\n fnShowWarningAlerts(expenseErrorWarningType: number) {\n\n switch (expenseErrorWarningType) {\n\n case ExpenseErrorWarningTypeEnum.ZeroDistance:\n this.showWarningAlertsModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n \"\",\n this.translate.instant(\"text_ok\"),\n true,\n this.translate.instant(\"journey_with_zero_amount_cannot_be_saved\")\n );\n this.showWarningAlerts = true;\n break;\n\n default:\n break;\n }\n }\n\n fnShowWarningAlertsReceiver(returnValue) {\n this.showWarningAlertsModel = null;\n this.showWarningAlerts = false;\n }\n\n\n //Mileage Detour\n fnShowSelectDetourPanel() {\n\n if (this.inputModel.isAdvanceMileagePurchasedOrTrial && this.inputModel.isDetourEnabled) {\n this.selectDetourInputModel = new SelectDetourInputModel();\n this.selectDetourInputModel.detour = this.journeyFormModel.detour;\n this.selectDetourInputModel.detourJustificationNotes = this.journeyFormModel.detourJustificationNotes;\n\n this.showSelectDetourPanel = true;\n\n } else {\n this.fnShowDebtourNotActivatedAlertPanel();\n }\n }\n\n fnCloseSelectDetourPanel(isClose: boolean) {\n if (isClose) {\n this.showSelectDetourPanel = false;\n }\n }\n\n fnSelectDetourPanel(selectedData: SelectDetourOutputModel) {\n if (selectedData) {\n\n if (this.journeyForm && this.journeyForm.form) {\n this.journeyForm.form.controls.detour.setValue(Number(selectedData.detour).toFixed(2));\n this.journeyForm.form.controls.detourJustificationNotes.setValue(selectedData.detourJustificationNotes);\n }\n\n this.showSelectDetourPanel = false;\n this.fnCalculateMileageMultipleLeg();\n }\n }\n\n fnShowDebtourNotActivatedAlertPanel() {\n this.debtourNotActivatedAlertModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n \"\",\n this.translate.instant(\"text_ok\"),\n true,\n this.translate.instant(\"create_expense_detour_not_subscribed_alert\")\n );\n\n this.showDebtourNotActivatedAlertPanel = true;\n }\n\n fnCloseDebtourNotActivatedAlertPanel(event) {\n this.showDebtourNotActivatedAlertPanel = false;\n }\n\n //Passenger Load\n fnShowAddPassengerLoadPanel() {\n if (this.inputModel.isPassengerLoadPurchased && this.mileageAllowance && this.mileageAllowance.length > 0) {\n\n this.passengerLoadInputModel = this.mileageAllowance ? this.mileageAllowance : [];\n if (this.journeyFormModel && this.journeyFormModel.mileageAllowance) {\n this.passengerLoadInputModel.forEach(element => {\n if (element.allowanceId == this.journeyFormModel.mileageAllowance.allowanceId) {\n element.selected = true;\n }\n else {\n element.selected = false;\n }\n });\n }\n this.showAddPassengerLoadPanel = true;\n\n } else {\n this.fnShowPassengerLoadNotActivatedAlertPanel();\n }\n\n }\n\n fnMarkMileageAllowanceUnselect() {\n if (this.mileageAllowance) {\n this.mileageAllowance.forEach(element => {\n element.selected = false;\n });\n }\n }\n\n fnCloseAddPassengerLoadPanel(isClose: boolean) {\n if (isClose) {\n this.showAddPassengerLoadPanel = false;\n this.passengerLoadInputModel = null;\n this.fnMarkMileageAllowanceUnselect();\n }\n }\n\n fnSelectPassengerLoad(selectedData: MileageAllowance) {\n if (selectedData) {\n if (this.journeyForm && this.journeyForm.form) {\n this.journeyFormModel.mileageAllowance = selectedData;\n this.journeyForm.form.controls.allowanceDescription.setValue(selectedData.allowanceDescription);\n }\n }\n this.showAddPassengerLoadPanel = false;\n this.fnCalculateMileageMultipleLeg();\n }\n\n fnShowPassengerLoadNotActivatedAlertPanel() {\n this.passengerLoadNotActivatedAlertModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n \"\",\n this.translate.instant(\"text_ok\"),\n true,\n this.translate.instant(\"create_expense_passenger_load_not_subscribed_alert\")\n );\n\n this.showPassengerLoadNotActivatedAlertPanel = true;\n }\n\n fnClosePassengerLoadNotActivatedAlertPanel(event) {\n this.showPassengerLoadNotActivatedAlertPanel = false;\n }\n\n //Mileage Tag\n fnShowCreateMileageTagPanel() {\n this.createMileageTagInputModel = new SelectTagsPopupModel();\n this.createMileageTagInputModel.tagList = this.journeyFormModel.tagList;\n this.createMileageTagInputModel.claimantId = this.inputModel.claimantId;\n this.createMileageTagInputModel.claimantName = this.inputModel.claimantName;\n this.showCreateMileageTagPanel = true;\n }\n\n fnCloseCreateMileageTagPanel(isClose: boolean) {\n if (isClose) {\n this.showCreateMileageTagPanel = false;\n }\n }\n\n fnSelectCreateMileageTag(selectedData: SelectTagsPopupModel) {\n if (selectedData) {\n this.journeyFormModel.tagList = selectedData.tagList;\n this.fnUpdateTagDisplay(this.journeyFormModel.tagList);\n }\n this.showCreateMileageTagPanel = false;\n this.fnMarkFormAsDirty();\n }\n\n fnUpdateTagDisplay(tagList) {\n let displayTags = this.translate.instant(\"text_tag\");\n if (tagList && tagList.length > 0) {\n displayTags = `${this.translate.instant(\"text_tag\")} (${tagList ? tagList.length : 0})`;\n }\n let tagField = GetField('tagList', this.journeyFormFields);\n\n if (tagField) {\n tagField.templateOptions.label = displayTags;\n }\n }\n\n fnShowDeleteConfirmationAlert() {\n this.deleteConfirmationAlertModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [\n this.translate.instant(\"leg_delete_confirmation_note\"),\n ],\n this.translate.instant(\"label_cancel\"),\n this.translate.instant(\"label_confirm\"),\n true,\n this.translate.instant(\"leg_delete_confirmation_note\")\n );\n this.showDeleteConfirmationAlert = true;\n }\n\n fnDeleteConfirmationAlertReceiver(returnValue) {\n if (returnValue) {\n this.deleteEvent.emit(this.journeyFormModel.sequence);\n }\n this.deleteConfirmationAlertModel = null;\n this.showDeleteConfirmationAlert = false;\n }\n\n\n fnMarkFormAsPristine() {\n if (this.journeyForm && this.journeyForm.form) {\n this.journeyForm.form.markAsPristine();\n }\n }\n\n fnMarkFormAsDirty() {\n if (this.journeyForm && this.journeyForm.form) {\n this.journeyForm.form.markAsDirty();\n }\n }\n showGoogleServiceErrorPopup: boolean = false;\n GoogleServiceErrorPopupModel = new AlertPanelModel(false, \"\", [\"\"], \"\", \"\", true, \"\");\n ShowGoogleServiceErrorPanel() {\n\n this.GoogleServiceErrorPopupModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n '',\n this.translate.instant(\"text_ok\"),\n true\n , this.translate.instant(\"google_service_down_msg\")\n );\n this.showGoogleServiceErrorPopup = true;\n }\n fnGoogleServiceErrorPopupReceiver() {\n this.showGoogleServiceErrorPopup = false;\n this.journeyFormModel.disabledCalculateBtn = false;\n this.GoogleServiceErrorPopupModel = new AlertPanelModel(false, \"\", [\"\"], \"\", \"\", true, this.translate.instant(\"please_review_or_confirm\"));\n }\n\n\n}\n","
\n\n
\n
\n
\n
\n

{{ 'office_address_select' | translate }}

\n
\n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
","import {\n OnInit,\n Component,\n EventEmitter,\n Output,\n ViewChild,\n NgZone,\n ChangeDetectorRef,\n} from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { IApiresponse } from \"src/app/_models\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ColDef } from \"ag-grid-community\";\nimport { GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { CloseFormAction } from \"src/app/_models/advance-mileage/org-ukmileage-rate-info\";\nimport { UkMileageRateSettingService } from \"src/app/_services/advance-mileage/uk-mileage-rate-setting.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Component({\n selector: \"office-address-panel\",\n templateUrl: \"./office-address-panel.component.html\",\n})\nexport class OfficeAddressPanelComponent implements OnInit {\n @Output() closePanelEvent = new EventEmitter();\n claims: Claims;\n isOverlayEnabled: boolean;\n param: string;\n userActionEventSubscription: Subscription;\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n gridData: any = [];\n gridFilterStatus: number;\n //Ag Grid Variable Declaration\n isOverlayRequired = true;\n closeFormAction: CloseFormAction = new CloseFormAction();\n constructor(\n public zone: NgZone,\n private ukMileageRateSettingService: UkMileageRateSettingService,\n private translate: TranslateService,\n private claimsService: ClaimsService,\n private cdfr: ChangeDetectorRef\n ) {\n this.isOverlayEnabled = false;\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {\n this.fnInitialiseGrid();\n this.fnGetGridItems();\n }\n\n //Column Definitions\n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant(\"uk_mileage_office_name\"),\n field: \"officeName\",\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n width: 120,\n cellClass: \"cursor-pointer\",\n },\n {\n headerName: this.translate.instant(\"uk_mileage_office_address\"),\n field: \"officeAddress\",\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n cellClass: \"cursor-pointer\",\n },\n ];\n }\n\n //Grid Config Items\n fnGetGridConfigItems() {\n this.gridConfigItems = new GridConfig(\n true,\n true,\n \"officeName\",\n \"officePostcodeId\",\n 0,\n false,\n [],\n true,\n true,\n false,\n null,\n \"asc\",\n 40,\n \"no_data_availabe\",\n null,\n null,\n false,\n false,\n \"\",\n \"\",\n false\n );\n }\n\n //Initialise Grid\n fnInitialiseGrid() {\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid(false);\n }, 100);\n }\n\n fnOnGridCellClick(params) {\n this.closePanelEvent.emit(params.data);\n }\n\n fnGetGridItems() {\n this.ukMileageRateSettingService\n .SoloGetOrgOfficeCodes()\n .subscribe((res: IApiresponse) => {\n this.gridData = res.responseInfo.officeDetailsList;\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n this.cdfr.detectChanges();\n });\n }\n\n onClosePanel() {\n this.closePanelEvent.emit(false);\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 {{'current_location' | translate }}\n

    \n
  • \n
  • \n

    \n {{'home' | translate }}\n

    \n

    \n {{model?.userHomeAddressInfo?.address}}\n

    \n
  • \n
  • \n

    \n {{'office' | translate }}\n

    \n

    \n {{model?.userOfficeAddressInfo?.address}}\n

    \n
  • \n
  • \n

    \n {{'office_address_other' | translate }}\n

    \n
  • \n \n
\n
\n
\n
    \n
  • {{item.description}}
  • \n
\n
\n\n
\n
    \n
  • {{'no_match_found' | translate }}
  • \n
\n
\n\n
\n \n {{ \"label_Required\" | translate }}\n \n
\n
\n
\n \n {{ model.googleCallsInfo.notesForGoogle }}\n \n
\n
\n
\n\n\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { ApiRequest, IApiresponse } from 'src/app/_models';\nimport { LocationCommonDetail } from 'src/app/_models/claimant-on-web/claimant-on-web';\nimport { IOrganisationGooglePackageUpdateCallsRequest, OrganisationGooglePackageUpdateCallsRequest } from 'src/app/_models/google-mapping/google-mapping';\nimport { ClaimsService } from 'src/app/_services/common/claims.service';\nimport { GoogleMappingService } from 'src/app/_services/google-mapping/google-mapping.service';\nimport { environment } from 'src/environments/environment';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\n\n@Component({\n selector: 'formly-google-location-input',\n templateUrl: \"./formly-google-location-input.component.html\"\n})\nexport class FormlyGoogleLocationInputComponent extends FieldType implements OnInit, OnDestroy {\n\n claimsSubscription: Subscription;\n claims: Claims;\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n queryWait: boolean = false;\n googleDynamicAddressList: any;\n isGoogleDropdownVisible: boolean = false;\n isHomeOfcDropdownVisible: boolean = false;\n isGoogleAddressNotFound: boolean = false;\n countOfGoogleCalls: number = 0;\n\n gm_lable: string;\n modelKey: string;\n isCurrentLocationVisible: boolean = false;\n constructor(private dynamicFormService: DynamicFormService,\n private claimsService: ClaimsService,\n private googleMappingService: GoogleMappingService,\n private translate: TranslateService,\n private cdr: ChangeDetectorRef) {\n super();\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n this.gm_lable = ' ' + this.translate.instant('gm_message');\n this.modelKey = this.field.templateOptions.modelKey;\n this.fnSetGoogleCallsMsg()\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n if (this.claimsSubscription) {\n this.claimsSubscription.unsubscribe();\n }\n }\n fnSetGoogleCallsMsg() {\n if (this.formControl.value) {\n this.isGoogleNotesDisplay = false;\n this.isToDelIconDisplay = true;\n }\n }\n onTextInput() {\n this.model[this.modelKey.toString()].location = this.formControl.value;\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n\n }\n isCharLimit: boolean = false;\n fnKeypress(value) {\n if (this.isToDelIconDisplay) {\n return false;\n }\n else {\n this.isCharLimit = false;\n if (this.model.googleCallsInfo\n && Number(this.model.googleCallsInfo.limitChar) > 0\n && value.length >= Number(this.model.googleCallsInfo.limitChar)) {\n this.isCharLimit = true;\n return false;\n }\n return true;\n }\n\n }\n fnKeyDown() {\n if (this.isToDelIconDisplay) {\n return false;\n }\n else {\n return true;\n }\n }\n isToDelIconDisplay: boolean = false;\n fnSearchAddress(value) {\n if (value.length == 0) {\n this.isToDelIconDisplay = false;\n }\n if (this.model.googleCallsInfo\n && Number(this.model.googleCallsInfo.limitChar) > 0\n && value.length <= Number(this.model.googleCallsInfo.limitChar)) {\n this.isCharLimit = false;\n }\n if (!this.isCharLimit) {\n this.isHomeOfcDropdownVisible = false;\n this.isCurrentLocationVisible = false;\n this.model[this.modelKey.toString()].placeId = null;\n this.model[this.modelKey.toString()].location = this.formControl.value;\n\n if (!this.queryWait) {\n this.queryWait = true;\n setTimeout(() => {\n this.fnGetFromAutocompletePredictions();\n this.queryWait = false;\n //this.cdr.detectChanges();\n }, 200);\n }\n }\n \n }\n\n private fnGetFromAutocompletePredictions() {\n\n if (this.model[this.modelKey.toString()].location.length < 6) {\n this.googleDynamicAddressList = null;\n if (this.model[this.modelKey.toString()].location.length > 0) {\n this.isGoogleAddressNotFound = true;\n this.isHomeOfcDropdownVisible = false;\n this.isCurrentLocationVisible = false;\n }\n else {\n if (this.model.triangulationRule) {\n this.isHomeOfcDropdownVisible = true;\n this.isCurrentLocationVisible = true;\n }\n this.isGoogleAddressNotFound = false;\n this.isGoogleDropdownVisible = false;\n }\n }\n if (this.model[this.modelKey.toString()].location.length != 6 && this.model[this.modelKey.toString()].location.length < 10) {\n return;\n }\n this.fnGetPlacePredictions(this.model[this.modelKey.toString()].location)\n .then(data => {\n this.googleDynamicAddressList = data;\n setTimeout(() => {\n this.isGoogleAddressNotFound = this.googleDynamicAddressList == null ? true : false;\n this.isHomeOfcDropdownVisible = false;\n this.isCurrentLocationVisible = false;\n this.isGoogleDropdownVisible = this.googleDynamicAddressList != null ? true : false;\n this.countOfGoogleCalls++;\n this.cdr.detectChanges();\n }, 100);\n \n })\n .catch(err => {\n this.isGoogleDropdownVisible = false;\n this.isGoogleAddressNotFound = true;\n this.isHomeOfcDropdownVisible = false;\n this.isCurrentLocationVisible = false;\n });\n }\n\n private fnGetPlacePredictions(query: string): Promise {\n let autocompleteSrv = new google.maps.places.AutocompleteService();\n return new Promise((resolve, reject) => {\n autocompleteSrv.getPlacePredictions({\n types: ['geocode'],\n input: query\n }, function (predictions, status) {\n if (status == google.maps.places.PlacesServiceStatus.OK) {\n resolve(predictions);\n } else {\n reject(status);\n }\n });\n });\n }\n fnOnInputClick() {\n if (this.model.triangulationRule) {\n if ((!this.googleDynamicAddressList || this.googleDynamicAddressList == null\n || this.googleDynamicAddressList.length == 0) && (!this.formControl.value || this.formControl.value == '')) {\n this.isGoogleDropdownVisible = false;\n this.isGoogleAddressNotFound = false;\n this.isHomeOfcDropdownVisible = true;\n this.isCurrentLocationVisible = true;\n }\n }\n else if(this.model.currentLocation)\n {\n this.isGoogleDropdownVisible = false;\n this.isGoogleAddressNotFound = false;\n this.isHomeOfcDropdownVisible = false;\n this.isCurrentLocationVisible = true;\n }\n }\n fnCloseGoogleDropdown() {\n setTimeout(() => {\n this.cdr.detectChanges();\n this.isGoogleDropdownVisible = false;\n this.isGoogleAddressNotFound = false;\n this.isHomeOfcDropdownVisible = false;\n this.isCurrentLocationVisible = false;\n }, 300);\n\n\n if (!this.isToDelIconDisplay && this.countOfGoogleCalls > 0) {\n this.fnUpdateOrganisationGooglePackageCalls();\n }\n }\n\n fnUpdateOrganisationGooglePackageCalls() {\n let request = new ApiRequest(\"UpdateOrganisationGooglePackageCalls\", environment.applicationVersion, environment.requestId);\n let requestInfo = new OrganisationGooglePackageUpdateCallsRequest();\n requestInfo.OrganisationId = this.claims.OrgId;\n requestInfo.CallsUsed = this.countOfGoogleCalls;\n requestInfo.UpdatedBy = this.claims.UserId;\n request.requestInfo = requestInfo;\n this.googleMappingService.UpdateOrganisationGooglePackageCalls(request).subscribe((res: IApiresponse) => {\n this.countOfGoogleCalls = 0;\n });\n }\n isGoogleNotesDisplay: boolean = true;\n fnSetAddress(place: object) {\n this.formControl.setValue(place['description']);\n this.model[this.modelKey.toString()].location = place['description'];\n this.model[this.modelKey.toString()].placeId = place['place_id'];\n this.isGoogleNotesDisplay = false;\n this.googleDynamicAddressList = null;\n this.isGoogleAddressNotFound = false;\n this.isHomeOfcDropdownVisible = false;\n this.isCurrentLocationVisible = false;\n this.fnIsDelIconDisplay();\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n setTimeout(() => {\n this.cdr.detectChanges();\n this.isGoogleDropdownVisible = false;\n }, 200);\n \n }\n fnSetAddressFromTriangulation(location: LocationCommonDetail) {\n if (location) {\n this.formControl.setValue(location.address);\n this.model[this.modelKey.toString()].location = location.address;\n this.model[this.modelKey.toString()].placeId = location.placeId;\n this.isGoogleNotesDisplay = false\n this.googleDynamicAddressList = null;\n this.isGoogleAddressNotFound = false;\n this.isHomeOfcDropdownVisible = false;\n this.isCurrentLocationVisible = false;\n this.fnIsDelIconDisplay();\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n setTimeout(() => {\n this.cdr.detectChanges();\n this.isGoogleDropdownVisible = false;\n }, 200);\n }\n\n }\n fnSetCurrentLocation() {\n if (location) {\n this.formControl.setValue(this.model.currentLocation.formatted_address);\n this.model[this.modelKey.toString()].location = this.model.currentLocation.formatted_address;\n this.model[this.modelKey.toString()].placeId = this.model.currentLocation.place_id;\n this.isGoogleNotesDisplay = false\n this.googleDynamicAddressList = null;\n this.isGoogleAddressNotFound = false;\n this.isHomeOfcDropdownVisible = false;\n this.isCurrentLocationVisible = false;\n this.countOfGoogleCalls++;\n this.fnIsDelIconDisplay();\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n setTimeout(() => {\n this.cdr.detectChanges();\n this.isGoogleDropdownVisible = false;\n }, 200);\n }\n\n }\n fnDeleteText() {\n this.model[this.modelKey.toString()].placeId = null;\n this.model[this.modelKey.toString()].location = null;\n this.isGoogleNotesDisplay = true\n this.formControl.setValue(null);\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n this.cdr.detectChanges();\n this.isToDelIconDisplay = false;\n }\n fnIsDelIconDisplay() {\n this.isToDelIconDisplay = true;\n }\n\n fnSearchPlacePrediction() {\n this.fnGetPlacePredictions(this.model[this.modelKey.toString()].location)\n .then(data => {\n this.googleDynamicAddressList = data;\n this.isGoogleDropdownVisible = this.googleDynamicAddressList != null ? true : false;\n this.isGoogleAddressNotFound = this.googleDynamicAddressList == null ? true : false;\n this.isHomeOfcDropdownVisible = false;\n this.isCurrentLocationVisible = false;\n this.countOfGoogleCalls++;\n })\n .catch(_err => {\n this.isGoogleDropdownVisible = false;\n this.isGoogleAddressNotFound = true;\n this.isHomeOfcDropdownVisible = false;\n this.isCurrentLocationVisible = false;\n\n });\n }\n isOfficeAddressPanel: boolean;\n closeOfficeAddPanel(location) {\n if (location) {\n this.formControl.setValue(location.officeAddress);\n this.model[this.modelKey.toString()].location = location.officeAddress;\n this.model[this.modelKey.toString()].placeId = location.placeId;\n this.isGoogleNotesDisplay = false;\n this.googleDynamicAddressList = null;\n this.isGoogleAddressNotFound = false;\n this.isHomeOfcDropdownVisible = false;\n this.isCurrentLocationVisible = false;\n this.fnIsDelIconDisplay();\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n setTimeout(() => {\n this.cdr.detectChanges();\n this.isGoogleDropdownVisible = false;\n }, 200);\n }\n this.isOfficeAddressPanel = false;\n }\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from 'src/app/shared/forms/dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-text-with-toggle',\n templateUrl: \"./formly-text-with-toggle.component.html\"\n})\nexport class FormlyTextWithToggleComponent extends FieldType implements OnInit, OnDestroy {\n param: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n this.to.change(this.field, this.formControl.value);\n }\n\n}","
\n
\n
\n
\n {{field.templateOptions.label}}\n
\n
\n\n
\n \n
\n \n \n
\n \n
\n
\n
\n","\n
\n {{ \"label_Required\" | translate: param }}\n
\n","import { Component, ElementRef, ViewChild, OnInit, AfterViewInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AlertPanelModel } from '../../../../_models/common/alertPanelModel';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { Subscription } from 'rxjs';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'formly-img-upload',\n templateUrl: \"./formly-img-upload.component.html\"\n})\nexport class FormlyImgUploadComponent extends FieldType implements OnInit, OnDestroy {\n param:string;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n label:string;\n alignMentClass:string = '';\n constructor(private dynamicFormService: DynamicFormService, public datepipe: DatePipe, private router: Router,\n private translate: TranslateService) {\n super();\n }\n\n ngOnInit() {\n if (this.field && this.field.templateOptions) {\n this.label = this.field.templateOptions.label; \n this.alignMentClass = this.field.templateOptions.alignMent == 2 ? 'text-right' : \n this.field.templateOptions.alignMent==3 ? 'text-center': ''; \n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n }); \n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n fnOpenReceiptPanel(action: string) {\n this.to.click(this.field,action);\n }\n\n}","
\n \n \n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n \n
\n {{error}}\n
\n
\n \n
\n {{field.templateOptions.supportLabel}}\n
\n
\n\n
","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n\n@Component({\n selector: 'formly-six-digit-before-after-decimal-input',\n templateUrl: \"./formly-six-digit-before-after-decimal-input.component.html\"\n})\nexport class FormlySixDigitBeforeAfterDecimalInputComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n beforeDecimal: number = 6;\n afterDecimal: number = 6;\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n if (this.field?.templateOptions?.beforeDecimal) {\n this.beforeDecimal = this.field.templateOptions.beforeDecimal;\n }\n if (this.field?.templateOptions?.afterDecimal) {\n this.afterDecimal = this.field.templateOptions.afterDecimal;\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onNumberInput() {\n this.to.change(this.field, this.formControl.value);\n }\n\n onKeyPress(event) {\n const value = parseInt(this.formControl.value + event.key);\n if (this.to.max) {\n if (value > this.to.max) {\n return false;\n }\n }\n if (this.to.min) {\n if (value < this.to.min) {\n return false;\n }\n }\n if (this.to.omitNegativeSign) {\n return event.charCode != 45;\n }\n return true;\n }\n\n}\n","
\n

{{field.templateOptions.label}}

\n

\n \n \n \n

\n
\n {{ \"label_Required\" | translate: param }}\n
\n
","import { Component, OnDestroy, OnInit, EventEmitter } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-dynamic-radio-input',\n templateUrl: \"./formly-dynamic-radio-input.component.html\"\n})\nexport class FormlyDynamicRadioInputComponent extends FieldType implements OnInit, OnDestroy {\n\n param: any;\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n constructor(\n private dynamicFormService: DynamicFormService,\n private sanitizer: DomSanitizer\n ) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n if (this.to.change) {\n this.to.change(this.field, this.formControl.value);\n }\n }\n\n sanitizerHtml(element) {\n var safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return safeText;\n }\n}\n","
\n
\n
\n\n
\n
\n \"logo\"\n
\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n","import { Component, OnInit, AfterViewInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AlertPanelModel } from '../../../../_models/common/alertPanelModel';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'formly-image-uploader2',\n templateUrl: \"./formly-image-uploader2.component.html\"\n})\nexport class FormlyImageUploader2Component extends FieldType implements OnInit, OnDestroy, AfterViewInit {\n\n fieldKey: string;\n formSubmissionSubscription: Subscription;\n isFormSubmitted: boolean = false;\n isDisabled:boolean;\n imgUrl: string = \"\";\n alertPanelModel: AlertPanelModel;\n showAlertPanel: boolean = false;\n fileExtensions: string[] = [\".png\", \".jpg\", \".jpeg\"];\n ifNoImage: boolean = false;\n ifNoValidation: boolean = false;\n btnText:string;\n constructor(\n private translate: TranslateService,\n private dynamicFormService: DynamicFormService, private cdRef: ChangeDetectorRef) {\n super();\n this.btnText = this.translate.instant(\"chage_logo\");\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n this.imgUrl = this.field.templateOptions.defaultLogo;\n if (this.field.templateOptions.ifNoImage) {\n this.ifNoImage = true;\n }\n if (this.field.templateOptions.ifNoValidation) {\n this.ifNoValidation = true;\n }\n if (this.field.templateOptions.btnText) {\n this.btnText = this.field.templateOptions.btnText;\n }\n if (this.field.templateOptions.disabled) {\n this.isDisabled = this.field.templateOptions.disabled;\n }\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n ngAfterViewInit() {\n this.form.valueChanges.subscribe(() => {\n this.cdRef.detectChanges()\n });\n }\n\n onValueChange(files: any) {\n if (files) {\n\n if (this.isValidFile(files[0])) {\n let reader = new FileReader();\n reader.readAsDataURL(files[0]);\n reader.onload = (event) => {\n const img = new Image();\n img.src = reader.result as string;\n img.onload = () => {\n const height = img.naturalHeight;\n const width = img.naturalWidth;\n if(this.ifNoValidation)\n {\n this.imgUrl = reader.result.toString();\n this.formControl.setValue(this.imgUrl);\n this.to.change(this.field, files[0]);\n this.ifNoImage = false;\n\n }\n else\n {\n if (height <= 50 && width <= 160) {\n this.imgUrl = reader.result.toString();\n this.formControl.setValue(this.imgUrl);\n this.to.change(this.field, files[0]);\n } else {\n this.showAlertPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n '',\n this.translate.instant(\"Close\"),\n true,\n this.translate.instant(\"logo_resize_validation\")\n );\n this.formControl.setValue(null);\n this.to.change(this.field, files[0]);\n this.cdRef.detectChanges();\n return;\n }\n }\n \n };\n };\n } else {\n this.formControl.setValue(null);\n this.to.change(this.field, files[0]);\n }\n\n }\n setTimeout(() => {\n this.cdRef.detectChanges()\n }, 100);\n }\n\n fnShowAttachReceiptOptionsPanel() {\n document.getElementById('fileSecond').click();\n return false;\n }\n\n getSupportedExtensionsText() {\n let text = \"\";\n if (this.fileExtensions) {\n text = this.fileExtensions.join(' / ');\n }\n return text;\n }\n\n isValidFile(file: any) {\n let isValid = true;\n if (!this.checkExtension(file.name)) {\n this.showAlertPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [\n this.translate.instant(\"Please_upload_the_images_only\") + ' ' + this.getSupportedExtensionsText() + ''\n ],\n '',\n this.translate.instant(\"Close\"),\n true,\n this.translate.instant(\"invalid_image_format\")\n );\n isValid = false;\n this.cdRef.detectChanges();\n return isValid;\n }\n\n let mimeType = file.type;\n\n if (mimeType.match(/image\\/*/) == null) {\n this.showAlertPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [this.translate.instant(\"Please_upload_the_images_only\"),\n this.translate.instant(\"only_images_are_supported\")\n ],\n '',\n this.translate.instant(\"Close\"),\n true\n , this.translate.instant(\"only_images_are_supported\")\n );\n isValid = false;\n this.cdRef.detectChanges();\n return isValid;\n }\n\n if (file.size > 200000 && !this.ifNoValidation) {\n this.showAlertPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n '',\n this.translate.instant(\"Close\"),\n true,\n this.translate.instant(\"file_size_exceeded\")\n );\n isValid = false;\n this.cdRef.detectChanges();\n return isValid;\n }\n return isValid;\n }\n\n checkExtension(fileName: any) {\n return this.fileExtensions.some(el => fileName.toLowerCase().endsWith(el));\n }\n\n alertPanelReceiver(returnValue: any) {\n this.showAlertPanel = false;\n this.alertPanelModel = null;\n this.cdRef.detectChanges();\n }\n\n}\n","
\n
\n
\n\n
\n
\n \"logo\"\n
\n
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n\n","import { Component, OnInit, AfterViewInit, ChangeDetectorRef, OnDestroy } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { AlertPanelModel } from '../../../../_models/common/alertPanelModel';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'formly-image-uploader',\n templateUrl: \"./formly-image-uploader.component.html\"\n})\nexport class FormlyImageUploaderComponent extends FieldType implements OnInit, OnDestroy, AfterViewInit {\n\n fieldKey: string;\n formSubmissionSubscription: Subscription;\n isFormSubmitted: boolean = false;\n isDisabled:boolean;\n imgUrl: string = \"\";\n alertPanelModel: AlertPanelModel;\n showAlertPanel: boolean = false;\n fileExtensions: string[] = [\".png\", \".jpg\", \".jpeg\"];\n ifNoImage: boolean = false;\n ifNoValidation: boolean = false;\n btnText:string;\n constructor(\n private translate: TranslateService,\n private dynamicFormService: DynamicFormService, private cdRef: ChangeDetectorRef) {\n super();\n this.btnText = this.translate.instant(\"chage_logo\");\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n this.imgUrl = this.field.templateOptions.defaultLogo;\n if (this.field.templateOptions.ifNoImage) {\n this.ifNoImage = true;\n }\n if (this.field.templateOptions.ifNoValidation) {\n this.ifNoValidation = true;\n }\n if (this.field.templateOptions.btnText) {\n this.btnText = this.field.templateOptions.btnText;\n }\n if (this.field.templateOptions.disabled) {\n this.isDisabled = this.field.templateOptions.disabled;\n }\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n ngAfterViewInit() {\n this.form.valueChanges.subscribe(() => {\n this.cdRef.detectChanges()\n });\n }\n\n onValueChange(files: any) {\n if (files) {\n\n if (this.isValidFile(files[0])) {\n let reader = new FileReader();\n reader.readAsDataURL(files[0]);\n reader.onload = (event) => {\n const img = new Image();\n img.src = reader.result as string;\n img.onload = () => {\n const height = img.naturalHeight;\n const width = img.naturalWidth;\n if(this.ifNoValidation)\n {\n this.imgUrl = reader.result.toString();\n this.formControl.setValue(this.imgUrl);\n this.to.change(this.field, files[0]);\n this.ifNoImage = false;\n\n }\n else\n {\n if (height <= 50 && width <= 160) {\n this.imgUrl = reader.result.toString();\n this.formControl.setValue(this.imgUrl);\n this.to.change(this.field, files[0]);\n } else {\n this.showAlertPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n '',\n this.translate.instant(\"Close\"),\n true,\n this.translate.instant(\"logo_resize_validation\")\n );\n this.formControl.setValue(null);\n this.to.change(this.field, files[0]);\n this.cdRef.detectChanges();\n return;\n }\n }\n \n };\n };\n } else {\n this.formControl.setValue(null);\n this.to.change(this.field, files[0]);\n }\n\n }\n setTimeout(() => {\n this.cdRef.detectChanges()\n }, 100);\n }\n\n fnShowAttachReceiptOptionsPanel() {\n document.getElementById('file').click();\n return false;\n }\n\n getSupportedExtensionsText() {\n let text = \"\";\n if (this.fileExtensions) {\n text = this.fileExtensions.join(' / ');\n }\n return text;\n }\n\n isValidFile(file: any) {\n let isValid = true;\n if (!this.checkExtension(file.name)) {\n this.showAlertPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [\n this.translate.instant(\"Please_upload_the_images_only\") + ' ' + this.getSupportedExtensionsText() + ''\n ],\n '',\n this.translate.instant(\"Close\"),\n true,\n this.translate.instant(\"invalid_image_format\")\n );\n isValid = false;\n this.cdRef.detectChanges();\n return isValid;\n }\n\n let mimeType = file.type;\n\n if (mimeType.match(/image\\/*/) == null) {\n this.showAlertPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [this.translate.instant(\"Please_upload_the_images_only\"),\n this.translate.instant(\"only_images_are_supported\")\n ],\n '',\n this.translate.instant(\"Close\"),\n true\n , this.translate.instant(\"only_images_are_supported\")\n );\n isValid = false;\n this.cdRef.detectChanges();\n return isValid;\n }\n\n if (file.size > 200000 && !this.ifNoValidation) {\n this.showAlertPanel = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n '',\n this.translate.instant(\"Close\"),\n true,\n this.translate.instant(\"file_size_exceeded\")\n );\n isValid = false;\n this.cdRef.detectChanges();\n return isValid;\n }\n return isValid;\n }\n\n checkExtension(fileName: any) {\n return this.fileExtensions.some(el => fileName.toLowerCase().endsWith(el));\n }\n\n alertPanelReceiver(returnValue: any) {\n this.showAlertPanel = false;\n this.alertPanelModel = null;\n this.cdRef.detectChanges();\n }\n\n}\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from 'src/app/shared/forms/dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-left-text-with-toggle',\n templateUrl: \"./formly-left-text-with-toggle.component.html\"\n})\nexport class FormlyLeftTextWithToggleComponent extends FieldType implements OnInit, OnDestroy {\n param: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n enableBigToggle = true;\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n if (this.to.options && this.to.options[0] && this.to.options[0].enableBigToggle != undefined){\n this.enableBigToggle = this.to.options[0].enableBigToggle;\n }\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onValueChange() {\n this.to.change(this.field, this.formControl.value);\n }\n\n}","
\n
\n {{field.templateOptions.label}} \n
\n
\n \n\n \n\n
\n
","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n\n@Component({\n selector: 'formly-plus-button',\n templateUrl: \"./formly-plus-button.component.html\"\n})\n\nexport class FormlyPlusButtonComponent extends FieldType implements OnInit, OnDestroy {\n param: any;\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n label: string;\n buttonClass: string;\n iconClass: string;\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n\n if (this.field.templateOptions && this.field.templateOptions.label) {\n this.label = this.field.templateOptions.label;\n }\n if (this.field.templateOptions && this.field.templateOptions.buttonClass) {\n this.buttonClass = this.field.templateOptions.buttonClass;\n }\n if (this.field.templateOptions && this.field.templateOptions.iconClass) {\n this.iconClass = this.field.templateOptions.iconClass;\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n onClick() {\n this.to.click(this.field);\n }\n\n}\n","\n\n","
\n
\n
    \n
  • \n \n {{item}}\n \n
  • \n
\n
\n
\n\n ","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\n\n@Component({\n selector: 'formly-date-format',\n templateUrl: \"./formly-date-format.component.html\"\n})\nexport class FormlyDateFormatComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n\n dateFormats = [\n \"dd/MM/yy\",\n \"dd/MM/yyyy\",\n \"MM/dd/yy\",\n \"MM/dd/yyyy\",\n \"yy/MM/dd\",\n \"d/MM/yyyy\",\n \"yyyy/MMM\",\n \"yyyy-MM-dd\",\n \"MM-dd-yy\",\n \"MM-dd-yyyy\",\n \"dd-MM-yy\",\n \"dd-MM-yyyy\",\n \"dd-MMM-yy\",\n \"dd-MMM-yyyy\",\n \"dd.MM.yy\",\n \"dd.MM.yyyy\",\n \"yy.MM.dd\",\n \"MMM dd, yy\",\n \"MMM dd, yyyy\",\n \"ddMMyy\",\n \"yyMMdd\",\n \"ddMMyyyy\",\n \"yyyyMMdd\",\n \"EEEE, dd/MMM/yyyy\",\n ];\n\n selectedDate: string =\"\";\n\n constructor(private dynamicFormService: DynamicFormService) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n });\n\n this.fnGetSelectedFormatOnTop();\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n fnSetDateFormat(item) {\n this.formControl.setValue(item);\n if (this.to.click) {\n this.to.click(this, item);\n }\n }\n\n fnGetSelectedFormatOnTop() {\n if (this.formControl?.value) {\n let selectedFormat = this.formControl.value;\n const sortedArr = this.dateFormats.reduce((acc, element) => {\n if (element == selectedFormat) {\n return [element, ...acc];\n }\n return [...acc, element];\n }, []);\n this.dateFormats = sortedArr;\n }\n}\n\n}","
\n
\n
\n
\n
\n

{{ \"contaner_existing_reports\" | translate }}

\n
\n
\n \n\n \n\n \n
\n
\n\n
\n
\n {{ \"select_existing_report\" | translate }}\n
\n
\n \n \n \n
\n
\n
\n
\n\n\n\n\n","import { OnInit, Component, ViewChild, Output, EventEmitter, Input, OnChanges,ChangeDetectorRef } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { Router } from \"@angular/router\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { environment } from \"src/environments/environment\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ColDef } from \"ag-grid-community\";\nimport { CountByStatus, GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { NgOption } from \"@ng-select/ng-select\";\nimport { ApiRequest, IApiresponse,LogObjectActionTemplateEnum } from \"src/app/_models\";\nimport { ContainerListRequest, IContainerListRequest,ContainerResponse,\n SelectContainerInputModel,SelectContainerOutputModel,AddContainerInputModel,\n AddContainerOutputModel,DeleteContainerRequest,ContainerListResponse} from \"src/app/_models/container/container\";\nimport {ContainerService} from \"src/app/_services/container/container.service\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { LoggingPanelModel } from \"src/app/_models/common/LoggingPanelModel\";\nimport { LoggingPanelService } from \"src/app/_services/logging-panel/logging-panel.service\";\n\n@Component({\n selector: \"container-list-panel\",\n templateUrl: \"./container-list-panel.component.html\"\n})\n\nexport class ContainerListPanelComponent implements OnInit {\n\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n\n @Input()\n inputData: SelectContainerInputModel;\n \n @Output() closePanelEvent = new EventEmitter();\n @Output() submitPanelEvent = new EventEmitter();\n\n claimsSubscription: Subscription;\n userActionEventSubscription: Subscription;\n claims: Claims;\n isOverlayRequired: boolean = true;\n\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n gridData = [];\n defaultSortColumn: string = 'preApprovalId';\n defaultSortOrder: string = 'asc';\n\n containerList = [];\n hasFormChanges: boolean = false;\n selectedContainerId: number = 0;\n selectedContainerName: string = \"\";\n selectedId: number = 0;\n\n showAddContainerPanel: boolean = false;\n addContainerInputModel: AddContainerInputModel;\n\n showDeleteConfirmationAlert: boolean = false;\n deleteConfirmationAlertModel: AlertPanelModel;\n\n isAddContainerPanelDirectOpen: boolean = false;\n constructor(\n private router: Router,\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private cdr: ChangeDetectorRef,\n private toastr: ToastrService,\n private alertService: AlertService,\n private loggingPanelService: LoggingPanelService,\n private containerService: ContainerService\n ) {\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n\n this.fnObserveUnsavedChangesAlerts();\n }\n\n ngOnInit(): void {\n if(this.inputData){\n this.selectedContainerId = this.inputData?.containerId;\n this.selectedContainerName = this.inputData?.containerName;\n }\n this.fnInitialiseGrid();\n this.fnGetContainerList();\n }\n\n canDeactivate() {\n return !this.hasFormChanges;\n }\n\n fnObserveUnsavedChangesAlerts() {\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n fnInitialiseGrid() {\n\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n this.cdr.detectChanges();\n }, 100);\n\n }\n\n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: \"\",\n field: \"selected\",\n cellRenderer: 'radioRenderer',\n sortable: false,\n resizable: false,\n maxWidth: 50,\n pinned: true,\n suppressMenu: true,\n headerComponentParams:\n {\n isHideText: true\n },\n cellClass: 'grid-text-center',\n cellRendererParams: {\n onClick: this.fnOnContainerChange.bind(this)\n }\n },\n {\n headerName: this.translate.instant('text_report_name'),\n field: 'name',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 420,\n cellRenderer: 'preApprovalTagRenderer',\n wrapText: true,\n cellStyle: {\"wordBreak\": \"normal\"},\n cellClass: 'grid-text-center',\n },\n {\n headerName: this.translate.instant('text_report_id'),\n field: 'containerId',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 40,\n cellClass: 'grid-text-center', \n },\n {\n headerName: this.translate.instant('text_expense_count'),\n field: 'expenseCount',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 180,\n cellRenderer: 'preApprovalCountRenderer',\n cellClass: 'grid-text-center', \n },\n {\n headerName: \"\",\n valueGetter: 'data.congtainerId',\n cellRenderer: 'actionRenderer',\n field: 'userActionField',\n suppressMovable: true,\n suppressMenu: true,\n sortable: false,\n minWidth: 25,\n cellClass: 'grid-text-center',\n headerComponentParams:\n [ \n {\n buttonClass: 'fas fa-trash-alt color-red',\n buttonTooltip: this.translate.instant('label_delete'),\n userAction: 2,\n },\n {\n buttonClass: 'fas fa-edit color-green',\n buttonTooltip: this.translate.instant('label_edit'),\n userAction: 1,\n hideProperty: 'hideEdit'\n }\n ]\n }\n ]\n \n }\n\n fnGetGridConfigItems() {\n this.gridConfigItems = new GridConfig(\n true,\n true,\n this.defaultSortColumn,\n 'containerId',\n 0,\n true,\n [],\n true,\n true,\n true,\n null,\n this.defaultSortOrder,\n 60,\n this.translate.instant('no_data_availabe'),\n null,\n null,\n false, \n false,\n '',\n '',\n false\n );\n }\n\n fnGridFilterChanged() {\n this.gridData = this.containerList;\n\n this.fnMapSelectedContainer();\n\n this.fnGetGridConfigItems();\n this.fnCreateColumnDefs();\n\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n this.cdr.detectChanges();\n }, 100);\n }\n\n fnOnGridCellClick(params) {\n switch (params.column.colId) {\n case 'log':\n this.fnShowContainerLoggingPanel( params.data.containerId);\n break;\n case 'userActionField':\n switch (params.data.userAction) {\n case 1:\n this.fnShowAddContainerPanel(params.data, true);\n break;\n case 2:\n this.selectedId = params.data.containerId;\n this.fnShowDeleteConfirmationAlert(params.data);\n break;\n }\n break;\n }\n } \n\n fnGetContainerList() {\n let request = new ApiRequest(\"GetContainerList\", environment.applicationVersion, environment.requestId);\n let requestInfo = new ContainerListRequest();\n requestInfo.orgId = this.claims.OrgId;\n requestInfo.userId = this.inputData.claimantId;\n request.requestInfo = requestInfo;\n\n this.containerService.GetContainerList(request)\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.containerList = response.responseInfo.containerList;\n this.fnSeContainerActions();\n this.fnGridFilterChanged();\n\n // show Create Cpontainer if not container is avilable\n if(this.containerList?.length == 0){\n this.isAddContainerPanelDirectOpen = true;\n this.fnShowAddContainerPanel(null,false);\n }\n }\n });\n }\n\n fnSeContainerActions() {\n \n this.containerList = this.containerList.map(item => { \n\n // Edit action\n if (item.preApprovalId > 0) {\n item.hideEdit = true;\n } else {\n item.hideEdit = false;\n }\n return item;\n\n });\n }\n\n\n fnOnContainerChange(selectedData){\n if (selectedData) {\n let selectedRow = selectedData.rowData; \n this.selectedContainerId= selectedRow.containerId;\n this.selectedContainerName = selectedRow.name;\n \n this.fnMapSelectedContainer();\n\n this.hasFormChanges = true;\n }\n }\n\n fnMapSelectedContainer(){\n this.gridData = this.gridData.map(item=>{\n \n if(item.containerId == this.selectedContainerId){\n item.selected = true;\n }\n else{\n item.selected = false;\n }\n return item;\n \n });\n }\n\n fnOnSubmitContainer() {\n let outputModel= new SelectContainerOutputModel();\n outputModel.containerId = this.selectedContainerId;\n outputModel.containerName = this.selectedContainerName;\n\n let selectedItemDetails = this.containerList.find(c=>c.containerId == this.selectedContainerId);\n if(selectedItemDetails){\n outputModel.preApprovalId = selectedItemDetails.preApprovalId;\n }\n\n this.submitPanelEvent.emit(outputModel);\n }\n\n fnShowAddContainerPanel(data, isEditMode) {\n this.addContainerInputModel = new AddContainerInputModel();\n this.addContainerInputModel.claimantId = this.inputData.claimantId;\n this.addContainerInputModel.containerId = data?.containerId;\n this.addContainerInputModel.containerName = data?.name;\n this.addContainerInputModel.isEditMode = isEditMode;\n this.showAddContainerPanel = true;\n this.isOverlayRequired = false;\n }\n\n fnCloseAddContainerPanel() {\n this.addContainerInputModel = null;\n this.showAddContainerPanel = false;\n this.isOverlayRequired = true;\n \n if(this.isAddContainerPanelDirectOpen){\n this.fnClosePanel();\n }\n }\n\n fnSubmitAddContainerPanel(outputModel: AddContainerOutputModel) {\n this.addContainerInputModel = null;\n this.showAddContainerPanel = false;\n this.isOverlayRequired = true;\n\n if(outputModel.isEdited){\n if(outputModel.containerId == this.inputData.containerId && outputModel.containerId == this.selectedContainerId){\n this.selectedContainerId = outputModel.containerId;\n this.selectedContainerName = outputModel.containerName;\n this.fnOnSubmitContainer();\n }\n else{\n this.fnGetContainerList();\n } \n }\n else{\n this.selectedContainerId = outputModel.containerId;\n this.selectedContainerName = outputModel.containerName;\n this.fnOnSubmitContainer();\n }\n }\n\n fnShowDeleteConfirmationAlert(container: ContainerResponse) {\n\n if(container.expenseCount > 0){\n this.deleteConfirmationAlertModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [this.translate.instant(\"delete_container_alert_msg1\"),\n this.translate.instant(\"delete_container_alert_msg2\")],\n \"\",\n this.translate.instant(\"label_ok\"),\n true,\n null\n );\n this.selectedId = 0;\n }\n else{\n this.deleteConfirmationAlertModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [this.translate.instant(\"delete_container_confirmation_msg\")],\n this.translate.instant(\"cancel\"),\n this.translate.instant(\"label_confirm\"),\n true,\n null\n );\n }\n \n this.showDeleteConfirmationAlert = true;\n this.isOverlayRequired = false;\n }\n \n fnDeleteConfirmationAlertReceiver(returnValue) {\n if (returnValue && this.selectedId > 0) {\n this.fnDeleteContainer();\n }\n this.deleteConfirmationAlertModel = null;\n this.showDeleteConfirmationAlert = false;\n this.isOverlayRequired = true; \n }\n \n fnDeleteContainer() {\n if(this.selectedId > 0){\n let request = new ApiRequest(\"DeleteContainer\", environment.applicationVersion, environment.requestId);\n \n let container = new DeleteContainerRequest();\n container.containerId = this.selectedId;\n request.requestInfo = container;\n \n this.containerService.DeleteContainer(request)\n .subscribe((response: IApiresponse) => {\n if (response) {\n this.toastr.success(this.translate.instant(\"success\"));\n if(this.selectedId == this.selectedContainerId){\n this.selectedContainerId = 0;\n this.selectedContainerName = \"\";\n this.fnOnSubmitContainer();\n }\n else{\n this.fnGetContainerList();\n }\n }\n else{\n this.toastr.error(this.translate.instant(\"failed\"));\n }\n this.selectedId = 0;\n });\n }\n \n } \n\n \n fnShowContainerLoggingPanel(containerId) {\n const model = new LoggingPanelModel(\n this.claims.OrgId.toString(),\n LogObjectActionTemplateEnum.SetupContainer.toString(),\n containerId.toString()\n );\n this.loggingPanelService.onShowLogPanel(model);\n }\n \n \n}\n","
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
{{ \"more_than\" | translate:\n param }}\n {{\n getPolicyResponse.policyViolation\n .expenseTimeLimit.expenseTimeLimit\n }}\n {{ \"shopping_cart_label_days\" | translate: param }}
\n\n
\n
{{ 'policy_notes' | translate:\n param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .expenseTimeLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n {{ \"novat_receipt_type\" | translate: param }}\n \n {{\n this.getPolicyResponse\n .policyViolation\n .vatNovatReceiptType\n .vatNoVatReceiptTypeName\n }}\n \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n \n\n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n {{\n \"daily_limit\" | translate: param\n }}\n \n \n {{\n this.getPolicyResponse.policyViolation\n .overallDailyLimit.limit\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.overallDailyLimit.currencyId)\n }}\n \n
  • \n
  • \n \n {{\n \"total_amount_spent_asondate\"\n | translate: param\n }}{{ this.getPolicyResponse.policyViolation\n .overallDailyLimit.violationDate | date :\n 'dd-MMM-yyyy'}}\n \n \n {{\n this.getPolicyResponse.policyViolation\n .overallDailyLimit.spentAmount\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.overallDailyLimit.currencyId)\n }}\n \n
  • \n
  • \n \n {{\n \"violation_on\"\n | translate: param\n }}{{ this.getPolicyResponse.policyViolation\n .overallDailyLimit.violationDate | date :\n 'dd-MMM-yyyy'}}\n \n \n {{\n this.getPolicyResponse.policyViolation\n .overallDailyLimit.violation\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.overallDailyLimit.currencyId)\n }}\n \n
  • \n
\n
\n
{{ 'policy_notes' |\n translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .overallDailyLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • {{\n \"daily_capping_limit\" | translate: param\n }} \n {{\n this.getPolicyResponse\n .policyViolation.dailyCappingLimit\n .limit\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.dailyCappingLimit.currencyId)\n }}
  • \n
  • {{'total_amount_spent_asondate'\n | translate:param}} {{ this.getPolicyResponse\n .policyViolation.dailyCappingLimit\n .violationDate | date :'dd-MMM-yyyy' }}\n \n {{\n this.getPolicyResponse\n .policyViolation.dailyCappingLimit\n .spentAmount\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.dailyCappingLimit.currencyId)\n }}\n
  • \n
  • {{\n \"total_violation_for\" | translate: param\n }} {{ this.getPolicyResponse\n .policyViolation.dailyCappingLimit\n .violationDate | date :'dd-MMM-yyyy' }}\n \n {{\n this.getPolicyResponse\n .policyViolation.dailyCappingLimit\n .violation\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.dailyCappingLimit.currencyId)\n }}\n
  • \n
\n
\n
{{ 'policy_notes' |\n translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .dailyCappingLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n {{\n \"monthly_capping_limit\" | translate: param\n }}\n \n \n {{\n this.getPolicyResponse\n .policyViolation.monthlyCappingLimit\n .limit\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.monthlyCappingLimit.currencyId)\n }}\n \n
  • \n
  • \n \n {{\n \"total_violation_spent_during\"\n | translate: param\n }} {{this.getPolicyResponse\n .policyViolation.monthlyCappingLimit\n .violationDate | date : 'MMM-yyyy'}}\n \n \n {{\n this.getPolicyResponse\n .policyViolation.monthlyCappingLimit\n .spentAmount\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.monthlyCappingLimit.currencyId)\n }}\n \n
  • \n
  • \n \n {{\n \"total_violation_during\" | translate: param\n }} {{this.getPolicyResponse\n .policyViolation.monthlyCappingLimit\n .violationDate | date : 'MMM-yyyy'}}\n \n \n {{\n this.getPolicyResponse\n .policyViolation.monthlyCappingLimit\n .violation\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.monthlyCappingLimit.currencyId)\n }}\n \n
  • \n
\n
\n
{{ 'policy_notes' |\n translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .monthlyCappingLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • {{\n \"yearly_capping_limit\" | translate: param\n }} \n {{\n this.getPolicyResponse\n .policyViolation.yearlyCappingLimit\n .limit\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.yearlyCappingLimit.currencyId)\n }}\n
  • \n
  • \n {{\n \"total_violation_spent_during\"\n | translate: param\n }} {{this.getPolicyResponse\n .policyViolation.yearlyCappingLimit\n .violationDate | date : 'yyyy'}}\n \n {{\n this.getPolicyResponse\n .policyViolation.yearlyCappingLimit\n .spentAmount\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.yearlyCappingLimit.currencyId)\n }}\n
  • \n
  • \n {{\n \"total_violation_during\" | translate: param\n }} {{this.getPolicyResponse\n .policyViolation.yearlyCappingLimit\n .violationDate | date : 'yyyy'}}\n \n {{\n this.getPolicyResponse\n .policyViolation.yearlyCappingLimit\n .violation\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.yearlyCappingLimit.currencyId)\n }}\n
  • \n
\n
\n
{{ 'policy_notes' |\n translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .yearlyCappingLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • {{\n \"per_person_limit\" | translate: param\n }} ({{this.getPolicyResponse\n .policyViolation.perPersonLimit.categoryName}})\n \n {{\n this.getPolicyResponse\n .policyViolation.perPersonLimit\n .limit\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.perPersonLimit.currencyId)\n }}\n
  • \n
  • {{\n \"per_person_spent\"\n | translate: param\n }} \n {{\n this.getPolicyResponse\n .policyViolation.perPersonLimit\n .spentAmount\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.perPersonLimit.currencyId)\n }}
  • \n
  • \n {{\n \"violation_on\" | translate: param\n }} {{this.getPolicyResponse\n .policyViolation.perPersonLimit\n .violationDate | date : 'dd-MMM-yyyy'}}\n \n {{\n this.getPolicyResponse\n .policyViolation.perPersonLimit\n .violation\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.perPersonLimit.currencyId)\n }}\n \n
  • \n
\n
\n
{{ 'policy_notes' |\n translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .perPersonLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • {{\n \"per_night_limit\" | translate: param\n }}\n ({{this.getPolicyResponse\n .policyViolation.perNightLimit.categoryName}})\n \n {{\n this.getPolicyResponse\n .policyViolation.perNightLimit\n .limit\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.perNightLimit.currencyId)\n }}\n \n
  • \n
  • {{\n \"per_night_spent\"\n | translate: param\n }} \n {{\n this.getPolicyResponse\n .policyViolation.perNightLimit\n .spentAmount\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.perNightLimit.currencyId)\n }}\n
  • \n
  • {{\n \"violation_on\" | translate: param\n }} {{this.getPolicyResponse\n .policyViolation.perNightLimit\n .violationDate | date: 'dd-MMM-yyyy'}}\n \n {{\n this.getPolicyResponse\n .policyViolation.perNightLimit\n .violation\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.perNightLimit.currencyId)\n }}\n \n
  • \n
\n
\n
{{ 'policy_notes' |\n translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .perNightLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n {{item.fieldTitle}}\n {{item.fieldValueString}}\n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n {{\n \"default_vehicle\" | translate: param\n }}\n \n {{\n this.getPolicyResponse\n .policyViolation.defaultVehicleType\n .defaultVehicle\n }}\n \n
  • \n
  • \n {{\n \"non_default_vehicle_selected\" | translate:\n param\n }} \n \n {{\n this.getPolicyResponse\n .policyViolation.defaultVehicleType\n .selectedVehicle\n }}\n \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n
\n
{{'justification_notes'\n | translate:param}}\n \n
\n
\n \n \n\n
\n {{ \"label_Required\" | translate: param }}\n
\n\n
\n

\n 190 }\">{{inputData.justificationNotes?inputData.justificationNotes.length:0}}/200\n

\n
\n
\n
\n
\n\n 0\"\n #viewReceiptComponent [receiptInfo]=\"receiptInfo\" [receiptCount]=\"receiptCount\"\n [hasReturnJourney]=\"hasReturnJourney\" [milesTravelled]=\"milesTravelled\" [triangulationMiles]=\"triangulationMiles\"\n [detourMiles]=\"detourMiles\" [amount]=\"\" [distance]=\"distance\" [origin]=\"origin\" [destination]=\"destination\"\n [receiptLat]=\"receiptLat\" [receiptLong]=\"receiptLong\" [latLongArray]=\"latLongArray\" [mileageRate]=\"mileageRate\" [zindex_Class]=\"zindexClass\">\n\n\n\n\n","import { Component, EventEmitter, Input, Output, ViewChild, ChangeDetectorRef } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MileageDetailComponent } from \"src/app/shared/panels/mileage-detail/mileage-detail.component\";\nimport { ViewReceiptComponent } from \"src/app/shared/panels/view-receipt/view-receipt.component\";\nimport { ApiRequest, IApiRequest, ReceiptEnum } from \"src/app/_models\";\nimport { ExpenseCurrency, PolicyViolationInputModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { IReceiptInfo, IRequestPolicyViolation, PolicyViolation, RequestPolicyViolation } from \"src/app/_models/twostepapproval/claimant-expense-detail\";\nimport { CurrencyService } from \"src/app/_services/claimant/currency.service\";\nimport { PolicyDataService } from \"src/app/_services/policy/policy-data.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { ColDef } from \"ag-grid-community\";\nimport { GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ActivatedRoute } from \"@angular/router\";\nimport { NrFcLogicsService } from \"src/app/_services/NrFc/nr-fc-logics.service\";\n\n@Component({\n selector: 'app-generic-policy-violation-panel',\n templateUrl: './generic-policy-violation-panel.component.html'\n})\nexport class GenericPolicyViolationPanelComponent {\n @Input() expenseDetails: any;\n @Input() inputData: PolicyViolationInputModel;\n @Input() selectedPolicySubCategoryItem: PolicyViolation; //PolicyViolation\n @Input() isReceiptNumberSettingsEnabled:boolean;\n @Input()\n zindex_Class: string;\n @Output() closePanelEvent = new EventEmitter();\n @Output() ischangeJustifactionNotes = new EventEmitter();\n showPotentialFraud: boolean = false;\n param: any;\n getPolicyRequest: IApiRequest = new ApiRequest(\"\", 1, \"\");\n getPolicyResponse: any = {};\n isPolicyViolated: boolean = false;\n dailyCapVisible: boolean = false;\n monthlyCapVisible: boolean = false;\n yearlyCapVisible: boolean = false;\n duplicateVisible: boolean = false;\n vatNoVatVisible: boolean = false;\n overallVisible: boolean = false;\n perNightVisible: boolean = false;\n perItemVisible: boolean = false;\n expenseTimeLimitVisible: boolean = false;\n defaultVehicleTypeVisible:boolean=false;\n operationalInformationVisible:boolean=false;\n operationalInformationViolation: any;\n showPolicyViolation: boolean = false;\n currencytList: ExpenseCurrency[];\n @ViewChild('viewReceiptComponent') viewReceiptComponent: ViewReceiptComponent;\n receiptInfo: any;\n receiptCount: number = 0;\n hasReturnJourney: boolean = false;\n milesTravelled: any;\n mileageLabel: string;\n detourMiles: any;\n triangulationMiles: any;\n mileageRate: string;\n distance: any;\n origin: any;\n destination: any;\n receiptLat: number;\n receiptLong: number;\n latLongArray: any;\n currency: string;\n openSectionName: string;\n isNoteError: boolean = false;\n hasFormChanges: boolean = false;\n zindexClass:string=\"\";\n claims: Claims;\n @ViewChild('mileageDetailComponent') mileageDetailComponent: MileageDetailComponent;\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig\n gridData: any[] = [];\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n pageType: string;\n expenseList: any[];\n duplicateReceiptInfo: IReceiptInfo[];\n showDuplicateReceiptPanel: boolean = false;\n constructor(\n private translate: TranslateService,\n private policyDataService: PolicyDataService,\n private currencyService: CurrencyService,\n private claimsService: ClaimsService,\n private cd:ChangeDetectorRef,\n private route: ActivatedRoute,\n private nrFcLogicsService: NrFcLogicsService\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n this.route.queryParams.subscribe(params => {\n this.pageType = this.nrFcLogicsService.DecryptParameters(params['page']);\n });\n }\n\n ngOnInit() {\n this.fnInitialiseGrid();\n if(this.zindex_Class)\n this.zindexClass = this.zindex_Class;\n this.getCurrrencyList();\n if(this.selectedPolicySubCategoryItem)\n {\n this.setPolicViolationList(this.inputData.expenseId);\n }\n \n this.fnGetPotentialFraudList();\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(this.inputData.justificationNotes);\n }\n\n fnRefreshData(){\n this.setPolicViolationList(this.inputData.expenseId);\n }\n\n setPolicViolationList(expenseId: number) {\n if (this.inputData) {\n this.getPolicyResponse.policyViolation = this.selectedPolicySubCategoryItem;\n if (this.getPolicyResponse.policyViolation.dailyCappingLimit != null)\n this.dailyCapVisible = true;\n if (this.getPolicyResponse.policyViolation.duplicate!=null && this.getPolicyResponse.policyViolation.duplicate.length > 0) {\n if ((this.inputData.baseCategoryId == 4 ||\n this.inputData.baseCategoryId == 5 ||\n this.inputData.baseCategoryId == 6) &&\n this.getPolicyResponse.policyViolation.duplicate[0].receiptInfo.length > 0) {\n this.receiptInfo = this.getPolicyResponse.policyViolation.duplicate[0].receiptInfo;\n if (this.receiptInfo) {\n this.receiptCount = this.receiptInfo.length;\n }\n }\n this.duplicateVisible = true;\n }\n let operationalInfoViolation = this.getPolicyResponse.policyViolation.expenseOperationalInfo;\n this.operationalInformationViolation = operationalInfoViolation != null && operationalInfoViolation.length != 0 ? this.getPolicyResponse.policyViolation.expenseOperationalInfo.filter(it => it.fieldValue == false) : [];\n \n if (this.operationalInformationViolation.length != 0) {\n this.operationalInformationVisible=true; \n }\n if (this.getPolicyResponse.policyViolation.expenseTimeLimit != null)\n this.expenseTimeLimitVisible = true;\n if (this.getPolicyResponse.policyViolation.monthlyCappingLimit != null)\n this.monthlyCapVisible = true;\n if (this.getPolicyResponse.policyViolation.overallDailyLimit != null)\n this.overallVisible = true;\n if (this.getPolicyResponse.policyViolation.perNightLimit != null)\n this.perNightVisible = true;\n if (this.getPolicyResponse.policyViolation.perPersonLimit != null)\n this.perItemVisible = true;\n if (this.getPolicyResponse.policyViolation.vatNovatReceiptType != null)\n this.vatNoVatVisible = true;\n if (this.getPolicyResponse.policyViolation.yearlyCappingLimit != null)\n this.yearlyCapVisible = true;\n if(this.getPolicyResponse.policyViolation.defaultVehicleType!=null){\n this.defaultVehicleTypeVisible=true;\n }\n this.fnGetOpenSectionName();\n }\n this.cd.detectChanges();\n\n }\n\n getCurrrencyList() {\n this.currencyService.getAllExpenseCurrency(this.claims.OrgId)\n .subscribe((data: any) => {\n if (data && data.length > 0) {\n this.currencytList = data;\n }\n });\n }\n\n getCurrencyName(currencyId: number) {\n if (this.currencytList) {\n return this.currencytList.filter(a => a.currencyId == currencyId).map(function (b) { return b.currencyCode })[0];\n }\n }\n\n fnShowReceiptsPanel(items: IReceiptInfo[]) {\n this.receiptInfo = items;\n if (this.receiptInfo) {\n this.receiptCount = this.receiptInfo.length;\n }\n this.viewReceiptComponent.fnShowReceiptsPanel(items);\n }\n\n fnShowmileageMapDetail() {\n this.mileageDetailComponent.fnMapData(true, 0, this.inputData.expenseDetailResponse);\n }\n\n fnSubmitPanel() {\n if (this.inputData.justificationNotes.trim()) {\n this.closePanelEvent.emit(this.inputData.justificationNotes.trim());\n } else {\n this.isNoteError = true;\n }\n }\n fnGetOpenSectionName() {\n if (this.expenseTimeLimitVisible) {\n this.openSectionName = \"expenseTimeLimitVisible\";\n return;\n } else if (this.vatNoVatVisible) {\n this.openSectionName = \"vatNoVatVisible\";\n return;\n } else if (this.duplicateVisible) {\n this.openSectionName = \"duplicateVisible\";\n return;\n } else if (this.overallVisible) {\n this.openSectionName = \"overallVisible\";\n return;\n } else if (this.dailyCapVisible) {\n this.openSectionName = \"dailyCapVisible\";\n return;\n } else if (this.monthlyCapVisible) {\n this.openSectionName = \"monthlyCapVisible\";\n return;\n }\n else if (this.yearlyCapVisible) {\n this.openSectionName = \"yearlyCapVisible\";\n return;\n } else if (this.perItemVisible) {\n this.openSectionName = \"perItemVisible\";\n return;\n } else if (this.perNightVisible) {\n this.openSectionName = \"perNightVisible\";\n return;\n }\n else if (this.defaultVehicleTypeVisible) {\n this.openSectionName = \"defaultVehicleTypeVisible\";\n return;\n }\n\n if (this.operationalInformationViolation.length != 0) {\n this.openSectionName = 'operationalInformationVisible';\n for (var i = 0; i < this.operationalInformationViolation.length; i++) {\n this.operationalInformationViolation[i].fieldValueString = \"NO\";\n }\n }\n \n }\n\n onChangeJustificationNotes(){\n this.hasFormChanges= true;\n this.ischangeJustifactionNotes.emit(this.inputData.justificationNotes);\n }\n\n fnInitialiseGrid() {\n if(this.gridComponent)\n {\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n }\n \n }\n \n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('label_claimant'), \n suppressMenu: true,\n minWidth: 100,\n field: 'displayName',\n resizable: true,\n sortable: true\n },\n {\n headerName: this.translate.instant('claimant_email'), \n suppressMenu: true,\n minWidth: 100,\n field: 'email',\n resizable: true,\n sortable: true\n },\n {\n headerName: this.translate.instant('cc_dashboard_label_date'), \n minWidth: 100,\n field: 'expenseDate',\n cellRenderer:'dateRenderer', \n resizable: true,\n sortable: true,\n suppressMenu: true \n },\n {\n headerName: this.translate.instant('label_amount'), \n suppressMenu: true, \n field: 'expenseAmount',\n resizable: true,\n sortable: true, \n headerClass: 'text-right',\n cellClass: 'text-right',\n cellRenderer: 'amountRenderer' \n },\n {\n headerName: this.translate.instant('Supplier'),\n field: 'supplierName',\n resizable: true,\n sortable: true,\n suppressMenu: true, \n minWidth: 100 \n },\n {\n headerName: this.translate.instant('invoice_receipt'),\n headerComponentParams: [\n { class: 'text-underline text-logo-blue', value: ReceiptEnum.View, text: this.translate.instant(\"view\") },\n { class: 'no-receipt', value: ReceiptEnum.NoReceipt, text: this.translate.instant(\"no_receipt\") }\n ],\n field: 'receipt', \n minWidth: 100,\n resizable: true,\n sortable: true,\n suppressMenu: true, \n cellRenderer: 'fieldValueRenderer'\n \n } \n ]; \n }\n \n fnGetGridConfigItems() {\n this.gridConfigItems = new GridConfig(\n true,\n false,\n \"displayName\",\n \"expenseId\",\n 0,\n false,\n [],\n true,\n true,\n false,\n null,\n 'asc',\n 40, 'no_data_availabe', null, null,\n false,false,null,null,false\n );\n }\n \n fnGetPotentialFraudList() {\n \n if((this.pageType == 'finance') && this.expenseDetails.potentialFraud){\n \n this.showPotentialFraud = true;\n this.openSectionName = \"potentialFraud\";\n this.policyDataService.GetPotentialFraudData(this.inputData.expenseId)\n .subscribe(response => {\n if (response.statusCode == 0) {\n \n this.expenseList = response.responseInfo.lstExpenses;\n \n if(this.expenseList){\n \n this.expenseList.forEach(element => {\n if(element.receiptInfo.length>0)\n element.receipt = 1;\n else\n element.receipt = 0;\n });\n \n this.fnGridFilterChanged();\n \n }\n }\n });\n }\n }\n\n fnGridFilterChanged() {\n this.gridData = this.expenseList;\n \n this.fnGetGridConfigItems();\n \n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n \n fnOnGridCellClick(params) {\n if(params.column.colId == 'receipt'){\n this.fnShowDuplicateReceiptPanel(params.data.receiptInfo);\n } \n }\n fnShowDuplicateReceiptPanel(duplicateReceipt) {\n this.duplicateReceiptInfo = duplicateReceipt; \n this.originalReceiptInfo = this.expenseDetails.receipts;\n this.showDuplicateReceiptPanel = true;\n }\n claimType = 1;\n originalReceiptInfo: IReceiptInfo[] = [];\n fnCloseDuplicateReceiptPanel(isClose){\n this.showDuplicateReceiptPanel = false;\n }\n\n}\n","
\n
\n
\n
\n
\n

{{'Select' | translate:param}}{{\" \"}}{{locationLabel}}

\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
{{'Select' | translate:param}}{{\" \"}}{{locationLabel}}\n
\n\n
\n {{ \"no_data_available\" | translate: param }}\n
\n\n
    0\">\n
  • \n
    \n
    1)? 'margin-top-10':'margin-top-0'\">\n
    \n \n \n {{item.locationName}} \n \n
    \n
    \n
    \n
  • \n
\n
\n
\n
\n
\n
\n
\n","import { OnInit, Component, EventEmitter, Input, Output, OnDestroy, ChangeDetectorRef } from \"@angular/core\";\nimport { first, Subscription } from \"rxjs\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { SelectLocationPopupModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { ApiRequest, IApiresponse } from \"src/app/_models\";\nimport { LocationService } from \"src/app/_services/location/location.service\";\nimport { GetLocationByOrgIdAndStatusRequest, GetLocationShortDetailsResponse } from \"src/app/_models/location/location\";\nimport { environment } from \"src/environments/environment\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\n\n@Component({\n selector: \"select-location-panel\",\n templateUrl: \"./select-location-panel.component.html\"\n})\nexport class SelectLocationPanelComponent extends BaseComponent implements OnInit, OnDestroy {\n\n @Input()\n inputData: SelectLocationPopupModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n searchText: string = '';\n hasFormChanges: boolean = false;\n\n userActionEventSubscription: Subscription;\n locationList = [];\n selectedLocationId: number = 0;\n isSelectionHide: boolean = false;\n disableSave: boolean= true;\n claims:Claims;\n locationLabel=\"Location\";\n claimsSubscription: Subscription;\n\n constructor(private alertService: AlertService,private claimsService:ClaimsService,\n private locationService: LocationService, private cdr:ChangeDetectorRef) {\n super();\n this.claimsSubscription = this.claimsService.currentClaims.subscribe(\n (claims) => {\n this.claims = claims;\n this.locationLabel= this.claims.LocationLabel??'Location';\n }\n );\n\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n ngOnInit(): void {\n this.fnGetActiveLocationList();\n this.fnSetLocationInputValues();\n }\n\n canDeactivate(): boolean {\n return !this.hasFormChanges;\n }\n\n ngOnDestroy() {\n this.userActionEventSubscription.unsubscribe();\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n fnGetActiveLocationList() {\n let request = new ApiRequest(\n \"GetActiveLocations\",\n environment.applicationVersion,\n environment.requestId\n );\n let requestInfo = new GetLocationByOrgIdAndStatusRequest();\n requestInfo.organisationId = this.claims.OrgId;\n requestInfo.status = 1;\n \n request.requestInfo = requestInfo;\n \n this.locationService\n .GetActiveLocations(request)\n .pipe(first())\n .subscribe(\n (response: IApiresponse) => {\n if (response.responseInfo != null) {\n for (let index = 0; index < response.responseInfo.length; index++) {\n const element = response.responseInfo[index];\n element.nameCode =\n element.locationName + \" - \" + element.locationCode1;\n }\n this.locationList = response.responseInfo;\n this.cdr.detectChanges();\n }\n }\n );\n }\n\n fnSelectLocation() {\n \n let selectLoOutputModel = new SelectLocationPopupModel();\n if (this.selectedLocationId > 0) {\n let locationDetails = this.locationList.find(item => item.locationId == this.selectedLocationId);\n if (locationDetails) {\n selectLoOutputModel.locationId = locationDetails.locationId;\n selectLoOutputModel.locationName = locationDetails.locationName;\n }\n } else {\n selectLoOutputModel.locationId = 0;\n selectLoOutputModel.locationName = '';\n }\n this.selectItemEvent.emit(selectLoOutputModel);\n }\n\n fnOnChangeLocation(locationId: number) {\n if (locationId == this.selectedLocationId) {\n this.selectedLocationId = 0;\n } else {\n this.selectedLocationId = locationId;\n }\n\n //enabled / disabled save button\n if(this.isSelectionHide){\n if(!this.selectedLocationId){\n this.disableSave = true;\n }\n else{\n this.disableSave = false;\n }\n } \n else{\n this.disableSave = false;\n }\n }\n\n fnSetLocationInputValues() {\n if (this.inputData) {\n this.selectedLocationId = this.inputData.locationId;\n this.isSelectionHide = this.inputData.isSelectionHide;\n }\n }\n fnGetSelectedLocationOnTop() {\n let locationId = this.inputData && this.inputData.locationId ? this.inputData.locationId : 0;\n\n if (locationId && this.locationList && this.locationList.length > 0) {\n const sortedArr = this.locationList.reduce((acc, element) => {\n if (element.locationId == locationId) {\n return [element, ...acc];\n }\n return [...acc, element];\n }, []);\n this.locationList = sortedArr;\n }\n }\n}\n","
\n \n \n \n \n \n
","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormService } from '../../dynamic-form/dynamic-form.service';\nimport { DatePipe } from '@angular/common';\n\n\n@Component({\n selector: 'formly-input-selection',\n templateUrl: \"./formly-input-selection.component.html\"\n})\nexport class FormlyInputSelectionComponent extends FieldType implements OnInit, OnDestroy {\n\n isFormSubmitted: boolean = false;\n formSubmissionSubscription: Subscription;\n fieldKey: string;\n showFMEmailForInvoicePanel: boolean;\n inputModel: any;\n constructor(private dynamicFormService: DynamicFormService, private datePipe: DatePipe, private cdr: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit() {\n if (this.field.key) {\n this.fieldKey =this.field.id??this.field.key.toString();\n }\n this.formSubmissionSubscription = this.dynamicFormService.getFormSubmittedEvent().subscribe(data => {\n this.isFormSubmitted = data;\n this.cdr.detectChanges();\n });\n }\n\n ngOnDestroy() {\n if (this.formSubmissionSubscription) {\n this.formSubmissionSubscription.unsubscribe();\n }\n }\n\n fnOpenSelectionPanel() {\n this.to.click(this.field, this.formControl.value);\n }\n\n numberOnly(event): boolean {\n const charCode = event.which ? event.which : event.keyCode;\n if (this.field?.templateOptions?.allowNotZero && charCode == 48 &&\n ((this.formControl.value != null && parseInt(this.formControl.value) == 0) || this.formControl.value == null)) {\n return false;\n }\n\n if (charCode > 31 && (charCode < 48 || charCode > 57)) {\n return false;\n }\n return true;\n }\n\n onSelection(data) {\n let value = data.value;\n if (this.field.key == 'fmEmailForInvoice') {\n value = data.fmEmailForInvoice;\n this.model.fmEmailForInvoice = data.fmEmailForInvoice;\n }\n this.hidePanel();\n }\n\n hidePanel() {\n this.showFMEmailForInvoicePanel = false;\n }\n}","import { NgModule } from \"@angular/core\";\nimport { NgbTooltipModule, NgbModule, NgbPopoverModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { GridModule } from \"./grid.module\";\nimport { DynamicFormComponent } from \"../../shared/forms/dynamic-form/dynamic-form.component\";\nimport { FormlyModule } from \"@ngx-formly/core\";\nimport { FormlyBootstrapModule } from \"@ngx-formly/bootstrap\";\nimport { FormlyTagInputComponent } from \"../../shared/forms/form-controls/formly-tag-input/formly-tag-input.component\";\nimport { FormlyAdvanceBalanceInputComponent } from \"../../shared/forms/form-controls/formly-advance-balance-input/formly-advance-balance-input.component\";\nimport { FormlyTextInputComponent } from \"../../shared/forms/form-controls/formly-text-input/formly-text-input.component\";\nimport { FormlyIntegerInputComponent } from \"../../shared/forms/form-controls/formly-integer-input/formly-integer-input.component\";\nimport { FormlyTextareaInputComponent } from \"../../shared/forms/form-controls/formly-textarea-input/formly-textarea-input.component\";\nimport { FormlyNumberInputComponent } from \"../../shared/forms/form-controls/formly-number-input/formly-number-input.component\";\nimport { FormlyDisabledInputComponent } from \"../../shared/forms/form-controls/formly-disabled-input/formly-disabled-input.component\";\nimport { FormlyCalendarInputComponent } from \"../../shared/forms/form-controls/formly-calendar-input/formly-calendar-input.component\";\nimport { FormlyFieldInputPanelComponent } from \"../../shared/forms/form-controls/formly-input-panel/formly-input-panel.component\";\nimport { SelectCategoryPanelComponent } from \"../../shared/forms/selection-panels/select-category-panel/select-category-panel.component\";\nimport { SelectCustomerPanelComponent } from \"../../shared/forms/selection-panels/select-customer-panel/select-customer-panel.component\";\nimport { SelectCostCentrePanelComponent } from \"../../shared/forms/selection-panels/select-cost-centre-panel/select-cost-centre-panel.component\";\nimport { SelectProjectPanelComponent } from \"../../shared/forms/selection-panels/select-project-panel/select-project-panel.component\";\nimport { ViewExpensePolicyPanelComponent } from \"../../shared/forms/selection-panels/view-expense-policy-panel/view-expense-policy-panel.component\";\nimport { SelectPreApprovalTagPanelComponent } from \"../../shared/forms/selection-panels/select-pre-approval-tag-panel/select-pre-approval-tag-panel.component\";\nimport { CreateDetourPanelComponent } from \"../../shared/forms/selection-panels/create-detour-panel/create-detour-panel.component\";\nimport { SelectBusinessPurposePanelComponent } from \"../../shared/forms/selection-panels/select-business-purpose-panel/select-business-purpose-panel.component\";\nimport { SelectReceiptTypePanelComponent } from \"../../shared/forms/selection-panels/select-receipt-type-panel/select-receipt-type-panel.component\";\nimport { PolicyViolationPanelComponent } from \"../../shared/forms/selection-panels/policy-violation-panel/policy-violation-panel.component\";\nimport { AdvancePolicyViolationPanelComponent } from \"../../shared/forms/selection-panels/advance-policy-violation-panel/advance-policy-violation-panel.component\";\nimport { SelectStatePanelComponent } from \"../../shared/forms/selection-panels/select-state-panel/select-state-panel.component\";\nimport { SelectAdditionalFieldDataPanelComponent } from \"../../shared/forms/selection-panels/select-additional-field-data-panel/select-additional-field-data-panel.component\";\nimport { AssociateCreditCardExpensePanelComponent } from \"../../shared/forms/selection-panels/associate-credit-card-expense-panel/associate-credit-card-expense-panel.component\";\nimport { CreateTagPanelComponent } from \"../../shared/forms/selection-panels/create-tag-panel/create-tag-panel.component\";\nimport { SelectRecentJourneysPanelComponent } from \"../../shared/forms/selection-panels/select-recent-journeys-panel/select-recent-journeys-panel.component\";\nimport { AdvancePassbookPanelComponent } from \"../../shared/forms/selection-panels/advance-passbook-panel/advance-passbook-panel.component\";\nimport { FormlyNgSelectInputComponent } from \"../../shared/forms/form-controls/formly-ng-select-input/formly-ng-select-input.component\";\nimport { NgSelectModule } from \"@ng-select/ng-select\";\nimport { FormlyNgSelectDescriptionInputComponent } from \"src/app/shared/forms/form-controls/formly-ng-select-description-input/formly-ng-select-description-input.component\";\nimport { FormlyUlComponent } from \"../../shared/forms/form-controls/formly-ul/formly-ul.component\";\nimport { FormlyRadioButtonComponent } from \"../../shared/forms/form-controls/formly-radio-button/formly-radio-button.component\";\nimport { FormlyVehicleButtonComponent } from \"../../shared/forms/form-controls/formly-vehicle-button/formly-vehicle-button.component\";\nimport { FormlyCheckboxInputComponent } from \"../../shared/forms/form-controls/formly-checkbox-input/formly-checkbox-input.component\";\nimport {\n EmailValidator,\n NoWhitespaceValidator,\n} from \"src/app/shared/forms/validators/validators\";\nimport { FormlyReceiptComponent } from \"../../shared/forms/form-controls/formly-receipt/formly-receipt.component\";\nimport { FormlyNotesComponent } from \"../../shared/forms/form-controls/formly-justification/formly-notes.component\";\nimport { FormlyAdvancePolicyComponent } from \"../../shared/forms/form-controls/formly-advance-policy/formly-advance-policy.component\";\nimport { FormlyPolicyViolationComponent } from \"../../shared/forms/form-controls/formly-policy-violation/formly-policy-violation.component\";\nimport { FormlyAdvancePolicyViolationComponent } from \"../../shared/forms/form-controls/formly-advance-policy-violation/formly-advance-policy-violation.component\";\nimport { FormlyToggleInputComponent } from \"../../shared/forms/form-controls/formly-toggle-input/formly-toggle-input.component\";\nimport { SharedModule } from \"src/app/shared.module\";\nimport { FormlyRadioInputComponent } from \"../../shared/forms/form-controls/formly-radio-input/formly-radio-input.component\";\nimport { ActionPanelComponent } from \"../../shared/panels/action-panel/action-panel.component\";\nimport { FormlyNgMultiSelectInputComponent } from \"../../shared/forms/form-controls/formly-ng-multi-select-input/formly-ng-multi-select-input.component\";\nimport { FormlyCurrencyImageUploderComponent } from \"../../shared/forms/form-controls/formly-currency-image-uploder/formly-currency-image-uploder.component\";\nimport { FormlyButtonComponent } from \"../../shared/forms/form-controls/formly-button/formly-button.component\";\nimport { FormlyCalendarDateMonthInputComponent } from \"../../shared/forms/form-controls/formly-calendar-date-month-input/formly-calendar-date-month-input.component\";\nimport { FormlyToggleInputLeftAlignedComponent } from \"../../shared/forms/form-controls/formly-toggle-input-left-aligned/formly-toggle-input-left-aligned.component\";\nimport { FormlyCategoryViewComponent } from \"../../shared/forms/form-controls/formly-category-view/formly-category-view.component\";\nimport { FormlyTwoDecimalNumberInputComponent } from \"../../shared/forms/form-controls/formly-two-decimal-number-input/formly-two-decimal-number-input.component\";\nimport { FormlyThreeDigitDecimalInputComponent } from \"../../shared/forms/form-controls/formly-three-digit-decimal-input/formly-three-digit-decimal-input.component\";\nimport { FormlyExpenseAmountInputComponent } from \"../../shared/forms/form-controls/formly-expense-amount-input/formly-expense-amount-input.component\";\nimport { FormlyRadioDescriptionInputComponent } from \"../../shared/forms/form-controls/formly-radio-description-input/formly-radio-description-input.component\";\nimport { FormlyLogoUploaderComponent } from \"../../shared/forms/form-controls/formly-logo-uploader/formly-logo-uploader.component\";\nimport { FormlyCalendarDateInputComponent } from \"../../shared/forms/form-controls/formly-calendar-date-input/formly-calendar-date-input.component\";\nimport { FormlyLocationInputComponent } from \"../../shared/forms/form-controls/formly-location-input/formly-location-input.component\";\nimport { FormlyMileageDetailsComponent } from \"../../shared/forms/form-controls/formly-mileage-details/formly-mileage-details.component\";\nimport { FormlyNrDisplayComponent } from \"../../shared/forms/form-controls/formly-nr-display/formly-nr-display.component\";\nimport { FormlyGooglePurchaseComponent } from \"../../shared/forms/form-controls/formly-google-purchase/formly-google-purchase.component\";\nimport { FormlyLinkComponentComponent } from \"../../shared/forms/form-controls/formly-link-component/formly-link-component.component\";\nimport { SelectVehiclePanelComponent } from \"../../shared/forms/selection-panels/select-vehicle-panel/select-vehicle-panel.component\";\nimport { FormlyRadioInputWithSideDescriptionComponent } from \"../../shared/forms/form-controls/formly-radio-input-with-side-description/formly-radio-input-with-side-description.component\";\nimport { MultipleLegsPanelComponent } from \"src/app/shared/forms/selection-panels/multiple-legs-panel/multiple-legs-panel.component\";\nimport { FormlyToggleRuleComponent } from \"../../shared/forms/form-controls/formly-toggle-rule/formly-toggle-rule.component\";\nimport { AddjourneyPanelComponent } from \"src/app/shared/forms/selection-panels/add-journey-panel/add-journey-panel.component\";\nimport { FormlyGoogleLocationInputComponent } from \"src/app/shared/forms/form-controls/formly-google-location-input/formly-google-location-input.component\";\nimport { FormlyTextWithToggleComponent } from \"src/app/shared/forms/form-controls/formly-text-with-toggle/formly-text-with-toggle.component\";\nimport { FormlyImgUploadComponent } from \"../../shared/forms/form-controls/formly-img-upload/formly-img-upload.component\";\n\nimport { FormlySixDigitBeforeAfterDecimalInputComponent } from \"../../shared/forms/form-controls/formly-six-digit-before-after-decimal-input/formly-six-digit-before-after-decimal-input.component\";\nimport { FormlyDynamicRadioInputComponent } from \"../../shared/forms/form-controls/formly-dynamic-radio-input/formly-dynamic-radio-input.component\";\nimport { NRFCApprovalPanelComponent } from \"src/app/two-step-approval/nrfc-approval-panel/nrfc-approval-panel.component\";\nimport { FormlyImageUploader2Component } from \"../../shared/forms/form-controls/formly-image-uploader2/formly-image-uploader2.component\";\nimport { FormlyImageUploaderComponent } from \"../../shared/forms/form-controls/formly-image-uploader/formly-image-uploader.component\";\nimport { OfficeAddressPanelComponent } from \"../../claimant-on-web/office-address-panel/office-address-panel.component\";\nimport {FormlyLeftTextWithToggleComponent} from \"src/app/shared/forms/form-controls/formly-left-text-with-toggle/formly-left-text-with-toggle.component\";\nimport { NgxTrimDirectiveModule } from \"ngx-trim-directive\";\nimport {FormlyPlusButtonComponent} from \"src/app/shared/forms/form-controls/formly-plus-button/formly-plus-button.component\";\nimport {FormlyDateFormatComponent} from \"src/app/shared/forms/form-controls/formly-date-format/formly-date-format.component\";\nimport {ContainerListPanelComponent} from \"src/app/container/container-list-panel/container-list-panel.component\";\nimport {AddContainerPanelComponent} from \"src/app/container/add-container-panel/add-container-panel.component\";\nimport {GenericPolicyViolationPanelComponent} from \"src/app/manage-category/generic-policy-violation-panel/generic-policy-violation-panel.component\"\nimport { SubCategoryExpenseDetailsPanelComponent } from 'src/app/manage-category/sub-category-expense-details-panel/sub-category-expense-details-panel.component';\nimport { SpecialCategoryExpenseItemisationPanelComponent } from '../../claimant-on-web/expense/special-category-expense-itemisation-panel/special-category-expense-itemisation-panel.component';\nimport {MultipleTabPolicyViolationScreenComponent} from 'src/app/manage-category/multiple-tab-policy-violation-screen/multiple-tab-policy-violation-screen.component'\nimport {ContianerPolicyPanelComponent} from \"src/app/container/container-policy-panel/container-policy-panel.component\";\nimport { SelectLocationPanelComponent } from \"../../shared/forms/selection-panels/select-location-panel/select-location-panel.component\";\nimport { FormlyInputSelectionComponent } from \"src/app/shared/forms/form-controls/formly-input-selection/formly-input-selection.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n FormlyModule.forRoot({\n extras: {\n checkExpressionOn: \"changeDetectionCheck\",\n lazyRender: false, \n resetFieldOnHide: false, \n },\n types: [\n { name: \"input-panel\", component: FormlyFieldInputPanelComponent },\n { name: \"calendar-input\", component: FormlyCalendarInputComponent },\n { name: \"number-input\", component: FormlyNumberInputComponent },\n { name: \"integer-input\", component: FormlyIntegerInputComponent },\n { name: \"textarea-input\", component: FormlyTextareaInputComponent },\n { name: \"disabled-input\", component: FormlyDisabledInputComponent },\n { name: \"text-input\", component: FormlyTextInputComponent },\n { name: \"tag-input\", component: FormlyTagInputComponent },\n {\n name: \"advance-balance-input\",\n component: FormlyAdvanceBalanceInputComponent,\n },\n {\n name: \"ng-select-input\",\n component: FormlyNgSelectInputComponent,\n wrappers: [\"form-field\"],\n },\n { name: \"formly-link\", component: FormlyLinkComponentComponent },\n {\n name: \"ng-select-description-input\",\n component: FormlyNgSelectDescriptionInputComponent,\n wrappers: [\"form-field\"],\n },\n { name: \"list-input\", component: FormlyUlComponent },\n { name: \"radio-button\", component: FormlyRadioButtonComponent },\n { name: \"vehicle-button\", component: FormlyVehicleButtonComponent },\n { name: \"checkbox-input\", component: FormlyCheckboxInputComponent },\n { name: \"formly-receipt\", component: FormlyReceiptComponent },\n { name: \"formly-justification\", component: FormlyNotesComponent },\n {\n name: \"formly-advance-policy\",\n component: FormlyAdvancePolicyComponent,\n },\n {\n name: \"formly-policy-violation\",\n component: FormlyPolicyViolationComponent,\n },\n {\n name: \"formly-advance-policy-violation\",\n component: FormlyAdvancePolicyViolationComponent,\n },\n { name: \"formly-toggle-input\", component: FormlyToggleInputComponent },\n { name: \"radio-input\", component: FormlyRadioInputComponent },\n {\n name: \"ng-multi-select-input\",\n component: FormlyNgMultiSelectInputComponent,\n },\n {\n name: \"currency-image-upload\",\n component: FormlyCurrencyImageUploderComponent,\n },\n { name: \"formly-button\", component: FormlyButtonComponent },\n {\n name: \"calendar-date-month-input\",\n component: FormlyCalendarDateMonthInputComponent,\n },\n {\n name: \"formly-toggle-input-left-aligned\",\n component: FormlyToggleInputLeftAlignedComponent,\n },\n {\n name: \"formly-category-view\",\n component: FormlyCategoryViewComponent,\n },\n {\n name: \"radio-side-description-input\",\n component: FormlyRadioInputWithSideDescriptionComponent,\n },\n {\n name: \"radio-description-input\",\n component: FormlyRadioDescriptionInputComponent,\n },\n {\n name: \"two-decimal-number-input\",\n component: FormlyTwoDecimalNumberInputComponent,\n },\n {\n name: \"three-digit-decimal-input\",\n component: FormlyThreeDigitDecimalInputComponent,\n },\n {\n name: \"formly-expense-amount-input\",\n component: FormlyExpenseAmountInputComponent,\n },\n { name: \"logo-uploader\", component: FormlyLogoUploaderComponent },\n { name: \"image-uploader\", component: FormlyImageUploaderComponent },\n { name: \"image-uploader2\", component: FormlyImageUploader2Component },\n {\n name: \"calendar-date-input\",\n component: FormlyCalendarDateInputComponent,\n },\n {\n name: \"formly-location-input\",\n component: FormlyLocationInputComponent,\n },\n { name: \"mileage-details\", component: FormlyMileageDetailsComponent },\n { name: \"nr-display\", component: FormlyNrDisplayComponent },\n { name: \"google-purchase\", component: FormlyGooglePurchaseComponent },\n {\n name: \"google-location-input\",\n component: FormlyGoogleLocationInputComponent,\n },\n { name: \"toggle-rule\", component: FormlyToggleRuleComponent },\n {\n name: \"tex-with-toggle-input\",\n component: FormlyTextWithToggleComponent,\n },\n {\n name: \"six-digit-before-after-decimal-input\",\n component: FormlySixDigitBeforeAfterDecimalInputComponent,\n },\n { name: \"img-upload\", component: FormlyImgUploadComponent },\n {\n name: \"radio-dynamic-input\",\n component: FormlyDynamicRadioInputComponent,\n },\n {\n name:'formly-left-text-with-toggle',\n component:FormlyLeftTextWithToggleComponent\n },\n {\n name:'formly-plus-button',\n component:FormlyPlusButtonComponent\n },\n {\n name: 'formly-date-format',\n component: FormlyDateFormatComponent\n },\n {\n name: 'formly-input-selection',\n component: FormlyInputSelectionComponent\n }\n ],\n validators: [\n { name: \"invalidEmail\", validation: EmailValidator },\n { name: \"whitespace\", validation: NoWhitespaceValidator },\n ],\n }),\n FormlyBootstrapModule,\n NgbModule,\n NgbTooltipModule,\n NgSelectModule,\n TranslateModule,\n NgxTrimDirectiveModule,\n SharedModule,\n GridModule\n ],\n declarations: [\n DynamicFormComponent,\n FormlyFieldInputPanelComponent,\n FormlyCalendarInputComponent,\n FormlyNumberInputComponent,\n FormlyDisabledInputComponent,\n FormlyIntegerInputComponent,\n FormlyTextareaInputComponent,\n FormlyTextInputComponent,\n FormlyNgSelectInputComponent,\n FormlyNgSelectDescriptionInputComponent,\n FormlyTagInputComponent,\n FormlyAdvanceBalanceInputComponent,\n SelectCategoryPanelComponent,\n ViewExpensePolicyPanelComponent,\n SelectPreApprovalTagPanelComponent,\n SelectCustomerPanelComponent,\n SelectCostCentrePanelComponent,\n SelectLocationPanelComponent,\n SelectProjectPanelComponent,\n SelectBusinessPurposePanelComponent,\n SelectVehiclePanelComponent,\n SelectReceiptTypePanelComponent,\n CreateDetourPanelComponent,\n SelectStatePanelComponent,\n AssociateCreditCardExpensePanelComponent,\n SelectAdditionalFieldDataPanelComponent,\n CreateTagPanelComponent,\n SelectRecentJourneysPanelComponent,\n AdvancePassbookPanelComponent,\n PolicyViolationPanelComponent,\n AdvancePolicyViolationPanelComponent,\n FormlyUlComponent,\n FormlyRadioButtonComponent,\n FormlyVehicleButtonComponent,\n FormlyCheckboxInputComponent,\n FormlyReceiptComponent,\n FormlyNotesComponent,\n FormlyAdvancePolicyComponent,\n FormlyPolicyViolationComponent,\n FormlyAdvancePolicyViolationComponent,\n FormlyToggleInputComponent,\n FormlyRadioInputComponent,\n ActionPanelComponent,\n FormlyNgMultiSelectInputComponent,\n FormlyCurrencyImageUploderComponent,\n FormlyButtonComponent,\n FormlyCalendarDateMonthInputComponent,\n FormlyToggleInputLeftAlignedComponent,\n FormlyCategoryViewComponent,\n FormlyRadioDescriptionInputComponent,\n FormlyTwoDecimalNumberInputComponent,\n FormlyThreeDigitDecimalInputComponent,\n FormlyExpenseAmountInputComponent,\n FormlyLogoUploaderComponent,\n FormlyCalendarDateInputComponent,\n FormlyLocationInputComponent,\n FormlyMileageDetailsComponent,\n FormlyNrDisplayComponent,\n FormlyGooglePurchaseComponent,\n FormlyLinkComponentComponent,\n MultipleLegsPanelComponent,\n FormlyToggleRuleComponent,\n AddjourneyPanelComponent,\n FormlyGoogleLocationInputComponent,\n FormlyTextWithToggleComponent,\n FormlySixDigitBeforeAfterDecimalInputComponent,\n FormlyDynamicRadioInputComponent,\n FormlyImgUploadComponent,\n NRFCApprovalPanelComponent,\n FormlyImageUploader2Component,\n FormlyImageUploaderComponent,\n OfficeAddressPanelComponent,\n FormlyLeftTextWithToggleComponent,\n FormlyPlusButtonComponent,\n FormlyDateFormatComponent,\n ContainerListPanelComponent,\n AddContainerPanelComponent,\n GenericPolicyViolationPanelComponent,\n SubCategoryExpenseDetailsPanelComponent,\n SpecialCategoryExpenseItemisationPanelComponent,\n MultipleTabPolicyViolationScreenComponent,\n ContianerPolicyPanelComponent,\n FormlyInputSelectionComponent\n ],\n providers: [],\n exports: [\n NgbTooltipModule,\n DynamicFormComponent,\n ActionPanelComponent,\n PolicyViolationPanelComponent,\n AdvancePolicyViolationPanelComponent,\n MultipleLegsPanelComponent,\n AddjourneyPanelComponent,\n NRFCApprovalPanelComponent,\n ViewExpensePolicyPanelComponent,\n FormlyPlusButtonComponent,\n ContainerListPanelComponent,\n AddContainerPanelComponent,\n GenericPolicyViolationPanelComponent,\n SubCategoryExpenseDetailsPanelComponent,\n SpecialCategoryExpenseItemisationPanelComponent,\n MultipleTabPolicyViolationScreenComponent,\n ContianerPolicyPanelComponent\n ],\n})\nexport class DynamicFormsModule {\n constructor() {}\n}\n","
\n
\n
\n
\n
\n

{{ 'label_Step' | translate}} 2 - {{ \"grade_wizard_text7\" | translate }}

\n \n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n
\n

{{ \"import_instructions_read\" | translate }}

\n
\n
\n \n
\n
\n
\n
\n 1.\n {{ \"grade_import_msg20\" | translate }}\n
\n
\n 2.\n {{ \"grade_import_msg21\" | translate }}\n
\n
\n 3.\n {{ \"grade_import_msg22\" | translate }}\n
\n
\n 4.\n {{ \"grade_import_msg23\" | translate }}\n
\n
\n
\n
\n
","import { Component, OnInit, ViewChild, Output, EventEmitter } from \"@angular/core\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport {ApiRequest, UniversalImportTemplateEnum, IApiresponse} from \"src/app/_models\";\nimport { ExcelExportService } from \"src/app/_services/common/excel-export.service\";\nimport { UniversalImporterService } from \"src/app/_services/universal-importer/universal-importer.service\";\nimport { StorageData } from \"src/app/_models/universal-importer/universal-importer\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ColDef } from \"ag-grid-community\";\nimport { GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { GradeCsvRecord, IRequestGradeListAll, IResponseGrade, IResponseGradeList, RequestGradeListAll } from \"src/app/_models/grade/grade\";\nimport { GradeService } from \"src/app/_services\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\n\n@Component({\n selector: \"grade-import-export-panel\",\n templateUrl: \"./grade-import-export-panel.component.html\"\n})\n\nexport class GradeImportExportPanelComponent implements OnInit {\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n\n @Output() closePanelEvent = new EventEmitter();\n howDoIVideoLinks = HowDoIVideoLinks;\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n gridData: any[] = [];\n sampleTemplate = [];\n claims: Claims;\n panelHeading: string;\n categoryList: any[] = [];\n importSampleData: any[]=[];\n showImportInstuctionPanel: boolean= false;\n\n gradeList = [];\n\n constructor(\n private claimsService: ClaimsService,\n private router: Router,\n private translate: TranslateService,\n private excelExportService: ExcelExportService,\n private gradeService: GradeService,\n private universalImporterService: UniversalImporterService\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {\n this.fnInitialiseGrid();\n this.getGradeForOrg();\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n\n\n fnInitialiseGrid() {\n\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n\n }\n\n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('grade_name_label'),\n field: 'gradeName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n },\n {\n headerName: this.translate.instant('grade_description_label'),\n field: 'gradeDescription',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n },\n ]\n\n\n }\n\n fnGetGridConfigItems() {\n this.gridConfigItems = new GridConfig(\n true,\n true,\n 'gradeId',\n 'gradeId',\n 0,\n false,\n [],\n true,\n true,\n true,\n null,\n 'asc',\n 40,\n this.translate.instant('no_data_availabe'),\n null,\n null,\n false,\n false,\n '', \n '',\n false\n );\n }\n\n \n\n fnGridFilterChanged() {\n this.fnGetGridConfigItems();\n this.fnCreateColumnDefs();\n\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n\n \n \n\n fnExportSampleFile() {\n let csvRecord: GradeCsvRecord = new GradeCsvRecord();\n csvRecord.gradeName = \"\";\n csvRecord.gradeDescription = \"\";\n this.sampleTemplate.push(csvRecord);\n this.gradeService.exportData(this.sampleTemplate, \"Grade\", false);\n }\n\n \n fnExportGrades() {\n const categoryExport = [];\n let headerRow = [\n this.translate.instant('grade_name_label'),\n this.translate.instant('grade_description_label')\n ];\n categoryExport.push(headerRow);\n if(this.gridData && this.gridData.length > 0){\n this.gridData.forEach(data => {\n let row = [];\n row.push(data.gradeName ? data.gradeName:\"\");\n row.push(data.gradeDescription ? data.gradeDescription : \"\");\n categoryExport.push(row); \n });\n }\n this.excelExportService.exportToCsv(\"Grade.csv\", categoryExport);\n }\n\n fnImportEmployees(){\n let storageData = new StorageData();\n storageData.importTemplate = UniversalImportTemplateEnum.ImportGrade;\n this.universalImporterService.fnSaveDataToLocalStorage(storageData);\n localStorage.setItem(\"isCameFromGradeImport\" + this.claims.OrgId, \"1\");\n this.router.navigate([\"/universalimport/uploadfile\"]);\n }\n\n fnShowImportInstuctionPanel(){\n this.showImportInstuctionPanel = true;\n }\n\n fnCloseImportInstuctionPanel(){\n this.showImportInstuctionPanel = false;\n }\n\n\n\n getGradeForOrg() {\n let gradeRequest = new ApiRequest(\n \"SoloGetAllGradeByOrgId\",\n 1.0,\n \"111\"\n );\n let gradeRequestInfo = new RequestGradeListAll(this.claims.OrgId);\n gradeRequest.requestInfo = gradeRequestInfo;\n this.gradeService\n .GetAllGradeByOrgId(gradeRequest)\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.gradeList = response.responseInfo.gradeList;\n this.gridData = this.gradeList;\n this.fnGridFilterChanged();\n }\n });\n }\n gradeExport = [];\n exportGrade(): void {\n for (let i = 0; i < this.gradeList.length; i++) {\n let csvRecord: GradeCsvRecord = new GradeCsvRecord();\n csvRecord.gradeName = this.gradeList[i].gradeName;\n csvRecord.gradeDescription = this.gradeList[i].gradeDescription;\n this.gradeExport.push(csvRecord);\n }\n this.gradeService.exportData(\n this.gradeExport,\n \"GradeExport\" + new Date().getTime(),\n false\n );\n }\n\n}\n\n\n","
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n

    {{ \"header_setup_grades_and_assign_claimants\" | translate : param\n }}

    \n
  • \n
\n
\n
\n
\n\n
\n
\n
    \n
  • \n \n
  • \n
\n
\n
\n
\n
\n
\n \n \n \n \n\n \n\n \n \n\n \n \n \n \n \n \n \n \n \n\n \n\n\n
\n\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { GradeAssignEmployeeComponent } from 'src/app/grade';\nimport { AuthGuardService } from '../../_services/common/authguard.service';\nimport { CanDeactivateGuard } from 'src/app/_guards/canDeactivate.guard';\nimport { SetupGradeWizardComponent } from 'src/app/grade/setup-grade-wizard/setup-grade-wizard.component';\n\nconst routes: Routes = [\n { path: 'grade', component: SetupGradeWizardComponent, canActivate: [AuthGuardService] },\n { path: 'gradeassignemployee', component: GradeAssignEmployeeComponent, canActivate: [AuthGuardService], canDeactivate : [CanDeactivateGuard] },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class GradeRoutingModule { }\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { Subscription } from \"rxjs\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport {\n AlertPanelTypeEnum,\n ApiRequest,\n FunctionPackageEnum,\n WizardActionEnum,\n} from \"src/app/_models\";\nimport {\n Wizard,\n WizardDetailRequest,\n WizardResponse,\n} from \"src/app/_models/common/wizard\";\nimport { environment } from \"src/environments/environment\";\nimport { MarketingPopup } from \"src/app/_models/common/marketing-popup\";\nimport { WizardComponent } from \"src/app/shared/panels/wizard/wizard.component\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport { parse } from \"url\";\nimport { Location } from \"@angular/common\";\nimport { WizardService } from \"src/app/_services/common/wizard.service\";\nimport { AssignCategoriesToGradeListPanelInputModel } from \"src/app/_models/grade/grade\";\n\n@Component({\n selector: \"setup-grade-wizard\",\n templateUrl: \"./setup-grade-wizard.component.html\",\n})\nexport class SetupGradeWizardComponent implements OnInit {\n @ViewChild(WizardComponent) wizardComponent: WizardComponent;\n howDoIVideoLink = HowDoIVideoLinks;\n wizardDetails: Wizard[];\n public param: string;\n claimsSubscription: Subscription;\n claims: Claims;\n showgradePanel = false;\n showSetupMileageRate = false;\n redirectStep: number = 0;\n gradePanelData: any;\n showAssignCategoriesToGradeListPanel: boolean = false;\n assignCategoriesToGradeListPanelInputModel: AssignCategoriesToGradeListPanelInputModel;\n isAssigncategoriestogradeSubscribed: boolean;\n showAssignClaimantToGradePopup: boolean;\n assigncategoriestogradePopupModel: MarketingPopup;\n purchaseFunctionList: any[] = [];\n marketingPopupPanel: MarketingPopup;\n isMarketingPopup: boolean;\n alertPanelType: number;\n alertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n showGradeImportExportPanel:boolean;\n constructor(\n private router: Router,\n private wizardService: WizardService,\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private route: ActivatedRoute,\n private location: Location\n ) {\n this.claimsSubscription = this.claimsService.currentClaims.subscribe(\n (claims) => {\n this.claims = claims;\n }\n );\n this.redirectStep = this.route.snapshot.queryParams[\"step\"] || 0;\n this.resetUrl();\n }\n ngOnInit(): void {\n this.GetWizardDetails();\n }\n backToSettings() {\n if (\n localStorage.getItem(\"isRedirectFromMySubscriptionSettingPage\") == \"1\"\n ) {\n this.router.navigate([\"mysubscription\"]);\n } else {\n this.router.navigate([\"settings\"]);\n }\n }\n GetWizardDetails() {\n let request = new ApiRequest(\n \"GetOrgMileageWizardDetails\",\n environment.applicationVersion,\n environment.requestId\n );\n let requestInfo = new WizardDetailRequest();\n requestInfo.WizardAction = WizardActionEnum.Grade;\n request.requestInfo = requestInfo;\n this.wizardService\n .GetWizardDetails(request)\n .subscribe((res: WizardResponse) => {\n this.wizardDetails = res.wizardList;\n this.wizardComponent.setWidthAndHeight();\n if (this.redirectStep) {\n let stepData = new Wizard();\n stepData.stepNum = Number(this.redirectStep);\n setTimeout(() => {\n this.navigateToStep(stepData);\n this.redirectStep = 0;\n }, 100);\n }\n });\n }\n navigateToStep(stepData: Wizard) {\n if (!this.fnAlertPanelRequired(stepData)) {\n switch (stepData.stepNum) {\n case 1:\n this.gradePanelData = {\n purchaseFunctionList: this.purchaseFunctionList\n };\n this.showgradePanel = true;\n break;\n case 2:\n this.showGradeImportExportPanel = true;\n break;\n case 3:\n this.showAssignClaimantToGradePopup = true;\n break;\n case 4:\n this.fnShowAssignCategoriesToGradeListPanel();\n break;\n\n }\n }\n }\n fnShowAssignCategoriesToGradeListPanel() {\n this.assignCategoriesToGradeListPanelInputModel = new AssignCategoriesToGradeListPanelInputModel(\n this.translate.instant(\"assign_categories_to_grade\")\n );\n this.showAssignCategoriesToGradeListPanel = true;\n }\n fnCloseAssignCategoriesToGradeListPanel() {\n this.showAssignCategoriesToGradeListPanel = false;\n this.assignCategoriesToGradeListPanelInputModel = null;\n this.GetWizardDetails();\n }\n closeAssignClaimanttogradePopup() {\n this.showAssignClaimantToGradePopup = false;\n this.GetWizardDetails();\n }\n fnCloseGradeImportExportPanel() {\n this.showGradeImportExportPanel = false;\n this.GetWizardDetails();\n }\n resetUrl() {\n let myUrl = parse(window.location.href);\n\n if (!(!myUrl || null) && !(!myUrl.pathname || null)) {\n let urlPath = myUrl.pathname;\n this.location.go(urlPath);\n } else {\n this.location.go(\"/\");\n }\n }\n fnAlertPanelRequired(stepData: Wizard) {\n if (stepData.alertPanelType) {\n switch (stepData.alertPanelType) {\n case AlertPanelTypeEnum.Purchase:\n this.marketingPopupPanel = new MarketingPopup(\n this.translate.instant(\"assign_categories_to_grade\"),\n this.translate.instant(\"assign_categories_to_grade\"),\n this.translate.instant(\"assign_category_grade_description\"),\n null,\n \"../../assets/svg-icons/GradesToCatoories.png\",\n \"../../assets/images/GradesToCatoories.png\",\n \"\",\n FunctionPackageEnum.assigncategoriestograde,\n this.translate.instant(\"assign_categories_to_grade\"),\n \"assigncategoriestograde\",\n 0,\n 0\n );\n this.isMarketingPopup = true;\n localStorage.setItem(\"assigncategoriestogradeRedirection\", \"grade\");\n break;\n case AlertPanelTypeEnum.SetuptIncomplete:\n let text1 = this.translate.instant(\"urgent_action_msg2\") + '
' + this.translate.instant(\"urgent_action_msg3\");\n this.alertPanelType = AlertPanelTypeEnum.SetuptIncomplete;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [text1],\n this.translate.instant(\"cancel\"),\n this.translate.instant(\"select_mileage\"),\n true,\n \"\"\n );\n break;\n case AlertPanelTypeEnum.NotApplicable:\n this.alertPanelType = AlertPanelTypeEnum.NotApplicable;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [this.translate.instant(\"setup_mileage_mgs1\")],\n \"\",\n this.translate.instant(\"oK_text\"),\n true,\n \"\"\n );\n break;\n }\n return true;\n } else {\n return false;\n }\n }\n alertPanelReceiver(returnValue) {\n if (returnValue) {\n if (this.alertPanelType != AlertPanelTypeEnum.NotApplicable) {\n let stepData = new Wizard();\n stepData.stepNum = 1;\n setTimeout(() => {\n this.navigateToStep(stepData);\n }, 100);\n }\n }\n this.fnClearAlert();\n }\n fnClearAlert() {\n this.alertPanelType = 0;\n this.alertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n }\n closeMarketingPopup() {\n this.isMarketingPopup = false;\n }\n closeGradePanel()\n {\n this.showgradePanel = false;\n this.GetWizardDetails();\n }\n}\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { GradeRoutingModule } from '../routingModules/grade-routing.module';\nimport { SharedModule } from 'src/app/shared.module';\nimport { GradeComponent, GradeAssignEmployeeComponent } from 'src/app/grade';\nimport { SetupGradeWizardComponent } from 'src/app/grade/setup-grade-wizard/setup-grade-wizard.component';\nimport { GridModule } from \"../modules/grid.module\";\nimport { DynamicFormsModule } from './dynamic-forms.module';\nimport { ClaimantDetailsComponentComponent } from '../../grade/claimant-details-component/claimant-details-component.component';\nimport { AssignGradePanelComponent } from '../../grade/assign-grade-panel/assign-grade-panel.component';\nimport {AddGradePanelComponent} from \"src/app/grade/add-grade-panel/add-grade-panel.component\";\nimport { GradeAssignCategoryPanelComponent } from 'src/app/grade/grade-assign-category/grade-assign-category-panel/grade-assign-category-panel.component';\nimport {GradeAssignCategoryListPanelComponent} from \"src/app/grade/grade-assign-category/grade-assign-category-list-panel/grade-assign-category-list-panel.component\";\nimport {GradeImportExportPanelComponent} from \"src/app/grade/grade-import-export-panel/grade-import-export-panel.component\";\n@NgModule({\n imports: [\n TranslateModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n GradeRoutingModule,\n SharedModule,\n GridModule,\n DynamicFormsModule,\n ],\n declarations: [\n GradeComponent,\n GradeAssignEmployeeComponent,\n ClaimantDetailsComponentComponent,\n AssignGradePanelComponent,\n AddGradePanelComponent,\n GradeAssignCategoryPanelComponent,\n GradeAssignCategoryListPanelComponent,\n SetupGradeWizardComponent,\n GradeImportExportPanelComponent\n ],\n schemas: [\n CUSTOM_ELEMENTS_SCHEMA\n ],\n exports: [ClaimantDetailsComponentComponent, AddGradePanelComponent, GradeAssignCategoryPanelComponent,\n GradeAssignCategoryListPanelComponent,GradeAssignEmployeeComponent]\n})\nexport class GradeModule { }\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SharedModule } from \"src/app/shared.module\";\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AppGridComponent } from 'src/app/shared/grid/grid-component/grid.component';\nimport { AgGridModule } from 'ag-grid-angular';\nimport { CheckBoxRendererComponent } from 'src/app/shared/grid/controls/checkbox-renderer/checkbox-renderer.component';\nimport { StatusRenderComponent } from 'src/app/shared/grid/controls/status-renderer/status-renderer.component';\nimport { LogIconRendererComponent } from 'src/app/shared/grid/controls/log-icon-renderer/log-icon-renderer.component';\nimport { ActionsRendererComponent } from 'src/app/shared/grid/controls/actions-renderer/actions-renderer.component';\nimport { CustomHeaderComponent } from 'src/app/shared/grid/controls/header-component/custom-header.component';\nimport { ChevronRendererComponent } from 'src/app/shared/grid/controls/chevron-renderer/chevron-renderer.component';\nimport { PreApprovalRendererComponent } from 'src/app/shared/grid/controls/pre-approval-renderer/pre-approval-renderer.component';\nimport { ReceiptIconRendererComponent } from \"src/app/shared/grid/controls/receipt-icon-renderer/receipt-icon-renderer.component\";\nimport { FieldValueRendererComponent } from \"src/app/shared/grid/controls/field-value-renderer/field-value-renderer.component\";\nimport { FormattedTextRenderer } from \"src/app/shared/grid/controls/formatted-text-renderer/formatted-text-renderer.component\";\nimport { ApproverRenderer } from \"src/app/shared/grid/controls/approver-renderer/approver-renderer.component\";\nimport { DateRendererComponent } from 'src/app/shared/grid/controls/date-renderer/date-renderer.component';\nimport { AmountRendererComponent } from 'src/app/shared/grid/controls/amount-renderer/amount-renderer.component';\nimport { PolicyNameRendererComponent } from \"src/app/shared/grid/controls/policy-name-renderer/policy-name-renderer.component\";\nimport { PolicyAmountRendererComponent } from \"src/app/shared/grid/controls/policy-amount-renderer/policy-amount-renderer.component\";\nimport { PricingTextRendererComponent } from \"src/app/shared/grid/controls/pricing-text-renderer/pricing-text-renderer.component\";\nimport { ReceiptsIconRendererComponent } from \"src/app/shared/grid/controls/receipts-icon-renderer/receipts-icon-renderer.component\";\nimport {ReceiptsTextRendererComponent} from 'src/app/shared/grid/controls/receipts-text-renderer/receipts-text-renderer.component';\nimport { SafeTextRendererComponent } from \"src/app/shared/grid/controls/safe-text-renderer/safe-text-renderer.component\";\nimport { StarterMobileSupportIconRendererComponent } from \"src/app/shared/grid/controls/starter-mobile-support-icon-renderer/starter-mobile-support-icon-renderer.component\";\nimport { StarterWebSupportIconRendererComponent } from \"src/app/shared/grid/controls/starter-web-support-icon-renderer/starter-web-support-icon-renderer.component\";\nimport { NgSelectRendererComponent } from \"src/app/shared/grid/controls/ng-select-renderer/ng-select-renderer.component\";\nimport { TooltipRenderComponent } from \"src/app/shared/grid/controls/tooltip-renderer/tooltip-renderer.component\";\nimport { ButtonsRendererComponent } from \"src/app/shared/grid/controls/buttons-renderer/buttons-renderer.component\";\nimport { ImportErrorsCountRendererComponent } from \"src/app/shared/grid/controls/import-errors-count-renderer/import-errors-count-renderer.component\";\nimport { CardNumberRendererComponent } from 'src/app/shared/grid/controls/card-number-renderer/card-number-renderer.component';\nimport { CardAssignedUsernameRendererComponent } from 'src/app/shared/grid/controls/card-assigned-username-renderer/card-assigned-username-renderer.component';\nimport { TextWithTooltipRendererComponent } from 'src/app/shared/grid/controls/text-tooltip-renderer/text-tooltip-renderer.component';\nimport { TextWithTooltipRightRendererComponent } from 'src/app/shared/grid/controls/text-tooltip-right-renderer/text-tooltip-right-renderer.component';\nimport { TextWithTooltipRenderer2Component } from 'src/app/shared/grid/controls/text-tooltip-renderer2/text-tooltip-renderer2.component';\nimport { ClickToSetupRendererComponent } from \"src/app/shared/grid/controls/click-to-setup-renderer/click-to-setup-renderer.component\";\nimport { ToggleRendererComponent } from '../../shared/grid/controls/toggle-renderer/toggle-renderer.component';\nimport { TextboxRendererComponent } from '../../shared/grid/controls/textbox-renderer/textbox-renderer.component';\nimport { TextRendererComponent } from '../../shared/grid/controls/text-renderer/text-renderer.component';\nimport { CheckboxIngridRendererComponent } from '../../shared/grid/controls/checkbox-ingrid-renderer/checkbox-ingrid-renderer.component';\nimport { SuspensionMessageRendererComponent } from '../../shared/grid/controls/suspension-message-renderer/suspension-message-renderer.component';\nimport { DefaultMessageRendererComponent } from '../../shared/grid/controls/default-message-renderer/default-message-renderer.component';\nimport { TextWithDescriptionRendererComponent } from '../../shared/grid/controls/text-with-description-renderer/text-with-description-renderer.component';\nimport { ApprovalDataRendererComponent } from '../../shared/grid/controls/approval-data-renderer/approval-data-renderer.component';\nimport { InfoStepRendererComponent } from '../../shared/grid/controls/info-step-renderer/info-step-renderer.component';\nimport { PrivilegeCountRendererComponent } from \"src/app/shared/grid/controls/privilege-count-renderer/privilege-count-renderer.component\";\nimport { StatusDataRenderComponent } from \"src/app/shared/grid/controls/status-data-renderer/status-data-renderer.component\";\nimport { GridNgSelectOrTextRendererComponent } from \"src/app/shared/grid/controls/grid-ng-select-or-text-renderer/grid-ng-select-or-text-renderer.component\";\nimport { GridTextBoxOrTextRendererComponent } from \"src/app/shared/grid/controls/grid-textbox-or-text-renderer/grid-textbox-or-text-renderer.component\";\nimport { CheckBoxwithTextRenderComponent } from \"src/app/shared/grid/controls/check-box-with-text/check-box-with-text.component\";\nimport { EmployeeStatusPanelComponent } from \"src/app/manage-employees/approvers/employee-status-panel/employee-status-panel.component\";\nimport { PercentageRendererComponent } from \"src/app/shared/grid/controls/percentage-renderer/percentage-renderer.component\";\nimport {DiscountRendererComponent } from \"src/app/shared/grid/controls/discount-renderer/discount-renderer.component\";\nimport {TextTwoDecimalNumberRendererComponent} from \"../../shared/grid/controls/text-two-decimal-number-renderer/text-two-decimal-number-renderer.component\"\nimport { MultiColorTextRendererComponent } from \"../../shared/grid/controls/multi-color-text-renderer/multi-color-text-renderer.component\";\nimport { GridTextBoxRendererComponent} from \"src/app/shared/grid/controls/grid-textbox-renderer/grid-textbox-renderer.component\";\nimport { ToggleRendererSecondComponent } from '../../shared/grid/controls/toggle-renderer-second/toggle-renderer-second.component';\nimport {ProgressBarRendererComponent} from \"src/app/shared/grid/controls/progress-bar-renderer/progress-bar-renderer.component\";\nimport {CountWithCheckBoxRendererComponent} from \"src/app/shared/grid/controls/count-with-checkbox-renderer/count-with-checkbox-renderer.component\";\nimport { NgSelectDescriptionRendrerComponent } from '../../shared/grid/controls/ng-select-description-rendrer/ng-select-description-rendrer.component';\nimport { ResultRendererComponent } from '../../shared/grid/controls/result-renderer/result-renderer.component';\nimport {GridDropdownRendererComponent} from \"src/app/shared/grid/controls/grid-dropdown-renderer/grid-dropdown-renderer.component\";\nimport { TwoDecimalNumberInputRendererComponent } from \"src/app/shared/grid/controls/two-decimal-number-input-renderer/two-decimal-number-input-renderer.component\";\nimport {ActionButtonsRendererComponent} from \"src/app/shared/grid/controls/action-buttons-renderer/action-buttons-renderer.component\";\nimport { RateRendererComponent } from '../../shared/grid/controls/rate-renderer/rate-renderer.component';\nimport {CountLinkRendererComponent} from \"src/app/shared/grid/controls/count-link-renderer/count-link-renderer.component\";\nimport {TranslatedTextTendererComponent} from \"src/app/shared/grid/controls/translated-text-renderer/translated-text-renderer.component\";\nimport {RadioRendererComponent} from \"src/app/shared/grid/controls/radio-renderer/radio-renderer.component\";\nimport {MultipleButtonRendererComponent} from \"src/app/shared/grid/controls/multiple-button-renderer/multiple-button-renderer.component\";\nimport { NgbPopoverModule } from '@ng-bootstrap/ng-bootstrap';\nimport {CustomActionsRendererComponent} from \"src/app/shared/grid/controls/custom-actions-renderer/custom-actions-renderer.component\";\nimport { AssignApproverPanelComponent } from 'src/app/manage-employees/approvers/assign-approver-panel/assign-approver-panel.component';\nimport {GridToggleRendererComponent} from \"src/app/shared/grid/controls/grid-toggle-renderer/grid-toggle-renderer.component\";\nimport {MultipleCardNumberRendererComponent} from \"src/app/shared/grid/controls/multiple-card-number-renderer/multiple-card-number-renderer.component\";\n \nimport { DateTimeRendererComponent } from 'src/app/shared/grid/controls/date-time-renderer/date-time-renderer.component';\nimport {ViewRendererComponent} from \"src/app/shared/grid/controls/view-renderer/view-renderer.component\";\nimport {DayPolicyRenderer} from \"src/app/shared/grid/controls/day-policy-renderer/day-policy-renderer.component\";\nimport {PreApprovalTagRendererComponent} from \"src/app/shared/grid/controls/pre-approval-tag-renderer/pre-approval-tag-renderer.component\";\nimport {PreApprovalCountRendererComponent} from \"src/app/shared/grid/controls/pre-approval-count-renderer/pre-approval-count-renderer.component\";\nimport {PreApprovalLinkRendererComponent} from \"src/app/shared/grid/controls/pre-approval-link-renderer/pre-approval-link-renderer.component\";\n\nimport {ExportLogStatusRendererComponent} from \"src/app/shared/grid/controls/export-log-status-renderer/export-log-status-renderer.component\";\nimport {ExportLogActionRendererComponent} from \"src/app/shared/grid/controls/export-log-action-renderer/export-log-action-renderer.component\";\n \n@NgModule({\n declarations: [AppGridComponent, CheckBoxRendererComponent,\n StatusRenderComponent, LogIconRendererComponent, ActionsRendererComponent, CustomHeaderComponent,\n ChevronRendererComponent, PreApprovalRendererComponent, FormattedTextRenderer, ApproverRenderer,\n ReceiptIconRendererComponent, FieldValueRendererComponent, DateRendererComponent, AmountRendererComponent,\n PolicyNameRendererComponent, PolicyAmountRendererComponent, PricingTextRendererComponent, SafeTextRendererComponent, StarterMobileSupportIconRendererComponent, StarterWebSupportIconRendererComponent,\n ReceiptsIconRendererComponent,ReceiptsTextRendererComponent,NgSelectRendererComponent, TooltipRenderComponent, ButtonsRendererComponent, ImportErrorsCountRendererComponent,\n CardNumberRendererComponent,\n CardAssignedUsernameRendererComponent,\n TextWithTooltipRendererComponent, TextWithTooltipRightRendererComponent,\n CardAssignedUsernameRendererComponent, ClickToSetupRendererComponent, ToggleRendererComponent,\n TextboxRendererComponent, TextRendererComponent, CheckboxIngridRendererComponent,\n SuspensionMessageRendererComponent, DefaultMessageRendererComponent, TextWithDescriptionRendererComponent,\n ApprovalDataRendererComponent, InfoStepRendererComponent, TextWithTooltipRenderer2Component, PrivilegeCountRendererComponent,\n StatusDataRenderComponent, GridNgSelectOrTextRendererComponent, GridTextBoxOrTextRendererComponent, CheckBoxwithTextRenderComponent,\n EmployeeStatusPanelComponent,\n AssignApproverPanelComponent, PercentageRendererComponent, DiscountRendererComponent, MultiColorTextRendererComponent, TextTwoDecimalNumberRendererComponent,GridTextBoxRendererComponent,\n ToggleRendererSecondComponent,ProgressBarRendererComponent,CountWithCheckBoxRendererComponent,ActionButtonsRendererComponent, RateRendererComponent,GridDropdownRendererComponent,CountLinkRendererComponent,TwoDecimalNumberInputRendererComponent,\n NgSelectDescriptionRendrerComponent, ResultRendererComponent,TranslatedTextTendererComponent,RadioRendererComponent,MultipleButtonRendererComponent,GridToggleRendererComponent, MultipleCardNumberRendererComponent,CustomActionsRendererComponent, DateTimeRendererComponent,\n ExportLogStatusRendererComponent, ExportLogActionRendererComponent,ViewRendererComponent,DayPolicyRenderer, PreApprovalTagRendererComponent, PreApprovalCountRendererComponent, PreApprovalLinkRendererComponent\n ],\n imports: [\n TranslateModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgbPopoverModule,\n SharedModule,\n AgGridModule,\n ],\n exports: [AppGridComponent, EmployeeStatusPanelComponent,AssignApproverPanelComponent],\n schemas: [\n CUSTOM_ELEMENTS_SCHEMA\n ]\n})\nexport class GridModule { }\n","import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ImportChecklistPanelComponent } from '../../../universal-import/import-checklist-panel/import-checklist-panel.component';\nimport { ImportEmployeeErrorPanelComponent } from '../../../universal-import/import-employees/import-employee-error-panel/import-employee-error-panel.component';\nimport { GridModule } from '../../../_modules/modules/grid.module';\nimport { FormsModule } from \"@angular/forms\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { DynamicFormsModule } from \"../../../_modules/modules/dynamic-forms.module\";\nimport { NotificationPanelComponent } from \"../../../shared/panels/notification-panel/notification-panel.component\";\nimport { SharedModule } from 'src/app/shared.module';\n\n\n\n@NgModule({\n declarations: [ ImportChecklistPanelComponent,\n ImportEmployeeErrorPanelComponent,\n NotificationPanelComponent],\n imports: [\n TranslateModule,\n FormsModule,\n DynamicFormsModule,\n CommonModule,\n GridModule,\n SharedModule\n ],\n exports:[ ImportChecklistPanelComponent,\n ImportEmployeeErrorPanelComponent,\n NotificationPanelComponent],\n schemas: [\n CUSTOM_ELEMENTS_SCHEMA\n ]\n\n})\nexport class ImportCommonModuleModule { }\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ClaimsService } from \"../common/claims.service\";\nimport { environment } from \"src/environments/environment\";\nimport { AccountingSystemMasterEnum, AccountingSystemTypeEnum, IApiRequest, IApiresponse } from \"src/app/_models\";\nimport { Observable } from \"rxjs\";\nimport { IConnectAccountingSystemRequest } from \"src/app/_models/AccountingIntegration/connect-accounting-system-request\";\nimport { IGetAllAccountingSystemRequest } from \"src/app/_models/AccountingIntegration/get-all-accounting-system-request\";\nimport { IGetAllAccountingSystemResponse } from \"src/app/_models/AccountingIntegration/get-all-accounting-system-response\";\nimport { IRequestOrganisationAccountingIntegrationSteps, OrgAccIntStepsReq } from \"src/app/_models/AccountingIntegration/requestOrganisationAccountingIntegrationSteps\";\nimport { IResponseOrganisationAccountingIntegrationStepsList } from \"src/app/_models/AccountingIntegration/responseOrganisationAccountingIntegrationStepsList\";\nimport { IRequestEnableDisableAccountingIntegrationStep } from \"src/app/_models/AccountingIntegration/requestEnableDisableAccountingIntegrationStep\";\nimport { IRequestTurnOnOffAccountingIntegration } from \"src/app/_models/AccountingIntegration/requestTurnOnOffAccountingIntegration\";\nimport { IConnectAccountingSystemResponse } from \"src/app/_models/AccountingIntegration/connectAccountingSystemResponse\";\nimport { IXeroAuthorizeRequest } from \"src/app/_models/AccountingIntegration/xeroAuthorizeRequest\";\nimport { IConnectAccountingSystemTokenResponse } from \"src/app/_models/AccountingIntegration/connectAccountingSystemTokenResponse\";\nimport { IRequestSyncMasterData } from \"src/app/_models/AccountingIntegration/requestSyncMasterData\";\nimport { ISyncMasterDataResponse } from \"src/app/_models/AccountingIntegration/syncMasterDataResponse\";\nimport { IRequestAccountingSystemTokenCheck } from \"src/app/_models/AccountingIntegration/requestAccountingSystemTokenCheck\";\nimport { IManageCategoryListRequest } from \"src/app/_models/manage-category/manage-category-list-request\";\nimport { IManageCategoryListResponse } from \"src/app/_models/manage-category/manage-category-list-response\";\nimport { IRequestSaveAccountingSystemConfigration, IUpdateConfigurationSetupRequest } from \"src/app/_models/AccountingIntegration/requestSaveAccountingSystemConfigration\";\nimport { IResponseAccountingSystemConfigurationSettings } from \"src/app/_models/AccountingIntegration/responseAccountingSystemConfigurationSettings\";\nimport { IRequestGetAccountingSystemConfigurationSettings } from \"src/app/_models/AccountingIntegration/requestGetAccountingSystemConfigurationSettings\";\nimport { IRequestGetEmployeesForAccountingIntegration } from \"src/app/_models/AccountingIntegration/requestGetEmployeesForAccountingIntegration\";\nimport { IResponseGetEmployeesForAccountingIntegration } from \"src/app/_models/AccountingIntegration/responseGetEmployeesForAccountingIntegration\";\nimport { IAccountingIntegrationModelForEmployees } from \"src/app/_models/AccountingIntegration/accountingIntegrationModelForEmployees\";\nimport { IGetAccountingSystemApiRequest } from \"src/app/_models/AccountingIntegration/getAccountingSystemApiRequest\";\nimport { IAccountingIntegrationModelForCategories } from \"src/app/_models/AccountingIntegration/accounting-integration-model-for-categories\";\nimport { IAccountingIntegrationModelForTax } from \"src/app/_models/AccountingIntegration/accounting-integration-model-for-tax\";\nimport { ITaxRateMasterAccountingResponse } from \"src/app/_models/AccountingIntegration/tax-rate-master-accounting-response\";\nimport { IRequestSaveEmployeeMappingWithAccountingIntegration } from \"src/app/_models/AccountingIntegration/requestSaveEmployeeMappingWithAccountingIntegration\";\nimport { ICategoryMappingWithAccountingIntegrationRequest } from \"src/app/_models/AccountingIntegration/category-mapping-with-accounting-integration-request\";\nimport { IRequestCheckActiveEmployeeMappedWithAccountingIntegration } from \"src/app/_models/AccountingIntegration/requestCheckActiveEmployeeMappedWithAccountingIntegration\";\nimport { IResponseCheckActiveEmployeeMappedWithAccountingIntegration } from \"src/app/_models/AccountingIntegration/responseCheckActiveEmployeeMappedWithAccountingIntegration\";\nimport { IResponseGetTaxesForAccountingIntegration } from \"src/app/_models/AccountingIntegration/responseGetTaxesForAccountingIntegration\";\nimport { IRequestGetTaxesForAccountingIntegration } from \"src/app/_models/AccountingIntegration/requestGetTaxesForAccountingIntegration\";\nimport { IRequestSaveTaxMappingWithAccountingIntegration } from \"src/app/_models/AccountingIntegration/requestSaveTaxMappingWithAccountingIntegration\";\nimport { IResponseCheckActiveTaxMappedWithAccountingIntegration } from \"src/app/_models/AccountingIntegration/responseCheckActiveTaxMappedWithAccountingIntegration\";\nimport { IRequestCheckActiveTaxMappedWithAccountingIntegration } from \"src/app/_models/AccountingIntegration/requestCheckActiveTaxMappedWithAccountingIntegration\";\nimport { IRequestCheckActiveCategoryMappedWithAccountingIntegration } from \"src/app/_models/AccountingIntegration/request-check-active-category-mapped-with-accounting-integration\";\nimport { IResponseCheckActiveCategoryMappedWithAccountingIntegration } from \"src/app/_models/AccountingIntegration/response-check-active-category-mapped-with-accounting-integration\";\nimport { IQuickBooksAuthorizeRequest } from \"src/app/_models/AccountingIntegration/quick-books-authorize-request\";\nimport { IManageCategoryAddUpdateResponse } from \"src/app/_models/manage-category/manage-category-add-update-response\";\nimport { IRequestGetColumnList } from \"src/app/_models/AccountingIntegration/requestGetColumnList\";\nimport { IResponseAccountingSysFilteredColumnList } from \"src/app/_models/AccountingIntegration/responseAccountingSysFilteredColumnList\";\nimport { IRequestSaveOrgNameAndColumnSelection } from \"src/app/_models/AccountingIntegration/requestSaveOrgNameAndColumnSelection\";\nimport { IResponseCheckColumnSettingStepsComplete } from \"src/app/_models/AccountingIntegration/responseCheckColumnSettingStepsComplete\";\nimport { IRequestCheckColumnSettingStepsComplete } from \"src/app/_models/AccountingIntegration/requestCheckColumnSettingStepsComplete\";\nimport { ITaxesForTallyAccountingIntegrationResponse } from \"src/app/_models/AccountingIntegration/taxes-for-tally-accounting-integration-response\";\nimport { ICheckTallyColumnSelectionRequest } from \"src/app/_models/AccountingIntegration/check-tally-column-selection-request\";\nimport { ISaveOrgNameAndColumnSelectionResponse } from \"src/app/_models/AccountingIntegration/save-org-name-and-column-selection-response\";\nimport { IRequestCheckActiveCostCentreMappedWithAccountingIntegration } from \"src/app/_models/AccountingIntegration/requestCheckActiveCostCentreMappedWithAccountingIntegration\";\nimport { IResponseCheckActiveCostCentreMappedWithAccountingIntegration } from \"src/app/_models/AccountingIntegration/responseCheckActiveCostCentreMappedWithAccountingIntegration\";\nimport { IRequestSaveCostCentreMappingWithAccountingIntegration } from \"src/app/_models/AccountingIntegration/requestSaveCostCentreMappingWithAccountingIntegration\";\nimport { IResponseGetCostCentreForAccountingIntegration } from \"src/app/_models/AccountingIntegration/responseGetCostCentreForAccountingIntegration\";\nimport { IRequestGetCostCentreForAccountingIntegration } from \"src/app/_models/AccountingIntegration/requestGetCostCentreForAccountingIntegration\";\nimport { IRequestCheckAllStepsComplete } from \"src/app/_models/AccountingIntegration/requestCheckAllStepsComplete\";\nimport { IResponseCheckAllStepsComplete } from \"src/app/_models/AccountingIntegration/responseCheckAllStepsComplete\";\nimport { IUpdateAccountingParameterForCCRequest } from \"src/app/_models/AccountingIntegration/update-accounting-parameter-for-ccrequest\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { IRequestGetDataForAccountingTrackingCategory } from \"src/app/_models/AccountingIntegration/requestGetDataForAccountingTrackingCategory\";\nimport { IResponseGetDataForAccountingTrackingCategory } from \"src/app/_models/AccountingIntegration/responseGetDataForAccountingTrackingCategory\";\nimport { IRequestSaveEntityMappingWithAccountingTrackingCategories } from \"src/app/_models/AccountingIntegration/requestSaveEntityMappingWithAccountingTrackingCategories\";\nimport { IGetTrackingCategoryApiRequest } from \"src/app/_models/AccountingIntegration/getTrackingCategoryApiRequest\";\nimport { IAccountingIntegrationModelForTrackingCategories } from \"src/app/_models/AccountingIntegration/accountingIntegrationModelForTrackingCategories\";\nimport { IAccountingIntegrationAdditionalStepsModel } from \"src/app/_models/AccountingIntegration/accountingIntegrationAdditionalStepsModel\";\nimport { IRequestCheckEntityMappingWithAccountingTrackingCategories } from \"src/app/_models/AccountingIntegration/requestCheckEntityMappingWithAccountingTrackingCategories\";\nimport { IResponseCheckEntityMappedWithAccountingIntegration } from \"src/app/_models/AccountingIntegration/responseCheckEntityMappedWithAccountingIntegration\";\nimport { AccIntExpCategoryModel, AccIntRequest, AccIntWithEntityRequest, AddAccountingFieldsMappingRequest, \n CompanyAcctIntStep, DeleteTokenRequest, GetReportFieldDataForIntegrationResponse, \n GetReportFieldMasterForIntegrationRequest, MappingDataRequest, OrgAcctIntSteps,\n IAccSysCreditCardMappingRequest,IAccSysCreditCardMappingResponse} from \"src/app/_models/AccountingIntegration/common\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { SuppliersForIntegrationGrid } from \"src/app/_models/supplier/supplier\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class AccountingIntegrationService {\n orgId: number;\n userId: number;\n token: string;\n organisationCurrency: string;\n claims: Claims;\n constructor(private http: HttpClient, private claimsService: ClaimsService, private claimsHeaderService: ClaimsHeaderService, private translate: TranslateService) {\n this.claimsService.currentClaims.subscribe(\n claims => (this.claims = claims)\n );\n }\n\n SoloGetAccountingSystemDetail(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.exportApiUrl}GetAccountingSystemDetail`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetAccountingIntegrationSteps(\n requestInfo: IApiRequest\n ): Observable<\n IApiresponse\n > {\n \n let body = JSON.stringify(requestInfo);\n return this.http.post<\n IApiresponse\n >(`${environment.exportApiUrl}GetAccountingIntegrationSteps`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n });\n }\n\n SoloTurnOnOffAccountingIntegration(\n requestInfo: IApiRequest\n ): Observable> {\n \n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.exportApiUrl}TurnOnOffAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloConnectToAccounting(\n requestInfo: IApiRequest\n ): Observable> {\n \n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.exportApiUrl}ConnectToAccounting`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n XeroAuthorize(\n requestInfo: IApiRequest\n ): Observable> {\n \n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.exportApiUrl}XeroAuthorize`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n QuickBooksAuthorize(\n requestInfo: IApiRequest\n ): Observable> {\n \n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.exportApiUrl}QuickBooksAuthorize`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloXeroSyncMasterData(\n requestInfo: IApiRequest\n ): Observable> {\n \n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.exportApiUrl}SyncMasterData`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloSyncAccountingMasterData(\n requestInfo: IApiRequest\n ): Observable> {\n \n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.exportApiUrl}SyncAccountingMasterData`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloCheckToken(\n requestInfo: IApiRequest\n ): Observable> {\n \n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.exportApiUrl}CheckToken`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloSaveAccountingSystemConfigurationSettings(\n requestInfo: IApiRequest\n ): Observable> {\n \n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.exportApiUrl}SaveAccountingSystemConfigurationSettings`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetAccountingSystemConfigurationSettings(\n requestInfo: IApiRequest\n ): Observable> {\n \n let body = JSON.stringify(requestInfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.exportApiUrl}GetAccountingSystemConfigurationSettings`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n SoloGetOrgCategoryByOrgCategoryId(\n orgExpenseCategoryId\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"orgExpenseCategoryId\", orgExpenseCategoryId);\n let url = `${environment.billingApiUrl}GetOrgCategoryByOrgCategoryId`;\n return this.http.get>(url,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader(), params: params });\n }\n\n SoloGetOrgManageCatListForAccounting(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetOrgManageCatListForAccounting`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetEmployeeForAccountingIntegration(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.billingApiUrl}GetEmployeeForAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetEmployeesDataByAccountingSystemModelId(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.exportApiUrl}GetEmployeesDataByAccountingSystemModelId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetTaxRateByAccountingSystemModelId(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.exportApiUrl}GetTaxRateByAccountingSystemModelId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetProjectsByAccountingSystemModelId(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.exportApiUrl}GetProjectsByAccountingSystemModelId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetTaxRateMasterAccounting(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.exportApiUrl}GetTaxRateMasterAccounting`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n SoloGetAccountsByAccountingSystemModelId(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.exportApiUrl}GetAccountsByAccountingSystemModelId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloSaveEmployeeMappingWithAccountingIntegration(\n requestinfo: IApiRequest<\n IRequestSaveEmployeeMappingWithAccountingIntegration[]\n >\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveEmployeeMappingWithAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloCheckActiveEmployeeMappedWithAccountingIntegration(\n requestinfo: IApiRequest<\n IRequestCheckActiveEmployeeMappedWithAccountingIntegration\n >\n ): Observable<\n IApiresponse\n > {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.billingApiUrl}CheckActiveEmployeeMappedWithAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n SoloSaveCategoryMappingWithAccountingIntegration(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveCategoryMappingWithAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetTaxesForAccountingIntegration(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.billingApiUrl}GetTaxesForAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetTallyTaxesForAccountingIntegration(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.billingApiUrl}GetTallyTaxesForAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloSaveTaxMappingWithAccountingIntegration(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveTaxMappingWithAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloSaveTallyTaxMappingWithAccountingIntegration(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveTallyTaxMappingWithAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloCheckActiveTaxMappedWithAccountingIntegration(\n requestinfo: IApiRequest<\n IRequestCheckActiveTaxMappedWithAccountingIntegration\n >\n ): Observable<\n IApiresponse\n > {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.billingApiUrl}CheckActiveTaxMappedWithAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloCheckActiveCategoryMappedWithAccountingIntegration(\n requestinfo: IApiRequest<\n IRequestCheckActiveCategoryMappedWithAccountingIntegration\n >\n ): Observable<\n IApiresponse\n > {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.billingApiUrl}CheckActiveCategoryMappedWithAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloAddUpdateOrgCategory(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}AddUpdateOrgCategory`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetColumnList(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(`${environment.exportApiUrl}GetColumnList`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n });\n }\n\n SoloSaveOrgNameAndColumnSelection(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(`${environment.exportApiUrl}SaveOrgNameAndColumnSelection`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n });\n }\n\n SoloCheckTallyColumnSelection(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(`${environment.exportApiUrl}CheckTallyColumnSelection`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n });\n }\n\n SoloCheckColumnSettingStepsComplete(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.exportApiUrl}CheckColumnSettingStepsComplete`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetCostCentreForAccountingIntegration(\n requestInfo: IApiRequest\n ): Observable<\n IApiresponse\n > {\n let body = JSON.stringify(requestInfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.billingApiUrl}GetCostCentreForAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloSaveCostCentreMappingWithAccountingIntegration(\n requestinfo: IApiRequest<\n IRequestSaveCostCentreMappingWithAccountingIntegration[]\n >\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveCostCentreMappingWithAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloCheckActiveCostCentreMappedWithAccountingIntegration(\n requestinfo: IApiRequest<\n IRequestCheckActiveCostCentreMappedWithAccountingIntegration\n >\n ): Observable<\n IApiresponse\n > {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse<\n IResponseCheckActiveCostCentreMappedWithAccountingIntegration\n >\n >(\n `${environment.billingApiUrl}CheckActiveCostCentreMappedWithAccountingIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloIntegrationAllStepsComplete(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.exportApiUrl}CheckAllStepsComplete`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetOrgAccountingSysSettingByOrgId(orgId: number): Observable> {\n let url = `${environment.exportApiUrl}GetOrgAccountingSysSettingByOrgId/` + orgId + ``;\n return this.http.get>(url, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n });\n }\n\n SoloUpdateAccountingParameterForCC(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.exportApiUrl}UpdateAccountingParameterForCC`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetTrackingCategoryDataByAccountingSystemModelId(\n requestInfo: IApiRequest\n ): Observable<\n IApiresponse\n > {\n let body = JSON.stringify(requestInfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.exportApiUrl}GetTrackingCategoryDataByAccountingSystemModelId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetDataForAccountingTrackingCategory(\n requestInfo: IApiRequest\n ): Observable<\n IApiresponse\n > {\n let body = JSON.stringify(requestInfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.billingApiUrl}GetDataForAccountingTrackingCategory`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloSaveEntityMappingWithAccountingTrackingCategory(\n requestinfo: IApiRequest<\n IRequestSaveEntityMappingWithAccountingTrackingCategories\n >\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveEntityMappingWithAccountingTrackingCategory`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetAdditionalStepsByAccountingSystemId(\n accountingSystemId\n ): Observable> {\n let url =\n `${environment.catalogApiUrl}GetAdditionalStepsByAccountingSystemId/` +\n accountingSystemId +\n ``;\n return this.http.get>(url, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n });\n }\n\n SoloCheckEntityMappedWithAccountingTrackingCategory(\n requestinfo: IApiRequest<\n IRequestCheckEntityMappingWithAccountingTrackingCategories\n >\n ): Observable<\n IApiresponse\n > {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse<\n IResponseCheckEntityMappedWithAccountingIntegration\n >\n >(\n `${environment.billingApiUrl}CheckEntityMappedWithAccountingTrackingCategory`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetReportFieldMasterForIntegration(\n requestinfo: IApiRequest<\n GetReportFieldMasterForIntegrationRequest\n >\n ): Observable<\n IApiresponse\n > {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.exportApiUrl}GetReportFieldMasterForIntegration`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AddAccountingFieldsMapping(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(`${environment.exportApiUrl}AddAccountingFieldsMapping`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n DeleteToken(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(`${environment.exportApiUrl}DeleteToken`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n\n //New Methods\n\n GetAccSystemDetail(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.exportApiUrl}GetAccSystemDetail`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetAccIntSteps(\n requestInfo: IApiRequest\n ): Observable<\n IApiresponse\n > {\n\n let body = JSON.stringify(requestInfo);\n return this.http.post<\n IApiresponse\n >(`${environment.exportApiUrl}GetAccIntSteps`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n });\n }\n\n GetEmployeeForAccInt(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(`${environment.billingApiUrl}GetEmployeeForAccIntCompany`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveMappingData(\n requestinfo: IApiRequest<\n MappingDataRequest\n >\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveMappingData`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetTaxesForAccInt(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}GetTaxesForAccIntCompany`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetProjectsForAccInt(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}GetProjectsForAccIntCompany`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetOrgManageCatListForAccInt(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}GetOrgManageCatListForAccIntCompany`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetTaxesForExpCatMap(taxReq: IApiRequest, accIntMasterReq: IApiRequest): Observable {\n let response = { taxList: null, taxMasterModel: null };\n return this.GetTaxesForAccInt(taxReq).pipe(mergeMap(taxesResponse => {\n return this.SoloGetTaxRateByAccountingSystemModelId(accIntMasterReq).pipe(map((taxMasterModelResponse: IApiresponse) => {\n\n if (taxMasterModelResponse && taxMasterModelResponse.responseInfo) {\n response.taxList = taxesResponse.responseInfo;\n }\n\n if (taxesResponse && taxesResponse.responseInfo) {\n response.taxMasterModel = taxMasterModelResponse.responseInfo;\n }\n\n return response;\n }));\n }));\n }\n\n GetAcctIntStepStatus(request: IApiRequest): Observable> {\n let body = JSON.stringify(request);\n return this.http.post>(`${environment.billingApiUrl}GetAcctIntStepStatus`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetTrackCategoryForAccInt(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(`${environment.billingApiUrl}GetTrackCategoryForAccInt`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetSupplierForAccInt(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(`${environment.billingApiUrl}GetSupplierForAccInt`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetTallyTaxesForAccIntCompany(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(`${environment.billingApiUrl}GetTallyTaxesForAccIntCompany`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetTallyCostCentersForAccIntCompany(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(`${environment.billingApiUrl}GetTallyCostCentersForAccIntCompany`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n CheckTrackingCategoryStatus(companyAcctIntStep: CompanyAcctIntStep): boolean {\n let isTrackingCategoryStepsMappedComplete = true;\n if (companyAcctIntStep && companyAcctIntStep.isLocationTrackingCategoryOn) {\n if (companyAcctIntStep.isLocationConfigured && !companyAcctIntStep.isLocationMapped) {\n isTrackingCategoryStepsMappedComplete = false;\n }\n }\n\n if (companyAcctIntStep && companyAcctIntStep.isCostCentreTrackingCategoryOn) {\n if (companyAcctIntStep.isCostCenterConfigured && !companyAcctIntStep.isCostCenterMapped) {\n isTrackingCategoryStepsMappedComplete = false;\n }\n }\n\n return isTrackingCategoryStepsMappedComplete;\n }\n\n GetAccSysName(accSysId: number): string {\n switch (accSysId) {\n case AccountingSystemMasterEnum.Tally:\n return this.translate.instant(\"tally\");\n case AccountingSystemMasterEnum.Xero:\n return this.translate.instant(\"xero\");\n case AccountingSystemMasterEnum.QuickBooks:\n return this.translate.instant(\"quickbooks\");\n case AccountingSystemMasterEnum.Sage50:\n return this.translate.instant(\"sage_50\");\n case AccountingSystemMasterEnum.Sage200:\n return this.translate.instant(\"sage_200_beta\");\n default:\n return \"\";\n\n }\n }\n\n GetAccSysType(accSysId: number): number {\n switch (accSysId) {\n case AccountingSystemMasterEnum.Tally:\n case AccountingSystemMasterEnum.Sage50:\n case AccountingSystemMasterEnum.Sage200:\n return AccountingSystemTypeEnum.NonRealtime;\n case AccountingSystemMasterEnum.Xero:\n case AccountingSystemMasterEnum.QuickBooks:\n return AccountingSystemTypeEnum.Realtime;\n default:\n return AccountingSystemTypeEnum.NonRealtime;\n\n }\n }\n\n GetDomainListByCompanyId(\n companyId\n ): Observable> {\n\n return this.http.get>(\n `${environment.exportApiUrl}GetAcctIntDomainList/${companyId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n GetXeroBankTransactionsListCompanyId(\n companyId\n ): Observable> {\n\n return this.http.get>(\n `${environment.exportApiUrl}GetXeroBankTransactions/${companyId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n GetXeroBankTransactionsToImportCompanyId(\n companyId\n ): Observable> {\n\n return this.http.get>(\n `${environment.exportApiUrl}GetXeroBankTransactionsToImport/${companyId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n GetDomainEmployeeListByCompanyId(\n companyId\n ): Observable> {\n\n return this.http.get>(\n `${environment.exportApiUrl}GetAcctIntEmployeeSyncList/${companyId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n UpdateAutoSyncSettingWithDomainList(request: IApiRequest): Observable {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.exportApiUrl}UpdateAutoSyncSettingWithDomainList`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n IgnoreSyncEmployees(request: IApiRequest): Observable {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.exportApiUrl}IgnoreSyncEmployees`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n SyncEmployees(request: IApiRequest): Observable {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.exportApiUrl}SendAcctIntEmployeeSyncEODBackground`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n UpdateIgnoreDomainsList(request: IApiRequest): Observable {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.exportApiUrl}IgnoreDomainList`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n IgnoreBankAccountList(request: IApiRequest): Observable {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.exportApiUrl}IgnoreBankAccountList`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n DomainListWithCountsByStatus(\n companyId): Observable {\n\n return this.http.get>(\n `${environment.exportApiUrl}DomainListWithCountsByStatus/${companyId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n GetConfigSettingsForEmployeeAutomation(\n companyId): Observable> {\n\n return this.http.get>(\n `${environment.exportApiUrl}GetConfigSettingsForEmployeeAutomation/${companyId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n UpdateAutoSyncSettingAndHidePanel(request: IApiRequest): Observable {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.exportApiUrl}UpdateAutoSyncSettingAndHidePanel`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n GetAccSysCreditCardMappingList(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.exportApiUrl}GetAccSysCreditCardMappingList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UpdateConfigurationSetup(\n requestInfo: IApiRequest\n ): Observable> {\n \n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.exportApiUrl}UpdateConfigurationSetup`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n RevokeToken(\n requestInfo: IApiRequest\n ): Observable> {\n \n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.exportApiUrl}RevokeToken`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n refreshAccessTokenPermissions(code, request) {\n\n let body = JSON.stringify(request);\n return this.http\n .post(`${environment.exportApiUrl}RefreshAccessTokenPermissions/`+code, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() })\n .pipe(\n map((forgotPasswordResponse) => {\n return forgotPasswordResponse;\n })\n );\n }\n\n}\n\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { environment } from 'src/environments/environment';\nimport { first, mergeMap, map } from 'rxjs/operators';\nimport { ToastrService } from 'ngx-toastr';\nimport { FunctionPackageEnum, ApiRequest } from 'src/app/_models';\nimport { GetCartDetailsRequest, ICartDetailsRequest, CartDetailsRequest } from 'src/app/_models/organisation-setting/organisation-setting';\nimport { ClaimsService } from 'src/app/_services/common/claims.service';\nimport { OrganisationSettingService } from 'src/app/_services/organisation-setting/organisation-setting.service';\nimport { NRFCConfigModel } from 'src/app/_models/NrFc/nrfcconfig-model';\nimport { RSAHelper } from 'src/app/_helpers/RSAHelper';\nimport { Claims } from 'src/app/_models/common/claims';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NrFcLogicsService {\n nrfcConfigModel: NRFCConfigModel = new NRFCConfigModel();\n constructor(private router: Router, private organisationSettingService: OrganisationSettingService\n , private toastr: ToastrService, private translate: TranslateService, private claimsService: ClaimsService) {\n this.nrfcConfigModel.claims = new Claims();\n this.claimsService.currentClaims.subscribe((claims) => {\n this.nrfcConfigModel.claims = claims;\n });\n }\n\n checkForFunctionPurchased(): Observable {\n return this.organisationSettingService\n .getSubscribedFunctionsForOrganisation(this.nrfcConfigModel.claims.OrgId)\n .pipe(map((subsData) => {\n var fuelCard = subsData.responseInfo.find(\n (x) => x.functionID == FunctionPackageEnum.FuelCard\n );\n var nonReimbursableFuel = subsData.responseInfo.find(\n (x) => x.functionID == FunctionPackageEnum.NonReimbursableFuel\n );\n if (fuelCard == undefined) { this.nrfcConfigModel.isFuelCardPurchased = false; } else { this.nrfcConfigModel.isFuelCardPurchased = true; }\n if (nonReimbursableFuel == undefined) { this.nrfcConfigModel.isNonReimbursableFuelPurchased = false; } else { this.nrfcConfigModel.isNonReimbursableFuelPurchased = true; }\n return this.nrfcConfigModel;\n }));\n }\n getCartDetails(): Observable {\n this.nrfcConfigModel.getCartDetailsRequest = new ApiRequest(\n \"SoloGetCartDetails\",\n 1,\n \"111\"\n );\n this.nrfcConfigModel.getCartDetailsRequest.requestInfo = new GetCartDetailsRequest(\n this.nrfcConfigModel.claims.UserId,\n this.nrfcConfigModel.claims.OrgId\n );\n\n return this.organisationSettingService\n .getCartDetailsList(this.nrfcConfigModel.getCartDetailsRequest)\n .pipe(map((data) => {\n if (data.responseInfo != null) {\n this.nrfcConfigModel.claims.CartCount = data.responseInfo.listCartDetails.length;\n this.claimsService.updateClaims(this.nrfcConfigModel.claims);\n this.nrfcConfigModel.cartList = data.responseInfo.listCartDetails;\n this.nrfcConfigModel.isFuelCardInCart = this.nrfcConfigModel.cartList.some(\n (item) => item.functionPackageId == this.nrfcConfigModel.functionPackageEnum.FuelCard\n );\n this.nrfcConfigModel.isNonReimbursableFuelInCart = this.nrfcConfigModel.cartList.some(\n (item) => item.functionPackageId == this.nrfcConfigModel.functionPackageEnum.NonReimbursableFuel\n );\n return this.nrfcConfigModel;\n\n } else {\n this.toastr.error(data.errorInfo[0].message);\n }\n },\n (error) => {\n this.toastr.error(error);\n }\n ));\n }\n fnSaveCartDetails(nrfcConfigModel: NRFCConfigModel): void {\n let functionPackageName = '';\n let functionPackageId = 0;\n if (!nrfcConfigModel.isFuelCardPurchased) {\n functionPackageName = this.translate.instant(\"fuel_card\");\n functionPackageId = nrfcConfigModel.functionPackageEnum.FuelCard;\n }\n else {\n functionPackageName = this.translate.instant(\"non_reimbursable_fuel\")\n functionPackageId = nrfcConfigModel.functionPackageEnum.NonReimbursableFuel;\n }\n let request = new ApiRequest(\n \"SaveCartDetails\",\n environment.applicationVersion,\n environment.requestId\n );\n request.requestInfo = new CartDetailsRequest(\n nrfcConfigModel.claims.UserId,\n nrfcConfigModel.claims.OrgId,\n false,\n functionPackageId,\n functionPackageName\n );\n this.organisationSettingService\n .SaveCartDetails(request)\n .pipe(first())\n .subscribe(\n (data) => {\n if (data.statusCode == 0) {\n nrfcConfigModel.claims.CartCount += 1;\n this.claimsService.updateClaims(nrfcConfigModel.claims);\n this.router.navigate([\"/shoppingcartlist\"]);\n } else {\n this.toastr.error(data.errorInfo[0].message);\n }\n },\n (error) => {\n this.toastr.error(error);\n }\n );\n }\n fnPopUpSvgUrl(value, nrfcConfigModel: NRFCConfigModel) {\n let url = '';\n switch (value) {\n case 1:\n if (!nrfcConfigModel.isFuelCardPurchased) {\n url = '../../assets/svg-icons/Fuel_card.svg';\n }\n else { url = '../../assets/svg-icons/NR_Fuel.svg'; }\n break;\n case 2:\n case 3:\n if (!nrfcConfigModel.isFuelCardPurchased) {\n url = '../../assets/images/nr_fc_example.png';\n }\n else { url = '../../assets/images/nr_fc_example.png'; }\n break;\n }\n return url;\n }\n fnGetPopUpText(value, nrfcConfigModel: NRFCConfigModel) {\n let text = '';\n switch (value) {\n case 1:\n if (!nrfcConfigModel.isFuelCardPurchased) {\n text = this.translate.instant(\"fuel_card\");\n }\n else { text = this.translate.instant(\"non_reimbursable_fuel\") }\n break;\n case 2:\n if (!nrfcConfigModel.isFuelCardPurchased) {\n text = this.translate.instant(\"markettingpopup_fc_text2\");\n }\n else { text = this.translate.instant(\"markettingpopup_nr_text2\") }\n break;\n case 3:\n if (!nrfcConfigModel.isFuelCardPurchased) {\n text = this.translate.instant(\"markettingpopup_fc_text3\");\n }\n else { text = this.translate.instant(\"markettingpopup_fc_text3\"); }\n break;\n }\n return text;\n }\n routerNavigate(nrfcConfigModel: NRFCConfigModel): void {\n let isFree = \"false\";\n let packagePath = 'nrfc';\n let functionPackageName = '';\n let functionPackageId = '';\n if (!nrfcConfigModel.isFuelCardPurchased) {\n functionPackageName = this.translate.instant(\"fuel_card\");\n functionPackageId = nrfcConfigModel.functionPackageEnum.FuelCard.toString();\n }\n else {\n functionPackageName = this.translate.instant(\"non_reimbursable_fuel\")\n functionPackageId = nrfcConfigModel.functionPackageEnum.NonReimbursableFuel.toString();\n }\n\n let functionStatus = \"0\";\n this.router.navigate([\"/addtocart\"], {\n queryParams: {\n isFree: this.EncryptParameters(isFree),\n packagePath: this.EncryptParameters(packagePath),\n functionPackageName: this.EncryptParameters(functionPackageName),\n functionPackageId: this.EncryptParameters(functionPackageId),\n functionStatus: this.EncryptParameters(functionStatus),\n },\n });\n }\n EncryptParameters(encryptValue) {\n let rsaHelper = new RSAHelper();\n let encrypt = rsaHelper.Encrypt(encryptValue);\n return encrypt;\n }\n DecryptParameters(encryptedParam): string {\n let rsaHelper = new RSAHelper();\n let decrypt = rsaHelper.Decrypt(encryptedParam);\n return decrypt;\n }\n fnCheckDisable(nrfcConfigModel: NRFCConfigModel) {\n if (!nrfcConfigModel.isFuelCardPurchased) {\n return nrfcConfigModel.isFuelCardInCart\n }\n else {\n return nrfcConfigModel.isNonReimbursableFuelInCart\n }\n }\n fnDisplayMarketingPopUp() {\n this.nrfcConfigModel.isMarketingPopUpDisplay = true;\n return this.nrfcConfigModel;\n }\n fnNavigateUrl(nrfcStatus) {\n if (nrfcStatus == this.nrfcConfigModel.nrFCStatusEnum.NR) {\n this.router.navigate([\"nrfc/nrownershiplist\"]);\n }\n else {\n this.router.navigate([\"nrfc/fcownershiplist\"]);\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, of } from 'rxjs';\nimport { environment } from '../../../environments/environment';\nimport {\n IMileageWizardRequestDto, IApiRequest, IApiresponse,\n IOrgMileageWizardInfo, ISaveMileageWizardResponseDto\n} from '../../_models';\nimport { ClaimsHeaderService } from 'src/app/shared/claimsHeader/claims-header.service';\nimport { map } from 'rxjs/operators';\nimport { ISaveOrgMileageWizardResponse } from 'src/app/_models/advance-mileage/save-org-mileage-wizard-response';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MileageWizardService {\n //httpHeaders: any = this.header.createAuthorizationHeader();\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService) { }\n\n\n GetOrgWizardDetails(request: IApiRequest): Observable> {\n const cacheKey = \"OrgWizardDetailsCache_\" + request.requestInfo.orgId;\n let cacheData = sessionStorage.getItem(cacheKey);\n if (cacheData) {\n return of(JSON.parse(cacheData));\n }\n else {\n let body = JSON.stringify(request);\n // changed to billing\n return this.http.post>(`${environment.billingApiUrl}GetOrgMileageWizardDetails`,\n body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }).pipe(map(data => {\n sessionStorage.setItem(cacheKey, JSON.stringify(data));\n return data;\n }));\n }\n }\n\n DropOrgWizardDetailsCache(organisationId) {\n const cacheKey = \"OrgWizardDetailsCache_\" + organisationId;\n sessionStorage.removeItem(cacheKey);\n }\n\n SaveOrgWizardDetails(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n // changed to billing\n return this.http.post>(`${environment.billingApiUrl}SaveOrgMileageWizardDetails`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveOrgCartDetails(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n // changed to billing\n return this.http.post>(`${environment.billingApiUrl}SaveOrgCartMileageInfo`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveMultipleVehicleSetup(request: IApiRequest): Observable> {\n let body = JSON.stringify(request);\n return this.http.post>(`${environment.billingApiUrl}SaveMultipleVehicleSetup`,\n body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }).pipe(map(data => {\n return data;\n }));\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ClaimsService } from \"../common/claims.service\";\nimport { environment } from \"src/environments/environment\";\nimport {\n IApiRequest,\n IApiresponse,\n IRequestVehicleTypes,\n IOrgUKRateDefaultUIVehicle,\n IOrgUKRateSelectedVehiclesResponse,\n ApiRequest,\n RequestVehicleTypes,\n FunctionPackageEnum,\n AlertPanelTypeEnum,\n} from \"src/app/_models\";\nimport { Observable, Subscription } from \"rxjs\";\nimport {\n IOrgOfficeCodesRequest,\n IOfficeDetails,\n ISaveOfficePostcodeResponse,\n} from \"src/app/_models/advance-mileage/org-office-codes\";\nimport { IHomeWorkerEmployeesListRequest } from \"src/app/_models/advance-mileage/home-worker-employees-list-request\";\nimport {\n IEmployeeListByVehicleRequest, IOrgUKMileageVehicleTypesWithCounter,\n IUserByVehicleList, IEmployeeListByVehicleMapIdRequest, IVehicleReportRequest, IVehicleReportResponse\n} from 'src/app/_models/advance-mileage/quick-vehicle-assignment';\nimport { IHomeWorkerEmployeeListResponse } from \"src/app/_models/advance-mileage/home-worker-employee-list-response\";\nimport { IEmployeeHomeWorkerCounterRequest } from \"src/app/_models/advance-mileage/employee-home-worker-counter-request\";\nimport { IEmployeeHomeWorkerCounterResponse } from \"src/app/_models/advance-mileage/employee-home-worker-counter-response\";\nimport { ISaveHomeWorkerListRequest } from \"src/app/_models/advance-mileage/save-home-worker-list-request\";\nimport { ISaveOrgMileageWizardResponse } from \"src/app/_models/advance-mileage/save-org-mileage-wizard-response\";\nimport { IOfficeWorkerEmployeeListResponse } from \"src/app/_models/advance-mileage/office-worker-employee-list-response\";\nimport { ISaveOfficeWorkerListRequest } from \"src/app/_models/advance-mileage/save-office-worker-list-request\";\nimport { IFetchMilesRequest } from \"src/app/_models/advance-mileage/fetch-miles-request\";\nimport { IFetchMilesResponse } from \"src/app/_models/advance-mileage/fetch-miles-response\";\nimport { ISubscriptionMileageRequest } from \"src/app/_models/advance-mileage/subscription-mileage-request\";\nimport { IEmployeeVehicleCounterRequest } from \"src/app/_models/advance-mileage/employee-vehicle-counter-request\";\nimport { IAdvVehicleTypeCounter } from \"src/app/_models/advance-mileage/adv-vehicle-type-counter\";\nimport { IOrgBasicMileageVehicleTypes } from \"src/app/_models/advance-mileage/org-basic-mileage-vehicle-types\";\nimport { IMileageAnalysisRequest, IMileageAnalysisResponse } from 'src/app/_models/advance-mileage/mileage-analysis';\n\nimport { IOrgUKRatesByOrgMapIdResponse } from \"src/app/_models/advance-mileage/org-ukrates-by-org-map-id-response\";\nimport { ITaxRateMasterResponse } from \"src/app/_models/manage-category/tax-rate-master-response\";\nimport { IVehicleTypeMasterInfo } from \"src/app/_models/advance-mileage/vehicle-type-master-info\";\nimport {\n IUkRateInfo,\n SaveOwnershiptypeRequest,\n} from \"src/app/_models/advance-mileage/uk-rate-info\";\nimport { IValidateOwnershipDeactiveRequest } from \"src/app/_models/advance-mileage/validate-ownership-deactive-request\";\nimport { IValidateEffectiveDateRequest } from \"src/app/_models/advance-mileage/validate-effective-date-request\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport {\n ICartDetailsRequest,\n ICartDetailsResponse,\n IPurchaseFunctionListRequest,\n PurchaseFunctionListRequest,\n} from \"src/app/_models/organisation-setting/organisation-setting\";\nimport { ValidateOwnershipNameRequest } from \"src/app/_models/advance-mileage/validate-ownership-name-request\";\nimport {\n IAddUpdateUserVehicleRequest,\n IReqVehicleExpenseCounter,\n IRespVehicleExpenseCounter,\n} from \"../../_models\";\nimport { OrganisationSettingService } from \"../organisation-setting/organisation-setting.service\";\nimport {\n KeyValueArray,\n Wizard,\n WizardDetailRequest,\n WizardResponse,\n} from \"src/app/_models/common/wizard\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { map } from \"rxjs/operators\";\nimport { MarketingPopup } from \"src/app/_models/common/marketing-popup\";\nimport { OrgOwnershipTypeResponse } from \"src/app/_models/advance-mileage/org-ukmileage-rate-info\";\n@Injectable({\n providedIn: \"root\",\n})\nexport class UkMileageRateSettingService {\n //defaultParams: IDefaultParams;\n //deviceInfo: IDeviceInfo;\n //httpHeaders: HttpHeaders;\n orgId: number;\n userId: number;\n token: string;\n loginid: string;\n //organisationCurrency: string;\n claims: Claims;\n //httpHeaders: any = this.header.createAuthorizationHeader();\n claimsSubscription: Subscription;\n constructor(\n private http: HttpClient,\n private translate: TranslateService,\n private claimsHeaderService: ClaimsHeaderService,\n private claimsService: ClaimsService,\n private organisationSettingService: OrganisationSettingService\n ) {\n this.claimsSubscription = this.claimsService.currentClaims.subscribe(\n (claims) => {\n this.claims = claims;\n this.orgId = this.claims.OrgId;\n this.userId = this.claims.UserId;\n this.token = this.claims.Token;\n this.loginid = this.claims.LoginId;\n }\n );\n }\n\n SoloGetOrgUKRateSelectedVehicles(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetOrgUKRateSelectedVehicles`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n SoloGetOrgOfficeCodes(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetOrgOfficeCodes`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n SoloSaveOfficePostcode(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveOfficePostcode`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetEmployeeHomeWorkerList(): Observable<\n IApiresponse\n > {\n return this.http.get>(\n `${environment.billingApiUrl}GetEmployeeHomeWorkerList`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetEmployeeOfficeWorkerList(userId = 0): Observable<\n IApiresponse\n > {\n if (userId) {\n return this.SoloGetEmployeeOfficeWorkerListWithUserId(userId)\n }\n else {\n return this.http.get>(\n `${environment.billingApiUrl}GetEmployeeOfficeWorkerList`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n \n }\n SoloGetEmployeeOfficeWorkerListWithUserId(\n userId\n ): Observable> {\n let url = `${environment.billingApiUrl}GetEmployeeOfficeWorkerList/` + userId + ``;\n return this.http.get>(url, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n\n SoloGetEmployeeHomeWorkerCounter(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetEmployeeHomeWorkerCounter`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloSaveEmployeeWorkFromHome(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveEmployeeWorkFromHome`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloSaveOfficeWorker(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveOfficeWorker`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UpdateOfficeWorker(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}UpdateEmployeeOfficeWorkerDistance`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloFetchDistance(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}FetchDistance`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetEmployeeAdvVehicleCounter(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetAdvEmployeeVehicleCounter`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetOrgOwnershipType(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetOrgOwnershipType`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetAllTaxRates(): Observable> {\n let url = `${environment.billingApiUrl}GetAllTaxRatesForExpenseCategory/`;\n return this.http.get>(url, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n\n SoloGetMasterVehicles(\n rateType\n ): Observable> {\n let url = `${environment.catalogApiUrl}GetMasterVehicles/` + rateType + ``;\n return this.http.get>(url, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n\n SoloSaveUKMileageRate(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveUKMileageRate`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetOrgUKActiveRateByOrgMapId(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetOrgUKActiveRateByOrgMapId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloValidateEffectiveDate(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}ValidateEffectiveDate`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloValidateOwnershipDeactive(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}ValidateOwnershipDeactive`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n SoloDeleteMileageRateSlab(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}DeleteMileageRateSlab`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetOrganisationDetail() {\n let params = new HttpParams();\n params = params.append(\"LoginId\", this.loginid);\n params = params.append(\"Userid\", this.userId.toString());\n\n const httpHeaders = new HttpHeaders({\n \"Content-Type\": \"application/json\",\n Authorization: \"Bearer \" + localStorage.getItem(\"loginToken\"),\n 'Ocp-Apim-Subscription-Key': environment.apimSubscriptionKey,\n 'Ocp-Apim-Trace': environment.apimTraceEnabled\n });\n return this.http.get>(\n `${environment.billingApiUrl}OrganisationDetail`,\n { headers: httpHeaders, params: params }\n );\n }\n\n SoloGetOrgUKVehicleTypeWithCount(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetOrgUKVehicleTypeWithCount`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetUserByVehicleMapIdList(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetUserByVehicleMapIdList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetVehicleReport(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetVehicleReport`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetMileageAnalysisReport(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetMileageAnalysisReport`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloCheckFunctionPurchased(\n functionId: string\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"functionId\", functionId);\n let url = `${environment.billingApiUrl}CheckFunctionPurchased`;\n return this.http.get>(url, {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n SaveCartDetails(\n requestinfo: IApiRequest\n ): Observable> {\n requestinfo.requestInfo.UserId = this.userId;\n requestinfo.requestInfo.OrganisationId = this.orgId;\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.catalogApiUrl}SaveCartDetails`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n SoloValidateOwnerhipName(\n requestinfo: IApiRequest\n ): Observable> {\n requestinfo.requestInfo.userId = this.userId;\n requestinfo.requestInfo.orgId = this.orgId;\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}ValidateOwnerhipName`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n SoloIsExpenseExistForVehicleType(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}IsExpenseExistForVehicleType`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetOrgAssignMileageRateToGrades(): Observable> {\n let url = `${environment.billingApiUrl}GetOrgAssignMileageRateToGrades`;\n return this.http.get>(url, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n\n SoloSaveAssignMileageRateToGrades(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveAssignMileageRateToGradesByGrade`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetAssignMileageRateToGradesByGrade(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetOrgAssignMileageRateToGradesByGrade`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetEmployeedAssignedToGrade(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetAssignedEmployeeListToGrade`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloAddUpdateEmployeeVehicle(\n requestinfo: IApiRequest,\n claims: Claims\n ): Observable> {\n this.claims = claims;\n let functionIds = this.fnGetPurchaseFunctionList();\n requestinfo.requestInfo.purchaseFunctionList = functionIds;\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}AddUpdateUserVehicle`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetMileageAllowanceList(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetMileageAllowanceList`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SoloGetAllowanceWizardDetails(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetAllowanceWizardDetails`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n GetWizardDetails(\n requestinfo: IApiRequest\n ): Observable {\n let body = JSON.stringify(requestinfo);\n return this.http\n .post>(\n `${environment.billingApiUrl}GetWizardDetails`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n )\n .pipe(\n map((result) => {\n return this.mapwizard(result.responseInfo.wizardList);\n })\n );\n }\n GetWizardDetailWithOtherData(\n requestinfo: IApiRequest\n ): Observable {\n let body = JSON.stringify(requestinfo);\n return this.http\n .post>(\n `${environment.billingApiUrl}GetWizardDetails`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n )\n .pipe(map((result) => {\n return this.mapwizardWIthOtherDetail(result.responseInfo);\n })\n );\n }\n\n SoloGetVehicleAndExpenseCounter(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetVehicleExpenseCounter`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n fnGetPurchaseFunctionList() {\n let request = new ApiRequest(\n \"SoloPurchaseFunctionList\",\n environment.applicationVersion,\n environment.requestId\n );\n request.requestInfo = new PurchaseFunctionListRequest(\n this.claims.UserId,\n this.claims.OrgId\n );\n let functionIds = [];\n this.organisationSettingService\n .soloPurchaseFunctionList(request)\n .subscribe((data: IApiresponse) => {\n if (data.responseInfo.orgPaidFunctionList.length > 0) {\n let purchaseFuncListDetails =\n data.responseInfo.orgPaidFunctionList[0].paidFunctions;\n purchaseFuncListDetails.forEach((element) => {\n functionIds.push(element.functionId);\n });\n }\n });\n return functionIds;\n }\n\n fnGetMileagerate(vehicleTypes, orgVehicleTypeMapId) {\n let mileageRate = \"\";\n if (orgVehicleTypeMapId && vehicleTypes) {\n let item = vehicleTypes.find(\n (i) => i.orgVehicleTypeMapId == orgVehicleTypeMapId\n );\n if (item) {\n let mileageArray = item.mileageRateInfo;\n if (mileageArray && mileageArray.length > 1) {\n for (let index = 0; index < mileageArray.length; index++) {\n const element = mileageArray[index];\n if (index == 0) {\n mileageRate = element.mileageRate;\n } else {\n mileageRate = mileageRate + \" / \" + element.mileageRate;\n }\n }\n }\n if (mileageArray && mileageArray.length == 1) {\n mileageRate = mileageArray[0].mileageRate;\n }\n }\n }\n return mileageRate;\n }\n fnKeyValueReplaceString(keyValueArray: KeyValueArray[], text: string) {\n if (keyValueArray) {\n for (let index = 0; index < keyValueArray.length; index++) {\n let replacer = \"##\" + index + \"##\";\n text = text.replace(\n replacer,\n this.translate.instant(keyValueArray[index].value)\n );\n }\n return text;\n }\n }\n mapwizardWIthOtherDetail(wizardData: WizardResponse): WizardResponse {\n const result: WizardResponse = new WizardResponse();\n result.cancelledFuncListDetails = wizardData.cancelledFuncListDetails;\n result.purchasedFunctionList = wizardData.purchasedFunctionList;\n result.mileageValidationDate = wizardData.mileageValidationDate;\n result.wizardList = this.mapwizard(wizardData.wizardList);\n return result;\n }\n mapwizard(wizardData): Wizard[] {\n const result: Wizard[] = [];\n wizardData.forEach((row) => {\n if (row) {\n result.push({\n iconClass: row.iconClass,\n iconPlacement: row.iconPlacement,\n iconTooltip: this.translate.instant(row.iconTooltip),\n isStepMandatory: row.isStepMandatory,\n progressbarMessage: this.fnKeyValueReplaceString(\n row.progressbarMessageArray,\n row.progressbarMessage\n ),\n progressbarMessageArray: row.progressbarMessageArray,\n progressbarType: row.progressbarType,\n progressbarValue: row.progressbarValue,\n stepClass: row.stepClass,\n stepDesc: this.translate.instant(row.stepDesc),\n stepDescMessage: this.fnKeyValueReplaceString(\n row.stepDescMessageArray,\n row.stepDescMessage\n ),\n stepDescMessageArray: row.stepDescMessageArray,\n stepExtraMessage: this.fnKeyValueReplaceString(\n row.stepExtraMessageArray,\n row.stepExtraMessage\n ),\n stepExtraMessageArray: row.stepExtraMessageArray,\n stepName: this.translate.instant(row.stepName),\n stepNum: row.stepNum,\n alertPanelType: row.alertPanelType,\n functionId: row.functionId,\n highlightStep: 0,\n isDisabled: row.isDisabled,\n isInfoIcon: row.isInfoIcon,\n infoIconMsg: row.infoIconMsg,\n stepUrl: row.stepurl,\n isProgressBar:row.isProgressBar,\n disabledClass:row.disabledClass,\n comingSoonDesc:row.comingSoonDesc\n });\n }\n });\n return result;\n }\n marketingPopupPanel: MarketingPopup;\n fnDisplayMarketingPopUp(FunctionId) {\n switch (FunctionId) {\n case FunctionPackageEnum.NonReimbursableFuel:\n this.marketingPopupPanel = new MarketingPopup(\n this.translate.instant(\"non_reimbursable_fuel\"),\n this.translate.instant(\"markettingpopup_nr_text2\"),\n this.translate.instant(\"markettingpopup_nr_text3\"),\n null,\n \"../../assets/svg-icons/NR_Fuel.svg\",\n \"../../assets/images/nr_fc_example.png\",\n this.translate.instant(\"non_reimbursable_dependency_msg\"),\n FunctionPackageEnum.NonReimbursableFuel,\n this.translate.instant(\"non_reimbursable_fuel\"),\n \"nrfc\",\n FunctionPackageEnum.SetupAdvancedMileage,\n FunctionPackageEnum.SetupTaxRate\n );\n break;\n case FunctionPackageEnum.FuelCard:\n this.marketingPopupPanel = new MarketingPopup(\n this.translate.instant(\"fuel_card\"),\n this.translate.instant(\"markettingpopup_fc_text2\"),\n this.translate.instant(\"markettingpopup_fc_text3\"),\n null,\n \"../../assets/svg-icons/Fuel_card.svg\",\n \"../../assets/images/nr_fc_example.png\",\n this.translate.instant(\"fuel_card_dependency_msg\"),\n FunctionPackageEnum.FuelCard,\n this.translate.instant(\"fuel_card\"),\n \"nrfc\",\n FunctionPackageEnum.SetupAdvancedMileage,\n 0\n );\n break;\n case FunctionPackageEnum.SetupAdvancedMileage:\n this.marketingPopupPanel = new MarketingPopup(\n this.translate.instant(\"setup_advanced_mileage\"),\n this.translate.instant(\"mileage_marketing_title\"),\n this.translate.instant(\"mileage_marketing_description\"),\n null,\n \"../../assets/svg-icons/MileageRatesMarketing.svg\",\n \"../../assets/images/setupAdvancedMileage.png\",\n \"\",\n FunctionPackageEnum.SetupAdvancedMileage,\n this.translate.instant(\"setup_advanced_mileage\"),\n \"orgsetting/mileagewizard\",\n 0,\n 0\n );\n break;\n case FunctionPackageEnum.PassengerLoadMiles:\n this.marketingPopupPanel = new MarketingPopup(\n this.translate.instant(\"passenger_load_miles\"),\n this.translate.instant(\"passenger_load_miles_marketing_msg1\"),\n this.translate.instant(\"passenger_load_miles_marketing_msg2\"),\n null,\n \"../../assets/svg-icons/Passenger_Load.svg\",\n \"../../assets/images/Passenger_Load.png\",\n \"\",\n FunctionPackageEnum.PassengerLoadMiles,\n this.translate.instant(\"passenger_load_miles\"),\n \"orgsetting/mileageAllowance\",\n FunctionPackageEnum.SetupAdvancedMileage,\n 0\n );\n break;\n case FunctionPackageEnum.MultipleVehicle:\n this.marketingPopupPanel = new MarketingPopup(\n this.translate.instant(\"multiple_vehicle\"),\n this.translate.instant(\"multiple_vehicle_marketing_msg1\"),\n this.translate.instant(\"multiple_vehicle_marketing_msg2\"),\n null,\n \"../../assets/svg-icons/MultipleVehicleMarketing.svg\",\n \"../../assets/images/MultipleVehicleMarketing.png\",\n \"\",\n FunctionPackageEnum.MultipleVehicle,\n this.translate.instant(\"multiple_vehicle\"),\n \"orgsetting/mileageAllowance\",\n FunctionPackageEnum.SetupAdvancedMileage,\n 0\n );\n break;\n }\n return this.marketingPopupPanel;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { environment } from \"../../../environments/environment\";\nimport { Observable } from \"rxjs\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { Apiresponse, IApiRequest, IApiresponse } from \"src/app/_models\";\nimport {\n AdvanceClaimantListResponse, AdvanceListResponse, OrganisationAdvancesSettings, AdvanceApproverActionRequest,\n AdvanceDetailResponse, IAdvanceRequest, AdvancePassbookData, AdvanceReturnSaveRequest, AdvancePassbookSummaryData,\n AdvancePassbookItem,\n SendAdvanceReturnRequest,\n AdvanceSaveRequest,\n AdvanceCappingPolicy,\n AdvanceClaimantCappingPolicy,\n AdvanceSubmitResponse,\n AdvancePolicyDashboardData,\n SaveAdvanceGradeCappingPolicy\n} from \"../../_models/advances/advances\";\nimport { ApiRequest } from \"src/app/_models\";\nimport { RSAHelper } from \"src/app/_helpers/RSAHelper\";\nimport { map } from \"rxjs/operators\";\nimport { IReceiptInfo } from \"src/app/_models/twostepapproval/claimant-expense-detail\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AdvancesService {\n\n httpHeaders: HttpHeaders;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService\n ) {\n\n }\n\n saveAdvanceSettings(request: ApiRequest) {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.billingApiUrl}SaveAdvanceSettings`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n getAdvanceSettings(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetAdvanceSettings`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n switchAdvanceCappingPolicy(): Observable> {\n return this.http.post>(\n `${environment.billingApiUrl}SwitchAdvanceCappingPolicy`,\n null,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n saveClaimantCappingPolicy(request: ApiRequest): Observable> {\n let body = JSON.stringify(request);\n return this.http.post>(\n `${environment.billingApiUrl}SaveAdvanceClaimantCappingPolicy`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n saveGradeCappingPolicy(request: ApiRequest): Observable> {\n let body = JSON.stringify(request);\n return this.http.post>(\n `${environment.billingApiUrl}SaveAdvanceGradeCappingPolicy`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n getAdvanceCappingPolicy(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetAdvanceCappingPolicyForOrg`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n getAdvancesClaimantList(status): Observable> {\n return this.http.get>(\n `${environment.expenseApiUrl}GetAdvancesClaimantList?status=${status}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n getAdvancesListForClaimant(status, userId, userHomeCurrencyId): Observable> {\n return this.http.get>(\n `${environment.expenseApiUrl}GetAdvancesListForClaimant?status=${status}&userId=${userId}&uhcId=${userHomeCurrencyId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n submitAdvanceApproverAction(request: IApiRequest): Observable {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.expenseApiUrl}SubmitAdvanceApproverAction`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n getAdvanceDetails(advanceId): Observable> {\n return this.http.get>(\n `${environment.expenseApiUrl}GetAdvanceDetails?advanceId=${advanceId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n getAdvanceReceipts(advanceId): Observable> {\n return this.http.get>(\n `${environment.expenseApiUrl}GetAdvanceReceipts?advanceId=${advanceId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n getExpenseReceipts(expenseId): Observable> {\n return this.http.get>(\n `${environment.expenseApiUrl}GetExpenseReceipts?expenseId=${expenseId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n getAdvancesPassbook(userId): Observable {\n return this.http.get>(\n `${environment.expenseApiUrl}GetAdvancesPassbook?userId=${userId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n ).pipe(map((result) => {\n return this.mapAdvance(result.responseInfo.advancePassbook);\n }));\n }\n\n getAdvancesPassbookNotLinked(userId): Observable {\n return this.http.get>(\n `${environment.expenseApiUrl}GetAdvancesPassbookNotLinked?userId=${userId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n ).pipe(map((result) => {\n return this.mapAdvance(result.responseInfo.advancePassbook);\n }));\n }\n\n mapAdvance(advanceData): AdvancePassbookItem[] {\n const result: AdvancePassbookItem[] = [];\n advanceData.forEach(row => {\n if (row && row.api) {\n result.push({\n advancePassbookId: row.api,\n advanceId: row.ai,\n advanceReturnId: row.ari,\n expenseId: row.ei,\n categoryId: row.ca,\n amount: row.a,\n currencyId: row.ci,\n createdDate: row.cd,\n advanceBalance: row.ab,\n spentAmount: row.sa,\n spentCurrencyId: row.sci,\n conversionRate: row.cr,\n hasReceipt: row.hr,\n isLinkedToCreditCardTransaction: row.iltcct,\n extraAmount: row.exa\n });\n }\n });\n return result;\n }\n\n getAdvancesPolicyDashboard(): Observable> {\n return this.http.get>(\n `${environment.expenseApiUrl}GetAdvancesPolicyDashboardData`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n getAdvancesPassbookSummary(): Observable> {\n return this.http.get>(\n `${environment.expenseApiUrl}GetAdvancesPassbookSummary`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n getAdvancePassbookBalance(): Observable> {\n return this.http.get>(\n `${environment.expenseApiUrl}GetAdvancesPassbookBalance`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n getAdvanceReturnRequests(userId: number): Observable {\n return this.http.get(\n `${environment.expenseApiUrl}GetAdvanceReturnRequest?userId=${userId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n sendAdvanceReturnRequest(request: ApiRequest): Observable {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.expenseApiUrl}SendAdvanceReturnRequest`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n saveAdvanceReturn(request: IApiRequest): Observable {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.expenseApiUrl}SaveAdvanceReturn`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n SubmitAdvance(request: IApiRequest): Observable> {\n let body = JSON.stringify(request);\n return this.http.post>(\n `${environment.expenseApiUrl}SubmitAdvance`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n SaveAdvanceReceipts(requestInfo: IApiRequest):\n Observable> {\n let formData = new FormData();\n for (let index = 0; index < requestInfo.requestInfo.receiptFiles.length; index++) {\n formData.append('receiptFiles', requestInfo.requestInfo.receiptFiles[index]);\n }\n formData.append('requestData', requestInfo.requestInfo.requestData);\n formData.append('content', requestInfo.requestInfo.content);\n\n return this.http.post>(\n `${environment.expenseApiUrl}SaveMediaForMultipleAdvances`,\n formData,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeaderWithoutContentTypeHeader() }\n );\n }\n\n EncryptParameters(encryptValue) {\n let rsaHelper = new RSAHelper();\n let encrypt = rsaHelper.Encrypt(encryptValue);\n return encrypt;\n }\n\n DecryptParameters(encryptedParam): string {\n let rsaHelper = new RSAHelper();\n let decrypt = rsaHelper.Decrypt(encryptedParam);\n return decrypt;\n }\n\n deleteAdvance(advanceId): Observable {\n\n return this.http.get(\n `${environment.expenseApiUrl}DeleteAdvance?advanceId=${advanceId}`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n isAdvanceBalanceOutstanding(): Observable {\n return this.http.get(\n `${environment.expenseApiUrl}IsAdvanceBalanceOutstanding`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Observable, of } from \"rxjs\";\nimport { environment } from \"../../../environments/environment\";\nimport { IApiRequest, IApiresponse } from \"../../_models\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport {\n IOrgBasicFunctionSubscriptionTrialDetails,\n IOrgBasicFunctionSubscriptionSaveRequest,\n} from \"src/app/_models/billing-pricing/OrgBasicFunctionSubscriptionTrialDetails\";\nimport { map } from \"rxjs/operators\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class OrgBasicFunctionSubscriptionService {\n\n organisationTrialCacheKey = \"OrganisationFunctionSubscriptionCache\";\n\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService\n ) { }\n\n GetOrgBasicFunctionSubscriptionTrialDetails(\n orgId: number\n ): Observable> {\n let cacheData = sessionStorage.getItem(this.organisationTrialCacheKey);\n if (cacheData) {\n return of(JSON.parse(cacheData));\n }\n else {\n let params = new HttpParams();\n params = params.append(\"organisationId\", orgId.toString());\n let url = `${environment.billingApiUrl}GetOrgBasicFunctionSubscriptionTrialDetails`;\n return this.http.get<\n IApiresponse\n >(url, {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }).pipe(map(result => {\n sessionStorage.setItem(this.organisationTrialCacheKey, JSON.stringify(result));\n return result;\n }));\n }\n }\n SaveOrgBasicFunctionSubscription(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.billingApiUrl}SaveOrgBasicFunctionSubscription`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n ).pipe(map(result => {\n sessionStorage.removeItem(\"OrganisationFunctionSubscriptionCache\");\n return result;\n }));\n }\n\n DropOrganisationFunctionSubscriptionCache() {\n const cacheKey = \"OrganisationFunctionSubscriptionCache\";\n sessionStorage.removeItem(cacheKey);\n }\n\n}\n","import { Injectable, OnInit, Inject, forwardRef } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { OrgSubscription } from \"../../_models/common/OrgSubscription\";\nimport { IOrgSubscriptionFunctionList } from \"../../_models/billing-pricing/OrgSubscriptionFunctionList\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"../../../environments/environment\";\nimport { IApiRequest, IApiresponse } from \"../../_models\";\nimport { IOrgSubscriptionPurchaseFunctionList } from \"../../_models/billing-pricing/IOrgSubscriptionPurchaseFunctionList\";\nimport {\n PurchaseAndEndTrialFunctionRequest,\n IPurchaseAndEndTrialFunctionRequest,\n} from \"../../_models/billing-pricing/PurchaseAndEndTrialFunctionRequest\";\nimport { FunctionDetail } from \"src/app/_models/billing-pricing/FunctionDetail\";\nimport { IOrganisationPaidCurrencyResponse } from \"src/app/_models/billing-pricing/OrganisationPaidCurrencyResponse\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport {\n RequestUpdateBillingPlanChange,\n IRequestUpdateBillingPlanChange,\n IRequestChangeBillingPlan,\n} from \"../../_models/billing-pricing/BillingPlanChange\";\nimport { IBillingPlanDetails } from \"../../_models/billing-pricing/BillingPlanDetails\";\nimport {\n SoloCheckFuncPurchaseListResponse\n} from \"../../_models/billing-pricing/SoloCheckFuncPurchaseListResponse\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class OrgSubscriptionFunctionService {\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService\n ) { }\n\n getOrgSubscriptionPurchaseFunctionList(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}PurchaseFunctionListDetail`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getOrgSubscriptionPurchaseFunction(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}PurchaseFunctionList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getOrganisationPaymentCurrency(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.catalogApiUrl}GetOrganisationPaymentCurrency`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getOrgSubscriptionTrialingFunctionList(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}TrialingFunctionListDetail`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getOrgSubscriptionCancelledFunctionList(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}CancelledFunctionListDetail`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UnsubscribeFunction(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}FunctionUnSubscribe`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n purchaseEndTrial(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}FunctionSubscribe`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n EndTrialFunction(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}FunctionEndTrial`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n ReStartTrialFunction(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}FunctionReTrialSubscribe`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n ChangeBillingPlan(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}ChangeBillingPlan`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n ChangeBillingPlanV2(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}ChangeBillingPlanV2`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n CheckPackagePurchasedOrTrial(\n orgId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"orgId\", orgId.toString());\n let url = `${environment.billingApiUrl}CheckPackagePurchasedOrTrial`;\n return this.http.get>(url, {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n GetOrganisationBillingPlan(\n organisationId: number,\n currencyId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n params = params.append(\"currencyId\", currencyId.toString());\n let url = `${environment.billingApiUrl}GetOrganisationBillingPlan`;\n return this.http.get>(url, {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n}\n","import { Injectable, Inject, forwardRef } from '@angular/core';\nimport { HttpClient, HttpHeaders,HttpParams } from '@angular/common/http';\nimport { OrganisationSubscriptionInvoiceResponse } from '../../_models/billing-pricing/OrganisationSubscriptionInvoice'\nimport { Observable } from 'rxjs';\nimport { environment } from '../../../environments/environment';\nimport { IApiRequest, IApiresponse } from '../../_models';\nimport { OrgSubscription,UpdateOrganisationSubscriptionInvoiceStatusRequest } from '../../_models/common/OrgSubscription';\nimport { ClaimsHeaderService } from 'src/app/shared/claimsHeader/claims-header.service';\n//import { setHeader } from 'src/app/_helpers/setRequestHeader';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class OrganisationSubscriptionInvoiceService {\n\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService) { }\n\n GetOrganisationSubscriptionInvoiceList(requestinfo: IApiRequest): Observable> {\n const url = `${environment.billingApiUrl}OrganisationSubscriptionInvoice`;\n let body = JSON.stringify(requestinfo);\n return this.http.post>(url, body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetOrganisationInvoiceFailedRecords(orgId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"orgId\", orgId.toString());\n return this.http.get>(`${environment.billingApiUrl}GetOrganisationInvoiceFailedRecords`, { params: params, headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n}\n\nUpdateOrganisationSubscriptionInvoiceStatus(requestinfo: IApiRequest): Observable> {\n const url = `${environment.billingApiUrl}UpdateOrganisationSubscriptionInvoiceStatus`;\n let body = JSON.stringify(requestinfo);\n return this.http.post>(url, body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\n\n\n}\n","import { Injectable, Inject, forwardRef } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { OrgSubscription } from '../../_models/common/OrgSubscription';\nimport { IPaymentMethodList } from '../../_models/billing-pricing/PaymentMethodList';\nimport { Observable } from 'rxjs';\nimport { environment } from '../../../environments/environment';\nimport { IApiRequest, IApiresponse } from '../../_models';\nimport { ClaimsHeaderService } from 'src/app/shared/claimsHeader/claims-header.service';\n//import { setHeader } from 'src/app/_helpers/setRequestHeader';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PaymentMethodService {\n\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService) { }\n\n\n getPaymentTypeList(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}OrganisationPaymentMethod`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n}\n","import { Injectable, Inject, forwardRef } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\nimport { OrgSubscription, IOrgSubscription } from '../../_models/common/OrgSubscription';\nimport { ISaveOrderCartDetailsRequest, SaveOrderCartDetailsRequest } from '../../_models/cart-order/SaveOrderCartDetailsRequest';\nimport { ISaveOrderCartDetailsResponse, SaveOrderCartDetailsResponse } from '../../_models/cart-order/SaveOrderCartDetailsResponse';\nimport { Observable } from 'rxjs';\nimport { environment } from '../../../environments/environment';\nimport { IApiRequest, IApiresponse } from '../../_models';\nimport { PaymentCustomerAndIntentIdResponse } from 'src/app/_models/stripe/PaymentCustomerAndIntentIdResponse';\nimport { ISubscriptionCardDetailsRequest } from 'src/app/_models/stripe/SubscriptionCardDetailsRequest';\nimport { IOrganisationSubscriptionCardDetails } from 'src/app/_models/stripe/OrganisationSubscriptionCardDetails';\nimport { setHeader } from 'src/app/_helpers/setRequestHeader';\nimport { ClaimsHeaderService } from 'src/app/shared/claimsHeader/claims-header.service';\nimport { IStripeRegisterUserResponse } from 'src/app/_models/stripe/stripe';\nimport { IStripeUserCardResponse } from 'src/app/_models/stripe/StripeUserCardResponse';\nimport { IOrderCartDetailsResponse, OrderCartDetailsResponse } from '../../_models/cart-order/OrderCartDetailsResponse';\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SaveOrderCartDetailsService {\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService) { }\n\n AddCartOrder(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.catalogApiUrl}SaveOrderCartDetails`, body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n FindNavigationForPayment(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}CheckSubscriptionCCStatus`, body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n AddCardDetails(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}AddSubscriptionCardDetails`, body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n getCardDetailsFromStripe(requestinfo: string): Observable> {\n return this.http.get>(`${environment.billingApiUrl}RegisterUserOnStripe/${requestinfo}`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetStripeCustomerDetailsByOrgId(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"orgId\", organisationId.toString());\n\n return this.http.get(\n `${environment.billingApiUrl}GetStripeCustomerDetailsByOrgId`,\n { params: params, headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getOrderCartDetails(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.catalogApiUrl}FindOrderCartDetails`, body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetOrgVatInfo() {\n let params = new HttpParams();\n\n return this.http.get(\n `${environment.billingApiUrl}GetOrgVatInfo`,\n { params: params, headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n}\n","import { Injectable, Inject, forwardRef } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { IApproverApproveeCountList, IApproverApproveeList, IApproverUnassignedCount, IApproverApproveeUpdateList } from '../../_models/assignapp/assignapp';\nimport { Observable } from 'rxjs';\nimport { environment } from '../../../environments/environment';\nimport { IApiresponse } from 'src/app/_models/common/request-response/apiresponse';\nimport { IChangePasswordResponse } from 'src/app/_models/change-password/change-password-response';\n\nimport { IChangePasswordRequest } from 'src/app/_models/change-password/change-password-request';\nimport { IApiRequest } from 'src/app/_models/common/request-response/api-request';\nimport { setHeader } from 'src/app/_helpers/setRequestHeader';\nimport { ClaimsHeaderService } from 'src/app/shared/claimsHeader/claims-header.service';\nimport { IEmailSendRequest } from 'src/app/_models/common/request-response/email-send-request';\nimport { ISendEmailResponse } from 'src/app/_models/common/request-response/send-email-response';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ChangePasswordService {\n\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService) { }\n\n ChangePassword(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}ChangePassword`, body, \n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SendMailWhenPasswordChanged(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}GetSetDetailForSendEmail`, body, \n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveFaceForLogin(requestinfo: any) {\n let body = JSON.stringify(requestinfo);\n \n return this.http.post(`${environment.billingApiUrl}SaveFaceForLogin`, body, \n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n \n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"../../../environments/environment\";\nimport { IApiresponse } from \"../../_models/common/request-response/apiresponse\";\nimport { IApiRequest } from \"../../_models/common/request-response/api-request\";\nimport { ClaimsHeaderService } from \"../../shared/claimsHeader/claims-header.service\";\nimport {\n IClaimantExpenseListRequest, IGetClaimantExpenseListResponse, \n IRecentTagsRequest, IRecentTagsResponse, IPreApprovalBaseRequest, IPreApprovalTagListResponse,\n IUpdateExpenseRequest, IClaimantExpenseDetail, IRecentJourneysRequest, IRecentJourneysResponse, IMediaSaveResponse, IExpenseRequest,\n IResourceMileageDetailsResponse, IGetReceiptExpensesWithAttachmentResponse, IGetReceiptExpensesWithAttachmentRequest, IVehicleListResponse, CalculateMileageRequest, CalculateMileageResponse, OrganisationRulesResponse, NRDetailRequest, ResourceMileageDetailsRequest,\n IClaimantAmendedExpenseDetailsRequest, IClaimantAmendedExpenseDetailsRes, DeleteReceiptResponseList,\n DeleteReceiptShortRequest, NRFCReceiptResponse, CreditCardExpenseInfoRes, ISaveUserCustomSettingRequest,UserCustomSetting,\n IExpenseDashboardDetailsRequest, IExpenseDashboardDetailsResponse,\n Mileage\n} from \"../../_models/claimant-on-web/claimant-on-web\";\nimport {\n ISaveExpenseInfoRequest,\n PreApprovalRequest\n} from \"src/app/_models/claimant-on-web/expense-info\";\nimport { IClaimantExpenseDetailResponse } from \"src/app/_models/twostepapproval/claimant-expense-detail\";\nimport { FormlyFieldConfig } from \"@ngx-formly/core\";\nimport { ClaimType, MileageAllowanceEnum, ClaimAction } from \"src/app/_models\";\nimport { RSAHelper } from 'src/app/_helpers/RSAHelper';\nimport { TranslateService } from '@ngx-translate/core';\nimport { KeyValue } from \"src/app/_models/common/key-value\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ClaimantOnWebService {\n httpHeaders: HttpHeaders;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService,\n private translate: TranslateService,\n ) { }\n GetClaimantExpenseList(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.expenseApiUrl}GetClaimantExpenseList`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetRecentTags(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.expenseApiUrl}RecentTags`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n UpdateExpenseStatus(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}UpdateExpenseStatus`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetPreApprovalTagList(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.expenseApiUrl}GetPreApprovalTagList`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetClaimantExpenseDetail(expenseId): Observable> {\n let expenseDetailUrl = `${environment.expenseApiUrl}GetClaimantExpenseDetail/` + expenseId + ``;\n return this.http.get>(expenseDetailUrl, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n GetApproveExpenseDetail(expenseID): Observable> {\n let expenseDetailUrl = `${environment.expenseApiUrl}GetApproveExpenseDetail/` + expenseID + ``;\n return this.http.get>(expenseDetailUrl, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetRecentJourneys(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}RecentJourneys`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n\n CalculateMileageMultipleLeg(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}CalculateMileageMultipleLeg`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n\n GetResourceMileageDetails(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetResourceMileageDetails`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetUserVehicleInfo(userId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"UserId\", userId.toString());\n return this.http.get>(\n `${environment.billingApiUrl}GetUserVehicleInfo`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n GetOrganisationRules(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetOrganisationRules`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveExpenseReceipts(requestInfo: IApiRequest):\n Observable> {\n let formData = new FormData();\n for (let index = 0; index < requestInfo.requestInfo.receiptFiles.length; index++) {\n formData.append('receiptFiles', requestInfo.requestInfo.receiptFiles[index]);\n }\n formData.append('requestData', requestInfo.requestInfo.requestData);\n formData.append('content', requestInfo.requestInfo.content);\n\n return this.http.post>(\n `${environment.expenseApiUrl}SaveMediaForMultipleExpense`,\n formData,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeaderWithoutContentTypeHeader() }\n );\n }\n\n GetReceiptExpensesWithAttachment(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetReceiptExpensesWithAttachment`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n getField(key: string, fields: FormlyFieldConfig[]): FormlyFieldConfig {\n for (let i = 0, len = fields.length; i < len; i++) {\n const f = fields[i];\n if (f.key === key) {\n return f;\n }\n\n if (f.fieldGroup && !f.key) {\n const cf = this.getField(key, f.fieldGroup);\n if (cf) {\n return cf;\n }\n }\n }\n }\n fnSetClassForEntItems(Type, isDisabled, isTipsEnabled, pageType) {\n let disabledClass = '';\n if (isDisabled) {\n disabledClass = ' disabled';\n }\n if (!isTipsEnabled) {\n if (Type == 'emp') {\n return (pageType == 'pay' ? 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-left-0 disabled' : 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-left-0') + disabledClass;\n }\n else if (Type == 'guest') {\n return (pageType == 'pay' ? 'col-xl-6 col-lg-6 col-md-6 col-sm-6 no-padding-right-left disabled' : 'col-xl-6 col-lg-6 col-md-6 col-sm-6 no-padding-right-left') + disabledClass;\n }\n }\n else {\n if (Type == 'emp') {\n return (pageType == 'pay' ? 'col-xl-4 col-lg-4 col-md-4 col-sm-4 padding-left-0 disabled' : 'col-xl-4 col-lg-4 col-md-4 col-sm-4 padding-left-0 padding-left-0') + disabledClass;\n }\n else if (Type == 'guest') {\n return (pageType == 'pay' ? 'col-xl-4 col-lg-4 col-md-4 col-sm-4 no-padding-right-left disabled' : 'col-xl-4 col-lg-4 col-md-4 col-sm-4 no-padding-right-left') + disabledClass;\n }\n else {\n return (pageType == 'pay' ? 'col-xl-4 col-lg-4 col-md-4 col-sm-4 padding-right-0 disabled' : 'col-xl-4 col-lg-4 col-md-4 col-sm-4 padding-right-0') + disabledClass;\n }\n }\n }\n fnSetAllowanceText(selectedMileageAllowance, allowanceId) {\n let allowanceText = this.translate.instant('add_passenger_load');\n if (selectedMileageAllowance && allowanceId) {\n switch (allowanceId) {\n case MileageAllowanceEnum.OnePassenger:\n allowanceText = this.translate.instant('one_passenger');\n break;\n case MileageAllowanceEnum.TwoPassenger:\n allowanceText = this.translate.instant('two_passenger');\n break;\n case MileageAllowanceEnum.ThreePassenger:\n allowanceText = this.translate.instant('three_passenger');\n break;\n case MileageAllowanceEnum.OneLoad:\n allowanceText = this.translate.instant('one_load');\n break;\n case MileageAllowanceEnum.OnePassengerOneLoad:\n allowanceText = this.translate.instant('one_passenger_one_load');\n break;\n case MileageAllowanceEnum.TwoPassengerOneLoad:\n allowanceText = this.translate.instant('two_passenger_one_load');\n break;\n case MileageAllowanceEnum.ThreePassengerOneLoad:\n allowanceText = this.translate.instant('three_passenger_one_load');\n break;\n case MileageAllowanceEnum.FourPassenger:\n allowanceText = this.translate.instant('four_passenger');\n break;\n case MileageAllowanceEnum.FourPassengerOneLoad:\n allowanceText = this.translate.instant('four_passenger_one_load');\n break;\n }\n }\n return allowanceText;\n }\n GetCurrentNRBalance(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetCurrentNRBalance`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n EncryptParameters(encryptValue) {\n let rsaHelper = new RSAHelper();\n let encrypt = rsaHelper.Encrypt(encryptValue);\n return encrypt;\n }\n DecryptParameters(encryptedParam): string {\n let rsaHelper = new RSAHelper();\n let decrypt = rsaHelper.Decrypt(encryptedParam);\n return decrypt;\n }\n\n ScanExpenseReceipts(requestInfo: IApiRequest):\n Observable> {\n let formData = new FormData();\n for (let index = 0; index < requestInfo.requestInfo.receiptFiles.length; index++) {\n formData.append('receiptFiles', requestInfo.requestInfo.receiptFiles[index]);\n }\n formData.append('requestData', requestInfo.requestInfo.requestData);\n formData.append('content', requestInfo.requestInfo.content);\n\n return this.http.post>(\n `${environment.expenseApiUrl}ScanReceiptData`,\n formData,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeaderWithoutContentTypeHeader() }\n );\n }\n\n SaveExpenseInfo(requestInfo: IApiRequest):\n Observable> {\n let formData = new FormData();\n\n for (let index = 0; index < requestInfo.requestInfo.receiptFiles.length ; index++) {\n formData.append('receiptFiles', requestInfo.requestInfo.receiptFiles[index]);\n }\n formData.append('requestData', requestInfo.requestInfo.requestData);\n formData.append('content', requestInfo.requestInfo.content);\n //let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}SaveExpenseInfoOnly`,\n formData,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeaderWithoutContentTypeHeader() }\n );\n }\n\n GetClaimantAmendedExpenseDetails(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetClaimantAmendedExpenseDetails`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n CheckInvoiceNumberExistance(invoiceNumber: string): Observable> {\n let params = new HttpParams();\n params = params.append(\"invoiceNumber\", invoiceNumber);\n return this.http.get>(\n `${environment.expenseApiUrl}CheckInvoiceNumberExistance`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n GetClaimText(claimType: ClaimType, action: ClaimAction) {\n switch (true) {\n case action == ClaimAction.CreateClaim && claimType == ClaimType.Expense:\n {\n return this.translate.instant('create_expense');\n }\n case action == ClaimAction.CreateClaim && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('label_create_invoice');\n }\n case action == ClaimAction.EditClaim && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('label_edit_invoice');\n }\n case action == ClaimAction.EditClaim && claimType == ClaimType.Expense:\n {\n return this.translate.instant('label_edit_expense');\n }\n case action == ClaimAction.NoClaimMsg && claimType == ClaimType.Expense:\n {\n return this.translate.instant('you_have_no_expenses');\n }\n case action == ClaimAction.NoClaimMsg && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('you_have_no_invoice');\n }\n case action == ClaimAction.CreateClaimBtnMsg && claimType == ClaimType.Expense:\n {\n return this.translate.instant('create_a_new_expense_using_the_button_above');\n }\n case action == ClaimAction.CreateClaimBtnMsg && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('create_a_new_invoice_using_the_button_above');\n }\n case action == ClaimAction.ClaimList && claimType == ClaimType.Expense:\n {\n return this.translate.instant('expense_list');\n }\n case action == ClaimAction.ClaimList && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('invoice_list');\n }\n case action == ClaimAction.ClaimDetail && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('label_invoice_detail');\n }\n case action == ClaimAction.ClaimDetail && claimType == ClaimType.Expense:\n {\n return this.translate.instant('expense_detail');\n }\n case action == ClaimAction.ApproperClaimantListCount && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('label_approver_vendar_count');\n }\n case action == ClaimAction.ApproperClaimantListCount && claimType == ClaimType.Expense:\n {\n return this.translate.instant('claimant_count');\n }\n case action == ClaimAction.ClaimCount && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('invoice_count');\n }\n case action == ClaimAction.ClaimCount && claimType == ClaimType.Expense:\n {\n return this.translate.instant('expenses_count');\n }\n case action == ClaimAction.ClaimantName && claimType == ClaimType.Expense:\n {\n return this.translate.instant('claimant_name');\n }\n case action == ClaimAction.ClaimantName && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('vendor_name');\n }\n case action == ClaimAction.FilterClaimDate && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('date_of_invoice');\n }\n case action == ClaimAction.FilterClaimDate && claimType == ClaimType.Expense:\n {\n return this.translate.instant('date_Of_Expense');\n }\n case action == ClaimAction.AddReceipt && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('text_add_invoice_receipt');\n }\n case action == ClaimAction.AddReceipt && claimType == ClaimType.Expense:\n {\n return this.translate.instant('text_add_receipt');\n }\n case action == ClaimAction.ViewReceipt && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('text_view_invoice_receipt');\n }\n case action == ClaimAction.ViewReceipt && claimType == ClaimType.Invoice:\n {\n return this.translate.instant('text_view_receipt');\n }\n default:\n return \"\";\n }\n }\n\n\n DeleteReceipts(requestInfo: IApiRequest):\n Observable> {\n\n return this.http.post>(\n `${environment.expenseApiUrl}DeleteReceipt`,\n requestInfo,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeaderWithoutContentTypeHeader() }\n );\n }\n AddUpdateNRReceipt(requestInfo: IApiRequest):\n Observable> {\n let formData = new FormData();\n for (let index = 0; index < requestInfo.requestInfo.receiptFiles.length; index++) {\n formData.append('receiptFiles', requestInfo.requestInfo.receiptFiles[index]);\n }\n formData.append('requestData', requestInfo.requestInfo.requestData);\n formData.append('content', requestInfo.requestInfo.content);\n\n return this.http.post>(\n `${environment.expenseApiUrl}AddUpdateNRReceipt`,\n formData,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeaderWithoutContentTypeHeader() }\n );\n }\n AddUpdateFCReceipt(requestInfo: IApiRequest):\n Observable> {\n let formData = new FormData();\n for (let index = 0; index < requestInfo.requestInfo.receiptFiles.length; index++) {\n formData.append('receiptFiles', requestInfo.requestInfo.receiptFiles[index]);\n }\n formData.append('requestData', requestInfo.requestInfo.requestData);\n formData.append('content', requestInfo.requestInfo.content);\n\n return this.http.post>(\n `${environment.expenseApiUrl}AddUpdateFCReceipt`,\n formData,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeaderWithoutContentTypeHeader() }\n );\n }\n\n getUTCTimeStamp(date) {\n let now_utc = Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate(),\n 0,\n 0,\n 0\n );\n\n return now_utc;\n }\n\n GetCardExpenseInfo(expenseId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"expenseId\", expenseId.toString());\n return this.http.get>(\n `${environment.expenseApiUrl}GetCardExpenseInfo`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n SaveUserCustomSetting(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveUserCustomSetting`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n\n GetUserCustomSetting(userId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"userId\", userId.toString());\n return this.http.get>(\n `${environment.billingApiUrl}GetUserCustomSetting`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n GetExportedExpensesByExportedId(exportId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"exportId\", exportId.toString());\n return this.http.get>(\n `${environment.expenseApiUrl}GetExportedExpensesByExportedId`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n RecallExportedExpensesByExpenseIds(requestInfo, exportId) {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}RecallExportedExpensesByExpenseIds?exportId=`+ exportId,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetMileageMapDetail(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetMileageMapDetail`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetExpenseDashboardDetails(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetExpenseDashboardDetails`,\n body, \n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n PreApprovalInfo(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}PreApprovalInfoPanelDetail`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetRecentlyAddedAttendeeDetailByUserId(): Observable> {\n let expenseDetailUrl = `${environment.expenseApiUrl}GetRecentlyAddedAttendeeDetailByUserId`;\n return this.http.get>(expenseDetailUrl, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetRecentlyAddedAttendeeDetail(requestInfo: IApiRequest): Observable> {\n\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetRecentlyAddedAttendeeDetail`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveExpenseAttendeeInBulk(requestInfo: IApiRequest): Observable> {\n\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}SaveExpenseAttendeeInBulk`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n}\n\n\n","import { Component, OnInit, Inject, forwardRef } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { map, debounceTime } from \"rxjs/operators\";\nimport { environment } from \"../../../environments/environment\";\nimport { ApiRequest, IApiRequest, IApiresponse } from \"src/app/_models\";\nimport { Observable, of } from \"rxjs\";\nimport {\n ISetCurrencyRequest,\n IGetCurrencyRequest,\n IGetExpenseCounterRequestDto,\n} from \"src/app/_models/claimant/currencyrequest\";\nimport {\n IGetCurrencyResponse,\n ISetCurrencyResponse,\n IGetExpenseCounterResponseDto,\n} from \"src/app/_models/claimant/currencyresponse\";\nimport { Currency } from \"src/app/_models/common/currency\";\nimport { setHeader } from \"src/app/_helpers/setRequestHeader\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { ClaimsService } from \"../common/claims.service\";\nimport { Claims } from \"../../_models/common/claims\";\nimport { CurrencyFormModel, ICurrencyRequest } from \"../../_models/Currency/currencyFormModel\";\nimport { CurrencyFetchRequest } from \"../../_models/fxRate/fx-rate.model\";\n\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class CurrencyService implements OnInit {\n\n claims: Claims;\n OrgId: number = 0;\n\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService,\n private claimsService: ClaimsService\n ) {\n this.claimsService.currentClaims.subscribe(claims => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {\n if (this.claims.OrgId) {\n this.OrgId = this.claims.OrgId;\n }\n this.getAllExpenseCurrency(this.OrgId);\n }\n\n getAllExpenseCurrency(orgId, expenseDate: any = 0,isForeignCurrency=false) {\n let reqFetchCurrency = new ApiRequest(\n \"AddUpdateFxRateSetup\",\n environment.applicationVersion,\n environment.requestId\n );\n let reqFetchCurrencyInfo = new CurrencyFetchRequest(); \n reqFetchCurrencyInfo.expenseDate = expenseDate == 0 ? new Date().getTime() : new Date(expenseDate).getTime();\n\n if(expenseDate == 0){\n reqFetchCurrencyInfo.expenseDate = new Date().getTime();\n }\n else{\n //handle negative date issue \n if (typeof expenseDate == \"string\") {\n let convertedDate = new Date();\n let tempDate = expenseDate.replace(/-/g, '/');\n convertedDate = new Date(tempDate);\n reqFetchCurrencyInfo.expenseDate = new Date(convertedDate).getTime();\n }\n else {\n reqFetchCurrencyInfo.expenseDate = new Date(expenseDate).getTime();\n }\n }\n reqFetchCurrencyInfo.isForeignCurrency=isForeignCurrency;\n reqFetchCurrency.requestInfo = reqFetchCurrencyInfo; \n let body = JSON.stringify(reqFetchCurrency);\n const CurrencyUrl = `${environment.catalogApiUrl}GetCurrency`;\n return this.http.post(CurrencyUrl, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }).pipe(map(data => { \n return data;\n })); \n }\n\n setCurrencyForOrganisation(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}UpdateCurrencyForOrganisation`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n\n addCurrencyForOrganisation(\n requestinfo: IApiRequest\n ): Observable {\n //Observable> {\n\n const cacheKey = \"ExpenseCurrencyListData\";\n sessionStorage.removeItem(cacheKey);\n\n let formData = new FormData();\n\n formData.append('currencyData', requestinfo.requestInfo.currencyData);\n formData.append('icon', requestinfo.requestInfo.icon);\n\n return this.http.post>(\n `${environment.catalogApiUrl}AddCurrency`,\n formData,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeaderWithoutContentTypeHeader() }\n );\n }\n\n\n deleteOrgCurrency(\n currencyId, OrgId, userid, userName\n ): Observable {\n const cacheKey = \"ExpenseCurrencyListData\";\n const CurrencyUrl = `${environment.catalogApiUrl}DeleteCurrency/` + currencyId + `/` + OrgId + `/` + userid + `/` + userName;\n return this.http.get(CurrencyUrl, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }).pipe(map(data => {\n sessionStorage.removeItem(cacheKey);\n sessionStorage.setItem(cacheKey, JSON.stringify(data));\n return data;\n }));\n }\n\n\n getCurrencyForOrganisation(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetCurrencyForOrganisation`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getExpenseCounter(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetOrganisationExpensesCounter`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n}\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { UNDEFINED } from \"./constants\";\r\nvar GLOBAL_CONFIG_KEY = \"__tsUtils$gblCfg\";\r\nvar _globalCfg;\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper to get the current global value\r\n * @returns\r\n */\r\nexport function _getGlobalValue() {\r\n var result;\r\n if (typeof globalThis !== UNDEFINED) {\r\n result = globalThis;\r\n }\r\n if (!result && typeof self !== UNDEFINED) {\r\n result = self;\r\n }\r\n if (!result && typeof window !== UNDEFINED) {\r\n result = window;\r\n }\r\n if (!result && typeof global !== UNDEFINED) {\r\n result = global;\r\n }\r\n return result;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Gets/Sets the named value from the global config store, this is used to share configuration across\r\n * multiple modules. Primarily used for poly symbol and test hooks.\r\n * @returns The globally registered value.\r\n */\r\nexport function _getGlobalConfig() {\r\n if (!_globalCfg) {\r\n var gbl = _getGlobalValue() || {};\r\n _globalCfg = gbl[GLOBAL_CONFIG_KEY] = gbl[GLOBAL_CONFIG_KEY] || {};\r\n }\r\n return _globalCfg;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\n// These constants are currently NOT exported directly, we may export them later associated with a frozen namespace (maybe)\r\n// For now do NOT expect that we will export these values.\r\nexport var UNDEF_VALUE = undefined;\r\nexport var NULL_VALUE = null;\r\nexport var EMPTY = \"\";\r\nexport var BOOLEAN = \"boolean\";\r\nexport var FUNCTION = \"function\";\r\nexport var NUMBER = \"number\";\r\nexport var OBJECT = \"object\";\r\nexport var PROTOTYPE = \"prototype\";\r\nexport var __PROTO__ = \"__proto__\";\r\nexport var STRING = \"string\";\r\nexport var UNDEFINED = \"undefined\";\r\nexport var CONSTRUCTOR = \"constructor\";\r\nexport var SYMBOL = \"Symbol\";\r\nexport var POLYFILL_TAG = \"_polyfill\";\r\nexport var INDEX_OF = \"indexOf\";\r\nexport var LAST_INDEX_OF = \"lastIndexOf\";\r\nexport var LENGTH = \"length\";\r\nexport var DONE = \"done\";\r\nexport var VALUE = \"value\";\r\nexport var NAME = \"name\";\r\nexport var SLICE = \"slice\";\r\n/**\r\n * @ignore\r\n */\r\nexport var ObjClass = Object;\r\n/**\r\n * @ignore\r\n */\r\nexport var ObjProto = ObjClass[PROTOTYPE];\r\n/**\r\n * @ignore\r\n */\r\nexport var StrCls = String;\r\n/**\r\n * @ignore\r\n */\r\nexport var StrProto = StrCls[PROTOTYPE];\r\n/**\r\n * @ignore\r\n */\r\nexport var MathCls = Math;\r\n/**\r\n * @ignore\r\n */\r\nexport var ArrCls = Array;\r\n/**\r\n * @ignore\r\n */\r\nexport var ArrProto = ArrCls[PROTOTYPE];\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\n/**\r\n * Function to safely execute a callback function, if the function throws the provided default\r\n * value will be returned.\r\n * @since 0.9.5\r\n * @group Safe\r\n * @param cb - Callback function be wrapped with an exception\r\n * @param defValue - The default value to return when an exception is thrown\r\n * @returns The result of the callback function or the default if an exception occurred calling the callback\r\n * function.\r\n * @example\r\n * ```ts\r\n * let theExpression = \"{ invalid: json value\";\r\n *\r\n * let result = safeGet(() => {\r\n * return JSON.parse(theExpression);\r\n * }, {});\r\n *\r\n * // result === {};\r\n * ```\r\n */\r\nexport function safeGet(cb, defValue) {\r\n var result = defValue;\r\n try {\r\n result = cb();\r\n }\r\n catch (e) {\r\n // Do nothing\r\n }\r\n return result;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ArrCls, BOOLEAN, FUNCTION, NULL_VALUE, NUMBER, OBJECT, ObjProto, STRING, UNDEFINED, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { safeGet } from \"./safe_get\";\r\nvar PRIMITIVE_TYPES = [STRING, NUMBER, BOOLEAN, UNDEFINED, \"symbol\", \"bigint\"];\r\n/**\r\n * @ignore\r\n * @internal\r\n * Create and returns a function that will return `true` if the argument passed\r\n * to it matches the provided type.\r\n * @param theType - The type to match against the `typeof value`\r\n * @returns A function which takes a single argument and returns a boolean\r\n */\r\nexport function _createIs(theType) {\r\n return function (value) {\r\n return typeof value === theType;\r\n };\r\n}\r\n/**\r\n * @ignore\r\n * @internal\r\n * Create and returns a function that will return `true` if the argument passed\r\n * to it matches the object type specified based on {@link objToString}.\r\n * @param - The object name to match for the `objToString(value)`\r\n * @returns A function which takes a single argument and returns a boolean\r\n */\r\nexport function _createObjIs(theName) {\r\n var theType = \"[object \" + theName + \"]\";\r\n return function (value) {\r\n return !!(value && objToString(value) === theType);\r\n };\r\n}\r\n/**\r\n * The `objToString()` method returns a string representing the object. This explicitly\r\n * always calls the `Object.prototype.toString()` method.\r\n *\r\n * An object's toString() method is most commonly invoked when that object undergoes:\r\n * - explicit type conversion to a string (for example, String(myObject))\r\n * - implicit type coercion into a string (for example, myObject + \"hello world\")\r\n *\r\n * @group Object\r\n * @param value - The object to be converted into a string\r\n * @returns A string representation of the object\r\n * @example\r\n * ```ts\r\n * objToString(new Date()); // [object Date]\r\n * objToString(new String()); // [object String]\r\n *\r\n * // Math has its Symbol.toStringTag\r\n * objToString(Math); // [object Math]\r\n *\r\n * objToString(undefined); // [object Undefined]\r\n * objToString(null); // [object Null]\r\n * ```\r\n */\r\nexport function objToString(value) {\r\n return ObjProto.toString.call(value);\r\n}\r\n/**\r\n * Validate if the provided value object is of the expected type\r\n * @group Type Identity\r\n * @param value - The value to check\r\n * @param theType - The expected type name as a string\r\n * @returns `true` if the value matches the provided type\r\n */\r\nexport function isTypeof(value, theType) {\r\n return typeof value === theType;\r\n}\r\n/**\r\n * Checks if the provided value is undefined or contains the string value \"undefined\",\r\n * if you want to consider the string value as undefined see {@link isStrictUndefined}\r\n * @group Type Identity\r\n * @group Value Check\r\n * @param value - The value to check\r\n * @returns true if the value is undefined or \"undefined\", otherwise false\r\n * @example\r\n * ```ts\r\n * isUndefined(undefined); // true\r\n * isUndefined(\"undefined\"); // true\r\n *\r\n * isUndefined(null); // false\r\n * isUndefined(\"null\"); // false\r\n * isUndefined(\"1\"); // false\r\n * isUndefined(\"aa\"); // false\r\n * isUndefined(new Date()); // false\r\n * isUndefined(1); // false\r\n * isUndefined(\"\"); // false\r\n * isUndefined(_dummyFunction); // false\r\n * isUndefined([]); // false\r\n * isUndefined(new Array(1)); // false\r\n * isUndefined(true); // false\r\n * isUndefined(false); // false\r\n * isUndefined(\"true\"); // false\r\n * isUndefined(\"false\"); // false\r\n * isUndefined(new Boolean(true)); // false\r\n * isUndefined(new Boolean(false)); // false\r\n * isUndefined(new Boolean(\"true\")); // false\r\n * isUndefined(new Boolean(\"false\")); // false\r\n * isUndefined(Boolean(true)); // false\r\n * isUndefined(Boolean(false)); // false\r\n * isUndefined(Boolean(\"true\")); // false\r\n * isUndefined(Boolean(\"false\")); // false\r\n * isUndefined(new RegExp(\"\")); // false\r\n * isUndefined(new ArrayBuffer(0)); // false\r\n * isUndefined(new Error(\"Test Error\"));// false\r\n * isUndefined(new TypeError(\"Test TypeError\")); // false\r\n * isUndefined(new TestError(\"Test TestError\")); // false\r\n * isUndefined(_dummyError()); // false\r\n * isUndefined(Promise.reject()); // false\r\n * isUndefined(Promise.resolve()); // false\r\n * isUndefined(new Promise(() => {})); // false\r\n * isUndefined(_simplePromise()); // false\r\n * isUndefined(_simplePromiseLike()); // false\r\n * isUndefined(Object.create(null)); // false\r\n * isUndefined(polyObjCreate(null)); // false\r\n * ```\r\n */\r\nexport function isUndefined(value) {\r\n return typeof value === UNDEFINED || value === UNDEFINED;\r\n}\r\n/**\r\n * Checks if the provided value is undefined, a string value of \"undefined\" is NOT considered\r\n * to be undefined.\r\n * @group Type Identity\r\n * @group Value Check\r\n * @param value - The value to check\r\n * @returns true if the typeof value === UNDEFINED\r\n * @example\r\n * ```ts\r\n * isStrictUndefined(undefined); // true\r\n *\r\n * isStrictUndefined(null); // false\r\n * isStrictUndefined(\"null\"); // false\r\n * isStrictUndefined(\"undefined\"); // false\r\n * isStrictUndefined(\"1\"); // false\r\n * isStrictUndefined(\"aa\"); // false\r\n * isStrictUndefined(new Date()); // false\r\n * isStrictUndefined(0); // false\r\n * isStrictUndefined(1); // false\r\n * isStrictUndefined(\"\"); // false\r\n * ```\r\n */\r\nexport function isStrictUndefined(arg) {\r\n return !isDefined(arg);\r\n}\r\n/**\r\n * Checks if the provided value is null, undefined or contains the string value of \"undefined\".\r\n * @group Type Identity\r\n * @group Value Check\r\n * @param value - The value to check\r\n * @returns `true` if the value is `null` or `undefined`\r\n * @example\r\n * ```ts\r\n * isNullOrUndefined(null); // true\r\n * isNullOrUndefined(undefined); // true\r\n * isNullOrUndefined(\"undefined\"); // true\r\n *\r\n * let value = null;\r\n * isNullOrUndefined(value); // true\r\n * let value = undefined;\r\n * isNullOrUndefined(value); // true\r\n *\r\n * isNullOrUndefined(\"\"); // false\r\n * isNullOrUndefined(0); // false\r\n * isNullOrUndefined(new Date()); // false\r\n * isNullOrUndefined(true); // false\r\n * isNullOrUndefined(false); // false\r\n * ```\r\n */\r\nexport function isNullOrUndefined(value) {\r\n return value === NULL_VALUE || isUndefined(value);\r\n}\r\n/**\r\n * Checks if the provided value is null, undefined only, a string value of \"undefined\" is NOT considered\r\n * to be undefined.\r\n * @group Type Identity\r\n * @group Value Check\r\n * @param value - The value to check\r\n * @returns\r\n * @example\r\n * ```ts\r\n * isStrictNullOrUndefined(null); // true\r\n * isStrictNullOrUndefined(undefined); // true\r\n * isStrictNullOrUndefined(\"undefined\"); // false\r\n *\r\n * let value = null;\r\n * isStrictNullOrUndefined(value); // true\r\n * let value = undefined;\r\n * isStrictNullOrUndefined(value); // true\r\n *\r\n * isStrictNullOrUndefined(\"\"); // false\r\n * isStrictNullOrUndefined(0); // false\r\n * isStrictNullOrUndefined(new Date()); // false\r\n * isStrictNullOrUndefined(true); // false\r\n * isStrictNullOrUndefined(false); // false\r\n * ```\r\n */\r\nexport function isStrictNullOrUndefined(value) {\r\n return value === NULL_VALUE || !isDefined(value);\r\n}\r\n/**\r\n * Checks if the passed value is defined, which means it has any value and is not undefined.\r\n * A string value of \"undefined\" is considered to be defined.\r\n * @group Value Check\r\n * @param arg - The value to check\r\n * @returns true if arg has a value (is not === undefined)\r\n * @example\r\n * ```ts\r\n * isDefined(null); // false\r\n * isDefined(undefined); // false\r\n * isDefined(\"undefined\"); // true\r\n *\r\n * let value = null;\r\n * isDefined(value); // false\r\n * let value = undefined;\r\n * isDefined(value); // false\r\n *\r\n * isDefined(\"\"); // true\r\n * isDefined(0); // true\r\n * isDefined(new Date()); // true\r\n * isDefined(true); // true\r\n * isDefined(false); // true\r\n * ```\r\n */\r\nexport function isDefined(arg) {\r\n return !!arg || arg !== UNDEF_VALUE;\r\n}\r\n/**\r\n * Identifies whether the provided value is a JavaScript [primitive](https://developer.mozilla.org/en-US/docs/Glossary/Primitive)\r\n * which is when is it not an object and has no methods or properties. There are 7 primitive data types:\r\n * - string\r\n * - number\r\n * - bigint\r\n * - boolean\r\n * - undefined\r\n * - null\r\n * - symbol\r\n *\r\n * Most of the time, a primitive value is represented directly at the lowest level of the language implementation.\r\n *\r\n * All primitives are immutable; that is, they cannot be altered. It is important not to confuse a primitive itself\r\n * with a variable assigned a primitive value. The variable may be reassigned to a new value, but the existing value\r\n * can not be changed in the ways that objects, arrays, and functions can be altered. The language does not offer\r\n * utilities to mutate primitive values.\r\n * @since 0.4.4\r\n * @group Type Identity\r\n * @param value - The value to check whether it's a primitive value\r\n * @example\r\n * ```ts\r\n * isPrimitive(null); // true\r\n * isPrimitive(undefined); // true\r\n * isPrimitive(\"null\"); // true\r\n * isPrimitive(\"undefined\"); // true\r\n * isPrimitive(\"1\"); // true\r\n * isPrimitive(\"aa\"); // true\r\n * isPrimitive(1); // true\r\n * isPrimitive(Number(2)); // true\r\n * isPrimitive(\"\"); // true\r\n * isPrimitive(String(\"\")); // true\r\n * isPrimitive(true); // true\r\n * isPrimitive(false); // true\r\n * isPrimitive(\"true\"); // true\r\n * isPrimitive(\"false\"); // true\r\n * isPrimitive(BigInt(42)); // true\r\n * isPrimitive(Symbol.for(\"Hello\")); // true\r\n *\r\n * isPrimitive(new String(\"aa\")); // false\r\n * isPrimitive(new Date()); // false\r\n * isPrimitive(_dummyFunction); // false\r\n * isPrimitive([]); // false\r\n * isPrimitive(new Array(1)); // false\r\n * isPrimitive(new Boolean(true)); // false\r\n * isPrimitive(new Boolean(false)); // false\r\n * isPrimitive(new Boolean(\"true\")); // false\r\n * isPrimitive(new Boolean(\"false\")); // false\r\n * ```\r\n */\r\nexport var isPrimitive = function (value) {\r\n return value === NULL_VALUE || isPrimitiveType(typeof value);\r\n};\r\n/**\r\n * Identifies whether the provided value is a JavaScript [primitive](https://developer.mozilla.org/en-US/docs/Glossary/Primitive)\r\n * which is when is it not an object and has no methods or properties. There are 6 primitive data types:\r\n * - string\r\n * - number\r\n * - bigint\r\n * - boolean\r\n * - undefined\r\n * - symbol\r\n *\r\n * Most of the time, a primitive value is represented directly at the lowest level of the language implementation.\r\n *\r\n * All primitives are immutable; that is, they cannot be altered. It is important not to confuse a primitive itself\r\n * with a variable assigned a primitive value. The variable may be reassigned to a new value, but the existing value\r\n * can not be changed in the ways that objects, arrays, and functions can be altered. The language does not offer\r\n * utilities to mutate primitive values.\r\n * @since 0.9.6\r\n * @group Type Identity\r\n * @param theType - The type as a string value to be checked whther it's a primitive type, this should be the value\r\n * returned from `typeof value`.\r\n * @example\r\n * ```ts\r\n * isPrimitiveType(null); // false\r\n * isPrimitiveType(undefined); // false\r\n * isPrimitiveType(\"null\"); // false\r\n * isPrimitiveType(\"undefined\"); // false\r\n * isPrimitiveType(\"1\"); // false\r\n * isPrimitiveType(\"aa\"); // false\r\n * isPrimitiveType(1); // false\r\n * isPrimitiveType(Number(2)); // false\r\n * isPrimitiveType(\"\"); // false\r\n * isPrimitiveType(String(\"\")); // false\r\n * isPrimitiveType(true); // false\r\n * isPrimitiveType(false); // false\r\n * isPrimitiveType(\"true\"); // false\r\n * isPrimitiveType(\"false\"); // false\r\n * isPrimitiveType(BigInt(42)); // false\r\n * isPrimitiveType(Symbol.for(\"Hello\")); // false\r\n *\r\n * isPrimitiveType(\"string\"); // true\r\n * isPrimitiveType(\"number\"); // true\r\n * isPrimitiveType(\"boolean\"); // true\r\n * isPrimitiveType(\"undefined\"); // true\r\n * isPrimitiveType(\"symbol\"); // true\r\n * isPrimitiveType(\"bigint\"); // true\r\n * ```\r\n */\r\nexport var isPrimitiveType = function (theType) {\r\n return theType !== OBJECT && PRIMITIVE_TYPES.indexOf(theType) !== -1;\r\n};\r\n/**\r\n * Checks to see if the past value is a string value\r\n * @group Type Identity\r\n * @group String\r\n * @param value - The value to check\r\n * @returns\r\n * @example\r\n * ```ts\r\n * isString(\"\"); // true\r\n * isString(\"null\"); // true\r\n * isString(\"undefined\"); // true\r\n * isString(String(\"\")); // true\r\n *\r\n * isString(null); // false\r\n * isString(undefined); // false\r\n * isString(0); // false\r\n * ```\r\n */\r\nexport var isString = _createIs(STRING);\r\n/**\r\n * Checks to see if the past value is a function value\r\n * @group Type Identity\r\n * @param value - The value to check\r\n * @returns\r\n * @example\r\n * ```ts\r\n * function myFunction() { }\r\n * isFunction(null); // false\r\n * isFunction(undefined); // false\r\n * isFunction(\"null\"); // false\r\n * isFunction(\"undefined\"); // false\r\n * isFunction(\"1\"); // false\r\n * isFunction(\"aa\"); // false\r\n * isFunction(new Date()); // false\r\n * isFunction(1); // false\r\n * isFunction(\"\"); // false\r\n * isFunction(myFunction); // true\r\n * isFunction([]); // false\r\n * isFunction(new Array(1)); // false\r\n * ```\r\n */\r\nexport var isFunction = _createIs(FUNCTION);\r\n/**\r\n * Checks to see if the past value is an object value\r\n * @group Type Identity\r\n * @group Object\r\n * @typeParam T - The object type, defaults to any\r\n * @param value - The value to check\r\n * @returns\r\n */\r\nexport function isObject(value) {\r\n if (!value && isNullOrUndefined(value)) {\r\n return false;\r\n }\r\n return !!value && typeof value === OBJECT;\r\n}\r\n/**\r\n * Checks if the type of value is an Array.\r\n *\r\n * @group Type Identity\r\n * @group Array\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Array, false otherwise.\r\n * @example\r\n * ```ts\r\n * import { isArray, isObject } from \"@nevware21/ts-utils\";\r\n *\r\n * function performAction(value: any) {\r\n * if (isArray(value) || isObject(value)) {\r\n * // Do something\r\n * } else {\r\n * // Do something else\r\n * }\r\n * }\r\n * ```\r\n */\r\nexport var isArray = ArrCls.isArray;\r\n/**\r\n * Check if an object is of type Date\r\n * @group Type Identity\r\n * @example\r\n * ```ts\r\n * import { isDate } from \"@nevware21/ts-utils\";\r\n *\r\n * let _theDate = null;\r\n *\r\n * function getSetDate(newDate?: any) {\r\n * _theDate = isDate(newDate) ? newDate : new Date();\r\n *\r\n * return _theDate;\r\n * }\r\n * ```\r\n */\r\nexport var isDate = _createObjIs(\"Date\");\r\n/**\r\n * Checks if the type of value is a number.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a number, false otherwise.\r\n */\r\nexport var isNumber = _createIs(NUMBER);\r\n/**\r\n * Checks if the type of value is a boolean.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a boolean, false otherwise.\r\n */\r\nexport var isBoolean = _createIs(BOOLEAN);\r\n/**\r\n * Determines if a value is a regular expression object.\r\n * @group Type Identity\r\n * @param {*} value Reference to check.\r\n * @returns {boolean} True if `value` is a `RegExp`.\r\n */\r\nexport var isRegExp = _createObjIs(\"RegExp\");\r\n/**\r\n * Checks if the type of value is a File object.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a File, false otherwise.\r\n */\r\nexport var isFile = _createObjIs(\"File\");\r\n/**\r\n * Checks if the type of value is a FormData object.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a FormData, false otherwise.\r\n */\r\nexport var isFormData = _createObjIs(\"FormData\");\r\n/**\r\n * Checks if the type of value is a Blob object.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Blob, false otherwise.\r\n */\r\nexport var isBlob = _createObjIs(\"Blob\");\r\n/**\r\n * Checks if the type of value is a ArrayBuffer object.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a ArrayBuffer, false otherwise.\r\n */\r\nexport var isArrayBuffer = _createObjIs(\"ArrayBuffer\");\r\n/**\r\n * Checks if the type of value is a Error object.\r\n * @group Type Identity\r\n * @group Error\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Error, false otherwise.\r\n */\r\nexport var isError = _createObjIs(\"Error\");\r\n/**\r\n * Checks if the type of value is a PromiseLike instance (contains a then function).\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a PromiseLike, false otherwise.\r\n */\r\nexport function isPromiseLike(value) {\r\n return !!value && isFunction(value.then);\r\n}\r\n/**\r\n * Checks if the type of value is a PromiseLike instance (contains a then function).\r\n * This is an alias for {@link isPromiseLike}.\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a PromiseLike, false otherwise.\r\n */\r\nexport var isThenable = isPromiseLike;\r\n/**\r\n * Checks if the type of value is a Promise instance (contains then and catch functions).\r\n * @group Type Identity\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a Promise, false otherwise.\r\n */\r\nexport function isPromise(value) {\r\n return isPromiseLike(value) && isFunction(value.catch);\r\n}\r\n/**\r\n * Checks if the type of value does not evaluate to true value, handling some special\r\n * case usages of Boolean(true/false) and new Boolean(true/false).\r\n * @group Value Check\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is not truthy, false otherwise.\r\n */\r\nexport function isNotTruthy(value) {\r\n return !value || !safeGet(function () { return (value && (0 + value)); }, value);\r\n}\r\n/**\r\n * Checks if the type of value evaluates to true value, handling some special\r\n * case usages of Boolean(true/false) and new Boolean(true/false).\r\n * @group Value Check\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is not truthy, false otherwise.\r\n */\r\nexport function isTruthy(value) {\r\n // Objects created with no prototype (Object.create(null)) cannot be converted to primitives\r\n // Which causes this code to throw, additionally just using !! also fails for Boolean objects\r\n // !!(new Boolean(false)) evaluates to true\r\n return !(!value || safeGet(function () { return !(value && (0 + value)); }, !value));\r\n //return !(!value || !(value && (0 + value)));\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ObjClass } from \"../internal/constants\";\r\n/**\r\n * The objGetOwnPropertyDescriptor() method returns an object describing the configuration of a specific property on\r\n * a given object (that is, one directly present on an object and not in the object's prototype chain). The object\r\n * returned is mutable but mutating it has no effect on the original property's configuration.\r\n * @since 0.4.3\r\n * @group Object\r\n * @param target - Object that contains the property.\r\n * @param prop - Name of the property.\r\n * @returns A property descriptor of the given property if it exists on the object, otherwise undefined.\r\n *\r\n * @example\r\n * ```ts\r\n * o = {};\r\n * objDefineProp(o, 'qux', {\r\n * value: 8675309,\r\n * writable: false,\r\n * enumerable: false\r\n * });\r\n * d = objGetOwnPropertyDescriptor(o, 'qux');\r\n * // d is {\r\n * // value: 8675309,\r\n * // writable: false,\r\n * // enumerable: false,\r\n * // configurable: false\r\n * // }\r\n *\r\n * objGetOwnPropertyDescriptor('foo', 0);\r\n * // TypeError: \"foo\" is not an object // ES5 code\r\n *\r\n * objGetOwnPropertyDescriptor('foo', 0);\r\n * // Object returned by ES2015 code: {\r\n * // configurable: false,\r\n * // enumerable: true,\r\n * // value: \"f\",\r\n * // writable: false\r\n * // }\r\n * ```\r\n * Note: In ES5, if the first argument to this method is not an object (a primitive), then it will cause a TypeError. In ES2015, a non-object first argument will be coerced to an object at first.\r\n */\r\nexport var objGetOwnPropertyDescriptor = ObjClass.getOwnPropertyDescriptor;\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ObjProto } from \"../internal/constants\";\r\n/**\r\n * The objHasOwnProperty() method returns a boolean indicating whether the object\r\n * has the specified property as its own property (as opposed to inheriting it).\r\n *\r\n * The objHasOwnProperty() method returns true if the specified property is a direct\r\n * property of the object — even if the value is null or undefined. The method returns\r\n * false if the property is inherited, or has not been declared at all. Unlike the in\r\n * operator, this method does not check for the specified property in the object's\r\n * prototype chain.\r\n *\r\n * The method can be called on most JavaScript objects, because most objects descend\r\n * from Object, and hence inherit its methods. For example Array is an Object, so you\r\n * can use objHasOwnProperty() method to check whether an index exists:\r\n * @group Object\r\n * @param obj - The object being evaluated\r\n * @param prop - The String or Symbol of the property to test\r\n * @returns `true` if the object has the specified property as own property; otherwise `false`\r\n * @example\r\n * ```ts\r\n * let example = {};\r\n * objHasOwnProperty(example, 'prop'); // false\r\n *\r\n * example.prop = 'exists';\r\n * objHasOwnProperty(example, 'prop'); // true - 'prop' has been defined\r\n *\r\n * example.prop = null;\r\n * objHasOwnProperty(example, 'prop'); // true - own property exists with value of null\r\n *\r\n * example.prop = undefined;\r\n * objHasOwnProperty(example, 'prop'); // true - own property exists with value of undefined\r\n * ```\r\n */\r\nexport function objHasOwnProperty(obj, prop) {\r\n return obj && ObjProto.hasOwnProperty.call(obj, prop);\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ObjClass } from \"../internal/constants\";\r\nimport { objGetOwnPropertyDescriptor } from \"./get_own_prop_desc\";\r\nimport { objHasOwnProperty } from \"./has_own_prop\";\r\n/**\r\n * The objHasOwn() method returns a boolean indicating whether the object\r\n * has the specified property as its own property (as opposed to inheriting it).\r\n * If the property is inherited, or does not exist, the method returns false.\r\n *\r\n * The objHasOwn() method returns true if the specified property is a direct property\r\n * of the object — even if the property value is null or undefined. The method returns\r\n * false if the property is inherited, or has not been declared at all. Unlike the in operator,\r\n * this method does not check for the specified property in the object's prototype chain.\r\n *\r\n * It is recommended over {@link objHasOwnProperty} () because it works for objects created using\r\n * objCreate(null) and with objects that have overridden the inherited hasOwnProperty() method.\r\n * While it is possible to workaround these problems by calling Object.prototype.hasOwnProperty()\r\n * on an external object, Object.hasOwn() is more intuitive.\r\n *\r\n * @since 0.4.3\r\n * @group Object\r\n * @param obj - The object being evaluated\r\n * @param prop - The String or Symbol of the property to test\r\n * @returns `true` if the object has the specified property as own property; otherwise `false`\r\n * @example\r\n * ```ts\r\n * let example = {};\r\n * objHasOwn(example, 'prop'); // false\r\n *\r\n * example.prop = 'exists';\r\n * objHasOwn(example, 'prop'); // true - 'prop' has been defined\r\n *\r\n * example.prop = null;\r\n * objHasOwn(example, 'prop'); // true - own property exists with value of null\r\n *\r\n * example.prop = undefined;\r\n * objHasOwn(example, 'prop'); // true - own property exists with value of undefined\r\n * ```\r\n */\r\nexport var objHasOwn = ObjClass[\"hasOwn\"] || polyObjHasOwn;\r\n/**\r\n * The polyObjHasOwn() method is a polyfill for {@link objHasOwn} when the native\r\n * [Object.hasOwnreturns](https://caniuse.com/?search=hasOwn) is not supported, it returns a\r\n * boolean indicating whether the object has the specified property as its own property (as\r\n * opposed to inheriting it). If the property is inherited, or does not exist, the method\r\n * returns false.\r\n *\r\n * The objHasOwn() method returns true if the specified property is a direct property\r\n * of the object — even if the property value is null or undefined. The method returns\r\n * false if the property is inherited, or has not been declared at all. Unlike the in operator,\r\n * this method does not check for the specified property in the object's prototype chain.\r\n *\r\n * It is recommended over objHasOwnProperty() because it works for objects created using\r\n * objCreate(null) and with objects that have overridden the inherited hasOwnProperty() method.\r\n * While it is possible to workaround these problems by calling Object.prototype.hasOwnProperty()\r\n * on an external object, Object.hasOwn() is more intuitive.\r\n *\r\n * @since 0.4.3\r\n * @group Object\r\n * @group Polyfill\r\n * @param obj - The object being evaluated\r\n * @param prop - The String or Symbol of the property to test\r\n * @returns `true` if the object has the specified property as own property; otherwise `false`\r\n * @example\r\n * ```ts\r\n * let example = {};\r\n * polyObjHasOwn(example, 'prop'); // false\r\n *\r\n * example.prop = 'exists';\r\n * polyObjHasOwn(example, 'prop'); // true - 'prop' has been defined\r\n *\r\n * example.prop = null;\r\n * polyObjHasOwn(example, 'prop'); // true - own property exists with value of null\r\n *\r\n * example.prop = undefined;\r\n * polyObjHasOwn(example, 'prop'); // true - own property exists with value of undefined\r\n * ```\r\n */\r\nexport function polyObjHasOwn(obj, prop) {\r\n return objHasOwnProperty(obj, prop) || !!objGetOwnPropertyDescriptor(obj, prop);\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { isObject } from \"../helpers/base\";\r\nimport { objHasOwn } from \"./has_own\";\r\n/**\r\n * Calls the provided `callbackFn` function once for each key in an object. This is equivelent to `arrForEach(Object.keys(theObject), callbackFn)` or\r\n * if not using the array helper `Object.keys(theObject).forEach(callbackFn)` except that this helper avoid creating a temporary of the object\r\n * keys before iterating over them and like the `arrForEach` helper you CAN stop or break the iteration by returning -1 from the `callbackFn` function.\r\n * @group Object\r\n * @typeParam T - The object type\r\n * @param callbackfn A function that accepts up to two arguments, the key name and the current value of the property represented by the key.\r\n * @param thisArg [Optional] An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, null or undefined\r\n * the object will be used as the this value.\r\n * @example\r\n * ```ts\r\n * function performAction(target: T, source: any) {\r\n * if (!isNullOrUndefined(source)) {\r\n * objForEachKey(source, (key, value) => {\r\n * // Set the target with a reference to the same value with the same name\r\n * target[key] = value;\r\n * });\r\n * }\r\n *\r\n * return target;\r\n * }\r\n * ```\r\n */\r\nexport function objForEachKey(theObject, callbackfn, thisArg) {\r\n if (theObject && isObject(theObject)) {\r\n for (var prop in theObject) {\r\n if (objHasOwn(theObject, prop)) {\r\n if (callbackfn.call(thisArg || theObject, prop, theObject[prop]) === -1) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ObjClass, VALUE } from \"../internal/constants\";\r\nimport { isFunction, isUndefined } from \"../helpers/base\";\r\nimport { objForEachKey } from \"./for_each_key\";\r\nimport { objGetOwnPropertyDescriptor } from \"./get_own_prop_desc\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * Mapping from ObjDefinePropDescriptor key to PropertyDescriptor key\r\n */\r\nvar propMap = {\r\n e: \"enumerable\",\r\n c: \"configurable\",\r\n v: VALUE,\r\n w: \"writable\",\r\n g: \"get\",\r\n s: \"set\"\r\n};\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper to convert ObjDefinePropDescriptor into PropertyDescriptor\r\n * @param value - The prop descriptor to convert\r\n * @returns\r\n */\r\nfunction _createProp(value) {\r\n var prop = {};\r\n prop[propMap[\"c\"]] = true;\r\n prop[propMap[\"e\"]] = true;\r\n if (value.l) {\r\n // Asign a getter function to return the value when requested\r\n prop.get = function () { return value.l.v; };\r\n // If it has a setter then expose it as well\r\n var desc = objGetOwnPropertyDescriptor(value.l, \"v\");\r\n if (desc && desc.set) {\r\n prop.set = function (newValue) {\r\n value.l.v = newValue;\r\n };\r\n }\r\n }\r\n objForEachKey(value, function (key, value) {\r\n prop[propMap[key]] = isUndefined(value) ? prop[propMap[key]] : value;\r\n });\r\n return prop;\r\n}\r\n/**\r\n * Defines a new property directly on an object, or modifies an existing property on an object, and returns the object.\r\n * This is a wrapper for [Object.defineProperty](https://developer.mozilla.org/en-US/docs/web/javascript/reference/global_objects/object/defineproperty)\r\n *\r\n * This method allows a precise addition to or modification of a property on an object. Normal property addition through\r\n * assignment creates properties which show up during property enumeration (for...in loop or objKeys method), whose\r\n * values may be changed, and which may be deleted. This method allows these extra details to be changed from their\r\n * defaults. By default, properties added using objDefineProp() are not writable, not enumerable, and not configurable.\r\n *\r\n * Property descriptors present in objects come in two main flavors: data descriptors and accessor descriptors. A data\r\n * descriptor is a property that has a value, which may or may not be writable. An accessor descriptor is a property\r\n * described by a getter-setter pair of functions. A descriptor must be one of these two flavors; it cannot be both.\r\n *\r\n * This is an alias for Object.defineProperty\r\n * @group Object\r\n * @param target - The object on which to define the property.\r\n * @param key - The name or Symbol of the property to be defined or modified.\r\n * @param descriptor - The descriptor for the property being defined or modified.\r\n */\r\nexport var objDefineProp = ObjClass[\"defineProperty\"];\r\n/**\r\n * The objDefineProperties() method defines new or modifies existing properties directly on an object, returning the object.\r\n * This is a wrapper for [Object.defineProperties](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperties)\r\n * @since 0.6.0\r\n * @group Object\r\n * @param target - The object on which to define or modify properties.\r\n * @param props - An object whose keys represent the names of properties to be defined or modified and whose values are\r\n * objects describing those properties. Each value in props must be either a data descriptor or an accessor descriptor;\r\n * it cannot be both (see {@link ObjDefinePropDescriptorMap} for more details).\r\n * @returns\r\n */\r\nexport var objDefineProperties = ObjClass[\"defineProperties\"];\r\n/**\r\n * Try to define a get object property accessor for the target object, if a function is past as the value this will\r\n * be assumed to be a getter function and NOT the value.\r\n * @deprecated It is recommended that you use {@link objDefine} instead {@link objDefineGet} or {@link objDefineAccessors}\r\n * as it provides a deterministic way for identifying whether the value is a value or a function rather than wrapping any\r\n * function value in another function.\r\n * @group Object\r\n * @param target - The object on which to define the property.\r\n * @param key - The name of the property to be defined or modified\r\n * @param value - The value or a function that returns the value\r\n * @param configurable - Can the value be changed, defaults to true.\r\n * @param enumerable - Should this get property be enumerable, defaults to true.\r\n * @returns The object that was passed to the function\r\n */\r\nexport function objDefineGet(target, key, value, configurable, enumerable) {\r\n var _a;\r\n return objDefineProp(target, key, _createProp((_a = {\r\n e: enumerable,\r\n c: configurable\r\n },\r\n _a[isFunction(value) ? \"g\" : \"v\"] = value,\r\n _a)));\r\n}\r\n/**\r\n * Try to define get/set object property accessors for the target object/prototype, this will provide compatibility with\r\n * existing API definition when run within an ES5+ container that supports accessors but still enable the code to be loaded\r\n * and executed in an ES3 container, providing basic IE8 compatibility.\r\n * @deprecated It is recommended that you use {@link objDefine} instead {@link objDefineAccessors} as this internally creates\r\n * the {@link ObjDefinePropDescriptor} definition based on your provided arguments. And only using a minimum set of functions\r\n * reduces your overall bundle size.\r\n * @group Object\r\n * @param target - The object on which to define the property.\r\n * @param prop - The name of the property to be defined or modified.\r\n * @param getProp - The getter function to wire against the getter.\r\n * @param setProp - The setter function to wire against the setter.\r\n * @param configurable - Can the value be changed, defaults to true\r\n * @param enumerable - Should this get property be enumerable, defaults to true.\r\n * @returns The object that was passed to the function\r\n */\r\nexport function objDefineAccessors(target, prop, getProp, setProp, configurable, enumerable) {\r\n var desc = {\r\n e: enumerable,\r\n c: configurable\r\n };\r\n if (getProp) {\r\n desc.g = getProp;\r\n }\r\n if (setProp) {\r\n desc.s = setProp;\r\n }\r\n return objDefineProp(target, prop, _createProp(desc));\r\n}\r\n/**\r\n * The objDefine() method defines a new or modifies an existing single property accessors for the target object based\r\n * on the configuration defined for the propDesc argument of type {@link ObjDefinePropDescriptor}. This will call\r\n * {@link objDefineProp} after creating the required PropertyDescriptor populating defaults for the propDesc values.\r\n * Note, the default values (true) for `configurable` and `enumerable` are different from the defaults provided by objDefineProp.\r\n * @since 0.6.0\r\n * @group Object\r\n * @param target - The object on which to define the property.\r\n * @param key - The name of the property to be defined or modified\r\n * @param propDesc - An object which defines the Property Descriptor mappings for the mapping.\r\n * @returns The target object.\r\n */\r\nexport function objDefine(target, key, propDesc) {\r\n return objDefineProp(target, key, _createProp(propDesc));\r\n}\r\n/**\r\n * The objDefineProps() method defines new or modifies existing properties directly for the target object using the keys\r\n * and configuration from the propDescMap argument. This will call {@link objDefineProperties} after creating the required\r\n * PropertyDescriptorMap from the propDescMap values.\r\n * Note, the default values (true) for `configurable` and `enumerable` are different from the defaults provided by objDefineProperties.\r\n * @since 0.6.0\r\n * @group Object\r\n * @param target - The object on which to define or modify properties.\r\n * @param propDescMap - An object whose keys represent the names of properties to be defined or modified and whose values are\r\n * objects describing those properties. Each value in props must be either a data descriptor or an accessor descriptor;\r\n * it cannot be both (see {@link ObjDefinePropDescriptorMap} for more details).\r\n * @returns The target object.\r\n */\r\nexport function objDefineProps(target, propDescMap) {\r\n var props = {};\r\n objForEachKey(propDescMap, function (key, value) {\r\n props[key] = _createProp(value);\r\n });\r\n return objDefineProperties(target, props);\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { NULL_VALUE } from \"../internal/constants\";\r\nimport { _getGlobalConfig } from \"../internal/global\";\r\nimport { objDefineProp } from \"../object/define\";\r\n/**\r\n * @internal\r\n * Internal flag which is set by the public {@link setBypassLazyCache}, should not be externally exported\r\n */\r\nexport var _globalLazyTestHooks;\r\nvar _fetchLazyTestHooks = function () {\r\n _globalLazyTestHooks = _getGlobalConfig();\r\n _fetchLazyTestHooks = NULL_VALUE;\r\n};\r\n/**\r\n * Create and return an readonly {@link ILazyValue} instance which will cache and return the value returned\r\n * by the callback function. The callback function will only be called once, multiple access of the value\r\n * does not cause re-execution of the callback as the result from the first call is cached internally.\r\n * @since 0.4.5\r\n * @group Lazy\r\n * @param cb - The callback function to fetch the value to be lazily evaluated and cached\r\n * @returns A new readonly {@link ILazyValue} instance which wraps the callback and will be used to cache\r\n * the result of the callback\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * let cachedValue = getLazy(() => callSomeExpensiveFunction());\r\n * let theValue;\r\n *\r\n * // Just checking if there is an object still does not cause the evaluation\r\n * if (cachedValue) {\r\n * // This will cause the evaluation to occur and the result will be cached\r\n * theValue = cachedValue.v;\r\n * }\r\n *\r\n * // Accessing the value again will not cause the re-evaluation to occur, it will just return the same\r\n * // result value again.\r\n * theValue === cachedValue.v; // true\r\n *\r\n * ```\r\n */\r\nexport function getLazy(cb) {\r\n var lazyValue = {};\r\n _fetchLazyTestHooks && _fetchLazyTestHooks();\r\n lazyValue.b = _globalLazyTestHooks.lzy;\r\n objDefineProp(lazyValue, \"v\", {\r\n configurable: true,\r\n get: function () {\r\n var result = cb();\r\n if (!_globalLazyTestHooks.lzy) {\r\n // Just replace the value\r\n objDefineProp(lazyValue, \"v\", {\r\n value: result\r\n });\r\n if (lazyValue.b) {\r\n delete lazyValue.b;\r\n }\r\n }\r\n if (_globalLazyTestHooks.lzy && lazyValue.b !== _globalLazyTestHooks.lzy) {\r\n lazyValue.b = _globalLazyTestHooks.lzy;\r\n }\r\n return result;\r\n }\r\n });\r\n return lazyValue;\r\n}\r\n/**\r\n * Test Hook function used to cause the internal caching of objects to be bypassed, this should never\r\n * be enabled for production as it has additional performance impact caused by the repetitive creation\r\n * of the lazy wrappers.\r\n * @group Lazy\r\n * @since 0.5.0\r\n * @param newValue - When `true` will cause all new lazy implementations to bypass the cached lookup.\r\n */\r\nexport function setBypassLazyCache(newValue) {\r\n _fetchLazyTestHooks && _fetchLazyTestHooks();\r\n _globalLazyTestHooks.lzy = newValue;\r\n}\r\n/**\r\n * Create and return a writable {@link ILazyValue} instance which will cache and return the value returned\r\n * by the callback function. The callback function will only be called once, multiple access of the value\r\n * does not cause re-execution of the callback as the result from the first call is cached internally. The\r\n * value may be set as many times as required, if the callback has not been called when you set the value\r\n * it will never get called.\r\n * @since 0.9.4\r\n * @group Lazy\r\n * @param cb - The callback function to fetch the value to be lazily evaluated and cached\r\n * @returns A new writable {@link ILazyValue} instance which wraps the callback and will be used to cache\r\n * the result of the callback\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * let cachedValue = getWritableLazy(() => callSomeExpensiveFunction());\r\n * let theValue;\r\n *\r\n * // Just checking if there is an object still does not cause the evaluation\r\n * if (cachedValue) {\r\n * // This will cause the evaluation to occur and the result will be cached\r\n * theValue = cachedValue.v;\r\n * }\r\n *\r\n * // Accessing the value again will not cause the re-evaluation to occur, it will just return the same\r\n * // result value again.\r\n * theValue === cachedValue.v; // true\r\n *\r\n * // Setting the value\r\n * let cachedValue = getWritableLazy(() => callSomeExpensiveFunction());\r\n * let theValue = \"new Value\";\r\n *\r\n * // Just checking if there is an object still does not cause the evaluation\r\n * if (cachedValue) {\r\n * // This will set the value to be set explicitly and the callback\r\n * // will now never occur and the result will be cached\r\n * cachedValue.v = theValue;\r\n * }\r\n *\r\n * // Accessing the value again will cause the previously set value to be returned.\r\n * theValue === cachedValue.v; // true\r\n * ```\r\n */\r\nexport function getWritableLazy(cb) {\r\n var lazyValue = {};\r\n _fetchLazyTestHooks && _fetchLazyTestHooks();\r\n lazyValue.b = _globalLazyTestHooks.lzy;\r\n var _setValue = function (newValue) {\r\n // Just replace the value\r\n objDefineProp(lazyValue, \"v\", {\r\n value: newValue,\r\n writable: true\r\n });\r\n if (lazyValue.b) {\r\n delete lazyValue.b;\r\n }\r\n };\r\n objDefineProp(lazyValue, \"v\", {\r\n configurable: true,\r\n get: function () {\r\n var result = cb();\r\n if (!_globalLazyTestHooks.lzy) {\r\n // Just replace the value\r\n _setValue(result);\r\n }\r\n if (_globalLazyTestHooks.lzy && lazyValue.b !== _globalLazyTestHooks.lzy) {\r\n lazyValue.b = _globalLazyTestHooks.lzy;\r\n }\r\n return result;\r\n },\r\n set: _setValue\r\n });\r\n return lazyValue;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { getLazy } from \"./lazy\";\r\nimport { safeGet } from \"./safe_get\";\r\n/**\r\n * Create and return an readonly {@link ILazyValue} instance which will cache and return the value returned\r\n * by the callback function. The callback function will only be called once, multiple access of the value\r\n * does not cause re-execution of the callback as the result from the first call is cached internally.\r\n * If the callback throws the default value will be returned.\r\n * @since 0.9.5\r\n * @group Lazy\r\n * @group Safe\r\n * @param cb - The callback function to fetch the value to be lazily evaluated and cached\r\n * @param defValue - The default value to return when an exception is thrown\r\n * @returns A new readonly {@link ILazyValue} instance which wraps the callback and will be used to cache\r\n * the result of the callback\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * let cachedValue = safeGetLazy(() => callSomeExpensiveFunctionWhichMightThrow(), \"someDefaultValue\");\r\n * let theValue;\r\n *\r\n * // Just checking if there is an object still does not cause the evaluation\r\n * if (cachedValue) {\r\n * // This will cause the evaluation to occur and the result will be cached\r\n * theValue = cachedValue.v;\r\n * }\r\n *\r\n * // Accessing the value again will not cause the re-evaluation to occur, it will just return the same\r\n * // result value again.\r\n * theValue === cachedValue.v; // true\r\n *\r\n * ```\r\n */\r\nexport function safeGetLazy(cb, defValue) {\r\n return getLazy(function () { return safeGet(cb, defValue); });\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { NULL_VALUE, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { _getGlobalValue } from \"../internal/global\";\r\nimport { safeGetLazy } from \"./safe_lazy\";\r\nimport { _globalLazyTestHooks } from \"./lazy\";\r\nvar WINDOW = \"window\";\r\nvar _cachedGlobal;\r\nvar _cachedWindow;\r\nvar _cachedDocument;\r\nvar _cachedNavigator;\r\nvar _cachedHistory;\r\nvar _isWebWorker;\r\nvar _isNode;\r\n/**\r\n * Create and return an readonly {@link ILazyValue} instance which will cache and return the named global\r\n * value if available, will return `null` if the named global object is not available or if the runtime\r\n * throws an exception when attempting to access the global object.\r\n * Unlike {@link getInst} the value is cached after the first access, so if the global value changes after\r\n * the initial fetch the original cached value is still returned.\r\n * @since 0.9.5\r\n * @group Environment\r\n * @group Lazy\r\n * @group Safe\r\n * @param name The name of the global object to get.\r\n * @returns A new readonly {@link ILazyValue} instance which will lazily attempt to return the globally\r\n * available named instance.\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * window.myGlobal = \"Hello\";\r\n * let cachedValue = lazySafeGetInst(\"myGlobal\");\r\n * // cachedValue.v === \"Hello\"\r\n *\r\n * window.myGlobal = \"Darkness\";\r\n * // cachedValue.v === \"Hello\"\r\n *\r\n * let promiseCls = lazySafeGetInst(\"Promise\");\r\n * // null if Promise is not supported in the runtime\r\n * // otherwise the Promise class.\r\n * ```\r\n */\r\nexport var lazySafeGetInst = function (name) { return safeGetLazy(function () { return getInst(name) || UNDEF_VALUE; }, UNDEF_VALUE); };\r\n/**\r\n * Returns the current global scope object, for a normal web page this will be the current\r\n * window, for a Web Worker this will be current worker global scope via \"self\". The internal\r\n * implementation returns the first available instance object in the following order\r\n * - globalThis (New standard)\r\n * - self (Will return the current window instance for supported browsers)\r\n * - window (fallback for older browser implementations)\r\n * - global (NodeJS standard)\r\n * - (When all else fails)\r\n * While the return type is a Window for the normal case, not all environments will support all\r\n * of the properties or functions. And this caches the lookup of the global as in some environments\r\n * this can be an expensive operation.\r\n * @group Environment\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n */\r\nexport var getGlobal = function (useCached) {\r\n (!_cachedGlobal || useCached === false || (_globalLazyTestHooks && _globalLazyTestHooks.lzy && !_cachedGlobal.b)) && (_cachedGlobal = safeGetLazy(_getGlobalValue, NULL_VALUE));\r\n return _cachedGlobal.v;\r\n};\r\n/**\r\n * Return the named global object if available, will return null if the object is not available.\r\n * @group Environment\r\n * @param name The globally named object\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n * @example\r\n * ```ts\r\n * // This does not cause the evaluation to occur\r\n * window.myGlobal = \"Hello\";\r\n * let cachedValue = getInst(\"myGlobal\");\r\n * // cachedValue === \"Hello\"\r\n *\r\n * window.myGlobal = \"Darkness\";\r\n * // getInst(\"myGlobal\") === \"Darkness\"\r\n *\r\n * let promiseCls = getInst(\"Promise\");\r\n * // May throw if the global is not supported by the runtime\r\n * // otherwise the Promise class.\r\n * ```\r\n */\r\nexport var getInst = function (name, useCached) {\r\n var gbl = (!_cachedGlobal || useCached === false) ? getGlobal(useCached) : _cachedGlobal.v;\r\n if (gbl && gbl[name]) {\r\n return gbl[name];\r\n }\r\n // Test workaround, for environments where .window (when global == window) doesn't return the base window\r\n if (name === WINDOW && _cachedWindow) {\r\n // tslint:disable-next-line: no-angle-bracket-type-assertion\r\n return _cachedWindow.v;\r\n }\r\n return NULL_VALUE;\r\n};\r\n/**\r\n * Identify whether the runtime contains a `document` object\r\n * @group Environment\r\n * @returns - True if a `document` exists\r\n */\r\nexport var hasDocument = function () { return !!getDocument(); };\r\n/**\r\n * Return the global `document` instance.\r\n * @group Environment\r\n * @returns\r\n */\r\nexport var getDocument = function () {\r\n (!_cachedDocument || (_globalLazyTestHooks && _globalLazyTestHooks.lzy && !_cachedDocument.b)) && (_cachedDocument = lazySafeGetInst(\"document\"));\r\n return _cachedDocument.v;\r\n};\r\n/**\r\n * Identify whether the runtime contains a `window` object\r\n * @group Environment\r\n * @returns\r\n */\r\nexport var hasWindow = function () { return !!getWindow(); };\r\n/**\r\n * Return the global `window` instance.\r\n * @group Environment\r\n * @returns\r\n */\r\nexport var getWindow = function () {\r\n (!_cachedWindow || (_globalLazyTestHooks && _globalLazyTestHooks.lzy && !_cachedWindow.b)) && (_cachedWindow = lazySafeGetInst(WINDOW));\r\n return _cachedWindow.v;\r\n};\r\n/**\r\n * Identify whether the runtimne contains a `navigator` object\r\n * @group Environment\r\n * @returns\r\n */\r\nexport var hasNavigator = function () { return !!getNavigator(); };\r\n/**\r\n * Returns the global `navigator` instance\r\n * @group Environment\r\n * @returns\r\n */\r\nexport var getNavigator = function () {\r\n (!_cachedNavigator || (_globalLazyTestHooks && _globalLazyTestHooks.lzy && !_cachedNavigator.b)) && (_cachedNavigator = lazySafeGetInst(\"navigator\"));\r\n return _cachedNavigator.v;\r\n};\r\n/**\r\n * Identifies whether the runtime contains a `history` object\r\n * @group Environment\r\n * @returns\r\n */\r\nexport var hasHistory = function () { return !!getHistory(); };\r\n/**\r\n * Returns the global `history` instance\r\n * @group Environment\r\n * @returns\r\n */\r\nexport var getHistory = function () {\r\n (!_cachedHistory || (_globalLazyTestHooks && _globalLazyTestHooks.lzy && !_cachedHistory.b)) && (_cachedHistory = lazySafeGetInst(\"history\"));\r\n return _cachedHistory.v;\r\n};\r\n/**\r\n * Simple method to determine if we are running in a node environment\r\n * @group Environment\r\n * @returns True if you are\r\n */\r\nexport var isNode = function () {\r\n !_isNode && (_isNode = safeGetLazy(function () { return !!(process && (process.versions || {}).node); }, false));\r\n return _isNode.v;\r\n};\r\n/**\r\n * Helper to identify if you are running as a Dedicated, Shared or Service worker\r\n * @group Environment\r\n * @returns True if the environment you are in looks like a Web Worker\r\n */\r\nexport var isWebWorker = function () {\r\n !_isWebWorker && (_isWebWorker = safeGetLazy(function () { return !!(self && self instanceof WorkerGlobalScope); }, false));\r\n return _isWebWorker.v;\r\n};\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\n/**\r\n * Throw an error exception with the specified optional message\r\n * @group Error\r\n * @param message\r\n */\r\nexport function throwError(message) {\r\n throw new Error(message);\r\n}\r\n/**\r\n * Throw a type error with the specified optional message\r\n * @group Error\r\n * @param message\r\n */\r\nexport function throwTypeError(message) {\r\n throw new TypeError(message);\r\n}\r\n/**\r\n * Throw a RangeError with the specified optional message\r\n * @group Error\r\n * @param message\r\n */\r\nexport function throwRangeError(message) {\r\n throw new RangeError(message);\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar _a;\r\nimport { getGlobal, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\n;\r\nvar UNDEFINED = \"undefined\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nvar DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nvar _gbl = getGlobal();\r\nvar _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n o: (_a = {},\r\n _a[strSetInstFuncs] = true,\r\n _a[strUseBaseInst] = true,\r\n _a),\r\n n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n var newProto;\r\n if (target) {\r\n // This method doesn't exist in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n newProto = target[DynProtoBaseProto] || curProto;\r\n if (!objHasOwnProperty(target, DynProtoBaseProto)) {\r\n // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n target[DynProtoCurrent] = curProto;\r\n }\r\n }\r\n return newProto;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && objHasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || objHasOwnProperty(target, funcName)));\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throwTypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = {};\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = {};\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && objHasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n instFunc = (instFuncTable[proto[DynClassName]] || {})[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !objHasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n // eslint-disable-next-line prefer-rest-params\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || {};\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || {}); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!objHasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n return false;\r\n }\r\n // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n return true;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (objHasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!objHasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (objHasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n;\r\n _gblInst.n++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { NULL_VALUE, ObjClass, __PROTO__ } from \"../internal/constants\";\r\nimport { isArray, isObject } from \"../helpers/base\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { objForEachKey } from \"./for_each_key\";\r\nimport { polyObjEntries, polyObjValues } from \"../polyfills/object\";\r\nvar _objFreeze = ObjClass[\"freeze\"];\r\nvar _doNothing = function (value) { return value; };\r\nvar _getProto = function (value) { return value[__PROTO__] || NULL_VALUE; };\r\n/**\r\n * The `objAssign()` method copies all enumerable own properties from one or more source objects\r\n * to a target object. It returns the modified target object.\r\n *\r\n * Properties in the target object are overwritten by properties in the sources if they have the\r\n * same key. Later sources' properties overwrite earlier ones.\r\n *\r\n * The objAssign() method only copies enumerable and own properties from a source object to a\r\n * target object. It uses `Get` on the source and `Set` on the target, so it will invoke\r\n * [getters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/get) and\r\n * [setters](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set).\r\n * Therefore it assigns properties, versus copying or defining new properties. This may make it\r\n * unsuitable for merging new properties into a prototype if the merge sources contain getters.\r\n *\r\n * For copying property definitions (including their enumerability) into prototypes, use\r\n * {@link objGetOwnPropertyDescriptor} and {@link objDefineProp} instead.\r\n *\r\n * Both String and Symbol properties are copied.\r\n *\r\n * In case of an error, for example if a property is non-writable, a TypeError is raised, and\r\n * the target object is changed if any properties are added before the error is raised.\r\n * @group Object\r\n * @example\r\n * ```ts\r\n * const obj = { a: 1 };\r\n * const copy = objAssign({}, obj);\r\n * console.log(copy); // { a: 1 }\r\n *\r\n * const o1 = { a: 1 };\r\n * const o2 = { b: 2 };\r\n * const o3 = { c: 3 };\r\n *\r\n * const obj = objAssign(o1, o2, o3);\r\n * console.log(obj); // { a: 1, b: 2, c: 3 }\r\n * console.log(o1); // { a: 1, b: 2, c: 3 }, target object itself is changed.\r\n * ```\r\n */\r\nexport var objAssign = ObjClass[\"assign\"];\r\n/**\r\n * The `objKeys()` method returns an array of a given object's own enumerable property names, iterated in\r\n * the same order that a normal loop would.\r\n *\r\n * objKeys() returns an array whose elements are strings corresponding to the enumerable properties found\r\n * directly upon object. The ordering of the properties is the same as that given by looping over the\r\n * properties of the object manually.\r\n * @group Object\r\n * @param value - The object to obtain a copy of the keys from\r\n * @returns An array of the properties names for the value object.\r\n * @example\r\n * ```ts\r\n * // simple array\r\n * const arr = ['a', 'b', 'c'];\r\n * console.log(objKeys(arr)); // console: ['0', '1', '2']\r\n *\r\n * // array-like object\r\n * const obj = { 0: 'a', 1: 'b', 2: 'c' };\r\n * console.log(objKeys(obj)); // console: ['0', '1', '2']\r\n *\r\n * // array-like object with random key ordering\r\n * const anObj = { 100: 'a', 2: 'b', 7: 'c' };\r\n * console.log(objKeys(anObj)); // console: ['2', '7', '100']\r\n *\r\n * // getFoo is a property which isn't enumerable\r\n * const myObj = objCreate({}, {\r\n * getFoo: {\r\n * value() { return this.foo; }\r\n * }\r\n * });\r\n * myObj.foo = 1;\r\n * console.log(objKeys(myObj)); // console: ['foo']\r\n * ```\r\n */\r\nexport function objKeys(value) {\r\n if (!isObject(value) || value === NULL_VALUE) {\r\n throwTypeError(\"objKeys called on non-object\");\r\n }\r\n return ObjClass.keys(value);\r\n}\r\n/**\r\n * Perform a deep freeze on the object and all of it's contained values / properties by recursively calling\r\n * `objFreeze()` on all enumerable properties of the object and on each property returned.\r\n * @group Object\r\n * @param value - the object to be completly frozen.\r\n * @returns The originally passed in object.\r\n */\r\nexport function objDeepFreeze(value) {\r\n if (_objFreeze) {\r\n objForEachKey(value, function (key, value) {\r\n if (isArray(value) || isObject(value)) {\r\n _objFreeze(value);\r\n }\r\n });\r\n }\r\n return objFreeze(value);\r\n}\r\n/**\r\n * The `objFreeze()` method freezes an object. A frozen object can no longer be changed; freezing an object\r\n * prevents new properties from being added to it, existing properties from being removed, prevents changing the\r\n * enumerability, configurability, or writability of existing properties, and prevents the values of existing\r\n * properties from being changed. In addition, freezing an object also prevents its prototype from being changed.\r\n * `objFreeze()` returns the same object that was passed in.\r\n *\r\n * Nothing can be added to or removed from the properties set of a frozen object. Any attempt to do so will fail,\r\n * either silently or by throwing a TypeError exception (most commonly, but not exclusively, when in strict mode).\r\n *\r\n * For data properties of a frozen object, values cannot be changed, the writable and configurable attributes are\r\n * set to false. Accessor properties (getters and setters) work the same (and still give the illusion that you are\r\n * changing the value). Note that values that are objects can still be modified, unless they are also frozen. As\r\n * an object, an array can be frozen; after doing so, its elements cannot be altered and no elements can be added\r\n * to or removed from the array.\r\n *\r\n * `objFreeze()` returns the same object that was passed into the function. It does not create a frozen copy.\r\n * @group Object\r\n * @param value - The object to freeze.\r\n * @returns The object that was passed to the function.\r\n */\r\nexport var objFreeze = _objFreeze || _doNothing;\r\n/**\r\n * The `objSeal()` method seals an object, preventing new properties from being added to it and marking all\r\n * existing properties as non-configurable. Values of present properties can still be changed as long as they\r\n * are writable.\r\n * @group Object\r\n * @param value - The object which should be sealed.\r\n * @returns The object being sealed.\r\n */\r\nexport var objSeal = ObjClass[\"seal\"] || _doNothing;\r\n/**\r\n * The objGetPrototypeOf() method returns the prototype (i.e. the value of the internal `Prototype` property)\r\n * of the specified value.\r\n * @since 0.4.4\r\n * @group Object\r\n * @param value - The object whose prototype is to be returned, which may be null.\r\n */\r\nexport var objGetPrototypeOf = ObjClass[\"getPrototypeOf\"] || _getProto;\r\n/**\r\n * Returns an array of key/values of the enumerable properties of an object\r\n * @since 0.9.7\r\n * @group Object\r\n * @group ArrayLike\r\n * @param value Object that contains the properties and methods.\r\n * @example\r\n * ```ts\r\n * objEntries({ Hello: \"Darkness\", my: \"old\", friend: \".\" });\r\n * // [ [ \"Hello\", \"Darkness\" ], [ \"my\", \"old\"], [ \"friend\", \".\" ] ]\r\n *\r\n * // Array-like object\r\n * objEntries({ 0: \"a\", 1: \"b\", 2: \"c\" }));\r\n * // [ ['0', 'a'], ['1', 'b'], ['2', 'c'] ]\r\n *\r\n * // Array-like object with random key ordering\r\n * objEntries({ 100: \"a\", 2: \"b\", 7: \"c\" });\r\n * // [ ['2', 'b'], ['7', 'c'], ['100', 'a'] ]*\r\n * ```\r\n */\r\nexport var objEntries = ObjClass.entries || polyObjEntries;\r\n/**\r\n * The objValues() returns an array whose elements are values of enumerable string-keyed properties found\r\n * directly upon object. This is the same as iterating with a for...in loop, except that a for...in loop\r\n * enumerates properties in the prototype chain as well. The order of the array returned by objValues()\r\n * is the same as that provided by a for...in loop.\r\n *\r\n * If you need the property keys, use objKeys() instead. If you need both the property keys and values, use objEntries() instead.\r\n * @since 0.9.7\r\n * @group Object\r\n * @group ArrayLike\r\n * @param value - The object that contains the properties and methods.\r\n * @returns An array containing the given object's own enumerable string-keyed property values.\r\n * @example\r\n * ```ts\r\n * objValues({ Hello: \"Darkness\", my: \"old\", friend: \".\" });\r\n * // [ \"Darkness\", \"old\", \".\" ]\r\n *\r\n * // Array-like object\r\n * objValues({ 0: \"a\", 1: \"b\", 2: \"c\" }));\r\n * // [ 'a', 'b', 'c']\r\n *\r\n * // Array-like object with random key ordering\r\n * objValues({ 100: \"a\", 2: \"b\", 7: \"c\" });\r\n * // [ 'b', 'c', 'a']\r\n * ```\r\n */\r\nexport var objValues = ObjClass.values || polyObjValues;\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { EMPTY, NULL_VALUE, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { isError, isNumber, objToString } from \"./base\";\r\n/**\r\n * Returns string representation of an object suitable for diagnostics logging.\r\n * @group Error\r\n * @group Diagnostic\r\n * @param object - The object to be converted to a diagnostic string value\r\n * @param format - Identifies whether the JSON value should be formated\r\n * - `true` - Format with 4 spaces\r\n * - 'number' - The number of spaces to format with\r\n * - `false` (or not Truthy) - Do not format\r\n */\r\nexport function dumpObj(object, format) {\r\n var propertyValueDump = EMPTY;\r\n if (isError(object)) {\r\n propertyValueDump = \"{ stack: '\" + object.stack + \"', message: '\" + object.message + \"', name: '\" + object.name + \"'\";\r\n }\r\n else {\r\n try {\r\n propertyValueDump = JSON.stringify(object, NULL_VALUE, format ? (isNumber(format) ? format : 4) : UNDEF_VALUE);\r\n }\r\n catch (e) {\r\n // Unable to convert object (probably circular)\r\n propertyValueDump = \" - \" + dumpObj(e, format);\r\n }\r\n }\r\n return objToString(object) + \": \" + propertyValueDump;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { FUNCTION, ObjClass, OBJECT, PROTOTYPE } from \"../internal/constants\";\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nvar _objCreate = ObjClass[\"create\"];\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @group Object\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport var objCreate = _objCreate || polyObjCreate;\r\n/**\r\n * Creates an object that has the specified prototype, and that optionally contains specified properties. This helper exists to avoid adding a polyfil\r\n * for older browsers that do not define Object.create eg. ES3 only, IE8 just in case any page checks for presence/absence of the prototype implementation.\r\n * Note: For consistency this will not use the Object.create implementation if it exists as this would cause a testing requirement to test with and without the implementations\r\n * @group Polyfill\r\n * @group Object\r\n * @param obj Object to use as a prototype. May be null\r\n */\r\nexport function polyObjCreate(obj) {\r\n if (!obj) {\r\n return {};\r\n }\r\n var type = typeof obj;\r\n if (type !== OBJECT && type !== FUNCTION) {\r\n throw new TypeError(\"Prototype must be an Object or function: \" + dumpObj(obj));\r\n }\r\n function tempFunc() { }\r\n tempFunc[PROTOTYPE] = obj;\r\n return new tempFunc();\r\n}\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strShimFunction = \"function\";\r\nexport var strShimObject = \"object\";\r\nexport var strShimUndefined = \"undefined\";\r\nexport var strShimPrototype = \"prototype\";\r\nexport var strDefault = \"default\";\r\nexport var ObjClass = Object;\r\nexport var ObjProto = ObjClass[strShimPrototype];\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getGlobal, objAssign, objCreate, objDefineProp, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { ObjClass, ObjProto, strDefault, strShimFunction, strShimPrototype } from \"./Constants\";\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES5 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\nexport var SymbolObj = (getGlobal() || {})[\"Symbol\"];\r\nexport var ReflectObj = (getGlobal() || {})[\"Reflect\"];\r\nexport var __hasReflect = !!ReflectObj;\r\nvar strDecorate = \"decorate\";\r\nvar strMetadata = \"metadata\";\r\nvar strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nvar strIterator = \"iterator\";\r\nvar strHasOwnProperty = \"hasOwnProperty\";\r\nexport var __objAssignFnImpl = function (t) {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strHasOwnProperty].call(s, p)) {\r\n t[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\nexport var __assignFn = objAssign || __objAssignFnImpl;\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function (d, b) {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d, b) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d, b) {\r\n for (var p in b) {\r\n if (b[strHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\nexport function __extendsFn(d, b) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __() {\r\n this.constructor = d;\r\n }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreate(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\r\n}\r\nexport function __restFn(s, e) {\r\n var t = {};\r\n for (var k in s) {\r\n if (objHasOwnProperty(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\nexport function __decorateFn(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n }\r\n else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && objDefineProp(target, key, r), r;\r\n}\r\nexport function __paramFn(paramIndex, decorator) {\r\n return function (target, key) {\r\n decorator(target, key, paramIndex);\r\n };\r\n}\r\nexport function __metadataFn(metadataKey, metadataValue) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\nexport function __exportStarFn(m, o) {\r\n for (var p in m) {\r\n if (p !== strDefault && !objHasOwnProperty(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\nexport function __createBindingFn(o, m, k, k2) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n if (!!objDefineProp) {\r\n objDefineProp(o, k2, {\r\n enumerable: true,\r\n get: function () {\r\n return m[k];\r\n }\r\n });\r\n }\r\n else {\r\n o[k2] = m[k];\r\n }\r\n}\r\nexport function __valuesFn(o) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\nexport function __readFn(o, n) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n }\r\n catch (error) {\r\n e = {\r\n error: error\r\n };\r\n }\r\n finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n }\r\n finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n return r;\r\n}\r\nexport function __spreadArrayFn(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n return to;\r\n}\r\nexport function __makeTemplateObjectFn(cooked, raw) {\r\n if (objDefineProp) {\r\n objDefineProp(cooked, \"raw\", { value: raw });\r\n }\r\n else {\r\n cooked.raw = raw;\r\n }\r\n return cooked;\r\n}\r\nexport function __importStarFn(mod) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n // Set default module\r\n if (!!objDefineProp) {\r\n objDefineProp(result, strDefault, { enumerable: true, value: mod });\r\n }\r\n else {\r\n result[strDefault] = mod;\r\n }\r\n return result;\r\n}\r\nexport function __importDefaultFn(mod) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 9\r\nexport var _DYN_BLK_VAL = \"blkVal\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 43\r\nexport var _DYN_RD_ONLY = \"rdOnly\"; // Count: 4\r\nexport var _DYN_NOTIFY = \"notify\"; // Count: 4\r\nexport var _DYN_WARN_TO_CONSOLE = \"warnToConsole\"; // Count: 4\r\nexport var _DYN_THROW_INTERNAL = \"throwInternal\"; // Count: 5\r\nexport var _DYN_SET_DF = \"setDf\"; // Count: 6\r\nexport var _DYN_WATCH = \"watch\"; // Count: 9\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 21\r\nexport var _DYN_APPLY = \"apply\"; // Count: 7\r\nexport var _DYN_PUSH = \"push\"; // Count: 31\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 8\r\nexport var _DYN_HDLR = \"hdlr\"; // Count: 6\r\nexport var _DYN_CANCEL = \"cancel\"; // Count: 5\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 4\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 8\r\nexport var _DYN_IS_INITIALIZED = \"isInitialized\"; // Count: 10\r\nexport var _DYN_GET_PLUGIN = \"getPlugin\"; // Count: 6\r\nexport var _DYN_POLL_INTERNAL_LOGS = \"pollInternalLogs\"; // Count: 2\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_TIME = \"time\"; // Count: 6\r\nexport var _DYN_PROCESS_NEXT = \"processNext\"; // Count: 15\r\nexport var _DYN_GET_PROCESS_TEL_CONT0 = \"getProcessTelContext\"; // Count: 2\r\nexport var _DYN_GET_NOTIFY_MGR = \"getNotifyMgr\"; // Count: 5\r\nexport var _DYN_ADD_NOTIFICATION_LIS1 = \"addNotificationListener\"; // Count: 4\r\nexport var _DYN_REMOVE_NOTIFICATION_2 = \"removeNotificationListener\"; // Count: 4\r\nexport var _DYN_ENABLED = \"enabled\"; // Count: 6\r\nexport var _DYN_STOP_POLLING_INTERNA3 = \"stopPollingInternalLogs\"; // Count: 2\r\nexport var _DYN_UNLOAD = \"unload\"; // Count: 9\r\nexport var _DYN_ON_COMPLETE = \"onComplete\"; // Count: 5\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_LOGGING_LEVEL_CONSOL4 = \"loggingLevelConsole\"; // Count: 2\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 7\r\nexport var _DYN_TEARDOWN = \"teardown\"; // Count: 9\r\nexport var _DYN_MESSAGE_ID = \"messageId\"; // Count: 4\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 6\r\nexport var _DYN_IS_ASYNC = \"isAsync\"; // Count: 6\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 10\r\nexport var _DYN__DO_TEARDOWN = \"_doTeardown\"; // Count: 4\r\nexport var _DYN_UPDATE = \"update\"; // Count: 6\r\nexport var _DYN_GET_NEXT = \"getNext\"; // Count: 12\r\nexport var _DYN_SET_NEXT_PLUGIN = \"setNextPlugin\"; // Count: 5\r\nexport var _DYN_USER_AGENT = \"userAgent\"; // Count: 5\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_NODE_TYPE = \"nodeType\"; // Count: 3\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 8\r\nexport var _DYN_LOG_INTERNAL_MESSAGE = \"logInternalMessage\"; // Count: 2\r\nexport var _DYN_TYPE = \"type\"; // Count: 14\r\nexport var _DYN_HANDLER = \"handler\"; // Count: 5\r\nexport var _DYN_IS_CHILD_EVT = \"isChildEvt\"; // Count: 3\r\nexport var _DYN_GET_CTX = \"getCtx\"; // Count: 6\r\nexport var _DYN_SET_CTX = \"setCtx\"; // Count: 10\r\nexport var _DYN_COMPLETE = \"complete\"; // Count: 3\r\nexport var _DYN_TRACE_ID = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID = \"spanId\"; // Count: 5\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 6\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { StrCls } from \"../internal/constants\";\r\n/**\r\n * The asString() method returns a string representing the value by\r\n * explicitly using `String(`value`)`.\r\n *\r\n * @since 0.4.3\r\n * @group String\r\n * @group Conversion\r\n * @group Value\r\n * @param value - The value to get a string representation of\r\n * @example\r\n * ```ts\r\n * const arr = [ 1, 2, 3];\r\n * asString(arr); // \"1,2,3\"\r\n * asString(null); // \"null\"\r\n * asString(undefined); // \"undefined\"\r\n * asString(42); // \"42\"\r\n * asString(Symbol.for(\"Hello\")); // \"Symbol(Hello)\"\r\n * ```\r\n */\r\nexport var asString = StrCls;\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { asString } from \"../string/as_string\";\r\nimport { ArrProto, SLICE } from \"./constants\";\r\nvar _arrSlice = ArrProto[SLICE];\r\nvar _throwMissingFunction = function (funcName, thisArg) {\r\n throwTypeError(\"'\" + asString(funcName) + \"' not defined for \" + dumpObj(thisArg));\r\n};\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to run the named function on the passed first argument, this does not support polyfill\r\n * or prototype fallback, so the function must exist on the provided first argument.\r\n * If the first argument is null, undefined or the function does not exist an exception will be thrown\r\n * by the runtime\r\n * @param funcName - The function name to call on the first argument passed to the wrapped function\r\n * @returns A function which will call the funcName against the first passed argument and pass on the remaining arguments\r\n */\r\nexport var _unwrapInstFunction = function (funcName) {\r\n return function (thisArg) {\r\n return thisArg[funcName].apply(thisArg, _arrSlice.call(arguments, 1));\r\n };\r\n};\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to convert an expanded function back into an instance `this` function call\r\n * @param funcName - The function name to call on the first argument passed to the wrapped function\r\n * @param clsProto - The Class or class prototype to fallback to if the instance doesn't have the function.\r\n * @returns A function which will call the funcName against the first passed argument and pass on the remaining arguments\r\n */\r\nexport var _unwrapFunction = function (funcName, clsProto) {\r\n var clsFn = clsProto && clsProto[funcName];\r\n return function (thisArg) {\r\n var theFunc = (thisArg && thisArg[funcName]) || clsFn;\r\n if (theFunc) {\r\n return theFunc.apply(thisArg, _arrSlice.call(arguments, 1));\r\n }\r\n _throwMissingFunction(funcName, thisArg);\r\n };\r\n};\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to convert an expanded function back into an instance `this` function call\r\n * @param funcName - The function name to call on the first argument passed to the wrapped function\r\n * @param clsProto - The Class or class prototype to fallback to if the instance doesn't have the function.\r\n * @param polyFunc - The function to call if not available on the thisArg, act like the polyfill\r\n * @returns A function which will call the funcName against the first passed argument and pass on the remaining arguments\r\n */\r\nexport var _unwrapFunctionWithPoly = function (funcName, clsProto, polyFunc) {\r\n var clsFn = clsProto && clsProto[funcName];\r\n return function (thisArg) {\r\n var theFunc = (thisArg && thisArg[funcName]) || clsFn;\r\n if (theFunc || polyFunc) {\r\n var theArgs = arguments;\r\n return (theFunc || polyFunc).apply(thisArg, theFunc ? _arrSlice.call(theArgs, 1) : theArgs);\r\n }\r\n _throwMissingFunction(funcName, thisArg);\r\n };\r\n};\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to lookup and return the named property from the first argument (which becomes the this)\r\n *\r\n * @since 0.4.2\r\n * @typeParam T - The type of the object which contains the propName\r\n * @param propName - The property name\r\n * @returns The value of the property\r\n */\r\nexport function _unwrapProp(propName) {\r\n return function (thisArg) {\r\n return thisArg[propName];\r\n };\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { INDEX_OF, LAST_INDEX_OF, StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The `strIndexOf()` method, given two arguments: the string and a substring to search for, searches\r\n * the entire calling string, and returns the index of the first occurrence of the specified substring.\r\n * Given a thrid argument: a number, the method returns the first occurrence of the specified substring\r\n * at an index greater than or equal to the specified number.\r\n * @group String\r\n * @param value - The value to be checked for the seeach string\r\n * @param searchString - The substring to search for in the value\r\n * @param position - The starting position to search from\r\n * @example\r\n * ```ts\r\n * strIndexOf('hello world', '') // returns 0\r\n * strIndexOf('hello world', '', 0) // returns 0\r\n * strIndexOf('hello world', '', 3) // returns 3\r\n * strIndexOf('hello world', '', 8) // returns 8\r\n *\r\n * // However, if the thrid argument is greater than the length of the string\r\n * strIndexOf('hello world', '', 11) // returns 11\r\n * strIndexOf('hello world', '', 13) // returns 11\r\n * strIndexOf('hello world', '', 22) // returns 11\r\n *\r\n * strIndexOf('Blue Whale', 'Blue') // returns 0\r\n * strIndexOf('Blue Whale', 'Blute') // returns -1\r\n * strIndexOf('Blue Whale', 'Whale', 0) // returns 5\r\n * strIndexOf('Blue Whale', 'Whale', 5) // returns 5\r\n * strIndexOf('Blue Whale', 'Whale', 7) // returns -1\r\n * strIndexOf('Blue Whale', '') // returns 0\r\n * strIndexOf('Blue Whale', '', 9) // returns 9\r\n * strIndexOf('Blue Whale', '', 10) // returns 10\r\n * strIndexOf('Blue Whale', '', 11) // returns 10\r\n * ```\r\n */\r\nexport var strIndexOf = _unwrapFunction(INDEX_OF, StrProto);\r\n/**\r\n * The `strLastIndexOf()` method, given two arguments: the string and a substring to search for, searches\r\n * the entire calling string, and returns the index of the last occurrence of the specified substring.\r\n * Given a third argument: a number, the method returns the last occurrence of the specified substring\r\n * at an index less than or equal to the specified number.\r\n * @group String\r\n * @param value - The value to be checked for the seeach string\r\n * @param searchString - The substring to search for in the value\r\n * @param position - The starting position to search from\r\n * @example\r\n * ```ts\r\n * strLastIndexOf('canal', 'a'); // returns 3\r\n * strLastIndexOf('canal', 'a', 2); // returns 1\r\n * strLastIndexOf('canal', 'a', 0); // returns -1\r\n * strLastIndexOf('canal', 'x'); // returns -1\r\n * strLastIndexOf('canal', 'c', -5); // returns 0\r\n * strLastIndexOf('canal', 'c', 0); // returns 0\r\n * strLastIndexOf('canal', ''); // returns 5\r\n * strLastIndexOf('canal', '', 2); // returns 2\r\n * ```\r\n */\r\nexport var strLastIndexOf = _unwrapFunction(LAST_INDEX_OF, StrProto);\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { LENGTH } from \"../internal/constants\";\r\n/**\r\n * Calls the provided `callbackFn` function once for each element in an array in ascending index order. It is not invoked for index properties\r\n * that have been deleted or are uninitialized. And unlike the ES6 forEach() you CAN stop or break the iteration by returning -1 from the\r\n * `callbackFn` function.\r\n *\r\n * The range (number of elements) processed by arrForEach() is set before the first call to the `callbackFn`. Any elements added beyond the range\r\n * or elements which as assigned to indexes already processed will not be visited by the `callbackFn`.\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the element type of the array\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackfn A `synchronous` function that accepts up to three arguments. arrForEach calls the callbackfn function one time for each element in the array.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is omitted, null or undefined\r\n * the array will be used as the this value.\r\n * @remarks\r\n * arrForEach expects a `synchronous` function.\r\n * arrForEach does not wait for promises. Make sure you are aware of the implications while using promises (or async functions) as forEach callback.\r\n * @example\r\n * ```ts\r\n * const items = ['item1', 'item2', 'item3'];\r\n * const copyItems = [];\r\n *\r\n * // before using for loop\r\n * for (let i = 0; i < items.length; i++) {\r\n * copyItems.push(items[i]);\r\n * }\r\n *\r\n * // before using forEach()\r\n * items.forEach((item) => {\r\n * copyItems.push(item);\r\n * });\r\n *\r\n * // after\r\n * arrForEach(items, (item) => {\r\n * copyItems.push(item);\r\n * // May return -1 to abort the iteration\r\n * });\r\n *\r\n * // Also supports input as an array like object\r\n * const items = { length: 3, 0: 'item1', 1: 'item2', 2: 'item3' };\r\n * ```\r\n */\r\nexport function arrForEach(theArray, callbackfn, thisArg) {\r\n if (theArray) {\r\n var len = theArray[LENGTH] >>> 0;\r\n for (var idx = 0; idx < len; idx++) {\r\n if (idx in theArray) {\r\n if (callbackfn.call(thisArg || theArray, theArray[idx], idx, theArray) === -1) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2023 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { _unwrapInstFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The `fnCall` function calls the function with the given `thisArg` as the `this` value and with\r\n * al of the `_args` provided as it's `arguments.\r\n *\r\n * > This is almost identical to `fnApply`, except that the function arguments are passed to `fnCall`\r\n * individually as a list, while with `fnApply` that are combined into a single array argument.\r\n *\r\n * Normally, when calling a function, the value of `this` inside the function is the object that the\r\n * function was accessed on. With `fnCall()`, you can pass an arbitrary value as the `this` when calling an\r\n * existing function, without first attaching the function to the object as a property. This allows you\r\n * to use methods of one object as generic utility functions.\r\n *\r\n * @since 0.9.8\r\n * @group Function\r\n *\r\n * @param fn - The function to be called\r\n * @param thisArg - The value of `this` provided for the call to `fn`. If the function is not in strict mode,\r\n * `null` and `undefined` will be replaced with the global object, and primitive values will be converted to objects.\r\n * @param _args - The zero or more arguments to be passed to the `fn` function.\r\n * @returns The result of calling the function with the specified `this` value and arguments.\r\n * @example\r\n * ```ts\r\n * // min / max number in an array\r\n * let max = fnCall(Math.max, null, 21, 42, 84, 168, 7, 3);\r\n * // 168\r\n *\r\n * let min = fnCall(Math.min, null, 21, 42, 84, 168, 7, 3);\r\n * // 3\r\n *\r\n * const module1 = {\r\n * prefix: \"Hello\",\r\n * x: 21,\r\n * getX() {\r\n * return this.x;\r\n * },\r\n * log(value: string) {\r\n * return this.prefix + \" \" + value + \" : \" + this.x\r\n * }\r\n * };\r\n *\r\n * // The 'this' parameter of 'getX' is bound to 'module'.\r\n * module1.getX(); // 21\r\n * module1.log(\"Darkness\"); // Hello Darkness : 21\r\n *\r\n * // Create a new function 'boundGetX' with the 'this' parameter bound to 'module'.\r\n * let module2 = {\r\n * prefix: \"my\",\r\n * x: 42\r\n * };\r\n *\r\n * // Call the function of module1 with module2 as it's this\r\n * fnCall(module1.getX, module2); // 42\r\n * fnCall(module1.log, module2, \"friend\"); // my friend : 42\r\n * ```\r\n */\r\nexport var fnCall = _unwrapInstFunction(\"call\");\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { fnCall } from \"../funcs/fnCall\";\r\nimport { getWindow, hasWindow } from \"../helpers/environment\";\r\nimport { CONSTRUCTOR, FUNCTION, ObjClass, OBJECT, PROTOTYPE } from \"../internal/constants\";\r\nimport { objHasOwnProperty } from \"./has_own_prop\";\r\nimport { objGetPrototypeOf } from \"./object\";\r\n// Use to cache the result of Object.cont\r\nvar _fnToString;\r\nvar _objCtrFnString;\r\nvar _gblWindow;\r\n/**\r\n * Checks to see if the past value is a plain object (not a class/array) value.\r\n * Object are considered to be \"plain\" if they are created with no prototype `Object.create(null)`\r\n * or by using the Object global (native) function, all other \"objects\" ar\r\n * @since 0.4.4\r\n * @group Type Identity\r\n * @group Object\r\n * @param value - The value to check\r\n * @returns true if `value` is a normal plain object\r\n * @example\r\n * ```ts\r\n * console.log(isPlainObject({ 0: 'a', 1: 'b', 2: 'c' })); // true\r\n * console.log(isPlainObject({ 100: 'a', 2: 'b', 7: 'c' })); // true\r\n * console.log(isPlainObject(objCreate(null))); // true\r\n *\r\n * const myObj = objCreate({}, {\r\n * getFoo: {\r\n * value() { return this.foo; }\r\n * }\r\n * });\r\n * myObj.foo = 1;\r\n * console.log(isPlainObject(myObj)); // true\r\n *\r\n * console.log(isPlainObject(['a', 'b', 'c'])); // false\r\n * console.log(isPlainObject(new Date())); // false\r\n * console.log(isPlainObject(new Error(\"An Error\"))); // false\r\n * console.log(isPlainObject(null)); // false\r\n * console.log(isPlainObject(undefined)); // false\r\n * console.log(isPlainObject(\"null\")); // false\r\n * console.log(isPlainObject(\"undefined\")); // false\r\n * console.log(isPlainObject(\"1\")); // false\r\n * console.log(isPlainObject(\"aa\")); // false\r\n * ```\r\n */\r\nexport function isPlainObject(value) {\r\n if (!value || typeof value !== OBJECT) {\r\n return false;\r\n }\r\n if (!_gblWindow) {\r\n // Lazily cache the current global window value and default it to \"true\" (so we bypass this check in the future)\r\n _gblWindow = hasWindow() ? getWindow() : true;\r\n }\r\n var result = false;\r\n if (value !== _gblWindow) {\r\n if (!_objCtrFnString) {\r\n // Lazily caching what the runtime reports as the object function constructor (as a string)\r\n // Using an current function lookup to find what this runtime calls a \"native\" function\r\n _fnToString = Function[PROTOTYPE].toString;\r\n _objCtrFnString = fnCall(_fnToString, ObjClass);\r\n }\r\n try {\r\n var proto = objGetPrototypeOf(value);\r\n // No prototype so looks like an object created with Object.create(null)\r\n result = !proto;\r\n if (!result) {\r\n if (objHasOwnProperty(proto, CONSTRUCTOR)) {\r\n proto = proto[CONSTRUCTOR];\r\n }\r\n result = proto && typeof proto === FUNCTION && _fnToString.call(proto) === _objCtrFnString;\r\n }\r\n }\r\n catch (ex) {\r\n // Something went wrong, so it's not an object we are playing with\r\n }\r\n }\r\n return result;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\nexport var UNDEFINED_VALUE = undefined;\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_CHANNELS = \"channels\";\r\nexport var STR_CORE = \"core\";\r\nexport var STR_CREATE_PERF_MGR = \"createPerfMgr\";\r\nexport var STR_DISABLED = \"disabled\";\r\nexport var STR_EXTENSION_CONFIG = \"extensionConfig\";\r\nexport var STR_EXTENSIONS = \"extensions\";\r\nexport var STR_PROCESS_TELEMETRY = \"processTelemetry\";\r\nexport var STR_PRIORITY = \"priority\";\r\nexport var STR_EVENTS_SENT = \"eventsSent\";\r\nexport var STR_EVENTS_DISCARDED = \"eventsDiscarded\";\r\nexport var STR_EVENTS_SEND_REQUEST = \"eventsSendRequest\";\r\nexport var STR_PERF_EVENT = \"perfEvent\";\r\nexport var STR_GET_PERF_MGR = \"getPerfMgr\";\r\nexport var STR_DOMAIN = \"domain\";\r\nexport var STR_PATH = \"path\";\r\nexport var STR_NOT_DYNAMIC_ERROR = \"Not dynamic - \";\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ObjAssign, ObjClass } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, asString as asString21, isArray, isBoolean, isError, isFunction, isNullOrUndefined, isObject, isPlainObject, isString, isUndefined, objDeepFreeze, objDefine, objForEachKey, objHasOwn, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_NAME, _DYN_REPLACE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minification\r\nvar strGetPrototypeOf = \"getPrototypeOf\";\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\nexport var _getObjProto = Object[strGetPrototypeOf];\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name - The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n if (value && isString(value)) {\r\n // CamelCase everything after the \"-\" and remove the dash\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n return \"_\" + match;\r\n });\r\n }\r\n return value;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return strIndexOf(value, search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n return date && date.toISOString() || \"\";\r\n}\r\nexport var deepFreeze = objDeepFreeze;\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object[_DYN_NAME /* @min:%2ename */];\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n var srcFunc = null;\r\n var src = null;\r\n if (isFunction(source)) {\r\n srcFunc = source;\r\n }\r\n else {\r\n src = source;\r\n }\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n if (srcFunc) {\r\n src = srcFunc();\r\n }\r\n if (src) {\r\n return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n }\r\n };\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = _createProxyFunction(source, field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (objHasOwn(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n objDefine(target, field, {\r\n g: function () {\r\n return source[field];\r\n },\r\n s: function (theValue) {\r\n source[field] = theValue;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n if (target && name && source) {\r\n if (overwriteTarget !== false || isUndefined(target[name])) {\r\n target[name] = _createProxyFunction(source, theFunc);\r\n }\r\n }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n arrForEach(functionsToProxy, function (theFuncName) {\r\n if (isString(theFuncName)) {\r\n proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n }\r\n });\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults - Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject && ObjAssign) {\r\n theObject = ObjClass(ObjAssign({}, theObject));\r\n }\r\n return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n // Variables\r\n var theArgs = arguments;\r\n var extended = theArgs[0] || {};\r\n var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n var deep = false;\r\n var idx = 1;\r\n // Check for \"Deep\" flag\r\n if (argLen > 0 && isBoolean(extended)) {\r\n deep = extended;\r\n extended = theArgs[idx] || {};\r\n idx++;\r\n }\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (!isObject(extended)) {\r\n extended = {};\r\n }\r\n // Loop through each remaining object and conduct a merge\r\n for (; idx < argLen; idx++) {\r\n var arg = theArgs[idx];\r\n var isArgArray = isArray(arg);\r\n var isArgObj = isObject(arg);\r\n for (var prop in arg) {\r\n var propOk = (isArgArray && (prop in arg)) || (isArgObj && objHasOwn(arg, prop));\r\n if (!propOk) {\r\n continue;\r\n }\r\n var newValue = arg[prop];\r\n var isNewArray = void 0;\r\n // If deep merge and property is an object, merge properties\r\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n // Grab the current value of the extended object\r\n var clone = extended[prop];\r\n if (isNewArray) {\r\n if (!isArray(clone)) {\r\n // We can't \"merge\" an array with a non-array so overwrite the original\r\n clone = [];\r\n }\r\n }\r\n else if (!isPlainObject(clone)) {\r\n // We can't \"merge\" an object with a non-object\r\n clone = {};\r\n }\r\n // Never move the original objects always clone them\r\n newValue = objExtend(deep, clone, newValue);\r\n }\r\n // Assign the new (or previous) value (unless undefined)\r\n if (newValue !== undefined) {\r\n extended[prop] = newValue;\r\n }\r\n }\r\n }\r\n return extended;\r\n}\r\nexport var asString = asString21;\r\nexport function isFeatureEnabled(feature, cfg) {\r\n var rlt = false;\r\n var ft = cfg && cfg.featureOptIn && cfg.featureOptIn[feature];\r\n if (feature && ft) {\r\n var mode = ft.mode;\r\n // NOTE: None will be considered as true\r\n rlt = (mode == 3 /* FeatureOptInMode.enable */) || (mode == 1 /* FeatureOptInMode.none */);\r\n }\r\n return rlt;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\n/**\r\n * Return the number of milliseconds that have elapsed since January 1, 1970 00:00:00 UTC.\r\n *\r\n * To offer protection against timing attacks and fingerprinting, the precision of dateNow()\r\n * might get rounded depending on browser settings. In Firefox, the privacy.reduceTimerPrecision\r\n * preference is enabled by default and defaults to 20µs in Firefox 59; in 60 it will be 2ms.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @returns A Number representing the milliseconds elapsed since the UNIX epoch.\r\n * @example\r\n * ```ts\r\n * let now = utcNow();\r\n * ```\r\n */\r\nexport function utcNow() {\r\n return (Date.now || polyUtcNow)();\r\n}\r\n/**\r\n * Polyfill fallback to return the number of milliseconds that have elapsed since January 1, 1970 00:00:00 UTC.\r\n *\r\n * To offer protection against timing attacks and fingerprinting, the precision of dateNow()\r\n * might get rounded depending on browser settings. In Firefox, the privacy.reduceTimerPrecision\r\n * preference is enabled by default and defaults to 20µs in Firefox 59; in 60 it will be 2ms.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n * @group Polyfill\r\n *\r\n * @returns A Number representing the milliseconds elapsed since the UNIX epoch.\r\n * @example\r\n * ```ts\r\n * let now = polyUtcNow();\r\n * ```\r\n*/\r\nexport function polyUtcNow() {\r\n return new Date().getTime();\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { getGlobal, strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { getDocument, getInst, getNavigator, getPerformance, hasNavigator, isFunction, isString, isUndefined, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strDocumentMode = \"documentMode\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getInst(strConsole);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav[_DYN_USER_AGENT /* @min:%2euserAgent */] !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav[_DYN_USER_AGENT /* @min:%2euserAgent */];\r\n var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n if (strContains(ua, strMsie)) {\r\n var doc = getDocument() || {};\r\n return Math.max(parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strMsie)[1]), (doc[strDocumentMode] || 0));\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n return (strIndexOf(ua, \"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported(useCached) {\r\n if (_beaconsSupported === null || useCached === false) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n isSupported = !!getInst(\"fetch\");\r\n var request = getInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getInst(strXMLHttpRequest), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getInst(strXMLHttpRequest);\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n if (values) {\r\n for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var value = values[i];\r\n if (value[_DYN_NAME /* @min:%2ename */]) {\r\n if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name\r\n */\r\nexport function findMetaTag(name) {\r\n var doc = getDocument();\r\n if (doc && name) {\r\n // Look for a meta-tag\r\n return _getNamedValue(doc.querySelectorAll(\"meta\"), name).content;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper function to fetch the named server timing value from the page response (first navigation event).\r\n * @param name\r\n */\r\nexport function findNamedServerTiming(name) {\r\n var value;\r\n var perf = getPerformance();\r\n if (perf) {\r\n // Try looking for a server-timing header\r\n var navPerf = perf.getEntriesByType(\"navigation\") || [];\r\n value = _getNamedValue((navPerf[_DYN_LENGTH /* @min:%2elength */] > 0 ? navPerf[0] : {}).serverTiming, name).description;\r\n }\r\n return value;\r\n}\r\n// TODO: should reuse this method for analytics plugin\r\nexport function dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function createCustomDomEvent(eventName, details) {\r\n var event = null;\r\n var detail = { detail: details || null };\r\n if (isFunction(CustomEvent)) { // Use CustomEvent constructor when available\r\n event = new CustomEvent(eventName, detail);\r\n }\r\n else { // CustomEvent has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"CustomEvent\");\r\n event.initCustomEvent(eventName, true, true, detail);\r\n }\r\n }\r\n return event;\r\n}\r\nexport function sendCustomEvent(evtName, cfg, customDetails) {\r\n var global = getGlobal();\r\n if (global && global.CustomEvent) {\r\n try {\r\n var details = { cfg: cfg || null, customDetails: customDetails || null };\r\n return dispatchEvent(global, createCustomDomEvent(evtName, details));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n return false;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\nvar SEED1 = 123456789;\r\nvar SEED2 = 987654321;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = SEED1;\r\nvar _mwcZ = SEED2;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (SEED1 + seedValue) & MaxUInt32;\r\n _mwcZ = (SEED2 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = utcNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value = 0;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n if (value === 0 && isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n if (value === 0) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = STR_EMPTY;\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_NODE_TYPE } from \"../__DynamicConstants\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar version = '3.0.3';\r\nvar instanceName = \".\" + newId(6);\r\nvar _dataUid = 0;\r\n// Accepts only:\r\n// - Node\r\n// - Node.ELEMENT_NODE\r\n// - Node.DOCUMENT_NODE\r\n// - Object\r\n// - Any\r\nfunction _canAcceptData(target) {\r\n return target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 1 || target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 9 || !(+target[_DYN_NODE_TYPE /* @min:%2enodeType */]);\r\n}\r\nfunction _getCache(data, target) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n theCache = {};\r\n try {\r\n if (_canAcceptData(target)) {\r\n objDefine(target, data.id, {\r\n e: false,\r\n v: theCache\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // Not all environments allow extending all objects, so just ignore the cache in those cases\r\n }\r\n }\r\n return theCache;\r\n}\r\nexport function createUniqueNamespace(name, includeVersion) {\r\n if (includeVersion === void 0) { includeVersion = false; }\r\n return normalizeJsName(name + (_dataUid++) + (includeVersion ? \".\" + version : STR_EMPTY) + instanceName);\r\n}\r\nexport function createElmNodeData(name) {\r\n var data = {\r\n id: createUniqueNamespace(\"_aiData-\" + (name || STR_EMPTY) + \".\" + version),\r\n accept: function (target) {\r\n return _canAcceptData(target);\r\n },\r\n get: function (target, name, defValue, addDefault) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n if (addDefault) {\r\n // Side effect is adds the cache\r\n theCache = _getCache(data, target);\r\n theCache[normalizeJsName(name)] = defValue;\r\n }\r\n return defValue;\r\n }\r\n return theCache[normalizeJsName(name)];\r\n },\r\n kill: function (target, name) {\r\n if (target && target[name]) {\r\n try {\r\n delete target[name];\r\n }\r\n catch (e) {\r\n // Just cleaning up, so if this fails -- ignore\r\n }\r\n }\r\n }\r\n };\r\n return data;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isArray, isDefined, isNullOrUndefined, isObject, isPlainObject, isUndefined, objForEachKey, objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { _DYN_BLK_VAL, _DYN_LENGTH, _DYN_RD_ONLY } from \"../__DynamicConstants\";\r\nfunction _isConfigDefaults(value) {\r\n return (value && isObject(value) && (value.isVal || value.fb || objHasOwn(value, \"v\") || objHasOwn(value, \"mrg\") || objHasOwn(value, \"ref\") || value.set));\r\n}\r\nfunction _getDefault(dynamicHandler, theConfig, cfgDefaults) {\r\n var defValue;\r\n var isDefaultValid = cfgDefaults.dfVal || isDefined;\r\n // There is a fallback config key so try and grab that first\r\n if (theConfig && cfgDefaults.fb) {\r\n var fallbacks = cfgDefaults.fb;\r\n if (!isArray(fallbacks)) {\r\n fallbacks = [fallbacks];\r\n }\r\n for (var lp = 0; lp < fallbacks[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var fallback = fallbacks[lp];\r\n var fbValue = theConfig[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n else if (dynamicHandler) {\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n fbValue = dynamicHandler.cfg[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n dynamicHandler.set(dynamicHandler.cfg, asString(fallback), fbValue);\r\n }\r\n if (isDefaultValid(defValue)) {\r\n // We have a valid default so break out of the look\r\n break;\r\n }\r\n }\r\n }\r\n // If the value is still not defined and we have a default value then use that\r\n if (!isDefaultValid(defValue) && isDefaultValid(cfgDefaults.v)) {\r\n defValue = cfgDefaults.v;\r\n }\r\n return defValue;\r\n}\r\n/**\r\n * Recursively resolve the default value\r\n * @param dynamicHandler\r\n * @param theConfig\r\n * @param cfgDefaults\r\n * @returns\r\n */\r\nfunction _resolveDefaultValue(dynamicHandler, theConfig, cfgDefaults) {\r\n var theValue = cfgDefaults;\r\n if (cfgDefaults && _isConfigDefaults(cfgDefaults)) {\r\n theValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n if (theValue) {\r\n if (_isConfigDefaults(theValue)) {\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, theValue);\r\n }\r\n var newValue_1;\r\n if (isArray(theValue)) {\r\n newValue_1 = [];\r\n newValue_1[_DYN_LENGTH /* @min:%2elength */] = theValue[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(theValue)) {\r\n newValue_1 = {};\r\n }\r\n if (newValue_1) {\r\n objForEachKey(theValue, function (key, value) {\r\n if (value && _isConfigDefaults(value)) {\r\n value = _resolveDefaultValue(dynamicHandler, theConfig, value);\r\n }\r\n newValue_1[key] = value;\r\n });\r\n theValue = newValue_1;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Applies the default value on the config property and makes sure that it's dynamic\r\n * @param theConfig\r\n * @param name\r\n * @param defaultValue\r\n */\r\nexport function _applyDefaultValue(dynamicHandler, theConfig, name, defaultValue) {\r\n // Resolve the initial config value from the provided value or use the defined default\r\n var isValid;\r\n var setFn;\r\n var defValue;\r\n var cfgDefaults = defaultValue;\r\n var mergeDf;\r\n var reference;\r\n var readOnly;\r\n var blkDynamicValue;\r\n if (_isConfigDefaults(cfgDefaults)) {\r\n // looks like a IConfigDefault\r\n isValid = cfgDefaults.isVal;\r\n setFn = cfgDefaults.set;\r\n readOnly = cfgDefaults[_DYN_RD_ONLY /* @min:%2erdOnly */];\r\n blkDynamicValue = cfgDefaults[_DYN_BLK_VAL /* @min:%2eblkVal */];\r\n mergeDf = cfgDefaults.mrg;\r\n reference = cfgDefaults.ref;\r\n if (!reference && isUndefined(reference)) {\r\n reference = !!mergeDf;\r\n }\r\n defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n else {\r\n defValue = defaultValue;\r\n }\r\n if (blkDynamicValue) {\r\n // Mark the property so that any value assigned will be blocked from conversion, we need to do this\r\n // before assigning or fetching the value to ensure it's not converted\r\n dynamicHandler[_DYN_BLK_VAL /* @min:%2eblkVal */](theConfig, name);\r\n }\r\n // Set the value to the default value;\r\n var theValue;\r\n var usingDefault = true;\r\n var cfgValue = theConfig[name];\r\n // try and get and user provided values\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n // Use the defined theConfig[name] value\r\n theValue = cfgValue;\r\n usingDefault = false;\r\n // The values are different and we have a special default value check, which is used to\r\n // override config values like empty strings to continue using the default\r\n if (isValid && theValue !== defValue && !isValid(theValue)) {\r\n theValue = defValue;\r\n usingDefault = true;\r\n }\r\n if (setFn) {\r\n theValue = setFn(theValue, defValue, theConfig);\r\n usingDefault = theValue === defValue;\r\n }\r\n }\r\n if (!usingDefault) {\r\n if (isPlainObject(theValue) || isArray(defValue)) {\r\n // we are using the user supplied value and it's an object\r\n if (mergeDf && defValue && (isPlainObject(defValue) || isArray(defValue))) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defValue, function (dfName, dfValue) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(dynamicHandler, theValue, dfName, dfValue);\r\n });\r\n }\r\n }\r\n }\r\n else if (defValue) {\r\n // Just resolve the default\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, defValue);\r\n }\r\n else {\r\n theValue = defValue;\r\n }\r\n // if (theValue && usingDefault && (isPlainObject(theValue) || isArray(theValue))) {\r\n // theValue = _cfgDeepCopy(theValue);\r\n // }\r\n // Needed to ensure that the (potentially) new field is dynamic even if null/undefined\r\n dynamicHandler.set(theConfig, name, theValue);\r\n if (reference) {\r\n dynamicHandler.ref(theConfig, name);\r\n }\r\n if (readOnly) {\r\n dynamicHandler[_DYN_RD_ONLY /* @min:%2erdOnly */](theConfig, name);\r\n }\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ArrProto, INDEX_OF, LAST_INDEX_OF } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The arrIndexOf() method returns the first index at which a given element can be found in the array,\r\n * or -1 if it is not present.\r\n * `arrIndexOf()` compares searchElement to elements of the Array using strict equality (the same\r\n * method used by the === or triple-equals operator).\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of array elements\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param searchElement - The element to locate in the array.\r\n * @param fromIndex - The index to start the search at. If the index is greater than or equal to\r\n * the array's length, -1 is returned, which means the array will not be searched. If the provided\r\n * index value is a negative number, it is taken as the offset from the end of the array.\r\n * Note: if the provided index is negative, the array is still searched from front to back. If the\r\n * provided index is 0, then the whole array will be searched. Default: 0 (entire array is searched).\r\n * @return The first index of the element in the array; -1 if not found.\r\n * @example\r\n * ```ts\r\n * const array = [2, 9, 9];\r\n * arrIndexOf(array, 2); // 0\r\n * arrIndexOf(array, 7); // -1\r\n * arrIndexOf(array, 9, 2); // 2\r\n * arrIndexOf(array, 2, -1); // -1\r\n * arrIndexOf(array, 2, -3); // 0\r\n *\r\n * let indices: number[] = [];\r\n * const array = ['a', 'b', 'a', 'c', 'a', 'd'];\r\n * const element = 'a';\r\n * let idx = arrIndexOf(array, element);\r\n * while (idx !== -1) {\r\n * indices.push(idx);\r\n * idx = arrIndexOf(array, element, idx + 1);\r\n * }\r\n * console.log(indices);\r\n * // [0, 2, 4]\r\n *\r\n * function updateVegetablesCollection (veggies, veggie) {\r\n * if (arrIndexOf(veggies, veggie) === -1) {\r\n * veggies.push(veggie);\r\n * console.log('New veggies collection is : ' + veggies);\r\n * } else {\r\n * console.log(veggie + ' already exists in the veggies collection.');\r\n * }\r\n * }\r\n *\r\n * let veggies = ['potato', 'tomato', 'chillies', 'green-pepper'];\r\n *\r\n * updateVegetablesCollection(veggies, 'spinach');\r\n * // New veggies collection is : potato,tomato,chillies,green-pepper,spinach\r\n * updateVegetablesCollection(veggies, 'spinach');\r\n * // spinach already exists in the veggies collection.\r\n *\r\n * // Array Like\r\n * let arrayLike = {\r\n * length: 3,\r\n * 0: \"potato\",\r\n * 1: \"tomato\",\r\n * 2: \"chillies\",\r\n * 3: \"green-pepper\" // Not checked as index is > length\r\n * };\r\n *\r\n * arrIndexOf(arrayLike, \"potato\"); // 0\r\n * arrIndexOf(arrayLike, \"tomato\"); // 1\r\n * arrIndexOf(arrayLike, \"chillies\"); 2\r\n * arrIndexOf(arrayLike, \"green-pepper\"); // -1\r\n * ```\r\n */\r\nexport var arrIndexOf = _unwrapFunction(INDEX_OF, ArrProto);\r\n/**\r\n * The arrLastIndexOf() method returns the last index at which a given element can be found in the array,\r\n * or -1 if it is not present.\r\n * `arrLastIndexOf()` compares searchElement to elements of the Array using strict equality (the same\r\n * method used by the === or triple-equals operator). [NaN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN)\r\n * values are never compared as equal, so arrLastIndexOf() always returns -1 when searchElement is NaN.\r\n *\r\n * The arrLastIndexOf() method skips empty slots in sparse arrays.\r\n *\r\n * The arrLastIndexOf() method is generic. It only expects the this value to have a length property and integer-keyed properties.\r\n *\r\n * @since 0.8.0\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of array elements\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param searchElement - The element to locate in the array.\r\n * @param fromIndex - Zero-based index at which to start searching backwards, converted to an integer.\r\n * - Negative index counts back from the end of the array — if fromIndex < 0, fromIndex + array.length is used.\r\n * - If fromIndex < -array.length, the array is not searched and -1 is returned. You can think of it conceptually\r\n * as starting at a nonexistent position before the beginning of the array and going backwards from there. There\r\n * are no array elements on the way, so searchElement is never found.\r\n * - If fromIndex >= array.length or fromIndex is omitted, array.length - 1 is used, causing the entire array to\r\n * be searched. You can think of it conceptually as starting at a nonexistent position beyond the end of the array and going backwards from there. It eventually reaches the real end position of the array, at which point it starts searching backwards through the actual array elements.\r\n * @return The first index of the element in the array; -1 if not found.\r\n * @example\r\n * ```ts\r\n * const numbers = [2, 5, 9, 2];\r\n * arrLastIndexOf(numbers, 2); // 3\r\n * arrLastIndexOf(numbers, 7); // -1\r\n * arrLastIndexOf(numbers, 2, 3); // 3\r\n * arrLastIndexOf(numbers, 2, 2); // 0\r\n * arrLastIndexOf(numbers, 2, -2); // 0\r\n * arrLastIndexOf(numbers, 2, -1); // 3\r\n *\r\n * let indices: number[] = [];\r\n * const array = [\"a\", \"b\", \"a\", \"c\", \"a\", \"d\"];\r\n * const element = \"a\";\r\n * let idx = arrLastIndexOf(array, element);\r\n * while (idx !== -1) {\r\n * indices.push(idx);\r\n * idx = arrLastIndexOf(array, element, idx ? idx - 1 : -(array.length + 1));\r\n * }\r\n * console.log(indices);\r\n * // [4, 2, 0]\r\n *\r\n * function updateVegetablesCollection (veggies, veggie) {\r\n * if (arrLastIndexOf(veggies, veggie) === -1) {\r\n * veggies.push(veggie);\r\n * console.log('New veggies collection is : ' + veggies);\r\n * } else {\r\n * console.log(veggie + ' already exists in the veggies collection.');\r\n * }\r\n * }\r\n *\r\n * let veggies = ['potato', 'tomato', 'chillies', 'green-pepper'];\r\n *\r\n * updateVegetablesCollection(veggies, 'spinach');\r\n * // New veggies collection is : potato,tomato,chillies,green-pepper,spinach\r\n * updateVegetablesCollection(veggies, 'spinach');\r\n * // spinach already exists in the veggies collection.\r\n *\r\n * // Array Like\r\n * let arrayLike = {\r\n * length: 3,\r\n * 0: \"potato\",\r\n * 1: \"tomato\",\r\n * 2: \"chillies\",\r\n * 3: \"green-pepper\" // Not checked as index is > length\r\n * };\r\n *\r\n * arrLastIndexOf(arrayLike, \"potato\"); // 0\r\n * arrLastIndexOf(arrayLike, \"tomato\"); // 1\r\n * arrLastIndexOf(arrayLike, \"chillies\"); 2\r\n * arrLastIndexOf(arrayLike, \"green-pepper\"); // -1\r\n * ```\r\n */\r\nexport var arrLastIndexOf = _unwrapFunction(LAST_INDEX_OF, ArrProto);\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { objForEachKey } from \"../object/for_each_key\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal Helper function to create a key and value mapped representation of the values\r\n * @param values - The source values\r\n * @param keyType - Identifies the value to populate against the key\r\n * @param valueType - Identifies the value to populate against the value\r\n * @param completeFn - The function to call to complete the map (used to freeze the instance)\r\n * @returns\r\n */\r\nexport function _createKeyValueMap(values, keyType, valueType, completeFn) {\r\n var theMap = {};\r\n objForEachKey(values, function (key, value) {\r\n theMap[key] = keyType ? value : key;\r\n theMap[value] = valueType ? value : key;\r\n });\r\n return completeFn(theMap);\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { createEnumKeyMap } from \"../helpers/enum\";\r\n/**\r\n * @ignore\r\n * @internal\r\n */\r\nexport var _wellKnownSymbolMap = createEnumKeyMap({\r\n asyncIterator: 0 /* WellKnownSymbols.asyncIterator */,\r\n hasInstance: 1 /* WellKnownSymbols.hasInstance */,\r\n isConcatSpreadable: 2 /* WellKnownSymbols.isConcatSpreadable */,\r\n iterator: 3 /* WellKnownSymbols.iterator */,\r\n match: 4 /* WellKnownSymbols.match */,\r\n matchAll: 5 /* WellKnownSymbols.matchAll */,\r\n replace: 6 /* WellKnownSymbols.replace */,\r\n search: 7 /* WellKnownSymbols.search */,\r\n species: 8 /* WellKnownSymbols.species */,\r\n split: 9 /* WellKnownSymbols.split */,\r\n toPrimitive: 10 /* WellKnownSymbols.toPrimitive */,\r\n toStringTag: 11 /* WellKnownSymbols.toStringTag */,\r\n unscopables: 12 /* WellKnownSymbols.unscopables */\r\n});\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { _wellKnownSymbolMap } from \"../symbol/well_known\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { POLYFILL_TAG, SYMBOL } from \"../internal/constants\";\r\nimport { objHasOwn } from \"../object/has_own\";\r\nimport { asString } from \"../string/as_string\";\r\nimport { _getGlobalConfig } from \"../internal/global\";\r\nimport { strStartsWith } from \"../string/starts_with\";\r\nimport { objKeys } from \"../object/object\";\r\nvar UNIQUE_REGISTRY_ID = \"_urid\";\r\nvar _polySymbols;\r\nfunction _globalSymbolRegistry() {\r\n if (!_polySymbols) {\r\n var gblCfg = _getGlobalConfig();\r\n _polySymbols = gblCfg.gblSym = gblCfg.gblSym || { k: {}, s: {} };\r\n }\r\n return _polySymbols;\r\n}\r\nvar _wellKnownSymbolCache = {};\r\n/**\r\n * Returns a new (polyfill) Symbol object for the provided description that's guaranteed to be unique.\r\n * Symbols are often used to add unique property keys to an object that won't collide with keys any\r\n * other code might add to the object, and which are hidden from any mechanisms other code will\r\n * typically use to access the object. That enables a form of weak encapsulation, or a weak form of\r\n * information hiding.\r\n * @group Polyfill\r\n * @group Symbol\r\n * @param description - The description of the symbol\r\n * @returns A new polyfill version of a Symbol object\r\n */\r\nexport function polyNewSymbol(description) {\r\n var theSymbol = {\r\n description: asString(description),\r\n toString: function () { return SYMBOL + \"(\" + description + \")\"; }\r\n };\r\n // Tag the symbol so we know it a polyfill\r\n theSymbol[POLYFILL_TAG] = true;\r\n return theSymbol;\r\n}\r\n/**\r\n * Returns a Symbol object from the global symbol registry matching the given key if found.\r\n * Otherwise, returns a new symbol with this key.\r\n * @group Polyfill\r\n * @group Symbol\r\n * @param key key to search for.\r\n */\r\nexport function polySymbolFor(key) {\r\n var registry = _globalSymbolRegistry();\r\n if (!objHasOwn(registry.k, key)) {\r\n var newSymbol_1 = polyNewSymbol(key);\r\n var regId_1 = objKeys(registry.s).length;\r\n newSymbol_1[UNIQUE_REGISTRY_ID] = function () { return regId_1 + \"_\" + newSymbol_1.toString(); };\r\n registry.k[key] = newSymbol_1;\r\n registry.s[newSymbol_1[UNIQUE_REGISTRY_ID]()] = asString(key);\r\n }\r\n return registry.k[key];\r\n}\r\n/**\r\n * Returns a key from the global symbol registry matching the given Symbol if found.\r\n * Otherwise, returns a undefined.\r\n * @group Polyfill\r\n * @group Symbol\r\n * @param sym Symbol to find the key for.\r\n */\r\nexport function polySymbolKeyFor(sym) {\r\n if (!sym || !sym.toString || !strStartsWith(sym.toString(), SYMBOL)) {\r\n throwTypeError(sym + \" is not a symbol\");\r\n }\r\n var regId = sym[POLYFILL_TAG] && sym[UNIQUE_REGISTRY_ID] && sym[UNIQUE_REGISTRY_ID]();\r\n return regId ? _globalSymbolRegistry().s[regId] : undefined;\r\n}\r\n/**\r\n * Returns the polyfill version of a well-known global symbol, this will only return\r\n * known values.\r\n * @example\r\n * ```ts\r\n * // Always returns the polyfill version, even if Symbols are supported in the runtime\r\n * polyGetKnownSymbol(\"toStringTag\") === polyGetKnownSymbol(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(WellKnownSymbols.toStringTag) === polyGetKnownSymbol(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(\"toStringTag\") !== Symbol.toStringTag; // true\r\n * polyGetKnownSymbol(WellKnownSymbols.toStringTag) !== Symbol.toStringTag; // true\r\n * polyGetKnownSymbol(\"toStringTag\") !== polySymbolFor(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(WellKnownSymbols.toStringTag) !== polySymbolFor(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(\"toStringTag\") !== polyNewSymbol(\"toStringTag\"); // true\r\n * polyGetKnownSymbol(WellKnownSymbols.toStringTag) !== polyNewSymbol(\"toStringTag\"); // true\r\n * ```\r\n * @group Polyfill\r\n * @group Symbol\r\n * @param name - The property name to return (if it exists) for Symbol\r\n * @returns The value of the property if present\r\n */\r\nexport function polyGetKnownSymbol(name) {\r\n var result;\r\n var knownName = _wellKnownSymbolMap[name];\r\n if (knownName) {\r\n result = _wellKnownSymbolCache[knownName] = _wellKnownSymbolCache[knownName] || polyNewSymbol(SYMBOL + \".\" + knownName);\r\n }\r\n return result;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { _createKeyValueMap } from \"../internal/map\";\r\nimport { objForEachKey } from \"../object/for_each_key\";\r\nimport { objDeepFreeze } from \"../object/object\";\r\n/**\r\n * Create a TypeScript style enum class which is a mapping that maps from the key -> value and the value -> key.\r\n * This is effectively the same as defining a non-constant enum, but this only repeats the \"Name\" of the enum value once.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * const enum Animal {\r\n * Dog = 0,\r\n * Cat = 1,\r\n * Butterfly = 2,\r\n * Bear = 3\r\n * }\r\n * const Animals = createEnum({\r\n * Dog: Animal.Dog,\r\n * Cat: Animal.Cat,\r\n * Butterfly: Animal.Butterfly,\r\n * Bear: Animal.Bear\r\n * });\r\n * // You end up with an object that maps everything to the name\r\n * Animals.Dog === 0; // true\r\n * Animals[0] === \"Dog\"; // true\r\n * Animals[\"Dog\"] === 0; // true\r\n * Animals.Cat === 1; // true\r\n * Animals[1] === \"Cat\"; // true\r\n * Animals[\"Cat\"] === 1; // true\r\n * ```\r\n\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the const enum type being mapped\r\n * @returns A new frozen (immutable) object which looks and acts like a TypeScript Enum class.\r\n */\r\nexport function createEnum(values) {\r\n return _createKeyValueMap(values, 1 /* eMapValues.Value */, 0 /* eMapValues.Key */, objDeepFreeze);\r\n}\r\n/**\r\n * Create a map object which contains both the property key and value which both map to the key,\r\n * E[key] => key and E[value] => key.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * const enum Animal {\r\n * Dog = 0,\r\n * Cat = 1,\r\n * Butterfly = 2,\r\n * Bear = 3\r\n * }\r\n * const animalMap = createEnumKeyMap({\r\n * Dog: Animal.Dog,\r\n * Cat: Animal.Cat,\r\n * Butterfly: Animal.Butterfly,\r\n * Bear: Animal.Bear\r\n * });\r\n * // You end up with an object that maps everything to the name\r\n * animalMap.Dog === \"Dog\"; // true\r\n * animalMap[0] === \"Dog\"; // true\r\n * animalMap[\"Dog\"] === \"Dog\"; // true\r\n * animalMap.Cat === \"Cat\"; // true\r\n * animalMap[1] === \"Cat\"; // true\r\n * animalMap[\"Cat\"] === \"Cat\"; // true\r\n * // Helper function to always return the \"Name\" of the type of animal\r\n * function getAnimalType(type: string | number | Animal) {\r\n * return animalMap[type];\r\n * }\r\n * ```\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the const enum type being mapped\r\n * @returns A new frozen (immutable) object which contains a property for each key and value that returns the value.\r\n */\r\nexport function createEnumKeyMap(values) {\r\n return _createKeyValueMap(values, 0 /* eMapValues.Key */, 0 /* eMapValues.Key */, objDeepFreeze);\r\n}\r\n/**\r\n * Create a map object which contains both the perperty key and value which both map to the resulting value,\r\n * E[key] => value and E[value] => value.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * const enum Animal {\r\n * Dog = 0,\r\n * Cat = 1,\r\n * Butterfly = 2,\r\n * Bear = 3\r\n * }\r\n * const animalMap = createEnumValueMap({\r\n * Dog: Animal.Dog,\r\n * Cat: Animal.Cat,\r\n * Butterfly: Animal.Butterfly,\r\n * Bear: Animal.Bear\r\n * });\r\n * // You end up with an object that maps everything to the name\r\n * animalMap.Dog === 0; // true\r\n * animalMap[0] === 0; // true\r\n * animalMap[\"Dog\"] === 0; // true\r\n * animalMap.Cat === 1; // true\r\n * animalMap[1] === 1; // true\r\n * animalMap[\"Cat\"] === 1; // true\r\n *\r\n * // Helper function to always return the \"Name\" of the type of animal\r\n * function getAnimalValue(type: string | number | Animal) {\r\n * return animalMap[type];\r\n * }\r\n * ```\r\n\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the const enum type being mapped\r\n * @returns A new frozen (immutable) object which contains a property for each key and value that returns the value.\r\n */\r\nexport function createEnumValueMap(values) {\r\n return _createKeyValueMap(values, 1 /* eMapValues.Value */, 1 /* eMapValues.Value */, objDeepFreeze);\r\n}\r\n/**\r\n * Create a map object which contains both the perperty key and value which both map to the requested\r\n * generic mapValue with a type of V, E[key] => mapValue and E[value] => mapValue.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * const enum Animal {\r\n * Dog = 0,\r\n * Cat = 1,\r\n * Butterfly = 2,\r\n * Bear = 3\r\n * };\r\n * // Creates a simple mapping to a string value\r\n * const animalFamilyMap = createValueMap({\r\n * Dog: [ Animal.Dog, \"Canidae\"],\r\n * Cat: [ Animal.Cat, \"Felidae\"],\r\n * Butterfly: [ Animal.Butterfly, \"Papilionidae\"],\r\n * Bear: [ Animal.Bear, \"Ursidae\"]\r\n * });\r\n * // You end up with an object that maps everything to the name\r\n * animalMap.Dog === \"Canidae\"; // true with typeof animalMap.Dog is \"string\"\r\n * animalMap[0] === \"Canidae\"; // true with typeof animalMap[0] is \"string\"\r\n * animalMap[\"Dog\"] === \"Canidae\"; // true with typeof animalMap[\"Dog\"] is \"string\"\r\n * animalMap.Cat === \"Felidae\"; // true with typeof animalMap.Cat is \"string\"\r\n * animalMap[1] === \"Felidae\"; // true with typeof animalMap[1] is \"string\"\r\n * animalMap[\"Cat\"] === \"Felidae\"; // true with typeof animalMap[\"Cat\"] is \"string\"\r\n * ```\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the const enum type (eg. typeof Animal);\r\n * @typeParam V - Identifies the type of the mapping `string`; `number`; etc is not restructed to primitive types.\r\n * @returns A new frozen (immutable) object which contains a property for each key and value that returns the defiend mapped value.\r\n */\r\nexport function createSimpleMap(values) {\r\n var mapClass = {};\r\n objForEachKey(values, function (key, value) {\r\n mapClass[key] = value[1];\r\n mapClass[value[0]] = value[1];\r\n });\r\n return objDeepFreeze(mapClass);\r\n}\r\n/**\r\n * Create a strongly types map object which contains both the perperty key and value which both map\r\n * to the requested mapValue,\r\n * E[key] => mapValue and E[value] => mapValue.\r\n * - E = the const enum type (typeof Animal);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @group Enum\r\n * @example\r\n * ```ts\r\n * // Create a strongly types map\r\n * const animalFamilyMap = createTypeMap({\r\n * Dog: [ Animal.Dog, \"Canidae\"],\r\n * Cat: [ Animal.Cat, \"Felidae\"],\r\n * Butterfly: [ Animal.Butterfly, \"Papilionidae\"],\r\n * Bear: [ Animal.Bear, \"Ursidae\"]\r\n * });\r\n * // You end up with a strongly types result for each value\r\n * animalMap.Dog === \"Canidae\"; // true with typeof animalMap.Dog is (const) \"Canidae\"\r\n * animalMap[0] === \"Canidae\"; // true with typeof animalMap[0] is \"Canidae\"\r\n * animalMap[\"Dog\"] === \"Canidae\"; // true with typeof animalMap[\"Dog\"] is \"Canidae\"\r\n * animalMap.Cat === \"Felidae\"; // true with typeof animalMap.Cat is \"Felidae\"\r\n * animalMap[1] === \"Felidae\"; // true with typeof animalMap[1] is \"Felidae\"\r\n * animalMap[\"Cat\"] === \"Felidae\"; // true with typeof animalMap[\"Cat\"] is \"Felidae\"\r\n *\r\n * or using an interface to define the direct string mappings\r\n *\r\n * interface IAnimalFamilyMap {\r\n * Dog: \"Canidae\",\r\n * Cat: \"Felidae\",\r\n * Butterfly: \"Papilionidae\",\r\n * Bear: \"Ursidae\"\r\n * }\r\n *\r\n * // Create a strongly types map\r\n * const animalFamilyMap = createTypeMap({\r\n * Dog: [ Animal.Dog, \"Canidae\"],\r\n * Cat: [ Animal.Cat, \"Felidae\"],\r\n * Butterfly: [ Animal.Butterfly, \"Papilionidae\"],\r\n * Bear: [ Animal.Bear, \"Ursidae\"]\r\n * });\r\n *\r\n * // You also end up with a strongly types result for each value\r\n * animalMap.Dog === \"Canidae\"; // true with typeof animalMap.Dog is (const) \"Canidae\"\r\n * animalMap[0] === \"Canidae\"; // true with typeof animalMap[0] is \"Canidae\"\r\n * animalMap[\"Dog\"] === \"Canidae\"; // true with typeof animalMap[\"Dog\"] is \"Canidae\"\r\n * animalMap.Cat === \"Felidae\"; // true with typeof animalMap.Cat is \"Felidae\"\r\n * animalMap[1] === \"Felidae\"; // true with typeof animalMap[1] is \"Felidae\"\r\n * animalMap[\"Cat\"] === \"Felidae\"; // true with typeof animalMap[\"Cat\"] is \"Felidae\"\r\n * ```\r\n * @param values - The values to populate on the new object\r\n * @typeParam E - Identifies the enum type\r\n * @typeParam T - Identifies the return type that is being created via the mapping.\r\n * @returns A new frozen (immutable) object which contains a property for each key and value that returns the defined mapped value.\r\n */\r\nexport function createTypeMap(values) {\r\n return createSimpleMap(values);\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { NULL_VALUE, SYMBOL, UNDEF_VALUE } from \"../internal/constants\";\r\nimport { polyGetKnownSymbol, polyNewSymbol, polySymbolFor, polySymbolKeyFor } from \"../polyfills/symbol\";\r\nimport { _wellKnownSymbolMap } from \"./well_known\";\r\nimport { _createIs } from \"../helpers/base\";\r\nimport { _globalLazyTestHooks } from \"../helpers/lazy\";\r\nimport { safeGetLazy } from \"../helpers/safe_lazy\";\r\nimport { lazySafeGetInst } from \"../helpers/environment\";\r\nvar _symbol;\r\nvar _symbolFor;\r\nvar _symbolKeyFor;\r\nfunction _getSymbolValue(name) {\r\n return safeGetLazy(function () {\r\n return (_symbol.v ? _symbol.v[name] : UNDEF_VALUE);\r\n }, UNDEF_VALUE);\r\n}\r\n/**\r\n * Checks if the type of value is a symbol.\r\n * @group Symbol\r\n * @param {any} value - Value to be checked.\r\n * @return {boolean} True if the value is a symbol, false otherwise.\r\n */\r\nexport var isSymbol = _createIs(\"symbol\");\r\n/**\r\n * Helper to identify whether the runtime support the Symbols either via native or an installed polyfill\r\n * @group Symbol\r\n * @returns true if Symbol's are support otherwise false\r\n */\r\nexport function hasSymbol() {\r\n return !!getSymbol();\r\n}\r\n/**\r\n * If Symbols are supported then attempt to return the named Symbol\r\n * @group Symbol\r\n * @returns The value of the named Symbol (if available)\r\n */\r\nexport function getSymbol() {\r\n var resetCache = !_symbol || (_globalLazyTestHooks && _globalLazyTestHooks.lzy && !_symbol.b);\r\n resetCache && (_symbol = lazySafeGetInst(SYMBOL));\r\n (!_symbolFor || resetCache) && (_symbolFor = _getSymbolValue(\"for\"));\r\n (!_symbolKeyFor || resetCache) && (_symbolKeyFor = _getSymbolValue(\"keyFor\"));\r\n return _symbol.v;\r\n}\r\n/**\r\n * If Symbols are supported then get the property of the global Symbol, if Symbol's are\r\n * not supported and noPoly is true it returns null. Used to access the well known symbols.\r\n * @group Symbol\r\n * @param name - The property name to return (if it exists) for Symbol\r\n * @param noPoly - Flag indicating whether to return a polyfill if symbols are not supported.\r\n * @returns The value of the property if present\r\n * @example\r\n * ```ts\r\n * // If Symbol is supported in the runtime\r\n * getKnownSymbol(\"toStringTag\") === Symbol.toStringTag; // true\r\n * getKnownSymbol(WellKnownSymbols.toStringTag) === Symbol.toStringTag; // true\r\n * ```\r\n */\r\nexport function getKnownSymbol(name, noPoly) {\r\n var knownName = _wellKnownSymbolMap[name];\r\n // Cause lazy symbol to get initialized\r\n (!_symbol || (_globalLazyTestHooks.lzy && !_symbol.b)) && getSymbol();\r\n return _symbol.v ? _symbol.v[knownName || name] : (!noPoly ? polyGetKnownSymbol(name) : UNDEF_VALUE);\r\n}\r\n/**\r\n * Returns a new unique Symbol value. If noPoly is true and symbols are not supported\r\n * then this will return null.\r\n * @group Symbol\r\n * @param description Description of the new Symbol object.\r\n * @param noPoly - Flag indicating whether to return a polyfil if symbols are not supported.\r\n * @returns The new symbol\r\n */\r\nexport function newSymbol(description, noPoly) {\r\n // Cause lazy _symbol to get initialized\r\n (!_symbol || (_globalLazyTestHooks.lzy && !_symbol.b)) && getSymbol();\r\n return _symbol.v ? _symbol.v(description) : (!noPoly ? polyNewSymbol(description) : NULL_VALUE);\r\n}\r\n/**\r\n * Returns a Symbol object from the global symbol registry matching the given key if found.\r\n * Otherwise, returns a new symbol with this key. This will always return a polyfill if symbols\r\n * are not supported.\r\n * @group Symbol\r\n * @param key key to search for.\r\n */\r\nexport function symbolFor(key) {\r\n // Cause lazy symbol to get initialized\r\n (!_symbolFor || (_globalLazyTestHooks.lzy && !_symbol.b)) && getSymbol();\r\n return (_symbolFor.v || polySymbolFor)(key);\r\n}\r\n/**\r\n * Returns a key from the global symbol registry matching the given Symbol if found.\r\n * Otherwise, returns a undefined. This will always attempt to lookup the polyfill\r\n * implementation if symbols are not supported\r\n * @group Symbol\r\n * @param sym Symbol to find the key for.\r\n */\r\nexport function symbolKeyFor(sym) {\r\n // Cause lazy symbol to get initialized\r\n (!_symbolKeyFor || (_globalLazyTestHooks.lzy && !_symbol.b)) && getSymbol();\r\n return (_symbolKeyFor.v || polySymbolKeyFor)(sym);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isArray, isPlainObject, objForEachKey, symbolFor, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\n// Using Symbol.for so that if the same symbol was already created it would be returned\r\n// To handle multiple instances using potentially different versions we are not using\r\n// createUniqueNamespace()\r\nexport var CFG_HANDLER_LINK = symbolFor(\"[[ai_dynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects / arrays with if they should not be converted\r\n */\r\nvar BLOCK_DYNAMIC = symbolFor(\"[[ai_blkDynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects to indicate that when included into the configuration that\r\n * they should be converted into a trackable dynamic object.\r\n */\r\nvar FORCE_DYNAMIC = symbolFor(\"[[ai_frcDynCfg_1]]\");\r\nexport function _cfgDeepCopy(source) {\r\n if (source) {\r\n var target_1;\r\n if (isArray(source)) {\r\n target_1 = [];\r\n target_1[_DYN_LENGTH /* @min:%2elength */] = source[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(source)) {\r\n target_1 = {};\r\n }\r\n if (target_1) {\r\n // Copying index values by property name as the extensionConfig can be an array or object\r\n objForEachKey(source, function (key, value) {\r\n // Perform a deep copy of the object\r\n target_1[key] = _cfgDeepCopy(value);\r\n });\r\n return target_1;\r\n }\r\n }\r\n return source;\r\n}\r\n/**\r\n * @internal\r\n * Get the dynamic config handler if the value is already dynamic\r\n * @param value\r\n * @returns\r\n */\r\nexport function getDynamicConfigHandler(value) {\r\n if (value) {\r\n var handler = value[CFG_HANDLER_LINK] || value;\r\n if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Mark the provided value so that if it's included into the configuration it will NOT have\r\n * its properties converted into a dynamic (reactive) object. If the object is not a plain object\r\n * or an array (ie. a class) this function has not affect as only Objects and Arrays are converted\r\n * into dynamic objects in the dynamic configuration.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * You should only need to use this function, if you are creating dynamic \"classes\" from objects\r\n * which confirm to the require interface. A common case for this is during unit testing where it's\r\n * easier to create mock extensions.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed\r\n *\r\n * @example\r\n * ```ts\r\n * // This is a valid \"extension\", but it is technically an object\r\n * // So when included in the config.extensions it WILL be cloned and then\r\n * // converted into a dynamic object, where all of its properties will become\r\n * // get/set object properties and will be tracked. While this WILL still\r\n * // function, when attempt to use a mocking framework on top of this the\r\n * // functions are now technically get accessors which return a function\r\n * // and this can cause some mocking frameworks to fail.\r\n * let mockChannel = {\r\n * pause: () => { },\r\n* resume: () => { },\r\n* teardown: () => { },\r\n* flush: (async: any, callBack: any) => { },\r\n* processTelemetry: (env: any) => { },\r\n* setNextPlugin: (next: any) => { },\r\n* initialize: (config: any, core: any, extensions: any) => { },\r\n* identifier: \"testChannel\",\r\n* priority: 1003\r\n* };\r\n * ```\r\n * @param value - The object that you want to block from being converted into a\r\n * trackable dynamic object\r\n * @returns The original value\r\n */\r\nexport function blockDynamicConversion(value) {\r\n if (value && (isPlainObject(value) || isArray(value))) {\r\n try {\r\n value[BLOCK_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * This is the reverse case of {@link blockDynamicConversion} in that this will tag an\r\n * object to indicate that it should always be converted into a dynamic trackable object\r\n * even when not an object or array. So all properties of this object will become\r\n * get / set accessor functions.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed.\r\n * @param value - The object that should be tagged and converted if included into a dynamic\r\n * configuration.\r\n * @returns The original value\r\n */\r\nexport function forceDynamicConversion(value) {\r\n if (value) {\r\n try {\r\n value[FORCE_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper function to check whether an object can or should be converted into a dynamic\r\n * object.\r\n * @param value - The object to check whether it should be converted\r\n * @returns `true` if the value should be converted otherwise `false`.\r\n */\r\nexport function _canMakeDynamic(getFunc, state, value) {\r\n var result = false;\r\n // Object must exist and be truthy\r\n if (value && !getFunc[state.blkVal]) {\r\n // Tagged as always convert\r\n result = value[FORCE_DYNAMIC];\r\n // Check that it's not explicitly tagged as blocked\r\n if (!result && !value[BLOCK_DYNAMIC]) {\r\n // Only convert plain objects or arrays by default\r\n result = isPlainObject(value) || isArray(value);\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Throws an invalid access exception\r\n * @param message - The message to include in the exception\r\n */\r\nexport function throwInvalidAccess(message) {\r\n throwTypeError(\"InvalidAccess:\" + message);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, isArray, objDefine, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from \"@nevware21/ts-utils\";\r\nimport { UNDEFINED_VALUE } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_APPLY, _DYN_HDLR, _DYN_LOGGER, _DYN_PUSH, _DYN_SPLICE, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nimport { CFG_HANDLER_LINK, _canMakeDynamic, blockDynamicConversion, throwInvalidAccess } from \"./DynamicSupport\";\r\nvar arrayMethodsToPatch = [\r\n \"push\",\r\n \"pop\",\r\n \"shift\",\r\n \"unshift\",\r\n \"splice\"\r\n];\r\nexport var _throwDynamicError = function (logger, name, desc, e) {\r\n logger && logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](3 /* eLoggingSeverity.DEBUG */, 108 /* _eInternalMessageId.DynamicConfigException */, \"\".concat(desc, \" [\").concat(name, \"] failed - \") + dumpObj(e));\r\n};\r\nfunction _patchArray(state, target, name) {\r\n if (isArray(target)) {\r\n // Monkey Patch the methods that might change the array\r\n arrForEach(arrayMethodsToPatch, function (method) {\r\n var orgMethod = target[method];\r\n target[method] = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var result = orgMethod[_DYN_APPLY /* @min:%2eapply */](this, args);\r\n // items may be added, removed or moved so need to make some new dynamic properties\r\n _makeDynamicObject(state, target, name, \"Patching\");\r\n return result;\r\n };\r\n });\r\n }\r\n}\r\nfunction _getOwnPropGetter(target, name) {\r\n var propDesc = objGetOwnPropertyDescriptor(target, name);\r\n return propDesc && propDesc.get;\r\n}\r\nfunction _createDynamicProperty(state, theConfig, name, value) {\r\n // Does not appear to be dynamic so lets make it so\r\n var detail = {\r\n n: name,\r\n h: [],\r\n trk: function (handler) {\r\n if (handler && handler.fn) {\r\n if (arrIndexOf(detail.h, handler) === -1) {\r\n // Add this handler to the collection that should be notified when the value changes\r\n detail.h[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n state.trk(handler, detail);\r\n }\r\n },\r\n clr: function (handler) {\r\n var idx = arrIndexOf(detail.h, handler);\r\n if (idx !== -1) {\r\n detail.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n };\r\n // Flag to optimize lookup response time by avoiding additional function calls\r\n var checkDynamic = true;\r\n var isObjectOrArray = false;\r\n function _getProperty() {\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n // Make sure that if it's an object that we make it dynamic\r\n if (value && !value[CFG_HANDLER_LINK] && isObjectOrArray) {\r\n // It doesn't look like it's already dynamic so lets make sure it's converted the object into a dynamic Config as well\r\n value = _makeDynamicObject(state, value, name, \"Converting\");\r\n }\r\n // If it needed to be converted it now has been\r\n checkDynamic = false;\r\n }\r\n // If there is an active handler then add it to the tracking set of handlers\r\n var activeHandler = state.act;\r\n if (activeHandler) {\r\n detail.trk(activeHandler);\r\n }\r\n return value;\r\n }\r\n // Tag this getter as our dynamic property and provide shortcut for notifying a change\r\n _getProperty[state.prop] = {\r\n chng: function () {\r\n state.add(detail);\r\n }\r\n };\r\n function _setProperty(newValue) {\r\n if (value !== newValue) {\r\n if (!!_getProperty[state.ro] && !state.upd) {\r\n // field is marked as readonly so return false\r\n throwInvalidAccess(\"[\" + name + \"] is read-only:\" + dumpObj(theConfig));\r\n }\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n checkDynamic = false;\r\n }\r\n // The value must be a plain object or an array to enforce the reference (in-place updates)\r\n var isReferenced = isObjectOrArray && _getProperty[state.rf];\r\n if (isObjectOrArray) {\r\n // We are about to replace a plain object or an array\r\n if (isReferenced) {\r\n // Reassign the properties from the current value to the same properties from the newValue\r\n // This will set properties not in the newValue to undefined\r\n objForEachKey(value, function (key) {\r\n value[key] = newValue ? newValue[key] : UNDEFINED_VALUE;\r\n });\r\n // Now assign / re-assign value with all of the keys from newValue\r\n try {\r\n objForEachKey(newValue, function (key, theValue) {\r\n _setDynamicProperty(state, value, key, theValue);\r\n });\r\n // Now drop newValue so when we assign value later it keeps the existing reference\r\n newValue = value;\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Assigning\", e);\r\n // Mark as not an object or array so we don't try and do this again\r\n isObjectOrArray = false;\r\n }\r\n }\r\n else if (value && value[CFG_HANDLER_LINK]) {\r\n // As we are replacing the value, if it's already dynamic then we need to notify the listeners\r\n // for every property it has already\r\n objForEachKey(value, function (key) {\r\n // Check if the value is dynamic\r\n var getter = _getOwnPropGetter(value, key);\r\n if (getter) {\r\n // And if it is tell it's listeners that the value has changed\r\n var valueState = getter[state.prop];\r\n valueState && valueState.chng();\r\n }\r\n });\r\n }\r\n }\r\n if (newValue !== value) {\r\n var newIsObjectOrArray = newValue && _canMakeDynamic(_getProperty, state, newValue);\r\n if (!isReferenced && newIsObjectOrArray) {\r\n // As the newValue is an object/array lets preemptively make it dynamic\r\n newValue = _makeDynamicObject(state, newValue, name, \"Converting\");\r\n }\r\n // Now assign the internal \"value\" to the newValue\r\n value = newValue;\r\n isObjectOrArray = newIsObjectOrArray;\r\n }\r\n // Cause any listeners to be scheduled for notification\r\n state.add(detail);\r\n }\r\n }\r\n objDefine(theConfig, detail.n, { g: _getProperty, s: _setProperty });\r\n}\r\nexport function _setDynamicProperty(state, target, name, value) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n if (!isDynamic) {\r\n _createDynamicProperty(state, target, name, value);\r\n }\r\n else {\r\n // Looks like it's already dynamic just assign the new value\r\n target[name] = value;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _setDynamicPropertyState(state, target, name, flags) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n var inPlace = flags && flags[0 /* _eSetDynamicPropertyFlags.inPlace */];\r\n var rdOnly = flags && flags[1 /* _eSetDynamicPropertyFlags.readOnly */];\r\n var blkProp = flags && flags[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */];\r\n if (!isDynamic) {\r\n if (blkProp) {\r\n try {\r\n // Attempt to mark the target as blocked from conversion\r\n blockDynamicConversion(target);\r\n }\r\n catch (e) {\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Blocking\", e);\r\n }\r\n }\r\n try {\r\n // Make sure it's dynamic so that we can tag the property as per the state\r\n _setDynamicProperty(state, target, name, target[name]);\r\n getter = _getOwnPropGetter(target, name);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"State\", e);\r\n }\r\n }\r\n // Assign the optional flags if true\r\n if (inPlace) {\r\n getter[state.rf] = inPlace;\r\n }\r\n if (rdOnly) {\r\n getter[state.ro] = rdOnly;\r\n }\r\n if (blkProp) {\r\n getter[state.blkVal] = true;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _makeDynamicObject(state, target, name, desc) {\r\n try {\r\n // Assign target with new value properties (converting into dynamic properties in the process)\r\n objForEachKey(target, function (key, value) {\r\n // Assign and/or make the property dynamic\r\n _setDynamicProperty(state, target, key, value);\r\n });\r\n if (!target[CFG_HANDLER_LINK]) {\r\n // Link the config back to the dynamic config details\r\n objDefineProp(target, CFG_HANDLER_LINK, {\r\n get: function () {\r\n return state[_DYN_HDLR /* @min:%2ehdlr */];\r\n }\r\n });\r\n _patchArray(state, target, name);\r\n }\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, desc, e);\r\n }\r\n return target;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ArrProto, SLICE } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The arrSlice() method returns a shallow copy of a portion of an array into a new array object\r\n * selected from start to end (end not included) where start and end represent the index of items\r\n * in that array. The original array will not be modified.\r\n *\r\n * The `arrSlice()` method is a copying method. It does not alter this but instead returns a shallow\r\n * copy that contains some of the same elements as the ones from the original array.\r\n *\r\n * The `arrSlice()` method preserves empty slots. If the sliced portion is sparse, the returned arra\r\n * is sparse as well.\r\n *\r\n * The `arrSlice()` method is generic. It only expects the this value to have a length property and\r\n * integer-keyed properties.\r\n *\r\n * For both start and end, a negative index can be used to indicate an offset from the end of the array.\r\n * For example, -2 refers to the second to last element of the array.\r\n * @since 0.9.3\r\n * @group Array\r\n * @group ArrayLike\r\n * @param start Zero-based index at which to start extraction, converted to an integer.\r\n * - Negative index counts back from the end of the array — if start < 0, start + array.length is used.\r\n * - If start < -array.length or start is omitted, 0 is used.\r\n * - If start >= array.length, nothing is extracted.\r\n * @param end Zero-based index at which to end extraction, converted to an integer. slice() extracts\r\n * up to but not including end.\r\n * - Negative index counts back from the end of the array — if end < 0, end + array.length is used.\r\n * - If end < -array.length, 0 is used.\r\n * - If end >= array.length or end is omitted, array.length is used, causing all elements until the\r\n * end to be extracted.\r\n * - If end is positioned before or at start after normalization, nothing is extracted.\r\n * @example\r\n * ```ts\r\n * const lyrics = [\"Hello\", \"Darkness\", \"my\", \"old\", \"friend.\", \"I've\", \"come\", \"to\", \"talk\" ];\r\n *\r\n * arrSlice(lyrics); // [ \"Hello\", \"Darkness\", \"my\", \"old\", \"friend.\", \"I've\", \"come\", \"to\", \"talk\" ]\r\n * arrSlice(lyrics, 1, 3); // [ \"Darkness\", \"my\" ]\r\n * arrSlicw(lyrics, 2); // [ \"my\", \"old\", \"friend.\", \"I've\", \"come\", \"to\", \"talk\" ]\r\n * arrSlice(lyrics, 2, 4); // [ \"my\", \"old\" ]\r\n * arrSlice(lyrics, 1, 5); // [ \"Darkness\", \"my\", \"old\", \"friend.\" ]\r\n * arrSlice(lyrics, -2); // [ \"to\", \"talk\" ]\r\n * arrSlice(lyrics, 2, -1); // [ \"my\", \"old\", \"friend.\", \"I've\", \"come\", \"to\" ]\r\n * ```\r\n */\r\nexport var arrSlice = _unwrapFunction(SLICE, ArrProto);\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { getLazy } from \"../helpers/lazy\";\r\nimport { ObjClass, __PROTO__ } from \"../internal/constants\";\r\nimport { objForEachKey } from \"./for_each_key\";\r\nvar _isProtoArray;\r\n/**\r\n * The objSetPrototypeOf() method sets the prototype (i.e., the internal [Prototype] property) of a specified\r\n * object to another object or null.\r\n * @group Object\r\n * @param obj - The object which is to have it's prototype set.\r\n * @param proto - The object's new prototype (an object or null)\r\n * @returns The specified object.\r\n */\r\nexport function objSetPrototypeOf(obj, proto) {\r\n var fn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d, b) {\r\n !_isProtoArray && (_isProtoArray = getLazy(function () {\r\n var _a;\r\n return ((_a = {}, _a[__PROTO__] = [], _a) instanceof Array);\r\n }));\r\n _isProtoArray.v ? d[__PROTO__] = b : objForEachKey(b, function (key, value) { return d[key] = value; });\r\n };\r\n return fn(obj, proto);\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2023 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { _unwrapInstFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The `fnApply` function calls the specified `fn` function with the given `thisArg` as the `this` value,\r\n * and the optional `argArray` arguments provided as an array (or an Array-Like Object).\r\n *\r\n * Normally, when calling a function, the value of `this` inside the function is the object that the\r\n * function was accessed on. With `fnApply()`, you can assign an arbitrary value as this when calling an\r\n * existing function, without first attaching the function to the object as a property. This allows you\r\n * to use methods of one object as generic utility functions.\r\n *\r\n * You can also use any kind of object which is ArrayLike as the second parameter. In practice, this means\r\n * that it needs to have a length property, and integer (\"index\") properties in the range (0..length - 1).\r\n * For example, you could use a NodeList, or a custom object like `{ 'length': 2, '0': 'eat', '1': 'bananas' }`.\r\n * You can also use `arguments`.\r\n *\r\n * @since 0.9.8\r\n * @group Function\r\n *\r\n * @param fn - The function to be called\r\n * @param thisArg - The value of `this` provided for the call to `fn`. If the function is not in strict mode,\r\n * `null` and `undefined` will be replaced with the global object, and primitive values will be converted to objects.\r\n * @param argArray - An array-like object, specifying the arguments with which `fn` should be called, or `null` or\r\n * `undefined` if no arguments should be provided to the function.\r\n * @returns The result of calling the function with the specified `this` value and arguments.\r\n * @example\r\n * ```ts\r\n * // min / max number in an array\r\n * let max = fnApply(Math.max, null, [ 21, 42, 84, 168, 7, 3 ]);\r\n * // 168\r\n *\r\n * let min = fnApply(Math.min, null, [ 21, 42, 84, 168, 7, 3 ]);\r\n * // 3\r\n *\r\n * const module1 = {\r\n * prefix: \"Hello\",\r\n * x: 21,\r\n * getX() {\r\n * return this.x;\r\n * },\r\n * log(value: string) {\r\n * return this.prefix + \" \" + value + \" : \" + this.x\r\n * }\r\n * };\r\n *\r\n * // The 'this' parameter of 'getX' is bound to 'module'.\r\n * module1.getX(); // 21\r\n * module1.log(\"Darkness\"); // Hello Darkness : 21\r\n *\r\n * // Create a new function 'boundGetX' with the 'this' parameter bound to 'module'.\r\n * let module2 = {\r\n * prefix: \"my\",\r\n * x: 42\r\n * };\r\n *\r\n * // Call the function of module1 with module2 as it's this\r\n * fnApply(module1.getX, module2); // 42\r\n * fnApply(module1.log, module2, [ \"friend\" ]); // my friend : 42\r\n * ```\r\n */\r\nexport var fnApply = _unwrapInstFunction(\"apply\");\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { NULL_VALUE } from \"../internal/constants\";\r\nimport { objDefineProp } from \"../object/define\";\r\nvar REF = \"ref\";\r\nvar UNREF = \"un\" + REF;\r\nvar HAS_REF = \"hasRef\";\r\nvar ENABLED = \"enabled\";\r\n/**\r\n * @ignore\r\n * @internal\r\n * Internal function to create and manage an ITimerHandler implementation, the object returned from this function\r\n * it directly used / returned by the pulic functions used to create timers (idle, interval and timeout)\r\n * @param startTimer - Should the timer be started as part of creating the handler\r\n * @param refreshFn - The function used to create/start or refresh the timer\r\n * @param cancelFn - The function used to cancel the timer.\r\n * @returns The new ITimerHandler instance\r\n */\r\nexport function _createTimerHandler(startTimer, refreshFn, cancelFn) {\r\n var _a;\r\n var ref = true;\r\n var timerId = startTimer ? refreshFn(NULL_VALUE) : NULL_VALUE;\r\n var theTimerHandler;\r\n var _unref = function () {\r\n ref = false;\r\n timerId && timerId[UNREF] && timerId[UNREF]();\r\n return theTimerHandler;\r\n };\r\n var _ref = function () {\r\n ref = true;\r\n timerId && timerId[REF] && timerId[REF]();\r\n return theTimerHandler;\r\n };\r\n var _hasRef = function () {\r\n if (timerId && timerId[HAS_REF]) {\r\n return timerId[HAS_REF]();\r\n }\r\n return ref;\r\n };\r\n var _refresh = function () {\r\n timerId = refreshFn(timerId);\r\n if (!ref) {\r\n _unref();\r\n }\r\n return theTimerHandler;\r\n };\r\n var _cancel = function () {\r\n timerId && cancelFn(timerId);\r\n timerId = NULL_VALUE;\r\n };\r\n var _setEnabled = function (value) {\r\n !value && timerId && _cancel();\r\n value && !timerId && _refresh();\r\n };\r\n theTimerHandler = (_a = {\r\n cancel: _cancel,\r\n refresh: _refresh\r\n },\r\n _a[HAS_REF] = _hasRef,\r\n _a[REF] = _ref,\r\n _a[UNREF] = _unref,\r\n _a[ENABLED] = false,\r\n _a);\r\n objDefineProp(theTimerHandler, ENABLED, {\r\n get: function () { return !!timerId; },\r\n set: _setEnabled\r\n });\r\n return {\r\n h: theTimerHandler,\r\n dn: function () {\r\n timerId = NULL_VALUE;\r\n }\r\n };\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { arrSlice } from \"../array/slice\";\r\nimport { fnApply } from \"../funcs/fnApply\";\r\nimport { isArray } from \"../helpers/base\";\r\nimport { UNDEF_VALUE } from \"../internal/constants\";\r\nimport { _createTimerHandler } from \"./handler\";\r\nfunction _createTimeoutWith(self, startTimer, overrideFn, theArgs) {\r\n var isArr = isArray(overrideFn);\r\n var len = isArr ? overrideFn.length : 0;\r\n var setFn = (len > 0 ? overrideFn[0] : (!isArr ? overrideFn : UNDEF_VALUE)) || setTimeout;\r\n var clearFn = (len > 1 ? overrideFn[1] : UNDEF_VALUE) || clearTimeout;\r\n var timerFn = theArgs[0];\r\n theArgs[0] = function () {\r\n handler.dn();\r\n fnApply(timerFn, self, arrSlice(arguments));\r\n };\r\n var handler = _createTimerHandler(startTimer, function (timerId) {\r\n if (timerId) {\r\n if (timerId.refresh) {\r\n timerId.refresh();\r\n return timerId;\r\n }\r\n fnApply(clearFn, self, [timerId]);\r\n }\r\n return fnApply(setFn, self, theArgs);\r\n }, function (timerId) {\r\n fnApply(clearFn, self, [timerId]);\r\n });\r\n return handler.h;\r\n}\r\nexport function scheduleTimeout(callback, timeout) {\r\n return _createTimeoutWith(this, true, UNDEF_VALUE, arrSlice(arguments));\r\n}\r\nexport function scheduleTimeoutWith(overrideFn, callback, timeout) {\r\n return _createTimeoutWith(this, true, overrideFn, arrSlice(arguments, 1));\r\n}\r\nexport function createTimeout(callback, timeout) {\r\n return _createTimeoutWith(this, false, UNDEF_VALUE, arrSlice(arguments));\r\n}\r\nexport function createTimeoutWith(overrideFn, callback, timeout) {\r\n return _createTimeoutWith(this, false, overrideFn, arrSlice(arguments, 1));\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { arrSlice } from \"../array/slice\";\r\nimport { fnApply } from \"../funcs/fnApply\";\r\nimport { CONSTRUCTOR, NAME, NULL_VALUE, PROTOTYPE } from \"../internal/constants\";\r\nimport { objCreate } from \"../object/create\";\r\nimport { objDefine } from \"../object/define\";\r\nimport { objGetPrototypeOf } from \"../object/object\";\r\nimport { objSetPrototypeOf } from \"../object/set_proto\";\r\n/**\r\n * @internal\r\n * @ignore\r\n */\r\nvar _createCustomError = function (name, d, b) {\r\n _safeDefineName(d, name);\r\n d = objSetPrototypeOf(d, b);\r\n function __() {\r\n this.constructor = d;\r\n _safeDefineName(this, name);\r\n }\r\n d[PROTOTYPE] = b === NULL_VALUE ? objCreate(b) : (__[PROTOTYPE] = b[PROTOTYPE], new __());\r\n return d;\r\n};\r\nvar _safeSetName = function (baseClass, name) {\r\n try {\r\n name && (baseClass[NAME] = name);\r\n //name && (baseClass[PROTOTYPE][NAME] = name);\r\n }\r\n catch (e) {\r\n // Do nothing\r\n }\r\n};\r\nvar _safeDefineName = function (target, name) {\r\n try {\r\n objDefine(target, NAME, { v: name, c: true, e: false });\r\n }\r\n catch (e) {\r\n // Do nothing\r\n }\r\n};\r\n/**\r\n * Create a Custom Error class which may be used to throw custom errors.\r\n * @group Error\r\n * @param name - The name of the Custom Error\r\n * @param constructCb - [Optional] An optional callback function to call when a\r\n * new Customer Error instance is being created.\r\n * @param errorBase - [Optional] (since v0.9.6) The error class to extend for this class, defaults to Error.\r\n * @returns A new Error `class`\r\n * @example\r\n * ```ts\r\n * import { createCustomError, isError } from \"@nevware21/ts-utils\";\r\n *\r\n * // For an error that just contains a message\r\n * let myCustomErrorError = createCustomError(\"MessageError\");\r\n *\r\n * try {\r\n * throw new myCustomErrorError(\"Error Message!\");\r\n * } catch(e) {\r\n * // e.name === MessageError\r\n * // isError(e) === true;\r\n * // Object.prototype.toString.call(e) === \"[object Error]\";\r\n * }\r\n *\r\n * // Or a more complex error object\r\n * interface MyCriticalErrorConstructor extends CustomErrorConstructor {\r\n * new(message: string, file: string, line: number, col: number): MyCriticalError;\r\n * (message: string, file: string, line: number, col: number): MyCriticalError;\r\n * }\r\n *\r\n * interface MyCriticalError extends Error {\r\n * readonly errorId: number;\r\n * readonly args: any[]; // Holds all of the arguments passed during construction\r\n * }\r\n *\r\n * let _totalErrors = 0;\r\n * let myCustomError = createCustomError(\"CriticalError\", (self, args) => {\r\n * _totalErrors++;\r\n * self.errorId = _totalErrors;\r\n * self.args = args;\r\n * });\r\n *\r\n * try {\r\n * throw new myCustomError(\"Not Again!\");\r\n * } catch(e) {\r\n * // e.name === CriticalError\r\n * // isError(e) === true;\r\n * // Object.prototype.toString.call(e) === \"[object Error]\";\r\n * }\r\n *\r\n * // ----------------------------------------------------------\r\n * // Extending another custom error class\r\n * // ----------------------------------------------------------\r\n *\r\n * let AppError = createCustomError(\"ApplicationError\");\r\n * let theAppError = new appError();\r\n *\r\n * isError(theAppError); // true\r\n * theAppError instanceof Error; // true\r\n * theAppError instanceof AppError; // true\r\n *\r\n * let StartupError = createCustomError(\"StartupError\", null, AppError);\r\n * let theStartupError = new StartupError();\r\n *\r\n * isError(theStartupError); // true\r\n * theStartupError instanceof Error; // true\r\n * theStartupError instanceof AppError; // true\r\n * theStartupError instanceof StartupError; // true\r\n * ```\r\n */\r\nexport function createCustomError(name, constructCb, errorBase) {\r\n var theBaseClass = errorBase || Error;\r\n var orgName = theBaseClass[PROTOTYPE][NAME];\r\n var captureFn = Error.captureStackTrace;\r\n return _createCustomError(name, function () {\r\n var _this = this;\r\n try {\r\n _safeSetName(theBaseClass, name);\r\n var _self = fnApply(theBaseClass, _this, arrSlice(arguments)) || _this;\r\n if (_self !== _this) {\r\n // Looks like runtime error constructor reset the prototype chain, so restore it\r\n var orgProto = objGetPrototypeOf(_this);\r\n if (orgProto !== objGetPrototypeOf(_self)) {\r\n objSetPrototypeOf(_self, orgProto);\r\n }\r\n }\r\n // Make sure we only capture our stack details\r\n captureFn && captureFn(_self, _this[CONSTRUCTOR]);\r\n // Run the provided construction function\r\n constructCb && constructCb(_self, arguments);\r\n return _self;\r\n }\r\n finally {\r\n _safeSetName(theBaseClass, orgName);\r\n }\r\n }, theBaseClass);\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n */\r\nvar _unsupportedError;\r\n/**\r\n * Throw a custom `UnsupportedError` Error instance with the given message.\r\n * @group Error\r\n * @param message - The message to include in the exception\r\n * @example\r\n * ```ts\r\n * import { throwUnsupported } from \"@nevware21/ts-utils\";\r\n *\r\n * if (!window) {\r\n * throwUnsupported(\"A window is needed for this operation\");\r\n * }\r\n * ```\r\n */\r\nexport function throwUnsupported(message) {\r\n if (!_unsupportedError) {\r\n // Lazily create the class\r\n _unsupportedError = createCustomError(\"UnsupportedError\");\r\n }\r\n throw new _unsupportedError(message);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, createCustomError, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nvar aggregationErrorType;\r\n/**\r\n * Throws an Aggregation Error which includes all of the errors that led to this error occurring\r\n * @param message - The message describing the aggregation error (the sourceError details are added to this)\r\n * @param sourceErrors - An array of the errors that caused this situation\r\n */\r\nexport function throwAggregationError(message, sourceErrors) {\r\n if (!aggregationErrorType) {\r\n aggregationErrorType = createCustomError(\"AggregationError\", function (self, args) {\r\n if (args[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n // Save the provided errors\r\n self.errors = args[1];\r\n }\r\n });\r\n }\r\n var theMessage = message || \"One or more errors occurred.\";\r\n arrForEach(sourceErrors, function (srcError, idx) {\r\n theMessage += \"\\n\".concat(idx, \" > \").concat(dumpObj(srcError));\r\n });\r\n throw new aggregationErrorType(theMessage, sourceErrors || []);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, newSymbol, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { throwAggregationError } from \"../JavaScriptSDK/AggregationError\";\r\nimport { _DYN_BLK_VAL, _DYN_CANCEL, _DYN_HDLR, _DYN_LENGTH, _DYN_LOGGER, _DYN_NOTIFY, _DYN_PUSH, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nvar symPrefix = \"[[ai_\";\r\nvar symPostfix = \"]]\";\r\nexport function _createState(cfgHandler) {\r\n var _a;\r\n var dynamicPropertySymbol = newSymbol(symPrefix + \"get\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReadOnly = newSymbol(symPrefix + \"ro\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReferenced = newSymbol(symPrefix + \"rf\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyBlockValue = newSymbol(symPrefix + \"blkVal\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyDetail = newSymbol(symPrefix + \"dtl\" + cfgHandler.uid + symPostfix);\r\n var _waitingHandlers = null;\r\n var _watcherTimer = null;\r\n var theState;\r\n function _useHandler(activeHandler, callback) {\r\n var prevWatcher = theState.act;\r\n try {\r\n theState.act = activeHandler;\r\n if (activeHandler && activeHandler[dynamicPropertyDetail]) {\r\n // Clear out the previously tracked details for this handler, so that access are re-evaluated\r\n arrForEach(activeHandler[dynamicPropertyDetail], function (detail) {\r\n detail.clr(activeHandler);\r\n });\r\n activeHandler[dynamicPropertyDetail] = [];\r\n }\r\n callback({\r\n cfg: cfgHandler.cfg,\r\n set: cfgHandler.set.bind(cfgHandler),\r\n setDf: cfgHandler[_DYN_SET_DF /* @min:%2esetDf */].bind(cfgHandler),\r\n ref: cfgHandler.ref.bind(cfgHandler),\r\n rdOnly: cfgHandler[_DYN_RD_ONLY /* @min:%2erdOnly */].bind(cfgHandler)\r\n });\r\n }\r\n catch (e) {\r\n var logger = cfgHandler[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // Don't let one individual failure break everyone\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](1 /* eLoggingSeverity.CRITICAL */, 107 /* _eInternalMessageId.ConfigWatcherException */, dumpObj(e));\r\n }\r\n // Re-throw the exception so that any true \"error\" is reported back to the called\r\n throw e;\r\n }\r\n finally {\r\n theState.act = prevWatcher || null;\r\n }\r\n }\r\n function _notifyWatchers() {\r\n if (_waitingHandlers) {\r\n var notifyHandlers = _waitingHandlers;\r\n _waitingHandlers = null;\r\n // Stop any timer as we are running them now anyway\r\n _watcherTimer && _watcherTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _watcherTimer = null;\r\n var watcherFailures_1 = [];\r\n // Now run the handlers\r\n arrForEach(notifyHandlers, function (handler) {\r\n if (handler) {\r\n if (handler[dynamicPropertyDetail]) {\r\n arrForEach(handler[dynamicPropertyDetail], function (detail) {\r\n // Clear out this handler from previously tracked details, so that access are re-evaluated\r\n detail.clr(handler);\r\n });\r\n handler[dynamicPropertyDetail] = null;\r\n }\r\n // The handler may have self removed as part of another handler so re-check\r\n if (handler.fn) {\r\n try {\r\n _useHandler(handler, handler.fn);\r\n }\r\n catch (e) {\r\n // Don't let a single failing watcher cause other watches to fail\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n }\r\n });\r\n // During notification we may have had additional updates -- so notify those updates as well\r\n if (_waitingHandlers) {\r\n try {\r\n _notifyWatchers();\r\n }\r\n catch (e) {\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n if (watcherFailures_1[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n throwAggregationError(\"Watcher error(s): \", watcherFailures_1);\r\n }\r\n }\r\n }\r\n function _addWatcher(detail) {\r\n if (detail && detail.h[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n if (!_waitingHandlers) {\r\n _waitingHandlers = [];\r\n }\r\n if (!_watcherTimer) {\r\n _watcherTimer = scheduleTimeout(function () {\r\n _watcherTimer = null;\r\n _notifyWatchers();\r\n }, 0);\r\n }\r\n // Add all of the handlers for this detail (if not already present) - using normal for-loop for performance\r\n for (var idx = 0; idx < detail.h[_DYN_LENGTH /* @min:%2elength */]; idx++) {\r\n var handler = detail.h[idx];\r\n // Add this handler to the collection of handlers to re-execute\r\n if (handler && arrIndexOf(_waitingHandlers, handler) === -1) {\r\n _waitingHandlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n }\r\n }\r\n function _trackHandler(handler, detail) {\r\n if (handler) {\r\n var details = handler[dynamicPropertyDetail] = handler[dynamicPropertyDetail] || [];\r\n if (arrIndexOf(details, detail) === -1) {\r\n // If this detail is not already listed as tracked then add it so that we re-evaluate it's usage\r\n details[_DYN_PUSH /* @min:%2epush */](detail);\r\n }\r\n }\r\n }\r\n theState = (_a = {\r\n prop: dynamicPropertySymbol,\r\n ro: dynamicPropertyReadOnly,\r\n rf: dynamicPropertyReferenced\r\n },\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = dynamicPropertyBlockValue,\r\n _a[_DYN_HDLR /* @min:hdlr */] = cfgHandler,\r\n _a.add = _addWatcher,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.use = _useHandler,\r\n _a.trk = _trackHandler,\r\n _a);\r\n return theState;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj, isUndefined, objDefine, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { createUniqueNamespace } from \"../JavaScriptSDK/DataCacheHelper\";\r\nimport { STR_NOT_DYNAMIC_ERROR } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_LOGGER, _DYN_NOTIFY, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL, _DYN_WARN_TO_CONSOLE, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { _applyDefaultValue } from \"./ConfigDefaults\";\r\nimport { _makeDynamicObject, _setDynamicProperty, _setDynamicPropertyState, _throwDynamicError } from \"./DynamicProperty\";\r\nimport { _createState } from \"./DynamicState\";\r\nimport { CFG_HANDLER_LINK, _cfgDeepCopy, getDynamicConfigHandler, throwInvalidAccess } from \"./DynamicSupport\";\r\n/**\r\n * Identifies a function which will be re-called whenever any of it's accessed configuration values\r\n * change.\r\n * @param configHandler - The callback that will be called for the initial request and then whenever any\r\n * accessed configuration changes are identified.\r\n */\r\nfunction _createAndUseHandler(state, configHandler) {\r\n var handler = {\r\n fn: configHandler,\r\n rm: function () {\r\n // Clear all references to the handler so it can be garbage collected\r\n // This will also cause this handler to never get called and eventually removed\r\n handler.fn = null;\r\n state = null;\r\n configHandler = null;\r\n }\r\n };\r\n state.use(handler, configHandler);\r\n return handler;\r\n}\r\n/**\r\n * Creates the dynamic config handler and associates with the target config as the root object\r\n * @param target - The config that you want to be root of the dynamic config\r\n * @param inPlace - Should the passed config be converted in-place or a new proxy returned\r\n * @returns The existing dynamic handler or a new instance with the provided config values\r\n */\r\nfunction _createDynamicHandler(logger, target, inPlace) {\r\n var _a;\r\n var dynamicHandler = getDynamicConfigHandler(target);\r\n if (dynamicHandler) {\r\n // The passed config is already dynamic so return it's tracker\r\n return dynamicHandler;\r\n }\r\n var uid = createUniqueNamespace(\"dyncfg\", true);\r\n var newTarget = (target && inPlace !== false) ? target : _cfgDeepCopy(target);\r\n var theState;\r\n function _notifyWatchers() {\r\n theState[_DYN_NOTIFY /* @min:%2enotify */]();\r\n }\r\n function _setValue(target, name, value) {\r\n try {\r\n target = _setDynamicProperty(theState, target, name, value);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError(logger, name, \"Setting value\", e);\r\n }\r\n return target[name];\r\n }\r\n function _watch(configHandler) {\r\n return _createAndUseHandler(theState, configHandler);\r\n }\r\n function _block(configHandler, allowUpdate) {\r\n theState.use(null, function (details) {\r\n var prevUpd = theState.upd;\r\n try {\r\n if (!isUndefined(allowUpdate)) {\r\n theState.upd = allowUpdate;\r\n }\r\n configHandler(details);\r\n }\r\n finally {\r\n theState.upd = prevUpd;\r\n }\r\n });\r\n }\r\n function _ref(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as referenced with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[0 /* _eSetDynamicPropertyFlags.inPlace */] = true, _a))[name];\r\n }\r\n function _rdOnly(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[1 /* _eSetDynamicPropertyFlags.readOnly */] = true, _a))[name];\r\n }\r\n function _blkPropValue(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */] = true, _a))[name];\r\n }\r\n function _applyDefaults(theConfig, defaultValues) {\r\n if (defaultValues) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defaultValues, function (name, value) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(cfgHandler, theConfig, name, value);\r\n });\r\n }\r\n return theConfig;\r\n }\r\n var cfgHandler = (_a = {\r\n uid: null,\r\n cfg: newTarget\r\n },\r\n _a[_DYN_LOGGER /* @min:logger */] = logger,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.set = _setValue,\r\n _a[_DYN_SET_DF /* @min:setDf */] = _applyDefaults,\r\n _a[_DYN_WATCH /* @min:watch */] = _watch,\r\n _a.ref = _ref,\r\n _a[_DYN_RD_ONLY /* @min:rdOnly */] = _rdOnly,\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = _blkPropValue,\r\n _a._block = _block,\r\n _a);\r\n objDefine(cfgHandler, \"uid\", {\r\n c: false,\r\n e: false,\r\n w: false,\r\n v: uid\r\n });\r\n theState = _createState(cfgHandler);\r\n // Setup tracking for all defined default keys\r\n _makeDynamicObject(theState, newTarget, \"config\", \"Creating\");\r\n return cfgHandler;\r\n}\r\n/**\r\n * Log an invalid access message to the console\r\n * @param message\r\n */\r\nfunction _logInvalidAccess(logger, message) {\r\n if (logger) {\r\n logger[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](2 /* eLoggingSeverity.WARNING */, 108 /* _eInternalMessageId.DynamicConfigException */, message);\r\n }\r\n else {\r\n // We don't have a logger so just throw an exception\r\n throwInvalidAccess(message);\r\n }\r\n}\r\n/**\r\n * Create or return a dynamic version of the passed config, if it is not already dynamic\r\n * @param config - The config to be converted into a dynamic config\r\n * @param defaultConfig - The default values to apply on the config if the properties don't already exist\r\n * @param inPlace - Should the config be converted in-place into a dynamic config or a new instance returned, defaults to true\r\n * @returns The dynamic config handler for the config (whether new or existing)\r\n */\r\nexport function createDynamicConfig(config, defaultConfig, logger, inPlace) {\r\n var dynamicHandler = _createDynamicHandler(logger, config || {}, inPlace);\r\n if (defaultConfig) {\r\n dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](dynamicHandler.cfg, defaultConfig);\r\n }\r\n return dynamicHandler;\r\n}\r\n/**\r\n * Watch and track changes for accesses to the current config, the provided config MUST already be\r\n * a dynamic config or a child accessed via the dynamic config\r\n * @param config\r\n * @param configHandler\r\n * @param logger - The logger instance to use if there is no existing handler\r\n * @returns A watcher handler instance that can be used to remove itself when being unloaded\r\n * @throws TypeError if the provided config is not a dynamic config instance\r\n */\r\nexport function onConfigChange(config, configHandler, logger) {\r\n var handler = config[CFG_HANDLER_LINK] || config;\r\n if (handler.cfg && (handler.cfg === config || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n }\r\n _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));\r\n return createDynamicConfig(config, null, logger)[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getInst } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dumpObj, isFunction, isUndefined } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_DIAG_LOG, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_LOG_INTERNAL_MESSAGE, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_PUSH, _DYN_REPLACE, _DYN_THROW_INTERNAL, _DYN_UNLOAD, _DYN_WARN_TO_CONSOLE } from \"../__DynamicConstants\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\nimport { getConsole, getJSON, hasJSON } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar STR_WARN_TO_CONSOLE = \"warnToConsole\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nvar defaultValues = {\r\n loggingLevelConsole: 0,\r\n loggingLevelTelemetry: 1,\r\n maxMessageLimit: 25,\r\n enableDebug: false\r\n};\r\nvar _logFuncs = (_a = {},\r\n _a[0 /* eLoggingSeverity.DISABLED */] = null,\r\n _a[1 /* eLoggingSeverity.CRITICAL */] = \"errorToConsole\",\r\n _a[2 /* eLoggingSeverity.WARNING */] = STR_WARN_TO_CONSOLE,\r\n _a[3 /* eLoggingSeverity.DEBUG */] = \"debugToConsole\",\r\n _a);\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text[_DYN_REPLACE /* @min:%2ereplace */](/\\\"/g, STR_EMPTY) + \"\\\"\";\r\n }\r\n return STR_EMPTY;\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self[_DYN_MESSAGE_ID /* @min:%2emessageId */] = msgId;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = STR_EMPTY;\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {})[_DYN_LOGGER /* @min:%2elogger */] || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n var _loggingLevelConsole;\r\n var _loggingLevelTelemetry;\r\n var _maxInternalMessageLimit;\r\n var _enableDebug;\r\n var _unloadHandler;\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n _unloadHandler = _setDefaultsFromConfig(config || {});\r\n _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\n _self[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */] = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_enableDebug) {\r\n throw dumpObj(message);\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = _logFuncs[severity] || STR_WARN_TO_CONSOLE;\r\n if (!isUndefined(message[_DYN_MESSAGE /* @min:%2emessage */])) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (_loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n }\r\n _logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n _self.debugToConsole = function (message) {\r\n _logToConsole(\"debug\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */] = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self.errorToConsole = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n _self[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */] = _logInternalMessage;\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n _unloadHandler && _unloadHandler.rm();\r\n _unloadHandler = null;\r\n };\r\n function _logInternalMessage(severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _loggingLevelTelemetry) {\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](message);\r\n _messageCount++;\r\n _debugExtMsg((severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _maxInternalMessageLimit) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(23 /* _eInternalMessageId.MessageLimitPerPVExceeded */, throttleLimitMessage, false);\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](throttleMessage);\r\n if (severity === 1 /* eLoggingSeverity.CRITICAL */) {\r\n _self.errorToConsole(throttleLimitMessage);\r\n }\r\n else {\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](throttleLimitMessage);\r\n }\r\n }\r\n }\r\n }\r\n function _setDefaultsFromConfig(config) {\r\n // make sure the config is dynamic\r\n return onConfigChange(createDynamicConfig(config, defaultValues, _self).cfg, function (details) {\r\n var config = details.cfg;\r\n _loggingLevelConsole = config[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */];\r\n _loggingLevelTelemetry = config.loggingLevelTelemetry;\r\n _maxInternalMessageLimit = config.maxMessageLimit;\r\n _enableDebug = config.enableDebug;\r\n });\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _maxInternalMessageLimit;\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config || {});\r\n if (dbgExt && dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */]) {\r\n dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */](name, data);\r\n }\r\n }\r\n });\r\n }\r\n// Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.throwInternal.\r\n// Removed Stub for DiagnosticLogger.prototype.debugToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.warnToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.errorToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\r\n// Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\r\n// Removed Stub for DiagnosticLogger.prototype.unload.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n DiagnosticLogger.__ieDyn=1;\n\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n _getLogger(logger)[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](severity, msgId, msg, properties, isUserAct);\r\n}\r\n/**\r\n * This is a helper method which will call warnToConsole on the passed logger with the provided message.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _warnToConsole(logger, message) {\r\n _getLogger(logger)[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n}\r\n/**\r\n * Logs a message to the internal queue.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n _getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */](severity, message);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnum, createTypeMap } from \"@nevware21/ts-utils\";\r\n/**\r\n * Create an enum style object which has both the key => value and value => key mappings\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createEnumStyle = createEnum;\r\n/**\r\n * Create a 2 index map that maps an enum's key and value to the defined map value, X[\"key\"] => mapValue and X[0] => mapValue.\r\n * Generic values\r\n * - E = the const enum type (typeof eRequestHeaders);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createValueMap = createTypeMap;\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\nexport var StorageType = createEnumStyle({\r\n LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n SessionStorage: 1 /* eStorageType.SessionStorage */\r\n});\r\nexport var DistributedTracingModes = createEnumStyle({\r\n AI: 0 /* eDistributedTracingModes.AI */,\r\n AI_AND_W3C: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n W3C: 2 /* eDistributedTracingModes.W3C */\r\n});\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 41\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 4\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 9\r\nexport var _DYN_REMOVE_ITEM = \"removeItem\"; // Count: 3\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 10\r\nexport var _DYN_COUNT = \"count\"; // Count: 8\r\nexport var _DYN_PRE_TRIGGER_DATE = \"preTriggerDate\"; // Count: 4\r\nexport var _DYN_DISABLED = \"disabled\"; // Count: 3\r\nexport var _DYN_INTERVAL = \"interval\"; // Count: 3\r\nexport var _DYN_DAYS_OF_MONTH = \"daysOfMonth\"; // Count: 3\r\nexport var _DYN_DATE = \"date\"; // Count: 5\r\nexport var _DYN_GET_UTCDATE = \"getUTCDate\"; // Count: 3\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 4\r\nexport var _DYN_PATHNAME = \"pathname\"; // Count: 4\r\nexport var _DYN_CORRELATION_HEADER_E0 = \"correlationHeaderExcludePatterns\"; // Count: 2\r\nexport var _DYN_EXTENSION_CONFIG = \"extensionConfig\"; // Count: 4\r\nexport var _DYN_EXCEPTIONS = \"exceptions\"; // Count: 6\r\nexport var _DYN_PARSED_STACK = \"parsedStack\"; // Count: 13\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 9\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 9\r\nexport var _DYN_SIZE_IN_BYTES = \"sizeInBytes\"; // Count: 11\r\nexport var _DYN_TYPE_NAME = \"typeName\"; // Count: 11\r\nexport var _DYN_SEVERITY_LEVEL = \"severityLevel\"; // Count: 5\r\nexport var _DYN_PROBLEM_GROUP = \"problemGroup\"; // Count: 3\r\nexport var _DYN_IS_MANUAL = \"isManual\"; // Count: 3\r\nexport var _DYN__CREATE_FROM_INTERFA1 = \"CreateFromInterface\"; // Count: 2\r\nexport var _DYN_ASSEMBLY = \"assembly\"; // Count: 7\r\nexport var _DYN_FILE_NAME = \"fileName\"; // Count: 8\r\nexport var _DYN_HAS_FULL_STACK = \"hasFullStack\"; // Count: 6\r\nexport var _DYN_LEVEL = \"level\"; // Count: 5\r\nexport var _DYN_METHOD = \"method\"; // Count: 7\r\nexport var _DYN_LINE = \"line\"; // Count: 6\r\nexport var _DYN_DURATION = \"duration\"; // Count: 4\r\nexport var _DYN_RECEIVED_RESPONSE = \"receivedResponse\"; // Count: 2\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nimport { _DYN_REMOVE_ITEM, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\nvar _storagePrefix = \"\";\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType - Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = (new Date)[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n var name_1 = _storagePrefix + uid;\r\n storage.setItem(name_1, uid);\r\n var fail = storage.getItem(name_1) !== uid;\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name_1);\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Disables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\nexport function utlSetStoragePrefix(storagePrefix) {\r\n _storagePrefix = storagePrefix || \"\";\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n if (reset || _canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n if (reset || _canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys.push(key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { correlationIdSetPrefix, correlationIdGetPrefix, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, correlationIdGetCorrelationContextValue, dateTimeUtilsNow, dateTimeUtilsDuration, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { ThrottleMgr } from \"./ThrottleMgr\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage, utlSetStoragePrefix } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var DEFAULT_BREEZE_PATH = \"/v2/track\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { isNullOrUndefined } from \"../helpers/base\";\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { EMPTY } from \"../internal/constants\";\r\nfunction _createTrimFn(exp) {\r\n return function _doTrim(value) {\r\n if (isNullOrUndefined(value)) {\r\n throwTypeError(\"strTrim called [\" + dumpObj(value) + \"]\");\r\n }\r\n if (value && value.replace) {\r\n value = value.replace(exp, EMPTY);\r\n }\r\n return value;\r\n };\r\n}\r\n/**\r\n * The trim() method removes whitespace from both ends of a string and returns a new string,\r\n * without modifying the original string. Whitespace in this context is all the whitespace\r\n * characters (space, tab, no-break space, etc.) and all the line terminator characters\r\n * (LF, CR, etc.).\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The string value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from both its beginning and end.\r\n * If neither the beginning or end of str has any whitespace, a new string is still returned (essentially\r\n * a copy of str), with no exception being thrown.\r\n * To return a new string with whitespace trimmed from just one end, use `strTrimStart()` or `strTrimEnd()`.\r\n */\r\nexport var polyStrTrim = _createTrimFn(/^\\s+|(?=\\s)\\s+$/g);\r\n/**\r\n * The `polyStrTrimStart()` method removes whitespace from the beginning of a string.\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its beginning (left side).\r\n * If the beginning of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport var polyStrTrimStart = _createTrimFn(/^\\s+/g);\r\n/**\r\n * The `polyStrTrimEnd()` method removes whitespace from the end of a string.\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its end (right side).\r\n * If the end of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport var polyStrTrimEnd = _createTrimFn(/(?=\\s)\\s+$/g);\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunctionWithPoly } from \"../internal/unwrapFunction\";\r\nimport { polyStrTrim, polyStrTrimEnd, polyStrTrimStart } from \"../polyfills/trim\";\r\n/**\r\n * The trim() method removes whitespace from both ends of a string and returns a new string,\r\n * without modifying the original string. Whitespace in this context is all the whitespace\r\n * characters (space, tab, no-break space, etc.) and all the line terminator characters\r\n * (LF, CR, etc.).\r\n * @group String\r\n * @param value - The string value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from both its beginning and end.\r\n * If neither the beginning or end of str has any whitespace, a new string is still returned (essentially\r\n * a copy of str), with no exception being thrown.\r\n * To return a new string with whitespace trimmed from just one end, use `strTrimStart()` or `strTrimEnd()`.\r\n */\r\nexport var strTrim = _unwrapFunctionWithPoly(\"trim\", StrProto, polyStrTrim);\r\n/**\r\n * The `strTrimStart()` method removes whitespace from the beginning of a string.\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its beginning (left side).\r\n * If the beginning of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport var strTrimStart = _unwrapFunctionWithPoly(\"trimStart\", StrProto, polyStrTrimStart);\r\n/**\r\n * Alias for `strTrimStart()` method removes whitespace from the beginning of a string.\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its beginning (left side).\r\n * If the beginning of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport var strTrimLeft = strTrimStart;\r\n/**\r\n * The `strTrimEnd()` method removes whitespace from the end of a string.\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its end (right side).\r\n * If the end of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport var strTrimEnd = _unwrapFunctionWithPoly(\"trimEnd\", StrProto, polyStrTrimEnd);\r\n/**\r\n * Alias for `strTrimEnd()` method removes whitespace from the end of a string.\r\n * @group String\r\n * @param value - The value to be trimmed.\r\n * @returns A new string representing str stripped of whitespace from its end (right side).\r\n * If the end of str has no whitespace, a new string is still returned (essentially a copy of str),\r\n * with no exception being thrown.\r\n */\r\nexport var strTrimRight = strTrimEnd;\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { MathCls } from \"../internal/constants\";\r\n/**\r\n * The mathMin() function returns the lowest-valued number passed into it, or NaN if any\r\n * parameter isn't a number and can't be converted into one.\r\n *\r\n * If no arguments are given, the result is Infinity.\r\n *\r\n * If at least one of arguments cannot be converted to a number, the result is NaN.\r\n *\r\n * @since 0.4.2\r\n * @group Math\r\n * @param values - Zero or more numbers among which the lowest value will be selected and returned.\r\n * @returns The smallest of the given numbers. If any one or more of the parameters cannot\r\n * be converted into a number, NaN is returned. The result is Infinity if no parameters are provided.\r\n * @example\r\n * ```ts\r\n * const x = 10, y = -20;\r\n * const z = Math.min(x, y); // -20\r\n * ```\r\n */\r\nexport var mathMin = MathCls.min;\r\n/**\r\n * The `mathMax()` function returns the largest of the zero or more numbers given as input\r\n * parameters, or NaN if any parameter isn't a number and can't be converted into one.\r\n *\r\n * If no arguments are given, the result is -Infinity.\r\n *\r\n * If at least one of arguments cannot be converted to a number, the result is NaN.\r\n *\r\n * @since 0.4.2\r\n * @group Math\r\n * @param values - Zero or more numbers among which the largest value will be selected and returned.\r\n * @returns The largest of the given numbers. If any one or more of the parameters cannot be\r\n * converted into a number, NaN is returned. The result is -Infinity if no parameters are provided.\r\n * @example\r\n * ```ts\r\n * mathMax(10, 20); // 20\r\n * mathMax(-10, -20); // -10\r\n * mathMax(-10, 20); // 20\r\n * ```\r\n */\r\nexport var mathMax = MathCls.max;\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { SLICE, StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The `strSlice()` method extracts a section of a string and returns it as a new string, without\r\n * modifying the original string.\r\n * `strSlice()` extracts the text from one string and returns a new string. Changes to the text in one\r\n * string do not affect the other string.\r\n * `strSlice()` extracts up to but not including endIndex. str.slice(1, 4) extracts the second character\r\n * through the fourth character (characters indexed 1, 2, and 3).\r\n * As an example, strSlice(2, -1) extracts the third character through the second to last character\r\n * in the string.\r\n * @group String\r\n * @param value - The value to haveextract a number\r\n * @param beginIndex - The zero-based index at which to begin extraction.\r\n * If `beginIndex` is negative, `strSlice()` begins extraction from `value.length + beginIndex`.\r\n * (E.g. `strSlice(\"test\", -2)` returns \"st\")\r\n * If `beginIndex` is omitted, undefined, or cannot be converted to a number (using Number(`beginIndex`)),\r\n * strSlice() begins extraction from the beginning of the string. (E.g. `strSlice(\"test\")` returns \"test\")\r\n * If `beginIndex` is greater than or equal to `value.length`, an empty string is returned.\r\n * (E.g. `strSlice(\"test\", 4)` returns \"\")\r\n * @param endIndex - The index of the first character to exclude from the returned substring.\r\n * If `endIndex` is omitted, undefined, or cannot be converted to a number (using Number(`endIndex`))\r\n * strSlice() extracts to the end of the string. (E.g. `strSlice(\"test\", 2)` returns \"st\")\r\n * If `endIndex` is greater than `value.length`, strSlice() also extracts to the end of the string.\r\n * (E.g. strSlice(\"test\", 2, 10)` returns \"st\")\r\n * If `endIndex` is negative, `strSlice()` treats it as `value.length + endIndex`. (E.g, if `endIndex`\r\n * is -2, it is treated as `value.length - 2` and `strSlice(\"test\", 1, -2)` returns \"e\") .\r\n * If `endIndex` represents a position that is before the one represented by startIndex, `strSlice()`\r\n * returns \"\". (E.g `strSlice(\"test\", 2, -10)`, strSlice(\"test\", -1, -2)` or `strSlice(\"test\", 3, 2)`).\r\n * @returns A new string containing the extracted section of the string.\r\n */\r\nexport var strSlice = _unwrapFunction(SLICE, StrProto);\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { isNullOrUndefined, isUndefined } from \"../helpers/base\";\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { EMPTY, LENGTH, StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction, _unwrapFunctionWithPoly } from \"../internal/unwrapFunction\";\r\nimport { mathMax } from \"../math/min_max\";\r\nimport { strSlice } from \"./slice\";\r\n/**\r\n * The `strSubstring()` method returns the part of the string between the start and end indexes, or to the end of the string.\r\n *\r\n * `strSubstring()` extracts characters from indexStart up to but not including indexEnd. In particular:\r\n * - If `indexEnd` is omitted, strSubstring() extracts characters to the end of the string.\r\n * - If `indexStart` is equal to indexEnd, strSubstring() returns an empty string.\r\n * - If `indexStart` is greater than indexEnd, then the effect of strSubstring() is as if the two arguments were swapped; see example below.\r\n *\r\n * Any argument value that is less than 0 or greater than `value.length` is treated as if it were 0 and `value.length`, respectively.\r\n *\r\n * Any argument value that is NaN is treated as if it were 0.\r\n * @group String\r\n * @param value - The string value to return the substring from.\r\n * @param indexStart - The index of the first character to include in the returned substring.\r\n * @param indexEnd - The index of the first character to exclude from the returned substring.\r\n * @return A new string containing the specified part of the given string\r\n * @example\r\n * ```ts\r\n * const anyString = 'Nevware21';\r\n * // Displays 'N'\r\n * console.log(strSubstring(anyString, 0, 1));\r\n * console.log(strSubstring(anyString, 1, 0));\r\n *\r\n * // Displays 'Nevwar'\r\n * console.log(strSubstring(anyString, 0, 6));\r\n *\r\n * // Displays 'are21'\r\n * console.log(strSubstring(anyString, 4));\r\n *\r\n * // Displays 'are'\r\n * console.log(strSubstring(anyString, 4, 7));\r\n *\r\n * // Displays '21'\r\n * console.log(strSubstring(anyString, 7, 4));\r\n *\r\n * // Displays 'Nevware'\r\n * console.log(strSubstring(anyString, 0, 7));\r\n *\r\n * // Displays 'Nevware21'\r\n * console.log(strSubstring(anyString, 0, 10));\r\n * ```\r\n */\r\nexport var strSubstring = _unwrapFunction(\"substring\", StrProto);\r\n/**\r\n * The strSubstr() method returns a portion of the string, starting at the specified index and extending for a given\r\n * number of characters afterwards.\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @param value - The string value to return the substring from.\r\n * @param start - The index of the first character to include in the returned substring.\r\n * @param length - The number of characters to extract.\r\n * @returns A new string containing the specified part of the given string.\r\n */\r\nexport var strSubstr = _unwrapFunctionWithPoly(\"substr\", StrProto, polyStrSubstr);\r\n/**\r\n * The polyStrSubstr() method returns a portion of the string, starting at the specified index and extending for a given\r\n * number of characters afterwards.\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @group Polyfill\r\n * @param value - The string value to return the substring from.\r\n * @param start - The index of the first character to include in the returned substring.\r\n * @param length - The number of characters to extract.\r\n * @returns A new string containing the specified part of the given string.\r\n */\r\nexport function polyStrSubstr(value, start, length) {\r\n if (isNullOrUndefined(value)) {\r\n throwTypeError(\"'polyStrSubstr called with invalid \" + dumpObj(value));\r\n }\r\n if (length < 0) {\r\n return EMPTY;\r\n }\r\n // If start is omitted or undefined, its treated as zero\r\n start = start || 0;\r\n if (start < 0) {\r\n start = mathMax(start + value[LENGTH], 0);\r\n }\r\n if (isUndefined(length)) {\r\n return strSlice(value, start);\r\n }\r\n return strSlice(value, start, start + length);\r\n}\r\n/**\r\n * Returns a substring of the string starting from the left.\r\n *\r\n * `strLeft()` extracts the number of characters from left of the string up to the count. In particular:\r\n * - If `count` is less than zero, strLeft() returns an empty string.\r\n * - If `count` is less than `value.length', strLeft() returns a new string with the `count` number of characters from the left of the string.\r\n * - If `count` is greater than `value.length`, then the value original value is returned.\r\n *\r\n * Any argument value that is NaN is treated as if it were 0.\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @param value - The string value to return the substring from.\r\n * @param count - The number of characters to extract\r\n * @returns The substring based on the count number of characters from the right\r\n * @example\r\n * ```ts\r\n * strLeft(\"Nevware21\", -1); // \"\"\r\n * strLeft(\"Nevware21\", 0); // \"\"\r\n * strLeft(\"Nevware21\", 1); // \"N\"\r\n * strLeft(\"Nevware21\", 3); // \"Nev\"\r\n * strLeft(\"Nevware21\", 21); // \"Nevware21\"\r\n * ```\r\n */\r\nexport function strLeft(value, count) {\r\n return strSubstring(value, 0, count);\r\n}\r\n/**\r\n * Returns a substring of the string starting from the right.\r\n *\r\n * `strRight()` extracts the number of characters from right of the string up to the count. In particular:\r\n * - If `count` is less than zero, strRight() returns an empty string.\r\n * - If `count` is less than `value.length', strRight() returns a new string with the `count` number of characters from the right of the string.\r\n * - If `count` is greater than `value.length`, then the value original value is returned.\r\n *\r\n * Any argument value that is NaN is treated as if it were 0.\r\n *\r\n * @since 0.4.2\r\n * @group String\r\n * @param value - The string value to return the substring from.\r\n * @param count - The number of characters to extract\r\n * @returns The substring based on the count number of characters from the right\r\n * @example\r\n * ```ts\r\n * strRight(\"Nevware21\", -1); // \"\"\r\n * strRight(\"Nevware21\", 0); // \"\"\r\n * strRight(\"Nevware21\", 1); // \"1\"\r\n * strRight(\"Nevware21\", 3); // \"e21\"\r\n * strRight(\"Nevware21\", 21); // \"Nevware21\"\r\n * ```\r\n */\r\nexport function strRight(value, count) {\r\n var len = value[LENGTH];\r\n if (count <= 0) {\r\n return EMPTY;\r\n }\r\n return len > count ? strSubstring(value, len - count) : value;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { asString, strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"../../__DynamicConstants\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key[_DYN_LENGTH /* @min:%2elength */];\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field[_DYN_LENGTH /* @min:%2elength */] !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = strSubstring(field, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(asString(name));\r\n // truncate the string to 150 chars\r\n if (name[_DYN_LENGTH /* @min:%2elength */] > 150 /* DataSanitizerValues.MAX_NAME_LENGTH */) {\r\n nameTrunc = strSubstring(name, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 57 /* _eInternalMessageId.NameTooLong */, \"name is too long. It has been truncated to \" + 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(asString(value));\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n valueTrunc = strSubstring(value, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 61 /* _eInternalMessageId.StringValueTooLong */, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* DataSanitizerValues.MAX_URL_LENGTH */, 66 /* _eInternalMessageId.UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = strSubstring(message, 0, 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 56 /* _eInternalMessageId.MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = strSubstring(value, 0, 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 52 /* _eInternalMessageId.ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* DataSanitizerValues.MAX_ID_LENGTH */, 69 /* _eInternalMessageId.IdTooLong */)[_DYN_TO_STRING /* @min:%2etoString */]() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(asString(input));\r\n if (input[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n inputTrunc = strSubstring(input, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return strSubstr(s, s[_DYN_LENGTH /* @min:%2elength */] - 3);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined, objForEachKey, throwError, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIkey, strNotSpecified } from \"./Constants\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { _DYN_NAME } from \"./__DynamicConstants\";\r\n/**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\nexport function createTelemetryItem(item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n var _a;\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throwError(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = envelopeName,\r\n _a.time = toISOString(new Date()),\r\n _a.iKey = iKey,\r\n _a.ext = systemProperties ? systemProperties : {},\r\n _a.tags = [],\r\n _a.data = {},\r\n _a.baseType = baseType,\r\n _a.baseData = item // Part B\r\n ,\r\n _a);\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n}\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n TelemetryItemCreator.create = createTelemetryItem;\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Event = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}());\r\nexport { Event };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties } from \"./Common/DataSanitizer\";\r\nvar Trace = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n message = message || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, message);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}());\r\nexport { Trace };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n name: 1 /* FieldType.Required */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 1 /* FieldType.Required */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */\r\n };\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = 0 /* DataPointType.Measurement */;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_COUNT, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Metric = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n metrics: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n var dataPoint = new DataPoint();\r\n dataPoint[_DYN_COUNT /* @min:%2ecount */] = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _self.metrics = [dataPoint];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}());\r\nexport { Metric };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar strEmpty = \"\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString()[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = strEmpty + totalms % 1000;\r\n var sec = strEmpty + Math.floor(totalms / 1000) % 60;\r\n var min = strEmpty + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = strEmpty + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms[_DYN_LENGTH /* @min:%2elength */] === 1 ? \"00\" + ms : ms[_DYN_LENGTH /* @min:%2elength */] === 2 ? \"0\" + ms : ms;\r\n sec = sec[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + sec : sec;\r\n min = min[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + min : min;\r\n hour = hour[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : strEmpty) + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageView = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n id: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = dataSanitizeId(logger, id);\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(durationMs);\r\n }\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}());\r\nexport { PageView };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES, _DYN_RECEIVED_RESPONSE } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageViewPerformance = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n perfTotal: 0 /* FieldType.Default */,\r\n networkConnect: 0 /* FieldType.Default */,\r\n sentRequest: 0 /* FieldType.Default */,\r\n receivedResponse: 0 /* FieldType.Default */,\r\n domProcessing: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _self.domProcessing = cs4BaseData.domProcessing;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = cs4BaseData[_DYN_DURATION /* @min:%2eduration */];\r\n _self.networkConnect = cs4BaseData.networkConnect;\r\n _self.perfTotal = cs4BaseData.perfTotal;\r\n _self[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */] = cs4BaseData[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */];\r\n _self.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ArrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The arrMap() method creates a new array populated with the results of calling a provided function on every\r\n * element in the calling array.\r\n *\r\n * `arrMap` calls a provided callbackFn function once for each element in an array, in order, and constructs\r\n * a new array from the results. callbackFn is invoked only for indexes of the array which have assigned\r\n * values (including undefined).\r\n *\r\n * It is not called for missing elements of the array; that is:\r\n * - indexes that have never been set;\r\n * - indexes which have been deleted.\r\n *\r\n * @since 0.3.3\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of the array elements\r\n * @typeParam R - Identifies the type of the elements returned by the callback function, defaults to T.\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackFn - The function that is called for evetn element of `theArray`.\r\n * @param thisArg - The value to use as the `this` when executing the `callbackFn`.\r\n * @example\r\n * ```ts\r\n * const numbers = [1, 4, 9];\r\n * const roots = arrMap(numbers, (num) => Math.sqrt(num));\r\n *\r\n * // roots is now [1, 2, 3]\r\n * // numbers is still [1, 4, 9]\r\n *\r\n * const kvArray = [{ key: 1, value: 10 },\r\n * { key: 2, value: 20 },\r\n * { key: 3, value: 30 }];\r\n *\r\n * const reformattedArray = arrMap(kvArray, ({ key, value}) => ({ [key]: value }));\r\n *\r\n * // reformattedArray is now [{1: 10}, {2: 20}, {3: 30}],\r\n *\r\n * // kvArray is still:\r\n * // [{key: 1, value: 10},\r\n * // {key: 2, value: 20},\r\n * // {key: 3, value: 30}]\r\n *\r\n * // Also supports Array Like objects with same output\r\n * const kvArray = {\r\n * length: 3,\r\n * 0: { key: 1, value: 10 },\r\n * 1: { key: 2, value: 20 },\r\n * 2: { key: 3, value: 30 }\r\n * };\r\n * ```\r\n */\r\nexport var arrMap = _unwrapFunction(\"map\", ArrProto);\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_IS_MANUAL, _DYN_LENGTH, _DYN_LEVEL, _DYN_LINE, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_METHOD, _DYN_NAME, _DYN_PARSED_STACK, _DYN_PROBLEM_GROUP, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL, _DYN_SIZE_IN_BYTES, _DYN_SPLIT, _DYN_STRINGIFY, _DYN_TO_STRING, _DYN_TYPE_NAME, _DYN__CREATE_FROM_INTERFA1 } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar NoMethod = \"\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON[_DYN_STRINGIFY /* @min:%2estringify */]) {\r\n result = JSON[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n result = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && strIndexOf(evtMessage || \"\", errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n for (var lp = 0; lp < lines[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack.push(entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (window && window[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n else if (errorObj[\"reason\"] && errorObj.reason[strStack]) {\r\n // UnhandledPromiseRejection\r\n details = _convertStackObj(errorObj.reason[strStack]);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame[_DYN_TO_STRING /* @min:%2etoString */]();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n parsedStack.push(parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack[_DYN_LENGTH /* @min:%2elength */] - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType[_DYN_NAME /* @min:%2ename */] || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING /* @min:%2etoString */]());\r\n typeName = (results && results[_DYN_LENGTH /* @min:%2elength */] > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj - The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (strIndexOf(result, errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n exceptions: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [new _ExceptionDetails(logger, exception, properties)];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n if (id) {\r\n _self.id = id;\r\n }\r\n }\r\n else {\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */] || [];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = exception[_DYN_PROPERTIES /* @min:%2eproperties */];\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = exception[_DYN_MEASUREMENTS /* @min:%2emeasurements */];\r\n if (exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */]) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */];\r\n }\r\n if (exception.id) {\r\n _self.id = exception.id;\r\n }\r\n if (exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */]) {\r\n _self[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */] = exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */];\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n if (!isNullOrUndefined(exception[_DYN_IS_MANUAL /* @min:%2eisManual */])) {\r\n _self[_DYN_IS_MANUAL /* @min:%2eisManual */] = exception[_DYN_IS_MANUAL /* @min:%2eisManual */];\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var _a;\r\n var errorType = _getErrorType(error || evt || message);\r\n return _a = {},\r\n _a[_DYN_MESSAGE /* @min:message */] = _formatMessage(message, errorType),\r\n _a.url = url,\r\n _a.lineNumber = lineNumber,\r\n _a.columnNumber = columnNumber,\r\n _a.error = _formatErrorCode(error || evt || message),\r\n _a.evt = _formatErrorCode(evt || message),\r\n _a[_DYN_TYPE_NAME /* @min:typeName */] = errorType,\r\n _a.stackDetails = _getStackFromErrorObj(stack || error || evt),\r\n _a.errorSrc = errorSrc,\r\n _a;\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */]\r\n && arrMap(exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a;\r\n var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return _a = {\r\n ver: \"4.0\"\r\n },\r\n _a[_DYN_EXCEPTIONS /* @min:exceptions */] = exceptionDetailsInterface,\r\n _a.severityLevel = severityLevel,\r\n _a.properties = properties,\r\n _a.measurements = measurements,\r\n _a.problemGroup = problemGroup,\r\n _a.id = id,\r\n _a.isManual = isManual,\r\n _a;\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n var _a;\r\n return {\r\n exceptions: [\r\n (_a = {},\r\n _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = true,\r\n _a.message = message,\r\n _a.stack = details,\r\n _a.typeName = typeName,\r\n _a)\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}());\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function () {\r\n function _ExceptionDetails(logger, exception, properties) {\r\n this.aiDataContract = {\r\n id: 0 /* FieldType.Default */,\r\n outerId: 0 /* FieldType.Default */,\r\n typeName: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n hasFullStack: 0 /* FieldType.Default */,\r\n stack: 0 /* FieldType.Default */,\r\n parsedStack: 2 /* FieldType.Array */\r\n };\r\n var _self = this;\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME /* @min:%2etypeName */])) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = _parseStack(stack);\r\n // after parsedStack is inited, iterate over each frame object, sanitize its assembly field\r\n if (isArray(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */])) {\r\n arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) {\r\n frame[_DYN_ASSEMBLY /* @min:%2eassembly */] = dataSanitizeString(logger, frame[_DYN_ASSEMBLY /* @min:%2eassembly */]);\r\n frame[_DYN_FILE_NAME /* @min:%2efileName */] = dataSanitizeString(logger, frame[_DYN_FILE_NAME /* @min:%2efileName */]);\r\n });\r\n }\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n if (properties) {\r\n properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || _self[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n }\r\n }\r\n else {\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n _self[strStack] = exception[strStack];\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */] = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _a;\r\n var _self = this;\r\n var parsedStack = _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = (_a = {\r\n id: _self.id,\r\n outerId: _self.outerId,\r\n typeName: _self[_DYN_TYPE_NAME /* @min:%2etypeName */],\r\n message: _self[_DYN_MESSAGE /* @min:%2emessage */],\r\n hasFullStack: _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */],\r\n stack: _self[strStack]\r\n },\r\n _a[_DYN_PARSED_STACK /* @min:parsedStack */] = parsedStack || undefined,\r\n _a);\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](frame); }))\r\n || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}());\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function () {\r\n function _StackFrame(sourceFrame, level) {\r\n this.aiDataContract = {\r\n level: 1 /* FieldType.Required */,\r\n method: 1 /* FieldType.Required */,\r\n assembly: 0 /* FieldType.Default */,\r\n fileName: 0 /* FieldType.Default */,\r\n line: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = level;\r\n _self[_DYN_METHOD /* @min:%2emethod */] = NoMethod;\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = strTrim(frame);\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = \"\";\r\n _self[_DYN_LINE /* @min:%2eline */] = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= 5) {\r\n _self[_DYN_METHOD /* @min:%2emethod */] = strTrim(matches[2]) || _self[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[4]);\r\n _self[_DYN_LINE /* @min:%2eline */] = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = sourceFrame[_DYN_LEVEL /* @min:%2elevel */];\r\n _self[_DYN_METHOD /* @min:%2emethod */] = sourceFrame[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = sourceFrame[_DYN_ASSEMBLY /* @min:%2eassembly */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = sourceFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n _self[_DYN_LINE /* @min:%2eline */] = sourceFrame[_DYN_LINE /* @min:%2eline */];\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n }\r\n _self.sizeInBytes += _self.method[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n var _self = this;\r\n return {\r\n level: _self[_DYN_LEVEL /* @min:%2elevel */],\r\n method: _self[_DYN_METHOD /* @min:%2emethod */],\r\n assembly: _self[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n fileName: _self[_DYN_FILE_NAME /* @min:%2efileName */],\r\n line: _self[_DYN_LINE /* @min:%2eline */]\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}());\r\nexport { _StackFrame };\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { utcNow } from \"./date\";\r\nimport { lazySafeGetInst } from \"./environment\";\r\nimport { _globalLazyTestHooks } from \"./lazy\";\r\nvar _perf;\r\n/**\r\n * Identify whether the runtimne contains a `performance` object\r\n *\r\n * @since 0.4.4\r\n * @group Environment\r\n * @returns\r\n */\r\nexport function hasPerformance() {\r\n return !!getPerformance();\r\n}\r\n/**\r\n * Returns the global `performance` Object if available, which can be used to\r\n * gather performance information about the current document. It serves as the\r\n * point of exposure for the Performance Timeline API, the High Resolution Time\r\n * API, the Navigation Timing API, the User Timing API, and the Resource Timing API.\r\n *\r\n * @since 0.4.4\r\n * @group Environment\r\n * @returns The global performance object if available.\r\n */\r\nexport function getPerformance() {\r\n (!_perf || (!_perf.b && _globalLazyTestHooks && _globalLazyTestHooks.lzy)) && (_perf = lazySafeGetInst(\"performance\"));\r\n return _perf.v;\r\n}\r\n/**\r\n * Returns the number of milliseconds that has elapsed since the time origin, if\r\n * the runtime does not support the `performance` API it will fallback to return\r\n * the number of milliseconds since the unix epoch.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @returns The number of milliseconds as a `DOMHighResTimeStamp` double value or\r\n * an integer depending on the runtime.\r\n * @example\r\n * ```ts\r\n * let now = perfNow();\r\n * ```\r\n */\r\nexport function perfNow() {\r\n var perf = getPerformance();\r\n if (perf && perf.now) {\r\n return perf.now();\r\n }\r\n return utcNow();\r\n}\r\n/**\r\n * Return the number of milliseconds that have elapsed since the provided `startTime`\r\n * the `startTime` MUST be obtained from {@link perfNow} to ensure the correct elapsed\r\n * value is returned.\r\n *\r\n * @since 0.4.4\r\n * @group Timer\r\n *\r\n * @param startTime - The startTime obtained from `perfNow`\r\n * @returns The number of milliseconds that have elapsed since the startTime.\r\n * @example\r\n * ```ts\r\n * let start = perfNow();\r\n * // Do some work\r\n * let totalTime = elapsedTime(start);\r\n * ```\r\n */\r\nexport function elapsedTime(startTime) {\r\n return perfNow() - startTime;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { random32 } from \"./RandomHelper\";\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n var uuid = generateW3CId();\r\n return strSubstring(uuid, 0, 8) + \"-\" + strSubstring(uuid, 8, 12) + \"-\" + strSubstring(uuid, 12, 16) + \"-\" + strSubstring(uuid, 16, 20) + \"-\" + strSubstring(uuid, 20);\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n return strSubstring(value, start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = STR_EMPTY, tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + \"4\" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { isArray, isString, strLeft, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_SPAN_ID, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]{1,64})?$/i;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/i);\r\n }\r\n return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n if (_isValid(value, len)) {\r\n return value;\r\n }\r\n return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n if (isNaN(value) || value < 0 || value > 255) {\r\n value = 0x01;\r\n }\r\n var result = value.toString(16);\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n _a[_DYN_SPAN_ID /* @min:spanId */] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),\r\n _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,\r\n _a;\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value - The value to be parsed\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function parseTraceParent(value, selectIdx) {\r\n var _a;\r\n if (!value) {\r\n // Don't pass a null/undefined or empty string\r\n return null;\r\n }\r\n if (isArray(value)) {\r\n // The value may have been encoded on the page into an array so handle this automatically\r\n value = value[0] || \"\";\r\n }\r\n if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n if (value.indexOf(\",\") !== -1) {\r\n var values = value[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n value = values[selectIdx > 0 && values[_DYN_LENGTH /* @min:%2elength */] > selectIdx ? selectIdx : 0];\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _a = {\r\n version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()\r\n },\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = parseInt(match[4], 16),\r\n _a;\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n !_isValid(value[_DYN_TRACE_ID /* @min:%2etraceId */], 32, INVALID_TRACE_ID) ||\r\n !_isValid(value[_DYN_SPAN_ID /* @min:%2espanId */], 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n // Each known field must contain a valid value\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n if (isValidTraceParent(value)) {\r\n return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n if (value) {\r\n // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n if (version !== \"00\" && version !== \"ff\") {\r\n // Reduce version to \"00\"\r\n version = DEFAULT_VERSION;\r\n }\r\n // Format as version 00\r\n return \"\".concat(version.toLowerCase(), \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), \"-\").concat(flags.toLowerCase());\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function findW3cTraceParent(selectIdx) {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name), selectIdx);\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name), selectIdx);\r\n }\r\n return traceParent;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nexport var RequestHeaders = createValueMap({\r\n requestContextHeader: [0 /* eRequestHeaders.requestContextHeader */, \"Request-Context\"],\r\n requestContextTargetKey: [1 /* eRequestHeaders.requestContextTargetKey */, \"appId\"],\r\n requestContextAppIdFormat: [2 /* eRequestHeaders.requestContextAppIdFormat */, \"appId=cid-v1:\"],\r\n requestIdHeader: [3 /* eRequestHeaders.requestIdHeader */, \"Request-Id\"],\r\n traceParentHeader: [4 /* eRequestHeaders.traceParentHeader */, \"traceparent\"],\r\n traceStateHeader: [5 /* eRequestHeaders.traceStateHeader */, \"tracestate\"],\r\n sdkContextHeader: [6 /* eRequestHeaders.sdkContextHeader */, \"Sdk-Context\"],\r\n sdkContextHeaderAppIdRequest: [7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */, \"appId\"],\r\n requestContextHeaderLowerCase: [8 /* eRequestHeaders.requestContextHeaderLowerCase */, \"request-context\"]\r\n});\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PATHNAME, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache[_DYN_LENGTH /* @min:%2elength */]) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a[_DYN_PATHNAME /* @min:%2epathname */];\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www\\d{0,5}\\.)?([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 3 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w{1,150}):\\/\\/([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 2 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match[_DYN_LENGTH /* @min:%2elength */] > 2) {\r\n var protocol = (match[1] || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dateNow, getPerformance, isNullOrUndefined, isValidSpanId, isValidTraceId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH } from \"./Constants\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { urlParseFullHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\nimport { _DYN_CORRELATION_HEADER_E0, _DYN_LENGTH, _DYN_NAME, _DYN_PATHNAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,\r\n \"https://breeze.aimon.applicationinsights.io\" + DEFAULT_BREEZE_PATH,\r\n \"https://dc-int.services.visualstudio.com\" + DEFAULT_BREEZE_PATH\r\n];\r\nvar _correlationIdPrefix = \"cid-v1:\";\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) !== -1;\r\n}\r\nexport function correlationIdSetPrefix(prefix) {\r\n _correlationIdPrefix = prefix;\r\n}\r\nexport function correlationIdGetPrefix() {\r\n return _correlationIdPrefix;\r\n}\r\n/**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\nexport function correlationIdCanIncludeCorrelationHeader(config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */]) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */][i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n if (requestHost && (strIndexOf(requestHost, \":443\") !== -1 || strIndexOf(requestHost, \":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\n/**\r\n * Combines target appId and target role name from response header.\r\n */\r\nexport function correlationIdGetCorrelationContext(responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = correlationIdGetCorrelationContextValue(responseHeader, RequestHeaders[1 /* eRequestHeaders.requestContextTargetKey */]);\r\n if (correlationId && correlationId !== _correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n}\r\n/**\r\n * Gets key from correlation response header\r\n */\r\nexport function correlationIdGetCorrelationContextValue(responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n for (var i = 0; i < keyValues[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n var keyValue = keyValues[i][_DYN_SPLIT /* @min:%2esplit */](\"=\");\r\n if (keyValue[_DYN_LENGTH /* @min:%2elength */] === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n}\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl[_DYN_PATHNAME /* @min:%2epathname */] != null) {\r\n var pathName = (parsedUrl.pathname[_DYN_LENGTH /* @min:%2elength */] === 0) ? \"/\" : parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param telemetryTrace - The telemetryTrace instance that is being wrapped\r\n * @param parentCtx - An optional parent distributed trace instance, almost always undefined as this scenario is only used in the case of multiple property handlers.\r\n * @returns A new IDistributedTraceContext instance that is backed by the telemetryTrace or temporary object\r\n */\r\nexport function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {\r\n var trace = telemetryTrace || {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace.traceID;\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace.traceID = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace.parentID;\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace.parentID = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace.traceFlags;\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace.traceFlags = newTraceFlags;\r\n }\r\n };\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n this.aiDataContract = {\r\n id: 1 /* FieldType.Required */,\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n resultCode: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n success: 0 /* FieldType.Default */,\r\n data: 0 /* FieldType.Default */,\r\n target: 0 /* FieldType.Default */,\r\n type: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 0 /* FieldType.Default */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */,\r\n dependencyKind: 0 /* FieldType.Default */,\r\n dependencySource: 0 /* FieldType.Default */,\r\n commandName: 0 /* FieldType.Default */,\r\n dependencyTypeName: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = id;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(value);\r\n _self.success = success;\r\n _self.resultCode = resultCode + \"\";\r\n _self.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _self.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _self.target = \"\".concat(_self.target, \" | \").concat(correlationContext);\r\n }\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, dependencyFields[_DYN_NAME /* @min:%2ename */]);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isBoolean, isFunction, isNullOrUndefined, isString } from \"@nevware21/ts-utils\";\r\nimport { STR_EMPTY } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * @param str\r\n * @param defaultValue\r\n * @returns\r\n */\r\nfunction _stringToBoolOrDefault(theValue, defaultValue, theConfig) {\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n return defaultValue;\r\n }\r\n if (isBoolean(theValue)) {\r\n return theValue;\r\n }\r\n return asString(theValue)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the field defined as an object\r\n * that should be merged\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfMerge(defaultValue) {\r\n return {\r\n mrg: true,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field set function\r\n * @param setter - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfSet(setter, defaultValue) {\r\n return {\r\n set: setter,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field validator\r\n * @param validator - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfValidate(validator, defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n isVal: validator,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate and convert the user\r\n * provided value to a boolean from a string or boolean value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBoolean(defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n set: _stringToBoolOrDefault,\r\n v: !!defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfFunc(defaultValue) {\r\n return {\r\n isVal: isFunction,\r\n v: defaultValue || null\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default string value to apply it not provided or it's not valid, defaults to an empty string\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfString(defaultValue) {\r\n return {\r\n isVal: isString,\r\n v: asString(defaultValue || STR_EMPTY)\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance identifying that value associated with this property\r\n * should not have it's properties converted into a dynamic config properties.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBlockPropValue(defaultValue) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = true,\r\n _a.v = defaultValue,\r\n _a;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { isString, isUndefined } from \"../helpers/base\";\r\nimport { dumpObj } from \"../helpers/diagnostics\";\r\nimport { throwTypeError } from \"../helpers/throw\";\r\nimport { LENGTH, StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunctionWithPoly } from \"../internal/unwrapFunction\";\r\nimport { asString } from \"./as_string\";\r\nimport { strSubstring } from \"./substring\";\r\n/**\r\n * This method lets you determine whether or not a string ends with another string. This method is case-sensitive.\r\n * @group String\r\n * @param value - The value to be checked\r\n * @param searchString - The characters to be searched for at the end of `value` string.\r\n * @param length - If provided, it is used as the length of `value`. Defaults to value.length.\r\n */\r\nexport var strEndsWith = _unwrapFunctionWithPoly(\"endsWith\", StrProto, polyStrEndsWith);\r\n/**\r\n * This method lets you determine whether or not a string ends with another string. This method is case-sensitive.\r\n * @group Polyfill\r\n * @group String\r\n * @param value - The value to be checked\r\n * @param searchString - The characters to be searched for at the end of `value` string.\r\n * @param length - If provided, it is used as the length of `value`. Defaults to value.length.\r\n */\r\nexport function polyStrEndsWith(value, searchString, length) {\r\n if (!isString(value)) {\r\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\r\n }\r\n var searchValue = isString(searchString) ? searchString : asString(searchString);\r\n var chkLen = searchValue[LENGTH];\r\n var len = value[LENGTH];\r\n var end = !isUndefined(length) && length < len ? length : len;\r\n return strSubstring(value, end - chkLen, end) === searchValue;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { arrForEach, arrIndexOf, dumpObj, getDocument, getLazy, getNavigator, isArray, isFunction, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, strEndsWith, strIndexOf, strLeft, strSubstring, strTrim, utcNow } from \"@nevware21/ts-utils\";\r\nimport { cfgDfMerge } from \"../Config/ConfigDefaultHelpers\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ENABLED, _DYN_LENGTH, _DYN_LOGGER, _DYN_SET_DF, _DYN_SPLIT, _DYN_UNLOAD, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getLocation, isIE } from \"./EnvUtils\";\r\nimport { getExceptionName, isNotNullOrUndefined, setValue, strContains } from \"./HelperFuncs\";\r\nimport { STR_DOMAIN, STR_EMPTY, STR_PATH, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc;\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n// // `isCookieUseDisabled` is deprecated, so explicitly casting as a key of IConfiguration to avoid typing error\r\n// // when both isCookieUseDisabled and disableCookiesUsage are used disableCookiesUsage will take precedent, which is\r\n// // why its listed first\r\n/**\r\n * Set the supported dynamic config values as undefined (or an empty object) so that\r\n * any listeners will be informed of any changes.\r\n * Explicitly NOT including the deprecated `isCookieUseDisabled` as we don't want to support\r\n * the v1 deprecated field as dynamic for updates\r\n */\r\nvar rootDefaultConfig = (_a = {\r\n cookieCfg: cfgDfMerge((_b = {},\r\n _b[STR_DOMAIN] = { fb: \"cookieDomain\", dfVal: isNotNullOrUndefined },\r\n _b.path = { fb: \"cookiePath\", dfVal: isNotNullOrUndefined },\r\n _b.enabled = UNDEFINED_VALUE,\r\n _b.ignoreCookies = UNDEFINED_VALUE,\r\n _b.blockedCookies = UNDEFINED_VALUE,\r\n _b)),\r\n cookieDomain: UNDEFINED_VALUE,\r\n cookiePath: UNDEFINED_VALUE\r\n },\r\n _a[strDisableCookiesUsage] = UNDEFINED_VALUE,\r\n _a);\r\nfunction _getDoc() {\r\n !_doc && (_doc = getLazy(function () { return getDocument(); }));\r\n}\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nfunction _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _isIgnoredCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {\r\n return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;\r\n }\r\n return false;\r\n}\r\nfunction _isBlockedCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {\r\n if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {\r\n return true;\r\n }\r\n }\r\n return _isIgnoredCookie(cookieMgrCfg, name);\r\n}\r\nfunction _isCfgEnabled(rootConfig, cookieMgrConfig) {\r\n var isCfgEnabled = cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */];\r\n if (isNullOrUndefined(isCfgEnabled)) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n // This field is deprecated and dynamic updates will not be fully supported\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n // If this value is defined it takes precedent over the above\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n // Not setting the cookieMgrConfig.enabled as that will update (set) the global dynamic config\r\n // So future \"updates\" then may not be as expected\r\n isCfgEnabled = cookieEnabled;\r\n }\r\n return isCfgEnabled;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config.cookieCfg;\r\n if (cookieCfg && cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var _a;\r\n var cookieMgrConfig;\r\n var _path;\r\n var _domain;\r\n var unloadHandler;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled;\r\n var _getCookieFn;\r\n var _setCookieFn;\r\n var _delCookieFn;\r\n // Make sure the root config is dynamic as it may be the global config\r\n rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;\r\n // Will get recalled if the referenced configuration is changed\r\n unloadHandler = onConfigChange(rootConfig, function (details) {\r\n // Make sure the root config has all of the the defaults to the root config to ensure they are dynamic\r\n details[_DYN_SET_DF /* @min:%2esetDf */](details.cfg, rootDefaultConfig);\r\n // Create and apply the defaults to the cookieCfg element\r\n cookieMgrConfig = details.ref(details.cfg, \"cookieCfg\"); // details.setDf(details.cfg.cookieCfg, defaultConfig);\r\n _path = cookieMgrConfig[STR_PATH /* @min:%2epath */] || \"/\";\r\n _domain = cookieMgrConfig[STR_DOMAIN /* @min:%2edomain */];\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false;\r\n _getCookieFn = cookieMgrConfig.getCookie || _getCookieValue;\r\n _setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;\r\n }, logger);\r\n var cookieMgr = (_a = {\r\n isEnabled: function () {\r\n var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n },\r\n setEnabled: function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */] = value;\r\n },\r\n set: function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {\r\n var values = {};\r\n var theValue = strTrim(value || STR_EMPTY);\r\n var idx = strIndexOf(theValue, \";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(strLeft(value, idx));\r\n values = _extractParts(strSubstring(value, idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = utcNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, STR_PATH, path || _path, null, isUndefined);\r\n //let setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n get: function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {\r\n value = _getCookieFn(name);\r\n }\r\n return value;\r\n },\r\n del: function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n purge: function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[STR_PATH] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n // let delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));\r\n result = true;\r\n }\r\n return result;\r\n }\r\n },\r\n _a[_DYN_UNLOAD /* @min:unload */] = function (isAsync) {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n },\r\n _a);\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n !_doc && _getDoc();\r\n try {\r\n var doc = _doc.v || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || STR_EMPTY);\r\n if (thePart) {\r\n var idx = strIndexOf(thePart, \"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(strLeft(thePart, idx))] = strTrim(strSubstring(thePart, idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || STR_EMPTY;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = STR_EMPTY;\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n var theCookie = _doc.v[strCookie] || STR_EMPTY;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n _doc.v[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, getDocument, getWindow, isArray, objForEachKey, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n return name[_DYN_REPLACE /* @min:%2ereplace */](/^[\\s\\.]+|(?=[\\s\\.])[\\.\\s]+$/g, STR_EMPTY);\r\n }\r\n return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n var _a;\r\n if (evtNamespace) {\r\n var theNamespace_1 = STR_EMPTY;\r\n if (isArray(evtNamespace)) {\r\n theNamespace_1 = STR_EMPTY;\r\n arrForEach(evtNamespace, function (name) {\r\n name = _normalizeNamespace(name);\r\n if (name) {\r\n if (name[0] !== \".\") {\r\n name = \".\" + name;\r\n }\r\n theNamespace_1 += name;\r\n }\r\n });\r\n }\r\n else {\r\n theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n }\r\n if (theNamespace_1) {\r\n if (theNamespace_1[0] !== \".\") {\r\n theNamespace_1 = \".\" + theNamespace_1;\r\n }\r\n // We may only have the namespace and not an eventName\r\n eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n }\r\n }\r\n var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n return _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n var theEvents = [];\r\n var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n arrForEach(registeredEvents, function (value) {\r\n var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\r\n }\r\n }\r\n });\r\n });\r\n return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n if (addDefault === void 0) { addDefault = true; }\r\n var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n var registeredEvents = aiEvts[evtName];\r\n if (!registeredEvents) {\r\n registeredEvents = aiEvts[evtName] = [];\r\n }\r\n return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (obj[strRemoveEventListener]) {\r\n obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n }\r\n else if (obj[strDetachEvent]) {\r\n obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n }\r\n }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n var result = false;\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n if (obj[strAddEventHelper]) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (obj[strAttachEvent]) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n while (idx--) {\r\n var theEvent = events[idx];\r\n if (theEvent) {\r\n if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], theEvent.capture);\r\n // Remove the registered event\r\n events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n }\r\n else {\r\n var eventCache = elmNodeData.get(target, strEvents, {});\r\n objForEachKey(eventCache, function (evtType, events) {\r\n _doUnregister(target, events, evtName, unRegFn);\r\n });\r\n // Cleanup\r\n if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n elmNodeData.kill(target, strEvents);\r\n }\r\n }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n var newNamespaces;\r\n if (namespaces) {\r\n if (isArray(namespaces)) {\r\n newNamespaces = [theNamespace].concat(namespaces);\r\n }\r\n else {\r\n newNamespaces = [theNamespace, namespaces];\r\n }\r\n // resort the namespaces so they are always in order\r\n newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n }\r\n else {\r\n newNamespaces = theNamespace;\r\n }\r\n return newNamespaces;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventName - String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n var _a;\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (target) {\r\n try {\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n result = _doAttach(target, evtName, handlerRef, useCapture);\r\n if (result && elmNodeData.accept(target)) {\r\n var registeredEvent = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\r\n _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (target) {\r\n try {\r\n var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n var found_1 = false;\r\n _unregisterEvents(target, evtName_1, function (regEvent) {\r\n if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER /* @min:%2ehandler */] === handlerRef) {\r\n found_1 = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (!found_1) {\r\n // fallback to try and remove as requested\r\n _doDetach(target, evtName_1, handlerRef, useCapture);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventNameWithoutOn - String that specifies any of the standard DHTML Events without \"on\" prefix and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventNameWithoutOn - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName - {string} - The name of the event\r\n * @param callback - {any} - The callback function that needs to be executed for the given event\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = eventOn(w, eventName, callback, evtNamespace);\r\n result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback - {any} - - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n var w = getWindow();\r\n if (w) {\r\n eventOff(w, eventName, callback, evtNamespace);\r\n eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n eventOff(doc, eventName, callback, evtNamespace);\r\n }\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener, evtNamespace) || added;\r\n }\r\n }\r\n });\r\n }\r\n return added;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = _addEventListeners(events, listener, null, evtNamespace);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Remove the listener from the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n if (events && isArray(events)) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n removeEventHandler(name, listener, evtNamespace);\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n removeEventListeners([strPageHide], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n }\r\n return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n removeEventListeners([strPageShow], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isArray, isFunction, objDefine, utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_COMPLETE, _DYN_GET_CTX, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX, _DYN_TIME } from \"../__DynamicConstants\";\r\nimport { STR_GET_PERF_MGR, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar strParentContextKey = \"ParentContextKey\";\r\nvar strChildrenContextKey = \"ChildrenContextKey\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n _self.start = utcNow();\r\n _self[_DYN_NAME /* @min:%2ename */] = name;\r\n _self[_DYN_IS_ASYNC /* @min:%2eisAsync */] = isAsync;\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n objDefine(_self, \"payload\", {\r\n g: function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n }\r\n });\r\n }\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey]) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent[strChildrenContextKey]) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () {\r\n var childTime = 0;\r\n var childEvts = _self[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt[_DYN_TIME /* @min:%2etime */];\r\n }\r\n }\r\n }\r\n _self[_DYN_TIME /* @min:%2etime */] = utcNow() - _self.start;\r\n _self.exTime = _self[_DYN_TIME /* @min:%2etime */] - childTime;\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () { };\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent[_DYN_COMPLETE /* @min:%2ecomplete */]();\r\n if (manager && isFunction(manager[STR_PERF_EVENT /* @min:%2eperfEvent */])) {\r\n manager[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n }\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n// Removed Stub for PerfManager.prototype.create.\r\n// Removed Stub for PerfManager.prototype.fire.\r\n// Removed Stub for PerfManager.prototype.setCtx.\r\n// Removed Stub for PerfManager.prototype.getCtx.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PerfManager.__ieDyn=1;\n\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (perfMgr[STR_GET_PERF_MGR]) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (!children) {\r\n children = [];\r\n currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n }\r\n children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, isFunction } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_SPAN_ID, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { createElmNodeData } from \"./DataCacheHelper\";\r\nimport { STR_CORE, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { isValidSpanId, isValidTraceId } from \"./W3cTraceParent\";\r\nvar pluginStateData = createElmNodeData(\"plugin\");\r\nexport function _getPluginState(plugin) {\r\n return pluginStateData.get(plugin, \"state\", {}, true);\r\n}\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config - The current config for the instance\r\n * @param core - THe current core instance\r\n * @param extensions - The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n var pluginState;\r\n while (proxy) {\r\n var thePlugin = proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (thePlugin) {\r\n if (lastPlugin && lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] && thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](thePlugin);\r\n }\r\n pluginState = _getPluginState(thePlugin);\r\n var isInitialized = !!pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */];\r\n if (thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]) {\r\n isInitialized = thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]();\r\n }\r\n if (!isInitialized) {\r\n initPlugins[_DYN_PUSH /* @min:%2epush */](thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n }\r\n // Now initialize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n var core = processContext[STR_CORE /* @min:%2ecore */]();\r\n thePlugin[_DYN_INITIALIZE /* @min:%2einitialize */](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n pluginState = _getPluginState(thePlugin);\r\n // Only add the core to the state if the plugin didn't set it (doesn't extend from BaseTelemetryPlugin)\r\n if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {\r\n pluginState[STR_CORE] = core;\r\n }\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = true;\r\n delete pluginState[_DYN_TEARDOWN /* @min:%2eteardown */];\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n if (extB) {\r\n var bHasProcess = extB[STR_PROCESS_TELEMETRY];\r\n if (extA[STR_PROCESS_TELEMETRY]) {\r\n result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n }\r\n else {\r\n result = extA ? 1 : -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n/**\r\n * Teardown / Unload helper to perform teardown/unloading operations for the provided components synchronously or asynchronously, this will call any\r\n * _doTeardown() or _doUnload() functions on the provided components to allow them to finish removal.\r\n * @param components - The components you want to unload\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @param asyncCallback - An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.\r\n * @returns boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.\r\n */\r\nexport function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {\r\n var idx = 0;\r\n function _doUnload() {\r\n while (idx < components[_DYN_LENGTH /* @min:%2elength */]) {\r\n var component = components[idx++];\r\n if (component) {\r\n var func = component._doUnload || component[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */];\r\n if (isFunction(func)) {\r\n if (func.call(component, unloadCtx, unloadState, _doUnload) === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return _doUnload();\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext which optionally also \"sets\" the value on a parent\r\n * @param parentCtx - An optional parent distributed trace instance\r\n * @returns A new IDistributedTraceContext instance that uses an internal temporary object\r\n */\r\nexport function createDistributedTraceContext(parentCtx) {\r\n var trace = {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace[_DYN_TRACE_ID /* @min:%2etraceId */];\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace[_DYN_TRACE_ID /* @min:%2etraceId */] = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace[_DYN_SPAN_ID /* @min:%2espanId */];\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace[_DYN_SPAN_ID /* @min:%2espanId */] = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = newTraceFlags;\r\n }\r\n };\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, dumpObj, isArray, isFunction, isNullOrUndefined, isUndefined, objForEachKey, objFreeze, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _applyDefaultValue } from \"../Config/ConfigDefaults\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_DF, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UNLOAD, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nimport { _throwInternal, safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { proxyFunctions } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_DISABLED, STR_EMPTY, STR_EXTENSION_CONFIG, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _getPluginState } from \"./TelemetryHelpers\";\r\nvar strTelemetryPluginChain = \"TelemetryPluginChain\";\r\nvar strHasRunFlags = \"_hasRun\";\r\nvar strGetTelCtx = \"_getTelCtx\";\r\nvar _chainId = 0;\r\nfunction _getNextProxyStart(proxy, core, startAt) {\r\n while (proxy) {\r\n if (proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]() === startAt) {\r\n return proxy;\r\n }\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n // This wasn't found in the existing chain so create an isolated one with just this plugin\r\n return createTelemetryProxyChain([startAt], core.config || {}, core);\r\n}\r\n/**\r\n * @ignore\r\n * @param telemetryChain\r\n * @param dynamicHandler\r\n * @param core\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n * @returns\r\n */\r\nfunction _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {\r\n // We have a special case where we want to start execution from this specific plugin\r\n // or we simply reuse the existing telemetry plugin chain (normal execution case)\r\n var _nextProxy = null; // By Default set as no next plugin\r\n var _onComplete = [];\r\n if (!dynamicHandler) {\r\n dynamicHandler = createDynamicConfig({}, null, core[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n if (startAt !== null) {\r\n // There is no next element (null) vs not defined (undefined) so use the full chain\r\n _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;\r\n }\r\n var context = {\r\n _next: _moveNext,\r\n ctx: {\r\n core: function () {\r\n return core;\r\n },\r\n diagLog: function () {\r\n return safeGetLogger(core, dynamicHandler.cfg);\r\n },\r\n getCfg: function () {\r\n return dynamicHandler.cfg;\r\n },\r\n getExtCfg: _resolveExtCfg,\r\n getConfig: _getConfig,\r\n hasNext: function () {\r\n return !!_nextProxy;\r\n },\r\n getNext: function () {\r\n return _nextProxy;\r\n },\r\n setNext: function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n },\r\n iterate: _iterateChain,\r\n onComplete: _addOnComplete\r\n }\r\n };\r\n function _addOnComplete(onComplete, that) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n if (onComplete) {\r\n _onComplete[_DYN_PUSH /* @min:%2epush */]({\r\n func: onComplete,\r\n self: !isUndefined(that) ? that : context.ctx,\r\n args: args\r\n });\r\n }\r\n }\r\n function _moveNext() {\r\n var nextProxy = _nextProxy;\r\n // Automatically move to the next plugin\r\n _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT /* @min:%2egetNext */]() : null;\r\n if (!nextProxy) {\r\n var onComplete = _onComplete;\r\n if (onComplete && onComplete[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(onComplete, function (completeDetails) {\r\n try {\r\n completeDetails.func.call(completeDetails.self, completeDetails.args);\r\n }\r\n catch (e) {\r\n _throwInternal(core[_DYN_LOGGER /* @min:%2elogger */], 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected Exception during onComplete - \" + dumpObj(e));\r\n }\r\n });\r\n _onComplete = [];\r\n }\r\n }\r\n return nextProxy;\r\n }\r\n function _getExtCfg(identifier, createIfMissing) {\r\n var idCfg = null;\r\n var cfg = dynamicHandler.cfg;\r\n if (cfg && identifier) {\r\n var extCfg = cfg[STR_EXTENSION_CONFIG /* @min:%2eextensionConfig */];\r\n if (!extCfg && createIfMissing) {\r\n extCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n cfg[STR_EXTENSION_CONFIG] = extCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);\r\n if (extCfg) {\r\n idCfg = extCfg[identifier];\r\n if (!idCfg && createIfMissing) {\r\n idCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n extCfg[identifier] = idCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n idCfg = dynamicHandler.ref(extCfg, identifier);\r\n }\r\n }\r\n return idCfg;\r\n }\r\n function _resolveExtCfg(identifier, defaultValues) {\r\n var newConfig = _getExtCfg(identifier, true);\r\n if (defaultValues) {\r\n // Enumerate over the defaultValues and if not already populated attempt to\r\n // find a value from the root config or use the default value\r\n objForEachKey(defaultValues, function (field, defaultValue) {\r\n // for each unspecified field, set the default value\r\n if (isNullOrUndefined(newConfig[field])) {\r\n var cfgValue = dynamicHandler.cfg[field];\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n newConfig[field] = cfgValue;\r\n }\r\n }\r\n _applyDefaultValue(dynamicHandler, newConfig, field, defaultValue);\r\n });\r\n }\r\n return dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](newConfig, defaultValues);\r\n }\r\n function _getConfig(identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _getExtCfg(identifier, false);\r\n var rootConfig = dynamicHandler.cfg;\r\n if (extConfig && (extConfig[field] || !isNullOrUndefined(extConfig[field]))) {\r\n theValue = extConfig[field];\r\n }\r\n else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {\r\n theValue = rootConfig[field];\r\n }\r\n return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;\r\n }\r\n function _iterateChain(cb) {\r\n // Keep processing until we reach the end of the chain\r\n var nextPlugin;\r\n while (!!(nextPlugin = context._next())) {\r\n var plugin = nextPlugin[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (plugin) {\r\n // callback with the current on\r\n cb(plugin);\r\n }\r\n }\r\n }\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryContext(telemetryChain, cfg, core, startAt) {\r\n var config = createDynamicConfig(cfg);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(env) {\r\n var nextPlugin = internalContext._next();\r\n if (nextPlugin) {\r\n // Run the next plugin which will call \"processNext()\"\r\n nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, context);\r\n }\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), config.cfg, core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for handling the unloading of the chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(unloadState) {\r\n var nextPlugin = internalContext._next();\r\n nextPlugin && nextPlugin[_DYN_UNLOAD /* @min:%2eunload */](context, unloadState);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for updating the configuration\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(updateState) {\r\n return context.iterate(function (plugin) {\r\n if (isFunction(plugin[_DYN_UPDATE /* @min:%2eupdate */])) {\r\n plugin[_DYN_UPDATE /* @min:%2eupdate */](context, updateState);\r\n }\r\n });\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates an execution chain from the array of plugins\r\n * @param plugins - The array of plugins that will be executed in this order\r\n * @param defItemCtx - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n */\r\nexport function createTelemetryProxyChain(plugins, config, core, startAt) {\r\n var firstProxy = null;\r\n var add = startAt ? false : true;\r\n if (isArray(plugins) && plugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy_1 = null;\r\n arrForEach(plugins, function (thePlugin) {\r\n if (!add && startAt === thePlugin) {\r\n add = true;\r\n }\r\n if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Only add plugins that are processors\r\n var newProxy = createTelemetryPluginProxy(thePlugin, config, core);\r\n if (!firstProxy) {\r\n firstProxy = newProxy;\r\n }\r\n if (lastProxy_1) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy_1._setNext(newProxy);\r\n }\r\n lastProxy_1 = newProxy;\r\n }\r\n });\r\n }\r\n if (startAt && !firstProxy) {\r\n // Special case where the \"startAt\" was not in the original list of plugins\r\n return createTelemetryProxyChain([startAt], config, core);\r\n }\r\n return firstProxy;\r\n}\r\n/**\r\n * Create the processing telemetry proxy instance, the proxy is used to abstract the current plugin to allow monitoring and\r\n * execution plugins while passing around the dynamic execution state (IProcessTelemetryContext), the proxy instance no longer\r\n * contains any execution state and can be reused between requests (this was not the case for 2.7.2 and earlier with the\r\n * TelemetryPluginChain class).\r\n * @param plugin - The plugin instance to proxy\r\n * @param config - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n * @returns\r\n */\r\nexport function createTelemetryPluginProxy(plugin, config, core) {\r\n var nextProxy = null;\r\n var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]);\r\n var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]);\r\n var chainId;\r\n if (plugin) {\r\n chainId = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"-\" + plugin[STR_PRIORITY /* @min:%2epriority */] + \"-\" + _chainId++;\r\n }\r\n else {\r\n chainId = \"Unknown-0-\" + _chainId++;\r\n }\r\n var proxyChain = {\r\n getPlugin: function () {\r\n return plugin;\r\n },\r\n getNext: function () {\r\n return nextProxy;\r\n },\r\n processTelemetry: _processTelemetry,\r\n unload: _unloadPlugin,\r\n update: _updatePlugin,\r\n _id: chainId,\r\n _setNext: function (nextPlugin) {\r\n nextProxy = nextPlugin;\r\n }\r\n };\r\n function _getTelCtx() {\r\n var itemCtx;\r\n // Looks like a plugin didn't pass the (optional) context, so create a new one\r\n if (plugin && isFunction(plugin[strGetTelCtx])) {\r\n // This plugin extends from the BaseTelemetryPlugin so lets use it\r\n itemCtx = plugin[strGetTelCtx]();\r\n }\r\n if (!itemCtx) {\r\n // Create a temporary one\r\n itemCtx = createProcessTelemetryContext(proxyChain, config, core);\r\n }\r\n return itemCtx;\r\n }\r\n function _processChain(itemCtx, processPluginFn, name, details, isAsync) {\r\n var hasRun = false;\r\n var identifier = plugin ? plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] : strTelemetryPluginChain;\r\n var hasRunContext = itemCtx[strHasRunFlags];\r\n if (!hasRunContext) {\r\n // Assign and populate\r\n hasRunContext = itemCtx[strHasRunFlags] = {};\r\n }\r\n // Ensure that we keep the context in sync\r\n itemCtx.setNext(nextProxy);\r\n if (plugin) {\r\n doPerf(itemCtx[STR_CORE /* @min:%2ecore */](), function () { return identifier + \":\" + name; }, function () {\r\n // Mark this component as having run\r\n hasRunContext[chainId] = true;\r\n try {\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n var nextId = nextProxy ? nextProxy._id : STR_EMPTY;\r\n if (nextId) {\r\n hasRunContext[nextId] = false;\r\n }\r\n hasRun = processPluginFn(itemCtx);\r\n }\r\n catch (error) {\r\n var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;\r\n if (hasNextRun) {\r\n // The next plugin after us has already run so set this one as complete\r\n hasRun = true;\r\n }\r\n if (!nextProxy || !hasNextRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 73 /* _eInternalMessageId.PluginException */, \"Plugin [\" + identifier + \"] failed during \" + name + \" - \" + dumpObj(error) + \", run flags: \" + dumpObj(hasRunContext));\r\n }\r\n }\r\n }, details, isAsync);\r\n }\r\n return hasRun;\r\n }\r\n function _processTelemetry(env, itemCtx) {\r\n itemCtx = itemCtx || _getTelCtx();\r\n function _callProcessTelemetry(itemCtx) {\r\n if (!plugin || !hasProcessTelemetry) {\r\n return false;\r\n }\r\n var pluginState = _getPluginState(plugin);\r\n if (pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] || pluginState[STR_DISABLED]) {\r\n return false;\r\n }\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n if (hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](nextProxy);\r\n }\r\n plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, itemCtx);\r\n // Process Telemetry is expected to call itemCtx.processNext() or nextPlugin.processTelemetry()\r\n return true;\r\n }\r\n if (!_processChain(itemCtx, _callProcessTelemetry, \"processTelemetry\", function () { return ({ item: env }); }, !(env.sync))) {\r\n // The underlying plugin is either not defined, not enabled or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n }\r\n function _unloadPlugin(unloadCtx, unloadState) {\r\n function _callTeardown() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only teardown the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n // Handle plugins that don't extend from the BaseTelemetryPlugin\r\n pluginState[STR_CORE /* @min:%2ecore */] = null;\r\n pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] = true;\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = false;\r\n if (plugin[_DYN_TEARDOWN /* @min:%2eteardown */] && plugin[_DYN_TEARDOWN /* @min:%2eteardown */](unloadCtx, unloadState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(unloadCtx, _callTeardown, \"unload\", function () { }, unloadState[_DYN_IS_ASYNC /* @min:%2eisAsync */])) {\r\n // Only called if we hasRun was not true\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n }\r\n function _updatePlugin(updateCtx, updateState) {\r\n function _callUpdate() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only update the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n if (plugin[_DYN_UPDATE /* @min:%2eupdate */] && plugin[_DYN_UPDATE /* @min:%2eupdate */](updateCtx, updateState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(updateCtx, _callUpdate, \"update\", function () { }, false)) {\r\n // Only called if we hasRun was not true\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n return objFreeze(proxyChain);\r\n}\r\n/**\r\n * This class will be removed!\r\n * @deprecated use createProcessTelemetryContext() instead\r\n */\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(pluginChain, config, core, startAt) {\r\n var _self = this;\r\n var context = createProcessTelemetryContext(pluginChain, config, core, startAt);\r\n // Proxy all functions of the context to this object\r\n proxyFunctions(_self, context, objKeys(context));\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { getLazy } from \"../helpers/lazy\";\r\nimport { DONE, VALUE } from \"../internal/constants\";\r\nimport { getKnownSymbol } from \"../symbol/symbol\";\r\nimport { isIterator } from \"./iterator\";\r\nvar _iterSymbol;\r\n/**\r\n * Calls the provided `callbackFn` function once for each element in the iterator or iterator returned by\r\n * the iterable and processed in the same order as returned by the iterator. As with the {@link arrForEach}\r\n * you CAN stop / break the iteration by returning -1 from the`callbackFn` function.\r\n *\r\n * The order of processing is not reset if you add or remove elements to the iterator, the actual behavior\r\n * will depend on the iterator imeplementation.\r\n *\r\n * If the passed `iter` is both an Iterable and Iterator the Iterator interface takes preceedence.\r\n * @remarks\r\n * If Symbols are NOT supported then the iterable MUST be using the same polyFill for the well know symbols,\r\n * if you are targetting a mixed environment you SHOULD either\r\n * - only use the polyfill Symbol's provided by this library\r\n * - ensure that you add any symbol polyfills BEFORE these utilities\r\n * iterForOf expects a `synchronous` function.\r\n * iterForOf does not wait for promises. Make sure you are aware of the implications while using\r\n * promises (or async functions) as forEach callback.\r\n *\r\n * @since 0.4.2\r\n * @group Iterator\r\n * @typeParam T - Identifies the element type of the iterator\r\n * @param callbackfn A `synchronous` function that accepts up to three arguments. iterForOf calls the\r\n * callbackfn function one time for each element returned by the iterator.\r\n * @param thisArg An object to which the this keyword can refer in the callbackfn function. If thisArg is\r\n * omitted, null or undefined the iterator will be used as the this value.\r\n * @throws Any exception thrown while processing the iterator\r\n * @example\r\n * ```ts\r\n * const items = {\r\n * 'item1': 'value1',\r\n * 'item2': 'value2',\r\n * 'item3': 'value3\r\n * };\r\n * const copyItems = [];\r\n *\r\n * iterForOf(items, (item) => {\r\n * copyItems.push(item);\r\n * // May return -1 to abort the iteration\r\n * });\r\n * ```\r\n */\r\nexport function iterForOf(iter, callbackfn, thisArg) {\r\n if (iter) {\r\n if (!isIterator(iter)) {\r\n !_iterSymbol && (_iterSymbol = getLazy(function () { return getKnownSymbol(3 /* WellKnownSymbols.iterator */); }));\r\n iter = iter[_iterSymbol.v] ? iter[_iterSymbol.v]() : null;\r\n }\r\n if (isIterator(iter)) {\r\n var err = void 0;\r\n var iterResult = void 0;\r\n try {\r\n var count = 0;\r\n while (!(iterResult = iter.next())[DONE]) {\r\n if (callbackfn.call(thisArg || iter, iterResult[VALUE], count, iter) === -1) {\r\n break;\r\n }\r\n count++;\r\n }\r\n }\r\n catch (failed) {\r\n err = { e: failed };\r\n if (iter.throw) {\r\n iterResult = null;\r\n iter.throw(err);\r\n }\r\n }\r\n finally {\r\n try {\r\n if (iterResult && !iterResult[DONE]) {\r\n iter.return && iter.return(iterResult);\r\n }\r\n }\r\n finally {\r\n if (err) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw err.e;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { getInst, objHasOwnProperty } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { _getObjProto } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n if (arr) {\r\n for (var lp = 0; lp < arr[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n if (type >= 0 /* CallbackType.Request */ && type <= 2 /* CallbackType.HookError */) {\r\n _arrLoop(hooks, function (hook, idx) {\r\n var cbks = hook.cbks;\r\n var cb = cbks[cbNames[type]];\r\n if (cb) {\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = function () {\r\n var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n try {\r\n cb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n catch (err) {\r\n var orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n var hookErrorCb = cbks[cbNames[2 /* CallbackType.HookError */]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n }\r\n catch (e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n }\r\n finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n var _a;\r\n var funcThis = this;\r\n // Capture the original arguments passed to the method\r\n var orgArgs = arguments;\r\n var hooks = aiHook.h;\r\n var funcArgs = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = aiHook.n,\r\n _a.inst = funcThis,\r\n _a.ctx = null,\r\n _a.set = _replaceArg,\r\n _a);\r\n var hookCtx = [];\r\n var cbArgs = _createArgs([funcArgs], orgArgs);\r\n funcArgs.evt = getInst(\"event\");\r\n function _createArgs(target, theArgs) {\r\n _arrLoop(theArgs, function (arg) {\r\n target[_DYN_PUSH /* @min:%2epush */](arg);\r\n });\r\n return target;\r\n }\r\n function _replaceArg(idx, value) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* CallbackType.Request */);\r\n // Call the original function was called\r\n var theFunc = aiHook.f;\r\n if (theFunc) {\r\n try {\r\n funcArgs.rslt = theFunc[_DYN_APPLY /* @min:%2eapply */](funcThis, orgArgs);\r\n }\r\n catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* CallbackType.FunctionError */);\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n }\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* CallbackType.Response */);\r\n return funcArgs.rslt;\r\n };\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype, checkParentProto) {\r\n var owner = null;\r\n if (target) {\r\n if (objHasOwnProperty(target, name)) {\r\n owner = target;\r\n }\r\n else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, checkParentProto, false);\r\n }\r\n }\r\n return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n if (target) {\r\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n if (target) {\r\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n }\r\n return null;\r\n}\r\nfunction _createInstrumentHook(owner, funcName, fn, callbacks) {\r\n var aiHook = fn && fn[aiInstrumentHooks];\r\n if (!aiHook) {\r\n // Only hook the function once\r\n aiHook = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n // Override (hook) the original function\r\n var newFunc = _createFunctionHook(aiHook);\r\n newFunc[aiInstrumentHooks] = aiHook; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n var theHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook.i,\r\n cbks: callbacks,\r\n rm: function () {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n var id = this.id;\r\n _arrLoop(aiHook.h, function (hook, idx) {\r\n if (hook.id === id) {\r\n aiHook.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n };\r\n aiHook.i++;\r\n aiHook.h[_DYN_PUSH /* @min:%2epush */](theHook);\r\n return theHook;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n if (target && funcName && callbacks) {\r\n var owner = _getOwner(target, funcName, checkPrototype, checkParentProto);\r\n if (owner) {\r\n var fn = owner[funcName];\r\n if (typeof fn === strShimFunction) {\r\n return _createInstrumentHook(owner, funcName, fn, callbacks);\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n var hooks = null;\r\n _arrLoop(funcNames, function (funcName) {\r\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n hooks[_DYN_PUSH /* @min:%2epush */](hook);\r\n }\r\n });\r\n return hooks;\r\n}\r\n/**\r\n * Add an instrumentation hook to the provided named \"event\" for the target class / object, this doesn't check whether the\r\n * named \"event\" is in fact a function and just assigns the instrumentation hook to the target[evtName]\r\n * @param target - The target object\r\n * @param evtName - The name of the event\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentEvent(target, evtName, callbacks, checkPrototype, checkParentProto) {\r\n if (target && evtName && callbacks) {\r\n var owner = _getOwner(target, evtName, checkPrototype, checkParentProto) || target;\r\n if (owner) {\r\n return _createInstrumentHook(owner, evtName, owner[evtName], callbacks);\r\n }\r\n }\r\n return null;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nexport function createUnloadHandlerContainer() {\r\n var handlers = [];\r\n function _addHandler(handler) {\r\n if (handler) {\r\n handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n function _runHandlers(unloadCtx, unloadState) {\r\n arrForEach(handlers, function (handler) {\r\n try {\r\n handler(unloadCtx, unloadState);\r\n }\r\n catch (e) {\r\n _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n }\r\n });\r\n handlers = [];\r\n }\r\n return {\r\n add: _addHandler,\r\n run: _runHandlers\r\n };\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { getKnownSymbol } from \"../symbol/symbol\";\r\nimport { isFunction, isStrictNullOrUndefined } from \"../helpers/base\";\r\n/**\r\n * Checks if the type of value looks like an iterator instance (contains a next function).\r\n *\r\n * @since 0.4.0\r\n * @group Type Identity\r\n * @group Iterator\r\n * @typeParam T - Identifies the return type of the iterator defaults to any\r\n * @param value - The value to be checked\r\n * @returns {boolean} True if the value is an Iterator, otherwise false\r\n * @example\r\n * ```ts\r\n * isIterator(null); // false\r\n * isIterator(undefined); // false\r\n * isIterator(\"null\"); // false (Strings are iterable but not iterators)\r\n * isIterator([]); // false (Arrays are iterable but not iterators)\r\n * isIterator({\r\n * next: function() { return true }\r\n * }); // true, iterators must contain a \"next\" function\r\n * ```\r\n */\r\nexport function isIterator(value) {\r\n return !!value && isFunction(value.next);\r\n}\r\n/**\r\n * Checks if the value looks like it is iterable, contains a [symbol.iterator].\r\n *\r\n * @since 0.4.0\r\n * @group Type Identity\r\n * @group Iterator\r\n * @typeParam T - Identifies the return type of the iterator\r\n * @param value - The value to be checked\r\n * @returns {boolean} True if the value is an Iterable, otherwise false\r\n * @example\r\n * ```ts\r\n * isIterable(null); // false\r\n * isIterable(undefined); // false\r\n * isIterable(\"null\"); // true (Strings are iterable)\r\n * isIterable([]); // true (Arrays are iterable)\r\n * ```\r\n */\r\nexport function isIterable(value) {\r\n return !isStrictNullOrUndefined(value) && isFunction(value[getKnownSymbol(3 /* WellKnownSymbols.iterator */)]);\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { isArray, isUndefined } from \"../helpers/base\";\r\nimport { isIterable, isIterator } from \"../iterator/iterator\";\r\nimport { iterForOf } from \"../iterator/forOf\";\r\nimport { fnApply } from \"../funcs/fnApply\";\r\n/**\r\n * Appends the `elms` to the `target` where the elms may be an array, a single object\r\n * or an iterator object\r\n * @group Array\r\n * @group Iterator\r\n * @example\r\n * ```ts\r\n * let theArray = arrAppend([], 1);\r\n * arrAppend(theArray, [ 2, 3, 4 ]);\r\n * arrAppend(theArray, [ \"a\", \"b\", \"c\" ]);\r\n * // theArray is now [ 1, 2, 3, 4, \"a\", \"b\", \"c\" ]\r\n * ```\r\n * @param target - The target array\r\n * @param elms - The item, array of items an iterable or iterator object of items to add to the target\r\n * @returns The passed in target array\r\n * @example\r\n * ```ts\r\n * // Adding a single value\r\n * arrAppend([], undefined); // []\r\n * arrAppend([], 0); // [ 0 ]\r\n * arrAppend([1], undefined); // [ 1 ]\r\n * arrAppend([1], 2); // [ 1, 2 ]\r\n *\r\n * // Adding an array\r\n * arrAppend([], [] as number[]); // []\r\n * arrAppend([], [0]); // [ 0 ]\r\n * arrAppend([1], []); // [ 1 ]\r\n * arrAppend([1], [2]); // [ 1, 2 ]\r\n *\r\n * // Adding with an iterator\r\n * arrAppend([], ([] as number[]).values()); // []\r\n * arrAppend([], [0].values()); // [ 0 ]\r\n * arrAppend([1], [].keys()); // [ 1 ]\r\n * arrAppend([1], [2].values()); // [ 1, 2 ]\r\n * arrAppend([1], [2].keys()); // [ 1, 0 ] - 0 is from the index from the first element\r\n * ```\r\n */\r\nexport function arrAppend(target, elms) {\r\n if (!isUndefined(elms) && target) {\r\n if (isArray(elms)) {\r\n // This is not just \"target.push(elms)\" but becomes effectively \"target.push(elms[0], elms[1], ...)\"\r\n fnApply(target.push, target, elms);\r\n }\r\n else if (isIterator(elms) || isIterable(elms)) {\r\n iterForOf(elms, function (elm) {\r\n target.push(elm);\r\n });\r\n }\r\n else {\r\n target.push(elms);\r\n }\r\n }\r\n return target;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\n/**\r\n * Create a IUnloadHookContainer which can be used to remember unload hook functions to be executed during the component unloading\r\n * process.\r\n * @returns A new IUnloadHookContainer instance\r\n */\r\nexport function createUnloadHookContainer() {\r\n var _hooks = [];\r\n function _doUnload(logger) {\r\n var oldHooks = _hooks;\r\n _hooks = [];\r\n // Remove all registered unload hooks\r\n arrForEach(oldHooks, function (fn) {\r\n // allow either rm or remove callback function\r\n try {\r\n (fn.rm || fn.remove).call(fn);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unloading:\" + dumpObj(e));\r\n }\r\n });\r\n }\r\n function _addHook(hooks) {\r\n if (hooks) {\r\n arrAppend(_hooks, hooks);\r\n }\r\n }\r\n return {\r\n run: _doUnload,\r\n add: _addHook\r\n };\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction, objDefine } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT0, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_PROCESS_NEXT, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { isNotNullOrUndefined, proxyFunctionAs } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_EXTENSION_CONFIG, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext } from \"./ProcessTelemetryContext\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strGetPlugin = \"getPlugin\";\r\nvar defaultValues = (_a = {},\r\n _a[STR_EXTENSION_CONFIG] = { isVal: isNotNullOrUndefined, v: {} },\r\n _a);\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this; // Setting _self here as it's used outside of the dynamicProto as well\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _isinitialized;\r\n var _rootCtx; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin; // Used for backward compatibility where plugins don't call the main pipeline\r\n var _unloadHandlerContainer;\r\n var _hookContainer;\r\n _initDefaults();\r\n dynamicProto(BaseTelemetryPlugin, _self, function (_self) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n _setDefaults(config, core, pluginChain);\r\n _isinitialized = true;\r\n };\r\n _self[_DYN_TEARDOWN /* @min:%2eteardown */] = function (unloadCtx, unloadState) {\r\n var _a;\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (unloadCtx && core !== unloadCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing as either the plugin is not initialized or was not initialized by the current core\r\n return;\r\n }\r\n var result;\r\n var unloadDone = false;\r\n var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUnloadState = unloadState || (_a = {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = false,\r\n _a);\r\n function _unloadCallback() {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _unloadHandlerContainer.run(theUnloadCtx, unloadState);\r\n _hookContainer.run(theUnloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]());\r\n if (result === true) {\r\n theUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }\r\n _initDefaults();\r\n }\r\n }\r\n if (!_self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] || _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {\r\n _unloadCallback();\r\n }\r\n else {\r\n // Tell the caller that we will be calling processNext()\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (updateCtx, updateState) {\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (updateCtx && core !== updateCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing\r\n return;\r\n }\r\n var result;\r\n var updateDone = false;\r\n var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n function _updateCallback() {\r\n if (!updateDone) {\r\n updateDone = true;\r\n _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n }\r\n }\r\n if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {\r\n _updateCallback();\r\n }\r\n else {\r\n result = true;\r\n }\r\n return result;\r\n };\r\n proxyFunctionAs(_self, \"_addUnloadCb\", function () { return _unloadHandlerContainer; }, \"add\");\r\n proxyFunctionAs(_self, \"_addHook\", function () { return _hookContainer; }, \"add\");\r\n objDefine(_self, \"_unloadHooks\", { g: function () { return _hookContainer; } });\r\n });\r\n // These are added after the dynamicProto so that are not moved to the prototype\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */] = function (itemCtx) {\r\n return _getTelCtx(itemCtx)[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, null);\r\n }\r\n };\r\n _self._getTelCtx = _getTelCtx;\r\n function _getTelCtx(currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE /* @min:%2ecore */]);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n }\r\n function _setDefaults(config, core, pluginChain) {\r\n // Make sure the extensionConfig exists and the config is dynamic\r\n createDynamicConfig(config, defaultValues, safeGetLogger(core));\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core[_DYN_GET_PROCESS_TEL_CONT0 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self[STR_CORE /* @min:%2ecore */] = core;\r\n _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n }\r\n function _initDefaults() {\r\n _isinitialized = false;\r\n _self[STR_CORE /* @min:%2ecore */] = null;\r\n _rootCtx = null;\r\n _nextPlugin = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _unloadHandlerContainer = createUnloadHandlerContainer();\r\n }\r\n }\r\n// Removed Stub for BaseTelemetryPlugin.prototype.initialize.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.teardown.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.update.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addUnloadCb.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addHook.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n BaseTelemetryPlugin.__ieDyn=1;\n\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 4\r\nexport var _DYN_IS_STORAGE_USE_DISAB0 = \"isStorageUseDisabled\"; // Count: 3\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 6\r\nexport var _DYN_CORE = \"core\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 8\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 13\r\nexport var _DYN_TRACK = \"track\"; // Count: 7\r\nexport var _DYN_TRACK_PAGE_VIEW = \"trackPageView\"; // Count: 4\r\nexport var _DYN_TRACK_PREVIOUS_PAGE_1 = \"trackPreviousPageVisit\"; // Count: 3\r\nexport var _DYN_SEND_PAGE_VIEW_INTER2 = \"sendPageViewInternal\"; // Count: 7\r\nexport var _DYN_GET_ENTRIES_BY_TYPE = \"getEntriesByType\"; // Count: 5\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 4\r\nexport var _DYN_DURATION = \"duration\"; // Count: 11\r\nexport var _DYN_SEND_PAGE_VIEW_PERFO3 = \"sendPageViewPerformanceInternal\"; // Count: 3\r\nexport var _DYN_POPULATE_PAGE_VIEW_P4 = \"populatePageViewPerformanceEvent\"; // Count: 3\r\nexport var _DYN_HREF = \"href\"; // Count: 6\r\nexport var _DYN_SEND_EXCEPTION_INTER5 = \"sendExceptionInternal\"; // Count: 2\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 3\r\nexport var _DYN_ERROR = \"error\"; // Count: 5\r\nexport var _DYN__ONERROR = \"_onerror\"; // Count: 3\r\nexport var _DYN_ERROR_SRC = \"errorSrc\"; // Count: 3\r\nexport var _DYN_LINE_NUMBER = \"lineNumber\"; // Count: 5\r\nexport var _DYN_COLUMN_NUMBER = \"columnNumber\"; // Count: 5\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 4\r\nexport var _DYN__CREATE_AUTO_EXCEPTI6 = \"CreateAutoException\"; // Count: 3\r\nexport var _DYN_ADD_TELEMETRY_INITIA7 = \"addTelemetryInitializer\"; // Count: 4\r\nexport var _DYN_OVERRIDE_PAGE_VIEW_D8 = \"overridePageViewDuration\"; // Count: 2\r\nexport var _DYN_AUTO_TRACK_PAGE_VISI9 = \"autoTrackPageVisitTime\"; // Count: 2\r\nexport var _DYN_IS_BROWSER_LINK_TRAC10 = \"isBrowserLinkTrackingEnabled\"; // Count: 2\r\nexport var _DYN_LENGTH = \"length\"; // Count: 5\r\nexport var _DYN_ENABLE_AUTO_ROUTE_TR11 = \"enableAutoRouteTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_UNHANDLED_PRO12 = \"enableUnhandledPromiseRejectionTracking\"; // Count: 2\r\nexport var _DYN_AUTO_UNHANDLED_PROMI13 = \"autoUnhandledPromiseInstrumented\"; // Count: 3\r\nexport var _DYN_IS_PERFORMANCE_TIMIN14 = \"isPerformanceTimingSupported\"; // Count: 2\r\nexport var _DYN_GET_PERFORMANCE_TIMI15 = \"getPerformanceTiming\"; // Count: 2\r\nexport var _DYN_NAVIGATION_START = \"navigationStart\"; // Count: 4\r\nexport var _DYN_SHOULD_COLLECT_DURAT16 = \"shouldCollectDuration\"; // Count: 3\r\nexport var _DYN_IS_PERFORMANCE_TIMIN17 = \"isPerformanceTimingDataReady\"; // Count: 2\r\nexport var _DYN_RESPONSE_START = \"responseStart\"; // Count: 5\r\nexport var _DYN_REQUEST_START = \"requestStart\"; // Count: 3\r\nexport var _DYN_LOAD_EVENT_END = \"loadEventEnd\"; // Count: 4\r\nexport var _DYN_RESPONSE_END = \"responseEnd\"; // Count: 5\r\nexport var _DYN_CONNECT_END = \"connectEnd\"; // Count: 4\r\nexport var _DYN_PAGE_VISIT_START_TIM18 = \"pageVisitStartTime\"; // Count: 2\r\n","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, dumpObj, getDocument, getExceptionName, getLocation, isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isWebWorker, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DURATION, _DYN_GET_PERFORMANCE_TIMI15, _DYN_HREF, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_SHOULD_COLLECT_DURAT16, _DYN_TRACK_PAGE_VIEW } from \"../../__DynamicConstants\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var queueTimer = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels(isAsync) {\r\n if (core) {\r\n core.flush(isAsync, function () {\r\n // Event flushed, callback added to prevent promise creation\r\n });\r\n }\r\n }\r\n function _startTimer() {\r\n if (!queueTimer) {\r\n queueTimer = scheduleTimeout((function () {\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _startTimer();\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels(true);\r\n }\r\n }), 100);\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n _startTimer();\r\n }\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */]()) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n if (!isWebWorker()) {\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 25 /* _eInternalMessageId.NavigationTimingNotSupported */, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n }\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */]()[_DYN_NAVIGATION_START /* @min:%2enavigationStart */];\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties[_DYN_DURATION /* @min:%2eduration */])) {\r\n duration = customProperties[_DYN_DURATION /* @min:%2eduration */];\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n }\r\n // case 2\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */]()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = pageViewPerformance.durationMs;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = maxDurationLimit;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 38 /* _eInternalMessageId.TrackPVFailedCalc */, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n _self.teardown = function (unloadCtx, unloadState) {\r\n if (queueTimer) {\r\n queueTimer.cancel();\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush_1 = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (item()) {\r\n doFlush_1 = true;\r\n }\r\n });\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n// Removed Stub for PageViewManager.prototype.teardown.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageViewManager.__ieDyn=1;\n\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, getNavigator, getPerformance, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_CONNECT_END, _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI15, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_LOAD_EVENT_END, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_REQUEST_START, _DYN_RESPONSE_END, _DYN_RESPONSE_START, _DYN_SHOULD_COLLECT_DURAT16, _DYN_START_TIME } from \"../../__DynamicConstants\";\r\nvar MAX_DURATION_ALLOWED = 3600000; // 1h\r\nvar botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\nfunction _isPerformanceTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && !!perf.timing;\r\n}\r\nfunction _isPerformanceNavigationTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */] && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\")[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\nfunction _isPerformanceTimingDataReady() {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */] > 0\r\n && timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */] > 0\r\n && timing[_DYN_REQUEST_START /* @min:%2erequestStart */] > 0\r\n && timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */] > 0\r\n && timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */] > 0\r\n && timing[_DYN_CONNECT_END /* @min:%2econnectEnd */] > 0\r\n && timing.domLoading > 0;\r\n}\r\nfunction _getPerformanceTiming() {\r\n if (_isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n}\r\nfunction _getPerformanceNavigationTiming() {\r\n if (_isPerformanceNavigationTimingSupported()) {\r\n return getPerformance()[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\")[0];\r\n }\r\n return null;\r\n}\r\n/**\r\n* This method tells if given durations should be excluded from collection.\r\n*/\r\nfunction _shouldCollectDuration() {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n isGoogleBot = isGoogleBot || strIndexOf(userAgent.toLowerCase(), botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (durations[i] < 0 || durations[i] >= MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n var _logger = safeGetLogger(core);\r\n dynamicProto(PageViewPerformanceManager, this, function (_self) {\r\n _self[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */] = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = _getPerformanceNavigationTiming();\r\n var timing = _getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming[_DYN_DURATION /* @min:%2eduration */];\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming[_DYN_START_TIME /* @min:%2estartTime */] === 0 ? navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */] : dateTimeUtilsDuration(navigationTiming[_DYN_START_TIME /* @min:%2estartTime */], navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */], navigationTiming[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */], timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n if (total === 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 10 /* _eInternalMessageId.ErrorPVCalc */, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!_self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](total, network, request, response, dom)) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 45 /* _eInternalMessageId.InvalidDurationValue */, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 8 /* _eInternalMessageId.ClientPerformanceMathError */, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n _self[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */] = _getPerformanceTiming;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */] = _isPerformanceTimingSupported;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */] = _isPerformanceTimingDataReady;\r\n _self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */] = _shouldCollectDuration;\r\n });\r\n }\r\n// Removed Stub for PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent.\r\n// Removed Stub for PageViewPerformanceManager.prototype.getPerformanceTiming.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingSupported.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingDataReady.\r\n// Removed Stub for PageViewPerformanceManager.prototype.shouldCollectDuration.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageViewPerformanceManager.__ieDyn=1;\n\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* ApplicationInsights.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPluginIdentifier, Event as EventTelemetry, Exception, Metric, PageView, PageViewPerformance, PropertiesPluginIdentifier, RemoteDependencyData, Trace, createDistributedTraceContextFromTrace, createDomEvent, createTelemetryItem, dataSanitizeString, isCrossOriginError, strNotSpecified, utlDisableStorage, utlEnableStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentEvent, arrForEach, cfgDfBoolean, cfgDfSet, cfgDfString, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOff, eventOn, generateW3CId, getDocument, getExceptionName, getHistory, getLocation, getWindow, hasHistory, hasWindow, isFunction, isNullOrUndefined, isString, isUndefined, mergeEvtNamespace, onConfigChange, safeGetCookieMgr, strUndefined, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getPerformance, isError, objDeepFreeze, objDefine, scheduleTimeout, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ADD_TELEMETRY_INITIA7, _DYN_AUTO_TRACK_PAGE_VISI9, _DYN_AUTO_UNHANDLED_PROMI13, _DYN_COLUMN_NUMBER, _DYN_CORE, _DYN_DATA_TYPE, _DYN_DIAG_LOG, _DYN_DURATION, _DYN_ENABLE_AUTO_ROUTE_TR11, _DYN_ENABLE_UNHANDLED_PRO12, _DYN_ENVELOPE_TYPE, _DYN_ERROR, _DYN_ERROR_SRC, _DYN_EXCEPTION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_HREF, _DYN_IS_BROWSER_LINK_TRAC10, _DYN_IS_STORAGE_USE_DISAB0, _DYN_LENGTH, _DYN_LINE_NUMBER, _DYN_MESSAGE, _DYN_OVERRIDE_PAGE_VIEW_D8, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_SEND_EXCEPTION_INTER5, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_START_TIME, _DYN_TO_STRING, _DYN_TRACK, _DYN_TRACK_PAGE_VIEW, _DYN_TRACK_PREVIOUS_PAGE_1, _DYN__ADD_HOOK, _DYN__CREATE_AUTO_EXCEPTI6, _DYN__ONERROR } from \"../__DynamicConstants\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { Timing } from \"./Timing\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n return reason[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar MinMilliSeconds = 60000;\r\nvar defaultValues = objDeepFreeze((_a = {\r\n sessionRenewalMs: cfgDfSet(_chkConfigMilliseconds, 30 * 60 * 1000),\r\n sessionExpirationMs: cfgDfSet(_chkConfigMilliseconds, 24 * 60 * 60 * 1000),\r\n disableExceptionTracking: cfgDfBoolean()\r\n },\r\n _a[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:autoTrackPageVisitTime */] = cfgDfBoolean(),\r\n _a[_DYN_OVERRIDE_PAGE_VIEW_D8 /* @min:overridePageViewDuration */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:enableUnhandledPromiseRejectionTracking */] = cfgDfBoolean(),\r\n _a[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:autoUnhandledPromiseInstrumented */] = false,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_IS_STORAGE_USE_DISAB0 /* @min:isStorageUseDisabled */] = cfgDfBoolean(),\r\n _a[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:isBrowserLinkTrackingEnabled */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:enableAutoRouteTracking */] = cfgDfBoolean(),\r\n _a.namePrefix = cfgDfString(),\r\n _a.enableDebug = cfgDfBoolean(),\r\n _a.disableFlushOnBeforeUnload = cfgDfBoolean(),\r\n _a.disableFlushOnUnload = cfgDfBoolean(false, \"disableFlushOnBeforeUnload\"),\r\n _a));\r\nfunction _chkConfigMilliseconds(value, defValue) {\r\n value = value || defValue;\r\n if (value < MinMilliSeconds) {\r\n value = MinMilliSeconds;\r\n }\r\n return +value;\r\n}\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nfunction _updateStorageUsage(extConfig) {\r\n // Not resetting the storage usage as someone may have manually called utlDisableStorage, so this will only\r\n // reset based if the configuration option is provided\r\n if (!isUndefined(extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */])) {\r\n if (extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */]) {\r\n utlDisableStorage();\r\n }\r\n else {\r\n utlEnableStorage();\r\n }\r\n }\r\n}\r\nvar AnalyticsPlugin = /** @class */ (function (_super) {\r\n __extends(AnalyticsPlugin, _super);\r\n function AnalyticsPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _pageViewManager;\r\n var _pageViewPerformanceManager;\r\n var _pageVisitTimeManager;\r\n var _preInitTelemetryInitializers;\r\n var _isBrowserLinkTrackingEnabled;\r\n var _browserLinkInitializerAdded;\r\n var _enableAutoRouteTracking;\r\n var _historyListenerAdded;\r\n var _disableExceptionTracking;\r\n var _autoExceptionInstrumented;\r\n var _enableUnhandledPromiseRejectionTracking;\r\n var _autoUnhandledPromiseInstrumented;\r\n var _extConfig;\r\n var _autoTrackPageVisitTime;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n var _evtNamespace;\r\n dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self[_DYN_CORE /* @min:%2ecore */]);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(event, EventTelemetry[_DYN_DATA_TYPE /* @min:%2edataType */], EventTelemetry[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 29 /* _eInternalMessageId.StartTrackEventFailed */, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties, measurements);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 30 /* _eInternalMessageId.StopTrackEventFailed */, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(trace, Trace[_DYN_DATA_TYPE /* @min:%2edataType */], Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param metric - input object argument. Only name and average are mandatory.\r\n * @param } customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(metric, Metric[_DYN_DATA_TYPE /* @min:%2edataType */], Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 36 /* _eInternalMessageId.TrackMetricFailed */, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry - The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties - Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _pageViewManager[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */](inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView - Page view item to be sent\r\n * @param properties - Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties - System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */] = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n var perf = getPerformance();\r\n // Access the performance timing object\r\n var navigationEntries = (perf && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */] && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\"));\r\n // Edge Case the navigation Entries may return an empty array and the timeOrigin is not supported on IE\r\n if (navigationEntries && navigationEntries[0] && !isUndefined(perf.timeOrigin)) {\r\n // Get the value of loadEventStart\r\n var loadEventStart = navigationEntries[0].loadEventStart;\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(perf.timeOrigin + loadEventStart);\r\n }\r\n else {\r\n // calculate the start time manually\r\n var duration = ((properties || pageView.properties || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration);\r\n }\r\n var telemetryItem = createTelemetryItem(pageView, PageView[_DYN_DATA_TYPE /* @min:%2edataType */], PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */] = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = createTelemetryItem(pageViewPerformance, PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n var inPvp = pageViewPerformance || {};\r\n try {\r\n _pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](inPvp);\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](inPvp, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name - A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 31 /* _eInternalMessageId.StartTrackFailed */, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](name, url);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 32 /* _eInternalMessageId.StopTrackFailed */, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */] = function (exception, customProperties, systemProperties) {\r\n // Adding additional edge cases to handle\r\n // - Not passing anything (null / undefined)\r\n var theError = (exception && (exception[_DYN_EXCEPTION /* @min:%2eexception */] || exception[_DYN_ERROR /* @min:%2eerror */])) ||\r\n // - Handle someone calling trackException based of v1 API where the exception was the Error\r\n isError(exception) && exception ||\r\n // - Handles no error being defined and instead of creating a new Error() instance attempt to map so any stacktrace\r\n // is preserved and does not list ApplicationInsights code as the source\r\n { name: (exception && typeof exception), message: exception || strNotSpecified };\r\n // If no exception object was passed assign to an empty object to avoid internal exceptions\r\n exception = exception || {};\r\n var exceptionPartB = new Exception(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), theError, exception.properties || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var telemetryItem = createTelemetryItem(exceptionPartB, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param exception - Object which contains exception to be sent\r\n * @param } customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackException = function (exception, customProperties) {\r\n if (exception && !exception[_DYN_EXCEPTION /* @min:%2eexception */] && exception[_DYN_ERROR /* @min:%2eerror */]) {\r\n exception[_DYN_EXCEPTION /* @min:%2eexception */] = exception[_DYN_ERROR /* @min:%2eerror */];\r\n }\r\n try {\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */](exception, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 35 /* _eInternalMessageId.TrackExceptionFailed */, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */] = function (exception) {\r\n var error = exception && exception[_DYN_ERROR /* @min:%2eerror */];\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] || \"window.onerror@\" + url + \":\" + (exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0) + \":\" + (exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0,\r\n columnNumber: exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0,\r\n message: exception[_DYN_MESSAGE /* @min:%2emessage */]\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception[_DYN_ERROR /* @min:%2eerror */])) {\r\n _sendCORSException(Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0, exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */]) {\r\n exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: 3 /* eSeverityLevel.Error */ }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error[_DYN_MESSAGE /* @min:%2emessage */]) : \"null\";\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 11 /* _eInternalMessageId.ExceptionWhileLoggingError */, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */] = function (telemetryInitializer) {\r\n if (_self[_DYN_CORE /* @min:%2ecore */]) {\r\n // Just add to the core\r\n return _self[_DYN_CORE /* @min:%2ecore */][_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](telemetryInitializer);\r\n }\r\n // Handle \"pre-initialization\" telemetry initializers (for backward compatibility)\r\n if (!_preInitTelemetryInitializers) {\r\n _preInitTelemetryInitializers = [];\r\n }\r\n _preInitTelemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throwError(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n try {\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n if (_preInitTelemetryInitializers) {\r\n arrForEach(_preInitTelemetryInitializers, function (initializer) {\r\n core[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](initializer);\r\n });\r\n _preInitTelemetryInitializers = null;\r\n }\r\n _populateDefaults(config);\r\n _pageViewPerformanceManager = new PageViewPerformanceManager(_self[_DYN_CORE /* @min:%2ecore */]);\r\n _pageViewManager = new PageViewManager(_self, _extConfig.overridePageViewDuration, _self[_DYN_CORE /* @min:%2ecore */], _pageViewPerformanceManager);\r\n _pageVisitTimeManager = new PageVisitTimeManager(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _eventTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties, measurements) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (!measurements) {\r\n measurements = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n _self.trackEvent({ name: name, properties: properties, measurements: measurements });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageViewItem, properties);\r\n };\r\n if (hasWindow()) {\r\n _updateExceptionTracking();\r\n _updateLocationChange();\r\n }\r\n }\r\n catch (e) {\r\n // resetting the initialized state because of failure\r\n _self.setInitialized(false);\r\n throw e;\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _pageViewManager && _pageViewManager.teardown(unloadCtx, unloadState);\r\n // Just register to remove all events associated with this namespace\r\n eventOff(window, null, null, _evtNamespace);\r\n _initDefaults();\r\n };\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self[_DYN_CORE /* @min:%2ecore */];\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extConfig = ctx.getExtCfg(identifier, defaultValues);\r\n _autoTrackPageVisitTime = _extConfig[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:%2eautoTrackPageVisitTime */];\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n _updateStorageUsage(_extConfig);\r\n // _updateBrowserLinkTracking\r\n _isBrowserLinkTrackingEnabled = _extConfig[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:%2eisBrowserLinkTrackingEnabled */];\r\n _addDefaultTelemetryInitializers();\r\n }));\r\n }\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milliseconds\r\n */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers() {\r\n if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (remoteData.target && strIndexOf(remoteData.target, browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](_self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](dropBrowserLinkRequests));\r\n _browserLinkInitializerAdded = true;\r\n }\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = createTelemetryItem(exception, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n function _updateExceptionTracking() {\r\n var _window = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _disableExceptionTracking = _extConfig.disableExceptionTracking;\r\n if (!_disableExceptionTracking && !_autoExceptionInstrumented && !_extConfig.autoExceptionInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onerror\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {\r\n if (!_disableExceptionTracking && callDetails.rslt !== true) {\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](message, url, lineNumber, columnNumber, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoExceptionInstrumented = true;\r\n }\r\n }));\r\n _addUnhandledPromiseRejectionTracking(_window, locn);\r\n }\r\n function _updateLocationChange() {\r\n var win = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableAutoRouteTracking = _extConfig[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:%2eenableAutoRouteTracking */] === true;\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (win && _enableAutoRouteTracking && !_historyListenerAdded && hasHistory()) {\r\n var _history = getHistory();\r\n if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strUndefined) {\r\n _addHistoryListener(win, _history, locn);\r\n }\r\n }\r\n }));\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n if (!distributedTraceCtx) {\r\n // Fallback when using an older Core and PropertiesPlugin\r\n var properties = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (properties) {\r\n var context = properties.plugin.context;\r\n if (context) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(context.telemetryTrace);\r\n }\r\n }\r\n }\r\n return distributedTraceCtx;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n function _addHistoryListener(win, history, locn) {\r\n if (_historyListenerAdded) {\r\n return;\r\n }\r\n // Name Prefix is only referenced during the initial initialization and cannot be changed afterwards\r\n var namePrefix = _extConfig.namePrefix || \"\";\r\n function _popstateHandler() {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n function _locationChangeHandler() {\r\n // We always track the changes (if the handler is installed) to handle the feature being disabled between location changes\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n else {\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (_enableAutoRouteTracking) {\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n if (distributedTraceCtx) {\r\n distributedTraceCtx.setTraceId(generateW3CId());\r\n var traceLocationName = \"_unknown_\";\r\n if (locn && locn.pathname) {\r\n traceLocationName = locn.pathname + (locn.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n distributedTraceCtx.setName(dataSanitizeString(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), traceLocationName));\r\n }\r\n scheduleTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */]({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_self, _prevUri), _self.autoRoutePVDelay);\r\n }\r\n }\r\n _addHook(InstrumentEvent(history, \"pushState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"pushState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n _addHook(InstrumentEvent(history, \"replaceState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"replaceState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n eventOn(win, namePrefix + \"popstate\", _popstateHandler, _evtNamespace);\r\n eventOn(win, namePrefix + \"locationchange\", _locationChangeHandler, _evtNamespace);\r\n _historyListenerAdded = true;\r\n }\r\n function _addUnhandledPromiseRejectionTracking(_window, _location) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableUnhandledPromiseRejectionTracking = _extConfig[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:%2eenableUnhandledPromiseRejectionTracking */] === true;\r\n _autoExceptionInstrumented = _autoExceptionInstrumented || _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */];\r\n if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onunhandledrejection\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, error) {\r\n if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) { // handled could be typeof function\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](_getReason(error), _location ? _location[_DYN_HREF /* @min:%2ehref */] : \"\", 0, 0, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */] = _autoUnhandledPromiseInstrumented = true;\r\n }\r\n }));\r\n }\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {eLoggingSeverity} - The severity of the log message\r\n * @param msgId - {_eInternalLogMessage} - The log message.\r\n */\r\n function _throwInternal(severity, msgId, msg, properties, isUserAct) {\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]().throwInternal(severity, msgId, msg, properties, isUserAct);\r\n }\r\n function _initDefaults() {\r\n _eventTracking = null;\r\n _pageTracking = null;\r\n _pageViewManager = null;\r\n _pageViewPerformanceManager = null;\r\n _pageVisitTimeManager = null;\r\n _preInitTelemetryInitializers = null;\r\n _isBrowserLinkTrackingEnabled = false;\r\n _browserLinkInitializerAdded = false;\r\n _enableAutoRouteTracking = false;\r\n _historyListenerAdded = false;\r\n _disableExceptionTracking = false;\r\n _autoExceptionInstrumented = false;\r\n _enableUnhandledPromiseRejectionTracking = false;\r\n _autoUnhandledPromiseInstrumented = false;\r\n _autoTrackPageVisitTime = false;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var location = getLocation(true);\r\n _prevUri = location && location[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n _currUri = null;\r\n _evtNamespace = null;\r\n _extConfig = null;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _extConfig; }\r\n });\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_pageViewManager\", { g: function () { return _pageViewManager; } });\r\n objDefine(_self, \"_pageViewPerformanceManager\", { g: function () { return _pageViewPerformanceManager; } });\r\n objDefine(_self, \"_pageVisitTimeManager\", { g: function () { return _pageVisitTimeManager; } });\r\n objDefine(_self, \"_evtNamespace\", { g: function () { return \".\" + _evtNamespace; } });\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AnalyticsPlugin.prototype.getCookieMgr.\r\n// Removed Stub for AnalyticsPlugin.prototype.processTelemetry.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackTrace.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackMetric.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageView.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageViewPerformance.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendExceptionInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackException.\r\n// Removed Stub for AnalyticsPlugin.prototype._onerror.\r\n// Removed Stub for AnalyticsPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for AnalyticsPlugin.prototype.initialize.\r\n AnalyticsPlugin.Version = '3.0.3'; // Not currently used anywhere\r\n return AnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { AnalyticsPlugin };\r\n","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _warnToConsole, dateNow, dumpObj, getJSON, hasJSON, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_PAGE_VISIT_START_TIM18, _DYN_TRACK_PREVIOUS_PAGE_1 } from \"../../__DynamicConstants\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler - Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n var prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n dynamicProto(PageVisitTimeManager, this, function (_self) {\r\n _self[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */] = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName - Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n function restartPageVisitTimer(pageName, pageUrl) {\r\n var prevPageVisitData = null;\r\n try {\r\n prevPageVisitData = stopPageVisitTimer();\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitDataStr = getJSON().stringify(new PageVisitData(pageName, pageUrl));\r\n utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Call to restart failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n function stopPageVisitTimer() {\r\n var prevPageVisitData = null;\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */];\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Stop page visit timer failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_logger\", { g: function () { return logger; } });\r\n objDefine(_self, \"pageVisitTimeTrackingHandler\", { g: function () { return pageVisitTimeTrackingHandler; } });\r\n });\r\n }\r\n// Removed Stub for PageVisitTimeManager.prototype.trackPreviousPageVisit.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageVisitTimeManager.__ieDyn=1;\n\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */] = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 62 /* _eInternalMessageId.StartCalledMoreThanOnce */, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 63 /* _eInternalMessageId.StopCalledWithoutStart */, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\nexport { Timing };\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { isPromiseLike } from \"@nevware21/ts-utils\";\r\nexport function doAwaitResponse(value, cb) {\r\n return doAwait(value, function (value) {\r\n cb && cb({\r\n value: value,\r\n rejected: false\r\n });\r\n }, function (reason) {\r\n cb && cb({\r\n rejected: true,\r\n reason: reason\r\n });\r\n });\r\n}\r\n/**\r\n * Wait for the promise to resolve or reject, if resolved the callback function will be called with it's value and if\r\n * rejected the rejectFn will be called with the reason. If the passed promise argument is not a promise the callback\r\n * will be called synchronously with the value.\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait for\r\n * @param resolveFn - The callback to call on the promise successful resolving.\r\n * @param rejectFn - The callback to call when the promise rejects\r\n * @returns The passed value, if it is a promise and there is either a resolve or reject handler\r\n * then it will return a chained promise with the value from the resolve or reject handler (depending\r\n * whether it resolve or rejects)\r\n * @example\r\n * ```ts\r\n * let promise = createPromise((resolve, reject) => {\r\n * resolve(42);\r\n * });\r\n *\r\n * // Handle via a chained promise\r\n * let chainedPromise = promise.then((value) => {\r\n * // Do something with the value\r\n * });\r\n *\r\n * // Handle via doAwait\r\n * doAwait(promise, (value) => {\r\n * // Do something with the value\r\n * });\r\n *\r\n * // It can also handle the raw value, so you could process the result of either a\r\n * // synchrounous return of the value or a Promise\r\n * doAwait(42, (value) => {\r\n * // Do something with the value\r\n * });\r\n * ```\r\n */\r\nexport function doAwait(value, resolveFn, rejectFn, finallyFn) {\r\n var result = value;\r\n if (isPromiseLike(value)) {\r\n if (resolveFn || rejectFn) {\r\n result = value.then(resolveFn, rejectFn);\r\n }\r\n }\r\n else {\r\n resolveFn && resolveFn(value);\r\n }\r\n if (finallyFn) {\r\n result = doFinally(result, finallyFn);\r\n }\r\n return result;\r\n}\r\n/**\r\n * Wait for the promise to resolve or reject and then call the finallyFn. If the passed promise argument is not a promise the callback\r\n * will be called synchronously with the value. If the passed promise doesn't implement finally then a finally implementation will be\r\n * simulated using then(..., ...).\r\n * @group Await Helper\r\n * @param value - The value or promise like value to wait for\r\n * @param finallyFn - The finally function to call once the promise has resolved or rejected\r\n */\r\nexport function doFinally(value, finallyFn) {\r\n var result = value;\r\n if (finallyFn) {\r\n if (isPromiseLike(value)) {\r\n if (value.finally) {\r\n result = value.finally(finallyFn);\r\n }\r\n else {\r\n // Simulate finally if not available\r\n result = value.then(function (value) {\r\n finallyFn();\r\n return value;\r\n }, function (reason) {\r\n finallyFn();\r\n throw reason;\r\n });\r\n }\r\n }\r\n else {\r\n finallyFn();\r\n }\r\n }\r\n return result;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { arrForEach } from \"../array/forEach\";\r\nimport { fnCall } from \"../funcs/fnCall\";\r\nimport { isArray, isDate, isNullOrUndefined, isPrimitiveType } from \"../helpers/base\";\r\nimport { FUNCTION, NULL_VALUE, OBJECT } from \"../internal/constants\";\r\nimport { objDefine } from \"./define\";\r\nimport { isPlainObject } from \"./is_plain_object\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * Generic Object deep copy handler which creates a new plain object and copies enumerable properties from\r\n * the source to the new target plain object. The source object does not have to be a plain object.\r\n * @param details - The details object for the current property being copied\r\n * @returns true if the handler processed the field.\r\n */\r\nvar _defaultDeepCopyHandler = function (details) {\r\n // Make sure we at least copy plain objects\r\n details.value && plainObjDeepCopyHandler(details);\r\n // Always return true so that the iteration completes\r\n return true;\r\n};\r\n/**\r\n * @internal\r\n * @ignore\r\n * The ordered default deep copy handlers\r\n */\r\nvar defaultDeepCopyHandlers = [\r\n arrayDeepCopyHandler,\r\n plainObjDeepCopyHandler,\r\n functionDeepCopyHandler,\r\n dateDeepCopyHandler\r\n];\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper function used for detecting and handling recursive properties\r\n * @param visitMap - The current map of objects that have been visited\r\n * @param source - The value (object) to be copied\r\n * @param newPath - The new access path from the origin to the current property\r\n * @param cb - The callback function to call if the current object has not already been processed.\r\n * @returns The new deep copied property, may be incomplete as the object is recursive and is still in the process of being copied\r\n */\r\nfunction _getSetVisited(visitMap, source, newPath, cb) {\r\n var theEntry;\r\n arrForEach(visitMap, function (entry) {\r\n if (entry.k === source) {\r\n theEntry = entry;\r\n return -1;\r\n }\r\n });\r\n if (!theEntry) {\r\n // Add the target to the visit map so that deep nested objects refer to the single instance\r\n // Even if we have not finished processing it yet.\r\n theEntry = { k: source, v: source };\r\n visitMap.push(theEntry);\r\n // Now call the copy callback so that it populates the target\r\n cb(theEntry);\r\n }\r\n return theEntry.v;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper which performs the recursive deep copy\r\n * @param visitMap - The current map of objects that have been visited\r\n * @param value - The value being copied\r\n * @param ctx - The current copy context\r\n * @param key - [Optional] the current `key` for the value from the source object\r\n * @returns The new deep copied instance of the value.\r\n */\r\nfunction _deepCopy(visitMap, value, ctx, key) {\r\n var userHandler = ctx.handler;\r\n var newPath = ctx.path ? (key ? ctx.path.concat(key) : ctx.path) : [];\r\n var newCtx = {\r\n handler: ctx.handler,\r\n src: ctx.src,\r\n path: newPath\r\n };\r\n var theType = typeof value;\r\n var isPlain = false;\r\n var isPrim = false;\r\n if (value && theType === OBJECT) {\r\n isPlain = isPlainObject(value);\r\n }\r\n else {\r\n isPrim = value === NULL_VALUE || isPrimitiveType(theType);\r\n }\r\n var details = {\r\n type: theType,\r\n isPrim: isPrim,\r\n isPlain: isPlain,\r\n value: value,\r\n result: value,\r\n path: newPath,\r\n origin: ctx.src,\r\n copy: function (source, newKey) {\r\n return _deepCopy(visitMap, source, newKey ? newCtx : ctx, newKey);\r\n },\r\n copyTo: function (target, source) {\r\n return _copyProps(visitMap, target, source, newCtx);\r\n }\r\n };\r\n if (!details.isPrim) {\r\n return _getSetVisited(visitMap, value, newPath, function (newEntry) {\r\n // Use an accessor to set the new value onto the new entry\r\n objDefine(details, \"result\", {\r\n g: function () {\r\n return newEntry.v;\r\n },\r\n s: function (newValue) {\r\n newEntry.v = newValue;\r\n }\r\n });\r\n var idx = 0;\r\n var handler = userHandler;\r\n while (!fnCall(handler || (idx < defaultDeepCopyHandlers.length ? defaultDeepCopyHandlers[idx++] : _defaultDeepCopyHandler), ctx, details)) {\r\n handler = NULL_VALUE;\r\n }\r\n });\r\n }\r\n // Allow the user handler to override the provided value\r\n if (userHandler && fnCall(userHandler, ctx, details)) {\r\n return details.result;\r\n }\r\n return value;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal helper to copy all of the enumerable properties from the source object to the new target object\r\n * @param visitMap - The current map of objects that have been visited\r\n * @param target - The target object to copy the properties to.\r\n * @param source - The source object to copy the properties from.\r\n * @param ctx - The current deep copy context\r\n * @returns The populated target object\r\n */\r\nfunction _copyProps(visitMap, target, source, ctx) {\r\n if (!isNullOrUndefined(source)) {\r\n // Copy all properties (not just own properties)\r\n for (var key in source) {\r\n // Perform a deep copy of the object\r\n target[key] = _deepCopy(visitMap, source[key], ctx, key);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Object helper to copy all of the enumerable properties from the source object to the target, the\r\n * properties are copied via {@link objDeepCopy}. Automatic handling of recursive properties was added in v0.4.4\r\n * @group Object\r\n * @param target - The target object to populated\r\n * @param source - The source object to copy the properties from\r\n * @param handler - An optional callback that lets you provide / overide the deep cloning (Since 0.4.4)\r\n * @returns The target object\r\n * @example\r\n * ```ts\r\n * let a: any = { a: 1 };\r\n * let b: any = { b: 2, d: new Date(), e: new TestClass(\"Hello Darkness\") };\r\n * a.b = b; // { a: 1, b: { b: 2} }\r\n * b.a = a; // { a: 1, b: { b: 2, a: { a: 1, { b: 2, a: ... }}}}\r\n *\r\n * function copyHandler(details: IObjDeepCopyHandlerDetails) {\r\n * // details.origin === a\r\n * // details.path[] is the path to the current value\r\n * if (details.value && isDate(details.value)) {\r\n * // So for the date path === [ \"b\", \"d\" ] which represents\r\n * // details.origin[\"b\"][\"d\"] === The Date\r\n *\r\n * // Create a clone the Date object and set as the \"newValue\"\r\n * details.value = new Date(details.value.getTime());\r\n *\r\n * // Return true to indicate that we have \"handled\" the conversion\r\n * // See objDeepCopy example for just reusing the original value (just don't replace details.value)\r\n * return true;\r\n * }\r\n *\r\n * return false;\r\n * }\r\n *\r\n * let c: any = objCopyProps({}, a, copyHandler);\r\n *\r\n * assert.notEqual(a, c, \"check a and c are not the same\");\r\n * assert.ok(c !== c.b.a, \"The root object won't be the same for the target reference as are are copying properties to our target\");\r\n * assert.ok(c.b === c.b.a.b, \"Check that the 2 'b' references are the same object\");\r\n * assert.ok(c.b.a === c.b.a.b.a, \"Check that the 2 'a' references are the same object\");\r\n * assert.ok(c.b.d === c.b.a.b.d, \"Check that the 2 'd' references are the same object\");\r\n * assert.ok(isDate(c.b.d), \"The copied date is still real 'Date' instance\");\r\n * assert.notEqual(c.b.d, a.b.d, \"And the copied date is not the same as the original\");\r\n * assert.equal(c.b.d.getTime(), a.b.d.getTime(), \"But the dates are the same\");\r\n *\r\n * assert.ok(isObject(c.b.d), \"The copied date is now an object\");\r\n * ```\r\n */\r\nexport function objCopyProps(target, source, handler) {\r\n var ctx = {\r\n handler: handler,\r\n src: source,\r\n path: []\r\n };\r\n return _copyProps([], target, source, ctx);\r\n}\r\n/**\r\n * Performs a deep copy of the source object, this is designed to work with base (plain) objects, arrays and primitives\r\n * if the source object contains class objects they will either be not cloned or may be considered non-operational after\r\n * performing a deep copy. ie. This is performing a deep copy of the objects properties so that altering the copy will\r\n * not mutate the source object hierarchy.\r\n * Automatic handling of recursive properties was added in v0.4.4.\r\n * @group Object\r\n * @group Object - Deep Copy\r\n * @param source - The source object to be copied\r\n * @param handler - An optional callback that lets you provide / overide the deep cloning (Since 0.4.4)\r\n * @return A new object which contains a deep copy of the source properties\r\n * @example\r\n * ```ts\r\n * let a: any = { a: 1 };\r\n * let b: any = { b: 2, d: new Date(), e: new TestClass(\"Hello Darkness\") };\r\n * a.b = b; // { a: 1, b: { b: 2} }\r\n * b.a = a; // { a: 1, b: { b: 2, a: { a: 1, { b: 2, a: ... }}}}\r\n *\r\n * function copyHandler(details: IObjDeepCopyHandlerDetails) {\r\n * // details.origin === a\r\n * // details.path[] is the path to the current value\r\n * if (details.value && isDate(details.value)) {\r\n * // So for the date path === [ \"b\", \"d\" ] which represents\r\n * // details.origin[\"b\"][\"d\"] === The Date\r\n *\r\n * // Return true to indicate that we have \"handled\" the conversion\r\n * // Which in this case will reuse the existing instance (as we didn't replace details.value)\r\n * // See objCopyProps example for replacing the Date instance\r\n * return true;\r\n * }\r\n *\r\n * return false;\r\n * }\r\n *\r\n * let c: any = objDeepCopy(a, copyHandler);\r\n *\r\n * assert.notEqual(a, c, \"check a and c are not the same\");\r\n * assert.ok(c === c.b.a, \"The root object won't be the same for the target reference\");\r\n * assert.ok(c.b === c.b.a.b, \"Check that the 2 'b' references are the same object\");\r\n * assert.ok(c.b.a === c.b.a.b.a, \"Check that the 2 'a' references are the same object\");\r\n * assert.ok(c.b.d === c.b.a.b.d, \"Check that the 2 'd' references are the same object\");\r\n * assert.ok(isDate(c.b.d), \"The copied date is still real 'Date' instance\");\r\n * assert.equal(c.b.d, a.b.d, \"And the copied date is the original date\");\r\n * assert.equal(c.b.d.getTime(), a.b.d.getTime(), \"But the dates are the same\");\r\n * assert.ok(isObject(c.b.d), \"The copied date is now an object\");\r\n * assert.ok(!isError(c.b.e), \"The copied error is no longer a real 'Error' instance\");\r\n * assert.ok(isObject(c.b.e), \"The copied error is now an object\");\r\n * assert.equal(42, c.b.e.value, \"Expect that the local property was copied\");\r\n * ```\r\n */\r\nexport function objDeepCopy(source, handler) {\r\n var ctx = {\r\n handler: handler,\r\n src: source\r\n };\r\n return _deepCopy([], source, ctx);\r\n}\r\n/**\r\n * Deep copy handler to identify and copy arrays.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @param details - The details object for the current property being copied\r\n * @returns `true` if the current value is a function otherwise `false`\r\n */\r\nexport function arrayDeepCopyHandler(details) {\r\n var value = details.value;\r\n if (isArray(value)) {\r\n // Assign the \"result\" value before performing any additional deep Copying, so any recursive object get a reference to this instance\r\n var target = details.result = [];\r\n target.length = value.length;\r\n // Copying all properties as arrays can contain non-indexed based properties\r\n details.copyTo(target, value);\r\n return true;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Deep copy handler to identify and copy Date instances.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @param details - The details object for the current property being copied\r\n * @returns `true` if the current value is a function otherwise `false`\r\n */\r\nexport function dateDeepCopyHandler(details) {\r\n var value = details.value;\r\n if (isDate(value)) {\r\n details.result = new Date(value.getTime());\r\n return true;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Deep copy handler to identify and copy functions. This handler just returns the original\r\n * function so the original function will be assigned to any new deep copied instance.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @param details - The details object for the current property being copied\r\n * @returns `true` if the current value is a function otherwise `false`\r\n */\r\nexport function functionDeepCopyHandler(details) {\r\n if (details.type === FUNCTION) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Deep copy handler to identify and copy plain objects.\r\n * @since 0.4.4\r\n * @group Object - Deep Copy\r\n * @param details - The details object for the current property being copied\r\n * @returns `true` if the current value is a function otherwise `false`\r\n */\r\nexport function plainObjDeepCopyHandler(details) {\r\n var value = details.value;\r\n if (value && details.isPlain) {\r\n // Assign the \"result\" value before performing any additional deep Copying, so any recursive object get a reference to this instance\r\n var target = details.result = {};\r\n details.copyTo(target, value);\r\n return true;\r\n }\r\n return false;\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { arrForEach } from \"../array/forEach\";\r\nimport { arrSlice } from \"../array/slice\";\r\nimport { objCopyProps, objDeepCopy } from \"../object/copy\";\r\n/**\r\n * @internal\r\n * @ignore\r\n */\r\nfunction _doExtend(target, theArgs) {\r\n arrForEach(theArgs, function (theArg) {\r\n objCopyProps(target, theArg);\r\n });\r\n return target;\r\n}\r\nexport function deepExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\r\n return _doExtend(objDeepCopy(target) || {}, arrSlice(arguments));\r\n}\r\nexport function objExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\r\n return _doExtend(target || {}, arrSlice(arguments));\r\n}\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2023 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { StrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\nimport { polyStrSymSplit } from \"../polyfills/split\";\r\nimport { hasSymbol } from \"../symbol/symbol\";\r\n/**\r\n * The `strSplit()` splits a string into substrings using the pattern and divides a String\r\n * into an ordered list of substrings by searching for the pattern, puts these substrings\r\n * into an array, and returns the array.\r\n * @since 0.9.1\r\n * @group String\r\n * @param value - The string value to be split into substrings.\r\n * @param separator - The pattern describing where each split should occur. Can be undefined, a\r\n * string, or an object with a [`Symbol.split`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/split)\r\n * method (if supported) — the typical example being a regular expression. Omitting separator or\r\n * passing undefined causes strSplit() to return an array with the calling string as a single\r\n * element. All values that are not undefined or objects with a `@@split` method are coerced to strings.\r\n * @param limit - A non-negative integer specifying a limit on the number of substrings to be\r\n * included in the array. If provided, splits the string at each occurrence of the specified\r\n * separator, but stops when limit entries have been placed in the array. Any leftover text is\r\n * not included in the array at all.\r\n * - The array may contain fewer entries than limit if the end of the string is reached before\r\n * the limit is reached.\r\n * - If limit is 0, [] is returned.\r\n * @return An Array of strings, split at each point where the separator occurs in the given string.\r\n * @example\r\n * ```ts\r\n * strSplit(\"Oh brave new world that has such people in it.\", \" \");\r\n * // [ \"Oh\", \"brave\", \"new\", \"world\", \"that\", \"has\", \"such\", \"people\", \"in\", \"it.\" ]\r\n *\r\n * strSplit(\"Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec\", \",\");\r\n * // [ \"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\" ]\r\n * ```\r\n */\r\nexport var strSplit = _unwrapFunction(\"split\", StrProto);\r\n/**\r\n * The `strSymSplit()` splits a string into substrings using the [`Symbol.split`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/split)\r\n * method from the splitter object to provide custom behavior. If the runtime supports symbols\r\n * then the default runtime `split` method will be called, It will use {@link getKnownSymbol}\r\n * to get the {@link WellKnownSymbols.split} symbol which will return the runtime symbol or the\r\n * polyfill symbol when not supported by the runtime.\r\n * @since 0.9.1\r\n * @group String\r\n * @param value - The string value to be split into substrings.\r\n * @param splitter - The object which contains a Symbol.split method, Omitting splitter or passing\r\n * an object that doesn't contain a Symbol.split causes it to return an array with the calling\r\n * string as a single element.\r\n * @param limit - A non-negative integer specifying a limit on the number of substrings to be\r\n * included in the array. If provided, splits the string at each occurrence of the specified\r\n * separator, but stops when limit entries have been placed in the array. Any leftover text is\r\n * not included in the array at all.\r\n * - The array may contain fewer entries than limit if the end of the string is reached before\r\n * the limit is reached.\r\n * - If limit is 0, [] is returned.\r\n * @return An Array of strings, split at each point where the separator occurs in the given string.\r\n * @example\r\n * ```ts\r\n * const splitByNumber = {\r\n * [Symbol.split]: (str: string) => {\r\n * let num = 1;\r\n * let pos = 0;\r\n * const result = [];\r\n * while (pos < str.length) {\r\n * const matchPos = strIndexOf(str, asString(num), pos);\r\n * if (matchPos === -1) {\r\n * result.push(strSubstring(str, pos));\r\n * break;\r\n * }\r\n * result.push(strSubstring(str, pos, matchPos));\r\n * pos = matchPos + asString(num).length;\r\n * num++;\r\n * }\r\n * return result;\r\n * }\r\n * };\r\n *\r\n * const myString = \"a1bc2c5d3e4f\";\r\n * console.log(strSymSplit(myString, splitByNumber)); // [ \"a\", \"bc\", \"c5d\", \"e\", \"f\" ]\r\n * ```\r\n */\r\nexport var strSymSplit = hasSymbol() ? _unwrapFunction(\"split\", StrProto) : polyStrSymSplit;\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { arrForEach } from \"../array/forEach\";\r\nimport { isNullOrUndefined } from \"./base\";\r\nimport { strSplit } from \"../string/split\";\r\nimport { iterForOf } from \"../iterator/forOf\";\r\n/**\r\n * Get the named value from the target object where the path may be presented by a string which\r\n * contains \".\" characters to separate the nested objects of the heirarchy / path to the value.\r\n * @since 0.9.1\r\n * @group Value\r\n * @param target - The source object that contains the value\r\n * @param path - The path identifing the location where the value should be located\r\n * @param defValue - If the final value or any intervening object in the heirarchy is not present\r\n * the default value will be returned\r\n * @returns The value located based on the path or the defaule value\r\n * @example\r\n * ```ts\r\n * let theValue = {\r\n * Hello: {\r\n * Darkness: {\r\n * my: \"old\"\r\n * }\r\n * },\r\n * friend: \"I've\",\r\n * come: {\r\n * to: {\r\n * see: \"you\"\r\n * }\r\n * }\r\n * };\r\n *\r\n * let value = getValueByKey(theValue, \"Hello.Darkness.my\", \"friend\");\r\n * // value === \"my\"\r\n *\r\n * let value = getValueByKey(theValue, \"My.Old\", \"friend\");\r\n * // value === \"friend\"\r\n *\r\n * let value = getValueByKey(theValue, \"come.to\", \"friend\");\r\n * // value === { see: \"you\" }\r\n *\r\n * let value = getValueByKey(theValue, \"friend\", \"friend\");\r\n * // value === \"I've\"\r\n * ```\r\n */\r\nexport function getValueByKey(target, path, defValue) {\r\n if (!path || !target) {\r\n return defValue;\r\n }\r\n var parts = strSplit(path, \".\");\r\n var cnt = parts.length;\r\n for (var lp = 0; lp < cnt && !isNullOrUndefined(target); lp++) {\r\n target = target[parts[lp]];\r\n }\r\n return (!isNullOrUndefined(target) ? target : defValue);\r\n}\r\n/**\r\n * Get the named value from the target object where the path is represented by the string iterator\r\n * or iterable to separate the nested objects of the heirarchy / path to the value. If the target\r\n * does not contain the full path the iterator will not be completed.\r\n *\r\n * The order of processing of the iterator is not reset if you add or remove elements to the iterator,\r\n * the actual behavior will depend on the iterator imeplementation.\r\n *\r\n * If the passed `iter` is both an Iterable and Iterator the Iterator interface takes preceedence.\r\n * @since 0.9.1\r\n * @group Value\r\n * @param target - The source object that contains the value\r\n * @param iter - The iter identifying the path of the final key value\r\n * @param defValue - If the final value or any intervening object in the heirarchy is not present\r\n * the default value will be returned\r\n * @returns The value located based on the path or the defaule value\r\n * @example\r\n * ```ts\r\n * let theValue = {\r\n * Hello: {\r\n * Darkness: {\r\n * my: \"old\"\r\n * }\r\n * },\r\n * friend: \"I've\",\r\n * come: {\r\n * to: {\r\n * see: \"you\"\r\n * }\r\n * }\r\n * };\r\n *\r\n * let value = getValueByKey(theValue, [\"Hello\", \"Darkness\", \"my\"], \"friend\");\r\n * // value === \"my\"\r\n *\r\n * let value = getValueByKey(theValue, [\"My\", \"Old\"], \"friend\");\r\n * // value === \"friend\"\r\n *\r\n * let value = getValueByKey(theValue, [\"come\", \"to\"], \"friend\");\r\n * // value === { see: \"you\" }\r\n *\r\n * let value = getValueByKey(theValue, [\"friend\"], \"friend\");\r\n * // value === \"I've\"\r\n * ```\r\n */\r\nexport function getValueByIter(target, iter, defValue) {\r\n if (!iter || !target) {\r\n return defValue;\r\n }\r\n iterForOf(iter, function (value) {\r\n if (isNullOrUndefined(target)) {\r\n return -1;\r\n }\r\n target = target[value];\r\n });\r\n return (!isNullOrUndefined(target) ? target : defValue);\r\n}\r\n/**\r\n * Set the named value on the target object where the path may be presented by a string which\r\n * contains \".\" characters to separate the nested objects of the heirarchy / path to the value.\r\n * @since 0.9.1\r\n * @group Value\r\n * @param target - The target object\r\n * @param path - The path identifying the location of the final key value\r\n * @param value - The value to set\r\n * @example\r\n * ```ts\r\n * let theValue = { };\r\n * setValueByKey(theValue, \"Hello.Darkness.my\", \"old\");\r\n * // Resulting Object: { Hello: { Darkness: { my: \"old\" } } }\r\n * setValueByKey(theValue, \"friend\", \"I've\");\r\n * // Resulting Object: { Hello: { Darkness: { my: \"old\" } }, friend: \"I've\" }\r\n * setValueByKey(theValue, \"come.to.see\", \"you\");\r\n * // Resulting Object: { Hello: { Darkness: { my: \"old\" } }, friend: \"I've\", come: { to : { see: \"you\" } } }\r\n * ```\r\n */\r\nexport function setValueByKey(target, path, value) {\r\n if (target && path) {\r\n var parts = strSplit(path, \".\");\r\n var lastKey = parts.pop();\r\n arrForEach(parts, function (key) {\r\n if (isNullOrUndefined(target[key])) {\r\n // Add an empty object / map\r\n target[key] = {};\r\n }\r\n target = target[key];\r\n });\r\n target[lastKey] = value;\r\n }\r\n}\r\n/**\r\n * Set the named value on the target object where the path is represented by the string iterator\r\n * or iterable to separate the nested objects of the heirarchy / path to the value.\r\n *\r\n * The order of processing of the iterator is not reset if you add or remove elements to the iterator,\r\n * the actual behavior will depend on the iterator imeplementation.\r\n *\r\n * If the passed `iter` is both an Iterable and Iterator the Iterator interface takes preceedence.\r\n * @since 0.9.1\r\n * @group Value\r\n * @param target - The target object\r\n * @param iter - The iter identifying the path of the final key value\r\n * @param value - The value to set\r\n * @example\r\n * ```ts\r\n * let theValue = { };\r\n * setValueByIter(theValue, [\"Hello\", \"Darkness\", \"my\"], \"old\");\r\n * // Resulting Object: { Hello: { Darkness: { my: \"old\" } } }\r\n * setValueByIter(theValue, [\"friend\"], \"I've\");\r\n * // Resulting Object: { Hello: { Darkness: { my: \"old\" } }, friend: \"I've\" }\r\n * setValueByIter(theValue, [\"come\", \"to\", \"see\"], \"you\");\r\n * // Resulting Object: { Hello: { Darkness: { my: \"old\" } }, friend: \"I've\", come: { to : { see: \"you\" } } }\r\n * ```\r\n */\r\nexport function setValueByIter(target, iter, value) {\r\n if (target && iter) {\r\n var lastKey_1;\r\n iterForOf(iter, function (key) {\r\n if (lastKey_1) {\r\n if (isNullOrUndefined(target[lastKey_1])) {\r\n // Add an empty object / map\r\n target[lastKey_1] = {};\r\n }\r\n target = target[lastKey_1];\r\n }\r\n lastKey_1 = key;\r\n });\r\n target[lastKey_1] = value;\r\n }\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 0.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_FEATURE_OPT_IN = \"featureOptIn\"; // Count: 4\r\nexport var _DYN_ON_CFG_CHANGE_RECEIV0 = \"onCfgChangeReceive\"; // Count: 2\r\nexport var _DYN_NON_OVERRIDE_CONFIGS = \"nonOverrideConfigs\"; // Count: 2\r\nexport var _DYN_SCHEDULE_FETCH_TIMEO1 = \"scheduleFetchTimeout\"; // Count: 2\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 0.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { isNullOrUndefined, isObject, objExtend, objForEachKey, setValueByKey } from \"@nevware21/ts-utils\";\r\nimport { _DYN_FEATURE_OPT_IN } from \"./__DynamicConstants\";\r\n/**\r\n * Delete a config key in the given cfg, if the config key exists in nonOverrideConfigs and its value is set to true\r\n * @param cfg cfg to modify\r\n * @param nonOverrideConfigs nonOverrideConfigs\r\n * @param curLevel cur config level, starting at 0\r\n * @param maxLevel max config level\r\n * @returns new copy of modified configs\r\n */\r\nexport function replaceByNonOverrideCfg(cfg, nonOverrideConfigs, curLevel, maxLevel) {\r\n try {\r\n var exceedMaxLevel = curLevel > maxLevel;\r\n if (exceedMaxLevel) {\r\n cfg = null;\r\n }\r\n var curCfg_1 = curLevel == 0 ? objExtend({}, cfg) : cfg; // only copy cfg at the begining level\r\n if (curCfg_1 && nonOverrideConfigs && !exceedMaxLevel) {\r\n objForEachKey(curCfg_1, function (key) {\r\n var nonOverrideVal = nonOverrideConfigs[key];\r\n if (!!nonOverrideVal) {\r\n if (isObject(curCfg_1[key]) && isObject(nonOverrideVal)) {\r\n curCfg_1[key] = replaceByNonOverrideCfg(curCfg_1[key], nonOverrideVal, ++curLevel, maxLevel);\r\n }\r\n else {\r\n delete curCfg_1[key];\r\n }\r\n }\r\n });\r\n }\r\n return curCfg_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n // if errors happen, do nothing\r\n return cfg;\r\n}\r\n// CDN Mode, value = B (CDN value = B)\r\n// |--------------------------------------------------------------------------|-----------|\r\n// | | none | disabled | enabled | forceOn | forceOff |\r\n// | ------------------ | ----------- | ----------- | ----------- | --------- | --------- |\r\n// | User Mode, value = A | none | none | disabled | enabled | enabled | disabled |\r\n// (user Value = A) | disabled | disabled | disabled | disabled | enabled | disabled |\r\n// | enabled | enabled | disabled | enabled | enabled | disabled |\r\n// | none(blockCdn) | none | none | none | none | none |\r\n// | disabled(blockCdn) | disabled | disabled | disabled | disabled | disabled |\r\n// | enabled(blockCdn) | enabled | enabled | enabled | enabled | enabled |\r\n// This matrix identifies how feature based overrides are selected (if present)\r\n// cdn Mode (cdn Value = B)\r\n// |---------------------------------------------------------------------------|\r\n// | | none | disabled | enabled | forceOn | forceOff |\r\n// | ------------------ | ---------| ---------| ---------| ---------|----------|\r\n// | User Mode | none | A | A | A || B | B || A | B || A |\r\n// (user Value = A) | disabled | A | A | A | B || A | B || A |\r\n// | enabled | A | A | A || B | B || A | B || A |\r\n// | none(blockCdn) | A | A | A | A | A |\r\n// | disabled(blockCdn) | A | A | A | A | A |\r\n// | enabled(blockCdn) | A | A | A | A | A |\r\n// Note:\r\n// Where the \"value\" is an object (map) of encoded key/values which will be used to override the real configuration\r\n// A = either the user supplied enable/disable value (via the `config.featureOptIn[name]`) or if not defined by the user the SDK defaults of the same.\r\n// B = The enable/disable value obtained from the CDN for the named feature\r\n// These are evaluated based on the above matrix to either\r\n// - A (Always the user/sdk value)\r\n// - B (Always the value from the CDN)\r\n// - A || B (If A is null or undefined use the value from the CDN (B) otherwise A)\r\n// - B || A (If B is null or undefined use the user/SDK value otherwise use the value from the CDN)\r\n//\r\n// The result of the value may also be null / undefined, which means there are no overrides to apply when the feature is enabled\r\nvar F = \"featureOptIn.\";\r\nvar M = \".mode\";\r\nvar ON = \".onCfg\";\r\nvar OFF = \".offCfg\";\r\nexport function resolveCdnFeatureCfg(field, cdnCfg, userOptInDetails) {\r\n var _a;\r\n // cdn conifg value\r\n if (!cdnCfg || !cdnCfg.enabled) {\r\n return null;\r\n }\r\n var cdnFt = (cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */] || {})[field] || { mode: 1 /* CdnFeatureMode.none */ };\r\n var cdnM = cdnFt.mode;\r\n var cdnOnV = cdnFt.onCfg;\r\n var cdnOffV = cdnFt.offCfg;\r\n var userFt = (userOptInDetails || {})[field] || { mode: 2 /* FeatureOptInMode.disable */ }; // default user mode is disable\r\n var userM = userFt.mode;\r\n var userOnV = userFt.onCfg;\r\n var userOffV = userFt.offCfg;\r\n var blockCdn = !!userFt.blockCdnCfg;\r\n var mFld = F + field + M;\r\n var onFld = F + field + ON;\r\n var offFld = F + field + OFF;\r\n var mode = userM;\r\n var onV = userOnV;\r\n var offV = userOffV;\r\n if (!blockCdn) {\r\n if (cdnM === 4 /* CdnFeatureMode.forceOn */ || cdnM === 5 /* CdnFeatureMode.forceOff */) {\r\n mode = (cdnM == 4 /* CdnFeatureMode.forceOn */ ? 3 /* FeatureOptInMode.enable */ : 2 /* FeatureOptInMode.disable */);\r\n onV = cdnOnV || userOnV;\r\n offV = cdnOffV || userOffV;\r\n }\r\n else if (cdnM === 2 /* CdnFeatureMode.disable */ || userM === 2 /* FeatureOptInMode.disable */) {\r\n mode = 2 /* FeatureOptInMode.disable */;\r\n onV = userOnV || cdnOnV;\r\n offV = userOffV || cdnOffV;\r\n }\r\n else if (cdnM === 3 /* CdnFeatureMode.enable */) {\r\n mode = 3 /* FeatureOptInMode.enable */;\r\n onV = userOnV || cdnOnV;\r\n offV = userOffV || cdnOffV;\r\n }\r\n else if (cdnM === 1 /* CdnFeatureMode.none */ && userM === 1 /* FeatureOptInMode.none */) {\r\n mode = 1 /* FeatureOptInMode.none */;\r\n }\r\n }\r\n return _a = {},\r\n _a[mFld] = mode,\r\n _a[onFld] = onV,\r\n _a[offFld] = offV,\r\n _a;\r\n}\r\n// helper function to get cdn config with opt-in features\r\nexport function applyCdnfeatureCfg(cdnCfg, core) {\r\n try {\r\n if (!cdnCfg || !cdnCfg.enabled) {\r\n return null;\r\n }\r\n if (!cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */]) {\r\n return cdnCfg.config;\r\n }\r\n var optInMap = cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */];\r\n var cdnConfig_1 = cdnCfg.config || {};\r\n objForEachKey(optInMap, function (key) {\r\n var featureVal = resolveCdnFeatureCfg(key, cdnCfg, core.config[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */]);\r\n if (!isNullOrUndefined(featureVal)) {\r\n objForEachKey(featureVal, function (config, val) {\r\n setValueByKey(cdnConfig_1, config, val);\r\n });\r\n _overrideCdnCfgByFeature(key, featureVal, cdnConfig_1);\r\n }\r\n });\r\n return cdnConfig_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\nfunction _overrideCdnCfgByFeature(field, ftVal, config) {\r\n var mode = ftVal[F + field + M];\r\n var val = ftVal[F + field + ON];\r\n var dVal = ftVal[F + field + OFF];\r\n var target = null;\r\n if (mode === 3 /* FeatureOptInMode.enable */) {\r\n target = val;\r\n }\r\n if (mode === 2 /* FeatureOptInMode.disable */) {\r\n target = dVal;\r\n }\r\n if (target) {\r\n objForEachKey(target, function (key, cfg) {\r\n setValueByKey(config, key, cfg);\r\n });\r\n }\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 0.0.2\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* CfgSyncPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, createProcessTelemetryContext, createUniqueNamespace, eventOff, eventOn, getGlobal, getJSON, isFetchSupported, isXhrSupported, mergeEvtNamespace, onConfigChange, sendCustomEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport { doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { applyCdnfeatureCfg, replaceByNonOverrideCfg } from \"./CfgSyncHelperFuncs\";\r\nimport { _DYN_NON_OVERRIDE_CONFIGS, _DYN_ON_CFG_CHANGE_RECEIV0, _DYN_SCHEDULE_FETCH_TIMEO1 } from \"./__DynamicConstants\";\r\nvar EVENT_NAME = \"ai_cfgsync\";\r\nvar STR_GET_METHOD = \"GET\";\r\nvar FETCH_TIMEOUT = 1800000; // 30 minutes\r\nvar udfVal = undefined;\r\nvar defaultNonOverrideCfg = { instrumentationKey: true, connectionString: true, endpointUrl: true };\r\nvar _defaultConfig = objDeepFreeze((_a = {\r\n syncMode: 1 /* ICfgSyncMode.Broadcast */,\r\n blkCdnCfg: udfVal,\r\n customEvtName: udfVal,\r\n cfgUrl: udfVal,\r\n overrideSyncFn: udfVal,\r\n overrideFetchFn: udfVal\r\n },\r\n _a[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:onCfgChangeReceive */] = udfVal,\r\n _a[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:scheduleFetchTimeout */] = FETCH_TIMEOUT,\r\n _a[_DYN_NON_OVERRIDE_CONFIGS /* @min:nonOverrideConfigs */] = defaultNonOverrideCfg,\r\n _a));\r\nvar CfgSyncPlugin = /** @class */ (function (_super) {\r\n __extends(CfgSyncPlugin, _super);\r\n function CfgSyncPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 198;\r\n _this.identifier = \"AppInsightsCfgSyncPlugin\";\r\n var _extensionConfig;\r\n var _mainConfig; // throttle config should be wrapped in IConfiguration\r\n var _evtName;\r\n var _evtNamespace;\r\n var _cfgUrl;\r\n var _timeoutHandle;\r\n var _receiveChanges;\r\n var _broadcastChanges;\r\n var _blkCdnCfg;\r\n var _fetchTimeout;\r\n var _retryCnt;\r\n var _onCfgChangeReceive;\r\n var _nonOverrideConfigs;\r\n var _fetchFn;\r\n var _overrideFetchFn;\r\n var _overrideSyncFn;\r\n var _paused = false;\r\n dynamicProto(CfgSyncPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n };\r\n _self.getCfg = function () {\r\n return _mainConfig;\r\n };\r\n _self.pause = function () {\r\n _paused = true;\r\n _clearScheduledTimer();\r\n };\r\n _self.resume = function () {\r\n _paused = false;\r\n _setupTimer();\r\n };\r\n // used for V2 to manaully trigger config udpate\r\n _self.setCfg = function (config) {\r\n return _setCfg(config);\r\n };\r\n _self.sync = function (customDetails) {\r\n return _sendCfgsyncEvents(customDetails);\r\n };\r\n _self.updateEventListenerName = function (eventName) {\r\n return _updateEventListenerName(eventName);\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _eventOff();\r\n _clearScheduledTimer();\r\n _initDefaults();\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_broadcastChanges, _receiveChanges, _evtName, _blkCdnCfg];\r\n };\r\n function _initDefaults() {\r\n _mainConfig = null;\r\n _evtName = null;\r\n _evtNamespace = null;\r\n _cfgUrl = null;\r\n _receiveChanges = null;\r\n _broadcastChanges = null;\r\n _nonOverrideConfigs = null;\r\n _timeoutHandle = null;\r\n _fetchTimeout = null;\r\n _retryCnt = null;\r\n _blkCdnCfg = null;\r\n _overrideFetchFn = null;\r\n _overrideSyncFn = null;\r\n _onCfgChangeReceive = null;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n var preBlkCdn = _blkCdnCfg;\r\n _blkCdnCfg = !!_extensionConfig.blkCdnCfg;\r\n // avoid initial call\r\n if (!isNullOrUndefined(preBlkCdn) && preBlkCdn !== _blkCdnCfg) {\r\n if (!_blkCdnCfg && _cfgUrl) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n else {\r\n _clearScheduledTimer();\r\n }\r\n }\r\n if (isNullOrUndefined(_receiveChanges)) {\r\n _receiveChanges = _extensionConfig.syncMode === 2 /* ICfgSyncMode.Receive */;\r\n }\r\n if (isNullOrUndefined(_broadcastChanges)) {\r\n _broadcastChanges = _extensionConfig.syncMode === 1 /* ICfgSyncMode.Broadcast */;\r\n }\r\n var newEvtName = _extensionConfig.customEvtName || EVENT_NAME;\r\n if (_evtName !== newEvtName) {\r\n if (_receiveChanges) {\r\n _updateEventListenerName(newEvtName);\r\n }\r\n else {\r\n _eventOff();\r\n _evtName = newEvtName;\r\n }\r\n }\r\n if (isNullOrUndefined(_cfgUrl)) {\r\n _cfgUrl = _extensionConfig.cfgUrl;\r\n }\r\n // if cfgUrl is set, we will ignore core config change\r\n if (!_cfgUrl) {\r\n _mainConfig = config;\r\n if (_broadcastChanges) {\r\n _sendCfgsyncEvents();\r\n }\r\n }\r\n }));\r\n _overrideSyncFn = _extensionConfig.overrideSyncFn;\r\n _overrideFetchFn = _extensionConfig.overrideFetchFn;\r\n _onCfgChangeReceive = _extensionConfig[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:%2eonCfgChangeReceive */];\r\n _nonOverrideConfigs = _extensionConfig[_DYN_NON_OVERRIDE_CONFIGS /* @min:%2enonOverrideConfigs */];\r\n _fetchTimeout = _extensionConfig[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:%2escheduleFetchTimeout */];\r\n _fetchFn = _getFetchFnInterface();\r\n _retryCnt = 0;\r\n // NOT support cfgURL change to avoid mutiple fetch calls\r\n if (_cfgUrl && !_blkCdnCfg) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n }\r\n function _setCfg(config, isAutoSync) {\r\n if (config) {\r\n _mainConfig = config;\r\n if (!!isAutoSync && !_paused) {\r\n return _sendCfgsyncEvents();\r\n }\r\n if (_receiveChanges && !_paused) {\r\n _self.core.updateCfg(config);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _eventOff() {\r\n try {\r\n var global_1 = getGlobal();\r\n if (global_1) {\r\n eventOff(global_1, null, null, _evtNamespace);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _sendCfgsyncEvents(customDetails) {\r\n try {\r\n if (!!_overrideSyncFn && isFunction(_overrideSyncFn)) {\r\n return _overrideSyncFn(_mainConfig, customDetails);\r\n }\r\n return sendCustomEvent(_evtName, _mainConfig, customDetails);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _updateEventListenerName(name) {\r\n try {\r\n _eventOff();\r\n if (name) {\r\n _evtName = name;\r\n _addEventListener();\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _getFetchFnInterface() {\r\n var _fetchFn = _overrideFetchFn;\r\n if (isNullOrUndefined(_fetchFn)) {\r\n if (isFetchSupported()) {\r\n _fetchFn = _fetchSender;\r\n }\r\n else if (isXhrSupported()) {\r\n _fetchFn = _xhrSender;\r\n }\r\n }\r\n return _fetchFn;\r\n }\r\n function _fetchSender(url, oncomplete, isAutoSync) {\r\n var global = getGlobal();\r\n var fetchFn = (global && global.fetch) || null;\r\n if (url && fetchFn && isFunction(fetchFn)) {\r\n try {\r\n var init = {\r\n method: STR_GET_METHOD\r\n };\r\n var request = new Request(url, init);\r\n doAwaitResponse(fetch(request), function (result) {\r\n var response = result.value;\r\n if (!result.rejected) {\r\n if (response.ok) {\r\n doAwaitResponse(response.text(), function (res) {\r\n _doOnComplete(oncomplete, response.status, res.value, isAutoSync);\r\n });\r\n }\r\n else {\r\n _doOnComplete(oncomplete, response.status, null, isAutoSync);\r\n }\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 400);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n function _xhrSender(url, oncomplete, isAutoSync) {\r\n try {\r\n var xhr_1 = new XMLHttpRequest();\r\n xhr_1.open(STR_GET_METHOD, url);\r\n xhr_1.onreadystatechange = function () {\r\n if (xhr_1.readyState === XMLHttpRequest.DONE) {\r\n _doOnComplete(oncomplete, xhr_1.status, xhr_1.responseText, isAutoSync);\r\n }\r\n };\r\n xhr_1.onerror = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.ontimeout = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.send();\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _onFetchComplete(status, response, isAutoSync) {\r\n try {\r\n if (status >= 200 && status < 400 && response) {\r\n _retryCnt = 0; // any successful response will reset retry count to 0\r\n var JSON_1 = getJSON();\r\n if (JSON_1) {\r\n var cdnCfg = JSON_1.parse(response); //comments are not allowed\r\n var cfg = applyCdnfeatureCfg(cdnCfg, _self.core);\r\n cfg && _setCfg(cfg, isAutoSync);\r\n }\r\n }\r\n else {\r\n _retryCnt++;\r\n }\r\n if (_retryCnt < 3) {\r\n _setupTimer();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doOnComplete(oncomplete, status, response, isAutoSync) {\r\n try {\r\n oncomplete(status, response, isAutoSync);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _addEventListener() {\r\n if (_receiveChanges) {\r\n var global_2 = getGlobal();\r\n if (global_2) {\r\n try {\r\n eventOn(global_2, _evtName, function (event) {\r\n // TODO: add more validation here\r\n // may include a \"name\" or some other features to check\r\n var cfgEvent = event && event.detail;\r\n if (_onCfgChangeReceive && cfgEvent) {\r\n _onCfgChangeReceive(cfgEvent);\r\n }\r\n else {\r\n var cfg = cfgEvent && cfgEvent.cfg;\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg);\r\n }\r\n }, _evtNamespace, true);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n }\r\n // 4 levels\r\n function _replaceTartgetByKeys(cfg, level) {\r\n var _cfg = null;\r\n try {\r\n if (cfg) {\r\n _cfg = replaceByNonOverrideCfg(cfg, _nonOverrideConfigs, 0, 5);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return _cfg;\r\n }\r\n /**\r\n * Sets up the timer which triggers fetching cdn every 30mins after inital call\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && _fetchTimeout) {\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }, _fetchTimeout);\r\n _timeoutHandle.unref();\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryCnt = 0;\r\n }\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for CfgSyncPlugin.prototype.initialize.\r\n// Removed Stub for CfgSyncPlugin.prototype.getCfg.\r\n// Removed Stub for CfgSyncPlugin.prototype.setCfg.\r\n// Removed Stub for CfgSyncPlugin.prototype.sync.\r\n// Removed Stub for CfgSyncPlugin.prototype.updateEventListenerName.\r\n// Removed Stub for CfgSyncPlugin.prototype.pause.\r\n// Removed Stub for CfgSyncPlugin.prototype.resume.\r\n //// Removed Stub for CfgSyncPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n CfgSyncPlugin.__ieDyn=1;\n\n return CfgSyncPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { CfgSyncPlugin };\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { objDefineProp } from \"@nevware21/ts-utils\";\r\nvar _debugState;\r\nvar _debugResult;\r\nvar _debugHandled;\r\n/**\r\n * @internal\r\n * @ignore\r\n */\r\nexport var _promiseDebugEnabled = false;\r\nvar _theLogger = null;\r\n/**\r\n * @internal\r\n * @ignore Internal function enable logging the internal state of the promise during execution, this code and references are\r\n * removed from the production artifacts\r\n */\r\nexport function _debugLog(id, message) {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) if (_theLogger) {\r\n //#:(!DEBUG) _theLogger(id, message);\r\n //#:(!DEBUG) }\r\n //#endif\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Internal function to add the debug state to the promise so that it provides simular visibility as you would\r\n * see from native promises\r\n * @param thePromise - The Promise implementation\r\n * @param stateFn - The function to return the state of the promise\r\n * @param resultFn - The function to return the result (settled value) of the promise\r\n * @param handledFn - The function to return whether the promise has been handled (used for throwing\r\n * unhandled rejection events)\r\n */\r\nexport function _addDebugState(thePromise, stateFn, resultFn, handledFn) {\r\n // While the IPromise implementations provide a `state` property, keeping the `[[PromiseState]]`\r\n // as native promises also have a non-enumerable property of the same name\r\n _debugState = _debugState || { toString: function () { return \"[[PromiseState]]\"; } };\r\n _debugResult = _debugResult || { toString: function () { return \"[[PromiseResult]]\"; } };\r\n _debugHandled = _debugHandled || { toString: function () { return \"[[PromiseIsHandled]]\"; } };\r\n objDefineProp(thePromise, _debugState, { get: stateFn });\r\n objDefineProp(thePromise, _debugResult, { get: resultFn });\r\n objDefineProp(thePromise, _debugHandled, { get: handledFn });\r\n}\r\n/**\r\n * Debug helper to enable internal debugging of the promise implementations. Disabled by default.\r\n * For the generated packages included in the npm package the `logger` will not be called as the\r\n * `_debugLog` function that uses this logger is removed during packaging.\r\n *\r\n * It is available directly from the repository for unit testing.\r\n *\r\n * @group Debug\r\n * @param enabled - Should debugging be enabled (defaults `false`, when `true` promises will have\r\n * additional debug properties and the `toString` will include extra details.\r\n * @param logger - Optional logger that will log internal state changes, only called in debug\r\n * builds as the calling function is removed is the production artifacts.\r\n * @example\r\n * ```ts\r\n * // The Id is the id of the promise\r\n * // The message is the internal debug message\r\n * function promiseDebugLogger(id: string, message: string) {\r\n * if (console && console.log) {\r\n * console.log(id, message);\r\n * }\r\n * }\r\n *\r\n * setPromiseDebugState(true, promiseDebugLogger);\r\n *\r\n * // While the logger will not be called for the production packages\r\n * // Setting the `enabled` flag to tru will cause each promise to have\r\n * // the following additional properties added\r\n * // [[PromiseState]]; => Same as the `state` property\r\n * // [[PromiseResult]]; => The settled value\r\n * // [[PromiseIsHandled]] => Identifies if the promise has been handled\r\n * // It will also cause the `toString` for the promise to include additional\r\n * // debugging information\r\n * ```\r\n */\r\nexport function setPromiseDebugState(enabled, logger) {\r\n _promiseDebugEnabled = enabled;\r\n _theLogger = logger;\r\n}\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { dumpObj, getDocument, safeGetLazy, getInst } from \"@nevware21/ts-utils\";\r\nvar DISPATCH_EVENT = \"dispatchEvent\";\r\nvar _hasInitEvent;\r\n/**\r\n * @internal\r\n * @ignore\r\n * @param target\r\n * @param evtName\r\n * @param populateEvent\r\n * @param useNewEvent\r\n */\r\nexport function emitEvent(target, evtName, populateEvent, useNewEvent) {\r\n var doc = getDocument();\r\n !_hasInitEvent && (_hasInitEvent = safeGetLazy(function () {\r\n var evt;\r\n if (doc && doc.createEvent) {\r\n evt = doc.createEvent(\"Event\");\r\n }\r\n return (!!evt && evt.initEvent);\r\n }, null));\r\n var theEvt = _hasInitEvent.v ? doc.createEvent(\"Event\") : (useNewEvent ? new Event(evtName) : {});\r\n populateEvent && populateEvent(theEvt);\r\n if (_hasInitEvent.v) {\r\n theEvt.initEvent(evtName, false, true);\r\n }\r\n if (theEvt && target[DISPATCH_EVENT]) {\r\n target[DISPATCH_EVENT](theEvt);\r\n }\r\n else {\r\n var handler = target[\"on\" + evtName];\r\n if (handler) {\r\n handler(theEvt);\r\n }\r\n else {\r\n var theConsole = getInst(\"console\");\r\n theConsole && (theConsole[\"error\"] || theConsole[\"log\"])(evtName, dumpObj(theEvt));\r\n }\r\n }\r\n}\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { arrForEach, arrSlice, dumpObj, getKnownSymbol, hasSymbol, isFunction, isPromiseLike, isUndefined, throwTypeError, objToString, scheduleTimeout, getWindow, isNode, getGlobal, objDefine, objDefineProp, lazySafeGetInst } from \"@nevware21/ts-utils\";\r\nimport { doAwait } from \"./await\";\r\nimport { _addDebugState, _promiseDebugEnabled } from \"./debug\";\r\nimport { STRING_STATES } from \"../internal/state\";\r\nimport { emitEvent } from \"./event\";\r\nimport { STR_PROMISE } from \"../internal/constants\";\r\nvar NODE_UNHANDLED_REJECTION = \"unhandledRejection\";\r\nvar UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();\r\nvar _currentPromiseId = [];\r\nvar _uniquePromiseId = 0;\r\nvar _unhandledRejectionTimeout = 10;\r\nvar _hasPromiseRejectionEvent;\r\nfunction dumpFnObj(value) {\r\n if (isFunction(value)) {\r\n return value.toString();\r\n }\r\n return dumpObj(value);\r\n}\r\nexport function _createPromise(newPromise, processor, executor) {\r\n var additionalArgs = arrSlice(arguments, 3);\r\n var _state = 0 /* ePromiseState.Pending */;\r\n var _hasResolved = false;\r\n var _settledValue;\r\n var _queue = [];\r\n var _id = _uniquePromiseId++;\r\n var _parentId = _currentPromiseId.length > 0 ? _currentPromiseId[_currentPromiseId.length - 1] : undefined;\r\n var _handled = false;\r\n var _unHandledRejectionHandler = null;\r\n var _thePromise;\r\n !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = lazySafeGetInst(STR_PROMISE + \"RejectionEvent\"));\r\n // https://tc39.es/ecma262/#sec-promise.prototype.then\r\n var _then = function (onResolved, onRejected) {\r\n try {\r\n _currentPromiseId.push(_id);\r\n _handled = true;\r\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\r\n _unHandledRejectionHandler = null;\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"then(\" + dumpFnObj(onResolved)+ \", \" + dumpFnObj(onResolved) + \")\");\r\n //#endif\r\n var thenPromise = newPromise(function (resolve, reject) {\r\n // Queue the new promise returned to be resolved or rejected\r\n // when this promise settles.\r\n _queue.push(function () {\r\n // https://tc39.es/ecma262/#sec-newpromisereactionjob\r\n //let value: any;\r\n try {\r\n // First call the onFulfilled or onRejected handler, on the settled value\r\n // of this promise. If the corresponding `handler` does not exist, simply\r\n // pass through the settled value.\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Handling settled value \" + dumpFnObj(_settledValue));\r\n //#endif\r\n var handler = _state === 2 /* ePromiseState.Resolved */ ? onResolved : onRejected;\r\n var value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler);\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Handling Result \" + dumpFnObj(value));\r\n //#endif\r\n if (isPromiseLike(value)) {\r\n // The called handlers returned a new promise, so the chained promise\r\n // will follow the state of this promise.\r\n value.then(resolve, reject);\r\n }\r\n else if (handler) {\r\n // If we have a handler then chained promises are always \"resolved\" with the result returned\r\n resolve(value);\r\n }\r\n else if (_state === 3 /* ePromiseState.Rejected */) {\r\n // If this promise is rejected then the chained promise should be rejected\r\n // with either the settled value of this promise or the return value of the handler.\r\n reject(value);\r\n }\r\n else {\r\n // If this promise is fulfilled, then the chained promise is also fulfilled\r\n // with either the settled value of this promise or the return value of the handler.\r\n resolve(value);\r\n }\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n });\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Added to Queue \" + _queue.length);\r\n //#endif\r\n // If this promise is already settled, then immediately process the callback we\r\n // just added to the queue.\r\n if (_hasResolved) {\r\n _processQueue();\r\n }\r\n }, additionalArgs);\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Created -> \" + thenPromise.toString());\r\n //#endif\r\n return thenPromise;\r\n }\r\n finally {\r\n _currentPromiseId.pop();\r\n }\r\n };\r\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\r\n var _catch = function (onRejected) {\r\n // Reuse then onRejected to support rejection\r\n return _then(undefined, onRejected);\r\n };\r\n // https://tc39.es/ecma262/#sec-promise.prototype.finally\r\n var _finally = function (onFinally) {\r\n var thenFinally = onFinally;\r\n var catchFinally = onFinally;\r\n if (isFunction(onFinally)) {\r\n thenFinally = function (value) {\r\n onFinally && onFinally();\r\n return value;\r\n };\r\n catchFinally = function (reason) {\r\n onFinally && onFinally();\r\n throw reason;\r\n };\r\n }\r\n return _then(thenFinally, catchFinally);\r\n };\r\n var _strState = function () {\r\n return STRING_STATES[_state];\r\n };\r\n var _processQueue = function () {\r\n if (_queue.length > 0) {\r\n // The onFulfilled and onRejected handlers must be called asynchronously. Thus,\r\n // we make a copy of the queue and work on it once the current call stack unwinds.\r\n var pending = _queue.slice();\r\n _queue = [];\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Processing queue \" + pending.length);\r\n //#endif\r\n _handled = true;\r\n processor(pending);\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Processing done\");\r\n //#endif\r\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\r\n _unHandledRejectionHandler = null;\r\n }\r\n else {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Empty Processing queue \");\r\n //#endif\r\n }\r\n };\r\n var _createSettleIfFn = function (newState, allowState) {\r\n return function (theValue) {\r\n if (_state === allowState) {\r\n if (newState === 2 /* ePromiseState.Resolved */ && isPromiseLike(theValue)) {\r\n _state = 1 /* ePromiseState.Resolving */;\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Resolving\");\r\n //#endif\r\n theValue.then(_createSettleIfFn(2 /* ePromiseState.Resolved */, 1 /* ePromiseState.Resolving */), _createSettleIfFn(3 /* ePromiseState.Rejected */, 1 /* ePromiseState.Resolving */));\r\n return;\r\n }\r\n _state = newState;\r\n _hasResolved = true;\r\n _settledValue = theValue;\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), _strState());\r\n //#endif\r\n _processQueue();\r\n if (!_handled && newState === 3 /* ePromiseState.Rejected */ && !_unHandledRejectionHandler) {\r\n _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout);\r\n }\r\n }\r\n else {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Already \" + _strState());\r\n //#endif\r\n }\r\n };\r\n };\r\n var _notifyUnhandledRejection = function () {\r\n if (!_handled) {\r\n if (isNode()) {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Emitting \" + NODE_UNHANDLED_REJECTION);\r\n //#endif\r\n process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);\r\n }\r\n else {\r\n var gbl = getWindow() || getGlobal();\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Emitting \" + UNHANDLED_REJECTION);\r\n //#endif\r\n emitEvent(gbl, UNHANDLED_REJECTION, function (theEvt) {\r\n objDefine(theEvt, \"promise\", { g: function () { return _thePromise; } });\r\n theEvt.reason = _settledValue;\r\n return theEvt;\r\n }, !!_hasPromiseRejectionEvent.v);\r\n }\r\n }\r\n };\r\n _thePromise = {\r\n then: _then,\r\n \"catch\": _catch,\r\n finally: _finally\r\n };\r\n objDefineProp(_thePromise, \"state\", {\r\n get: _strState\r\n });\r\n if (_promiseDebugEnabled) {\r\n // eslint-disable-next-line brace-style\r\n _addDebugState(_thePromise, _strState, function () { return objToString(_settledValue); }, function () { return _handled; });\r\n }\r\n if (hasSymbol()) {\r\n _thePromise[getKnownSymbol(11 /* WellKnownSymbols.toStringTag */)] = \"IPromise\";\r\n }\r\n var _toString = function () {\r\n return \"IPromise\" + (_promiseDebugEnabled ? \"[\" + _id + (!isUndefined(_parentId) ? (\":\" + _parentId) : \"\") + \"]\" : \"\") + \" \" + _strState() + (_hasResolved ? (\" - \" + dumpFnObj(_settledValue)) : \"\");\r\n };\r\n _thePromise.toString = _toString;\r\n (function _initialize() {\r\n if (!isFunction(executor)) {\r\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpFnObj(executor));\r\n }\r\n var _rejectFn = _createSettleIfFn(3 /* ePromiseState.Rejected */, 0 /* ePromiseState.Pending */);\r\n try {\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Executing\");\r\n //#endif\r\n executor.call(_thePromise, _createSettleIfFn(2 /* ePromiseState.Resolved */, 0 /* ePromiseState.Pending */), _rejectFn);\r\n }\r\n catch (e) {\r\n _rejectFn(e);\r\n }\r\n })();\r\n //#ifdef DEBUG\r\n //#:(!DEBUG) _debugLog(_toString(), \"Returning\");\r\n //#endif\r\n return _thePromise;\r\n}\r\n/**\r\n * @ignore\r\n * @internal\r\n * Returns a function which when called will return a new Promise object that resolves to an array of the\r\n * results from the input promises. The returned promise will resolve when all of the inputs' promises have\r\n * resolved, or if the input contains no promises. It rejects immediately upon any of the input promises\r\n * rejected or non-promises throwing an error, and will reject with this first rejection message / error.\r\n * @param newPromise - The delegate function used to create a new promise object the new promise instance.\r\n * @returns A function to create a promise that will be resolved when all arguments are resolved.\r\n */\r\nexport function _createAllPromise(newPromise) {\r\n return function (input) {\r\n var additionalArgs = arrSlice(arguments, 1);\r\n return newPromise(function (resolve, reject) {\r\n try {\r\n var values_1 = [];\r\n var pending_1 = 1; // Prefix to 1 so we finish iterating over all of the input promises first\r\n arrForEach(input, function (item, idx) {\r\n if (item) {\r\n pending_1++;\r\n doAwait(item, function (value) {\r\n // Set the result values\r\n values_1[idx] = value;\r\n if (--pending_1 === 0) {\r\n resolve(values_1);\r\n }\r\n }, reject);\r\n }\r\n });\r\n // Now decrement the pending so that we finish correctly\r\n pending_1--;\r\n if (pending_1 === 0) {\r\n // All promises were either resolved or where not a promise\r\n resolve(values_1);\r\n }\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n }, additionalArgs);\r\n };\r\n}\r\n/**\r\n * @ignore\r\n * @internal\r\n * The createResolvedPromise returns a PromiseLike object that is resolved with a given value. If the value is\r\n * PromiseLike (i.e. has a \"then\" method), the returned promise will \"follow\" that thenable, adopting its eventual\r\n * state; otherwise the returned promise will be fulfilled with the value. This function flattens nested layers\r\n * of promise-like objects (e.g. a promise that resolves to a promise that resolves to something) into a single layer.\r\n * @param newPromise - The delegate function used to create a new promise object\r\n * @param value Argument to be resolved by this Promise. Can also be a Promise or a thenable to resolve.\r\n * @param additionalArgs - Any additional arguments that should be passed to the delegate to assist with the creation of\r\n * the new promise instance.\r\n */\r\nexport function _createResolvedPromise(newPromise) {\r\n return function (value) {\r\n var additionalArgs = arrSlice(arguments, 1);\r\n if (isPromiseLike(value)) {\r\n return value;\r\n }\r\n return newPromise(function (resolve) {\r\n resolve(value);\r\n }, additionalArgs);\r\n };\r\n}\r\n/**\r\n * @ignore\r\n * @internal\r\n * Return a promise like object that is rejected with the given reason.\r\n * @param newPromise - The delegate function used to create a new promise object\r\n * @param reason - The rejection reason\r\n * @param additionalArgs - Any additional arguments that should be passed to the delegate to assist with the creation of\r\n * the new promise instance.\r\n */\r\nexport function _createRejectedPromise(newPromise) {\r\n return function (reason) {\r\n var additionalArgs = arrSlice(arguments, 1);\r\n return newPromise(function (_resolve, reject) {\r\n reject(reason);\r\n }, additionalArgs);\r\n };\r\n}\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\n/**\r\n * @ignore -- Don't include in the generated documentation\r\n * @internal\r\n */\r\nexport var STRING_STATES = [\r\n \"pending\", \"resolving\", \"resolved\", \"rejected\"\r\n];\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2023 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nexport var STR_PROMISE = \"Promise\";\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { arrForEach, isNumber, scheduleIdleCallback, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nvar _processPendingItems = function (pending) {\r\n arrForEach(pending, function (fn) {\r\n try {\r\n fn();\r\n }\r\n catch (e) {\r\n // Don't let 1 failing handler break all others\r\n // TODO: Add some form of error reporting (i.e. Call any registered JS error handler so the error is reported)\r\n }\r\n });\r\n};\r\n/**\r\n * @internal\r\n * @ignore\r\n * Return an item processor that processes all of the pending items synchronously\r\n * @return An item processor\r\n */\r\nexport function syncItemProcessor() {\r\n return _processPendingItems;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Return an item processor that processes all of the pending items asynchronously using the optional timeout.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n * @return An item processor\r\n */\r\nexport function timeoutItemProcessor(timeout) {\r\n var callbackTimeout = isNumber(timeout) ? timeout : 0;\r\n return function (pending) {\r\n scheduleTimeout(function () {\r\n _processPendingItems(pending);\r\n }, callbackTimeout);\r\n };\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Return an item processor that processes all of the pending items using an idle callback (if available) or based on\r\n * a timeout (when `requestIdenCallback` is not supported) using the optional timeout.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n * @return An item processor\r\n */\r\nexport function idleItemProcessor(timeout) {\r\n var options;\r\n if (timeout >= 0) {\r\n options = {\r\n timeout: +timeout\r\n };\r\n }\r\n return function (pending) {\r\n scheduleIdleCallback(function (deadline) {\r\n _processPendingItems(pending);\r\n }, options);\r\n };\r\n}\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { createAsyncPromise } from \"./asyncPromise\";\r\nimport { _createAllPromise, _createRejectedPromise, _createResolvedPromise } from \"./base\";\r\nimport { STRING_STATES } from \"../internal/state\";\r\nimport { dumpObj, lazySafeGetInst, isFunction, objDefineProp, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { STR_PROMISE } from \"../internal/constants\";\r\nvar _isPromiseSupported;\r\n/**\r\n * Creates a Promise instance that when resolved or rejected will execute it's pending chained operations using the\r\n * available native Promise implementation.\r\n * If runtime does not support native `Promise` class (or no polyfill is available) this function will fallback to using\r\n * `createAsyncPromise` which will resolve them __asynchronously__ using the optional provided timeout value to\r\n * schedule when the chained items will be executed.\r\n * @group Alias\r\n * @group Promise\r\n * @group Native\r\n * @param executor - The function to be executed during the creation of the promise. Any errors thrown in the executor will\r\n * cause the promise to be rejected. The return value of the executor is always ignored\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport function createNativePromise(executor, timeout) {\r\n !_isPromiseSupported && (_isPromiseSupported = lazySafeGetInst(STR_PROMISE));\r\n var PrmCls = _isPromiseSupported.v;\r\n if (!PrmCls) {\r\n return createAsyncPromise(executor);\r\n }\r\n if (!isFunction(executor)) {\r\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpObj(executor));\r\n }\r\n var _state = 0 /* ePromiseState.Pending */;\r\n function _strState() {\r\n return STRING_STATES[_state];\r\n }\r\n var thePromise = new PrmCls(function (resolve, reject) {\r\n function _resolve(value) {\r\n _state = 2 /* ePromiseState.Resolved */;\r\n resolve(value);\r\n }\r\n function _reject(reason) {\r\n _state = 3 /* ePromiseState.Rejected */;\r\n reject(reason);\r\n }\r\n executor(_resolve, _reject);\r\n });\r\n objDefineProp(thePromise, \"state\", {\r\n get: _strState\r\n });\r\n return thePromise;\r\n}\r\n/**\r\n * Returns a single asynchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations __asynchronously__ using the optional\r\n * provided timeout value to schedule when the chained items will be executed, or if the input contains no promises.\r\n * It rejects immediately upon any of the input promises rejected or non-promises throwing an error,\r\n * and will reject with this first rejection message / error.\r\n * If the runtime doesn't support the Promise.all it will fallback back to an asynchronous Promise implementation.\r\n * @group Alias\r\n * @group All\r\n * @group Native\r\n * @param input - The array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout\r\n * @returns\r\n *
    \r\n *
  • An already resolved `Promise`, if the input passed is empty.\r\n *
  • A pending `Promise` in all other cases. This returned promise is then resolved/rejected __synchronously__\r\n * (as soon as the pending items is empty) when all the promises in the given input have resolved, or if any of the\r\n * promises reject.\r\n *
\r\n */\r\nexport var createNativeAllPromise = _createAllPromise(createNativePromise);\r\n/**\r\n * Returns a single asynchronous Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new asynchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedule when the chained items will be executed.(eg. `then()`; `finally()`).\r\n * @group Alias\r\n * @group Resolved\r\n * @group Native\r\n * @param value - The value to be used by this `Promise`. Can also be a `Promise` or a thenable to resolve.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport var createNativeResolvedPromise = _createResolvedPromise(createNativePromise);\r\n/**\r\n * Returns a single asynchronous Promise instance that is already rejected with the given reason.\r\n * Any chained operations will execute __asynchronously__ using the optional timeout value to schedule\r\n * when then chained items will be executed. (eg. `catch()`; `finally()`).\r\n * @group Alias\r\n * @group Rejected\r\n * @group Native\r\n * @param reason - The rejection reason\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport var createNativeRejectedPromise = _createRejectedPromise(createNativePromise);\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { getLazy } from \"@nevware21/ts-utils\";\r\nimport { _createAllPromise, _createRejectedPromise, _createResolvedPromise } from \"./base\";\r\nimport { createNativePromise } from \"./nativePromise\";\r\nvar _promiseCreator;\r\n/**\r\n * Set the default promise implementation to use when calling `createPromise`; `createAllPromise`; `createResolvedPromise`\r\n * and `createRejectedPromise`. This is effective a global value and changing this will affect ALL callers of these\r\n * functions, as such these functions should only be used when switching implementations would have not unexpected\r\n * consequences like switching from a `createSyncPromise` to `createIdlePromise` where idle promises have a possibility\r\n * of never getting called during application shutdown or during an expected timeframe.\r\n * @group Alias\r\n * @group Promise\r\n * @param creator - The creator function to call when a new promise is required.\r\n */\r\nexport function setCreatePromiseImpl(creator) {\r\n _promiseCreator = creator ? getLazy(function () { return creator; }) : null;\r\n}\r\n/**\r\n * Creates a Promise instance using the current default promise creator that when resolved or rejected will execute\r\n * it's pending chained operations.\r\n * @group Alias\r\n * @group Promise\r\n * @param executor - The function to be executed during the creation of the promise. Any errors thrown in the executor will\r\n * cause the promise to be rejected. The return value of the executor is always ignored\r\n * @param timeout - [Optional] timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport function createPromise(executor, timeout) {\r\n !_promiseCreator && (_promiseCreator = getLazy(function () { return createNativePromise; }));\r\n return _promiseCreator.v.call(this, executor, timeout);\r\n}\r\n/**\r\n * Returns a single asynchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations __asynchronously__ using the optional\r\n * provided timeout value to schedule when the chained items will be executed, or if the input contains no promises.\r\n * It rejects immediately upon any of the input promises rejected or non-promises throwing an error,\r\n * and will reject with this first rejection message / error.\r\n * If the runtime doesn't support the Promise.all it will fallback back to an asynchronous Promise implementation.\r\n * @group Alias\r\n * @group All\r\n * @param input - The array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout\r\n * @returns\r\n *
    \r\n *
  • An already resolved `Promise`, if the input passed is empty.\r\n *
  • A pending `Promise` in all other cases. This returned promise is then resolved/rejected __synchronously__\r\n * (as soon as the pending items is empty) when all the promises in the given input have resolved, or if any of the\r\n * promises reject.\r\n *
\r\n */\r\nexport var createAllPromise = _createAllPromise(createPromise);\r\n/**\r\n * Returns a single asynchronous Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new asynchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedule when the chained items will be executed.(eg. `then()`; `finally()`).\r\n * @group Alias\r\n * @group Resolved\r\n * @param value - The value to be used by this `Promise`. Can also be a `Promise` or a thenable to resolve.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport var createResolvedPromise = _createResolvedPromise(createPromise);\r\n/**\r\n * Returns a single asynchronous Promise instance that is already rejected with the given reason.\r\n * Any chained operations will execute __asynchronously__ using the optional timeout value to schedule\r\n * when then chained items will be executed. (eg. `catch()`; `finally()`).\r\n * @group Alias\r\n * @group Rejected\r\n * @param reason - The rejection reason\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport var createRejectedPromise = _createRejectedPromise(createPromise);\r\n","/*\r\n * @nevware21/ts-async\r\n * https://github.com/nevware21/ts-async\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { _createAllPromise, _createPromise, _createRejectedPromise, _createResolvedPromise } from \"./base\";\r\nimport { timeoutItemProcessor } from \"./itemProcessor\";\r\n/**\r\n * Creates an asynchronous Promise instance that when resolved or rejected will execute it's pending chained operations\r\n * __asynchronously__ using the optional provided timeout value to schedule when the chained items will be ececuted.\r\n * @group Async\r\n * @group Promise\r\n * @param executor - The function to be executed during the creation of the promise. Any errors thrown in the executor will\r\n * cause the promise to be rejected. The return value of the executor is always ignored\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport function createAsyncPromise(executor, timeout) {\r\n return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);\r\n}\r\n/**\r\n * Returns a single asynchronous Promise instance that resolves to an array of the results from the input promises.\r\n * This returned promise will resolve and execute it's pending chained operations __asynchronously__ using the optional\r\n * provided timeout value to schedule when the chained items will be executed, or if the input contains no promises.\r\n * It rejects immediately upon any of the input promises rejected or non-promises throwing an error,\r\n * and will reject with this first rejection message / error.\r\n * When resolved or rejected any additional chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedul when the chained item will be executed (eg. `then()`; `catch()`; `finally()`).\r\n * @group Async\r\n * @group All\r\n * @param input - The array of promises to wait to be resolved / rejected before resolving or rejecting the new promise\r\n * @param timeout\r\n * @returns\r\n *
    \r\n *
  • An already resolved `Promise`, if the input passed is empty.\r\n *
  • A pending `Promise` in all other cases. This returned promise is then resolved/rejected __synchronously__\r\n * (as soon as the pending items is empty) when all the promises in the given input have resolved, or if any of the\r\n * promises reject.\r\n *
\r\n */\r\nexport var createAsyncAllPromise = _createAllPromise(createAsyncPromise);\r\n// /**\r\n// * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved\r\n// * or rejected.\r\n// * @param values An array of Promises.\r\n// * @returns A new Promise.\r\n// */\r\n// race(values: T): Promise>;\r\n//export const createAsyncRacePromise: (values: T): IPromise;\r\n/**\r\n * Returns a single asynchronous Promise instance that is already resolved with the given value. If the value passed is\r\n * a promise then that promise is returned instead of creating a new asynchronous promise instance.\r\n * If a new instance is returned then any chained operations will execute __asynchronously__ using the optional\r\n * timeout value to schedule when the chained items will be executed.(eg. `then()`; `finally()`).\r\n * @group Async\r\n * @group Resolved\r\n * @param value - The value to be used by this `Promise`. Can also be a `Promise` or a thenable to resolve.\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport var createAsyncResolvedPromise = _createResolvedPromise(createAsyncPromise);\r\n/**\r\n * Returns a single asynchronous Promise instance that is already rejected with the given reason.\r\n * Any chained operations will execute __asynchronously__ using the optional timeout value to schedule\r\n * when then chained items will be executed. (eg. `catch()`; `finally()`).\r\n * @group Async\r\n * @group Rejected\r\n * @param reason - The rejection reason\r\n * @param timeout - Optional timeout to wait before processing the items, defaults to zero.\r\n */\r\nexport var createAsyncRejectedPromise = _createRejectedPromise(createAsyncPromise);\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { LENGTH } from \"../internal/constants\";\r\nimport { _unwrapProp } from \"../internal/unwrapFunction\";\r\n/**\r\n * Helper to return the length value of an object, this will return the value\r\n * of the \"length\" property. Generally used to return the length of a string or array.\r\n *\r\n * @since 0.4.2\r\n * @group Array\r\n * @group String\r\n * @group String\r\n * @group Array\r\n * @group Object\r\n * @param value - The value to return the length property from, must contain a `length` property\r\n * @example\r\n * ```ts\r\n * getLength(\"\"); // returns 0\r\n * getLength(\"Hello World\"); // returns 11\r\n * getLength([]); // returns 0;\r\n * getLength([0, 1, 2, 3]); // returns 4;\r\n * getLength({ length: 42}); // returns 42\r\n * getLength({ length: () => 53; }); // returns the function that if called would return 53\r\n * ```\r\n */\r\nexport var getLength = _unwrapProp(LENGTH);\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrSlice, getLength } from \"@nevware21/ts-utils\";\r\nimport { _DYN_UNLOAD } from \"../__DynamicConstants\";\r\n/**\r\n * Run the unload function of the target object if it exists\r\n * @param target - The target object that contains the unload function\r\n * @param isAsync - The caller identifies whether it is expecting the operation to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @returns The result of the target function\r\n */\r\nexport function runTargetUnload(target, isAsync) {\r\n if (target && target[_DYN_UNLOAD /* @min:%2eunload */]) {\r\n return target[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n }\r\n}\r\n/**\r\n * Call the unload function on all targets handling any returned [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * / Promise before calling the next targets unload\r\n * @param targets - An array of the targets to unload\r\n * @param isAsync - The caller identifies whether it is expecting the operations to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @param done - Optional callback function to call once all of the unload functions have been called.\r\n */\r\nexport function doUnloadAll(targets, isAsync, done) {\r\n var result;\r\n if (!done) {\r\n result = createPromise(function (resolved) {\r\n done = resolved;\r\n });\r\n }\r\n if (targets && getLength(targets) > 0) {\r\n doAwaitResponse(runTargetUnload(targets[0], isAsync), function () {\r\n doUnloadAll(arrSlice(targets, 1), isAsync, done);\r\n });\r\n }\r\n else {\r\n done();\r\n }\r\n return result;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { ContextTagKeys } from \"./Contracts/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nimport { _DYN_NAME } from \"../../__DynamicConstants\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nvar Envelope = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = this;\r\n var _self = this;\r\n _self.ver = 1;\r\n _self.sampleRate = 100.0;\r\n _self.tags = {};\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.data = data;\r\n _self.time = toISOString(new Date());\r\n _self.aiDataContract = {\r\n time: 1 /* FieldType.Required */,\r\n iKey: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* FieldType.Hidden */ : 1 /* FieldType.Required */;\r\n },\r\n tags: 1 /* FieldType.Required */,\r\n data: 1 /* FieldType.Required */\r\n };\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Data = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n baseType: 1 /* FieldType.Required */,\r\n baseData: 1 /* FieldType.Required */\r\n };\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n return Data;\r\n}());\r\nexport { Data };\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TAGS = \"tags\"; // Count: 17\r\nexport var _DYN_DEVICE_TYPE = \"deviceType\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 13\r\nexport var _DYN_NAME = \"name\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 36\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 5\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 10\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 7\r\nexport var _DYN_ON_LINE = \"onLine\"; // Count: 4\r\nexport var _DYN_IS_ONLINE = \"isOnline\"; // Count: 3\r\nexport var _DYN__GET = \"_get\"; // Count: 5\r\nexport var _DYN_ENQUEUE = \"enqueue\"; // Count: 7\r\nexport var _DYN_COUNT = \"count\"; // Count: 6\r\nexport var _DYN_EVENTS_LIMIT_IN_MEM = \"eventsLimitInMem\"; // Count: 2\r\nexport var _DYN_PUSH = \"push\"; // Count: 6\r\nexport var _DYN_EMIT_LINE_DELIMITED_0 = \"emitLineDelimitedJson\"; // Count: 3\r\nexport var _DYN_CLEAR = \"clear\"; // Count: 7\r\nexport var _DYN_BATCH_PAYLOADS = \"batchPayloads\"; // Count: 5\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 3\r\nexport var _DYN_MARK_AS_SENT = \"markAsSent\"; // Count: 7\r\nexport var _DYN_CLEAR_SENT = \"clearSent\"; // Count: 5\r\nexport var _DYN_BUFFER_OVERRIDE = \"bufferOverride\"; // Count: 3\r\nexport var _DYN__BUFFER__KEY = \"BUFFER_KEY\"; // Count: 5\r\nexport var _DYN__SENT__BUFFER__KEY = \"SENT_BUFFER_KEY\"; // Count: 8\r\nexport var _DYN__MAX__BUFFER__SIZE = \"MAX_BUFFER_SIZE\"; // Count: 5\r\nexport var _DYN_TRIGGER_SEND = \"triggerSend\"; // Count: 5\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 16\r\nexport var _DYN__SENDER = \"_sender\"; // Count: 5\r\nexport var _DYN_CUSTOM_HEADERS = \"customHeaders\"; // Count: 3\r\nexport var _DYN_MAX_BATCH_SIZE_IN_BY1 = \"maxBatchSizeInBytes\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_DISABLE_BEA2 = \"onunloadDisableBeacon\"; // Count: 2\r\nexport var _DYN_IS_BEACON_API_DISABL3 = \"isBeaconApiDisabled\"; // Count: 3\r\nexport var _DYN_ENABLE_SESSION_STORA4 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN__BUFFER = \"_buffer\"; // Count: 11\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 2\r\nexport var _DYN_DISABLE_XHR = \"disableXhr\"; // Count: 5\r\nexport var _DYN_ONUNLOAD_DISABLE_FET5 = \"onunloadDisableFetch\"; // Count: 2\r\nexport var _DYN_CONVERT_UNDEFINED = \"convertUndefined\"; // Count: 2\r\nexport var _DYN_MAX_BATCH_INTERVAL = \"maxBatchInterval\"; // Count: 2\r\nexport var _DYN_BASE_TYPE = \"baseType\"; // Count: 4\r\nexport var _DYN_SAMPLE_RATE = \"sampleRate\"; // Count: 4\r\nexport var _DYN__XHR_READY_STATE_CHA6 = \"_xhrReadyStateChange\"; // Count: 2\r\nexport var _DYN__ON_ERROR = \"_onError\"; // Count: 11\r\nexport var _DYN__ON_PARTIAL_SUCCESS = \"_onPartialSuccess\"; // Count: 3\r\nexport var _DYN__ON_SUCCESS = \"_onSuccess\"; // Count: 6\r\nexport var _DYN_ITEMS_ACCEPTED = \"itemsAccepted\"; // Count: 5\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 6\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_EVENTS_SEND_REQUEST = \"eventsSendRequest\"; // Count: 2\r\nexport var _DYN_GET_SAMPLING_SCORE = \"getSamplingScore\"; // Count: 2\r\nexport var _DYN_GET_HASH_CODE_SCORE = \"getHashCodeScore\"; // Count: 4\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { CtxTagKeys, Data, Envelope, Event, Exception, HttpMethod, Metric, PageView, PageViewPerformance, RemoteDependencyData, SampleRate, Trace, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, _warnToConsole, getJSON, hasJSON, isNullOrUndefined, isNumber, isString, isTruthy, objForEachKey, optimizeObject, setValue, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION } from \"./InternalConstants\";\r\nimport { _DYN_DATA, _DYN_DATA_TYPE, _DYN_DEVICE_TYPE, _DYN_ENVELOPE_TYPE, _DYN_LENGTH, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_STRINGIFY, _DYN_TAGS, _DYN_TO_STRING, _DYN_TRACE_ID } from \"./__DynamicConstants\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env[_DYN_TAGS /* @min:%2etags */] = env[_DYN_TAGS /* @min:%2etags */] || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item[_DYN_TAGS /* @min:%2etags */] = item[_DYN_TAGS /* @min:%2etags */] || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice[_DYN_DEVICE_TYPE /* @min:%2edeviceType */]);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env[_DYN_DATA /* @min:%2edata */] = env[_DYN_DATA /* @min:%2edata */] || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME /* @min:%2ename */]);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace[_DYN_NAME /* @min:%2ename */]));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = dataSanitizeString(logger, \"javascript:\".concat(EnvelopeCreator.Version), 64);\r\n }\r\n env[_DYN_TAGS /* @min:%2etags */] = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n // Starting from Version 3.0.3, the time property will be assigned by the startTime value,\r\n // which records the loadEvent time for the pageView event.\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope[_DYN_NAME /* @min:%2ename */] = envelope[_DYN_NAME /* @min:%2ename */].replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem[_DYN_TAGS /* @min:%2etags */] = telemetryItem[_DYN_TAGS /* @min:%2etags */] || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 46 /* _eInternalMessageId.TelemetryEnvelopeInvalid */, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: '3.0.3'\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n _warnToConsole(logger, \"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd[_DYN_NAME /* @min:%2ename */], bd[STR_DURATION /* @min:%2eduration */], bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */], remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event[_DYN_DATA_TYPE /* @min:%2edataType */]) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData][_DYN_NAME /* @min:%2ename */];\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event[_DYN_DATA_TYPE /* @min:%2edataType */], eventData);\r\n return _createEnvelope(logger, Event[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception[_DYN_DATA_TYPE /* @min:%2edataType */], exData);\r\n return _createEnvelope(logger, Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData[_DYN_NAME /* @min:%2ename */], baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric[_DYN_DATA_TYPE /* @min:%2edataType */], baseMetricData);\r\n return _createEnvelope(logger, Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][STR_DURATION])) { // from part B properties\r\n duration = baseData[strProperties][STR_DURATION];\r\n delete baseData[strProperties][STR_DURATION];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */]) &&\r\n !isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION])) { // from custom properties\r\n duration = telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n delete telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {})[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n currentContextId = telemetryItem.ext.trace[_DYN_TRACE_ID /* @min:%2etraceID */];\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView[_DYN_DATA_TYPE /* @min:%2edataType */], pageViewData);\r\n return _createEnvelope(logger, PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { createUniqueNamespace, eventOff, eventOn, getDocument, getNavigator, getWindow, isNullOrUndefined, isUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_IS_ONLINE, _DYN_ON_LINE } from \"./__DynamicConstants\";\r\nfunction _disableEvents(target, evtNamespace) {\r\n eventOff(target, null, null, evtNamespace);\r\n}\r\n/**\r\n * Create a new OfflineListener instance to monitor browser online / offline events\r\n * @param parentEvtNamespace - The parent event namespace to append to any specific events for this instance\r\n */\r\nexport function createOfflineListener(parentEvtNamespace) {\r\n var _a;\r\n var _document = getDocument();\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n var _isListening = false;\r\n var _onlineStatus = true;\r\n var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"OfflineListener\"), parentEvtNamespace);\r\n try {\r\n if (_enableEvents(getWindow())) {\r\n _isListening = true;\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (target.ononline) {\r\n if (_enableEvents(target)) {\r\n _isListening = true;\r\n }\r\n }\r\n }\r\n if (_isListening) {\r\n // We are listening to events so lets set the current status rather than assuming we are online #1538\r\n if (_navigator && !isNullOrUndefined(_navigator[_DYN_ON_LINE /* @min:%2eonLine */])) { // navigator.onLine is undefined in react-native\r\n _onlineStatus = _navigator[_DYN_ON_LINE /* @min:%2eonLine */];\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n _isListening = false;\r\n }\r\n function _enableEvents(target) {\r\n var enabled = false;\r\n if (target) {\r\n enabled = eventOn(target, \"online\", _setOnline, _evtNamespace);\r\n if (enabled) {\r\n eventOn(target, \"offline\", _setOffline, _evtNamespace);\r\n }\r\n }\r\n return enabled;\r\n }\r\n function _setOnline() {\r\n _onlineStatus = true;\r\n }\r\n function _setOffline() {\r\n _onlineStatus = false;\r\n }\r\n function _isOnline() {\r\n var result = true;\r\n if (_isListening) {\r\n result = _onlineStatus;\r\n }\r\n else if (_navigator && !isNullOrUndefined(_navigator[_DYN_ON_LINE /* @min:%2eonLine */])) { // navigator.onLine is undefined in react-native\r\n result = _navigator[_DYN_ON_LINE /* @min:%2eonLine */];\r\n }\r\n return result;\r\n }\r\n function _unload() {\r\n var win = getWindow();\r\n if (win && _isListening) {\r\n _disableEvents(win, _evtNamespace);\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n _disableEvents(target, _evtNamespace);\r\n }\r\n }\r\n _isListening = false;\r\n }\r\n }\r\n return _a = {},\r\n _a[_DYN_IS_ONLINE /* @min:isOnline */] = _isOnline,\r\n _a.isListening = function () { return _isListening; },\r\n _a.unload = _unload,\r\n _a;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlGetSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, arrIndexOf, dumpObj, getExceptionName, getJSON, isArray, isFunction, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_BATCH_PAYLOADS, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_PUSH, _DYN_STRINGIFY, _DYN__BUFFER__KEY, _DYN__GET, _DYN__MAX__BUFFER__SIZE, _DYN__SENT__BUFFER__KEY } from \"./__DynamicConstants\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n this[_DYN__GET /* @min:%2e_get */] = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= config[_DYN_EVENTS_LIMIT_IN_MEM /* @min:%2eeventsLimitInMem */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 105 /* _eInternalMessageId.InMemoryStorageBufferFull */, \"Maximum in-memory buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _buffer[_DYN_PUSH /* @min:%2epush */](payload);\r\n };\r\n _self[_DYN_COUNT /* @min:%2ecount */] = function () {\r\n return _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.size = function () {\r\n var size = _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < _buffer[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n size += _buffer[lp][_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if (!config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */] = function (payload) {\r\n if (payload && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var batch = config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */] ?\r\n payload.join(\"\\n\") :\r\n \"[\" + payload.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n var items = _buffer.slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n var newBuffer = !!canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(items, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n return newBuffer;\r\n };\r\n });\r\n }\r\n// Removed Stub for BaseSendBuffer.prototype.enqueue.\r\n// Removed Stub for BaseSendBuffer.prototype.count.\r\n// Removed Stub for BaseSendBuffer.prototype.size.\r\n// Removed Stub for BaseSendBuffer.prototype.clear.\r\n// Removed Stub for BaseSendBuffer.prototype.getItems.\r\n// Removed Stub for BaseSendBuffer.prototype.batchPayloads.\r\n// Removed Stub for BaseSendBuffer.prototype.createNew.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n BaseSendBuffer.__ieDyn=1;\n\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for ArraySendBuffer.prototype.markAsSent.\r\n// Removed Stub for ArraySendBuffer.prototype.clearSent.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n ArraySendBuffer.__ieDyn=1;\n\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n //Note: should not use config.namePrefix directly, because it will always refers to the latest namePrefix\r\n var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;\r\n var _a = config[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _a.getItem, setItem = _a.setItem;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */]);\r\n var notDeliveredItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n var buffer = _self._set(bufferItems.concat(notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n buffer[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], buffer);\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Maximum buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n _base[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET /* @min:%2e_get */]())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements.concat(payload);\r\n if (sentElements[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Sent buffer reached its maximum size: \" + sentElements[_DYN_LENGTH /* @min:%2elength */], true);\r\n sentElements[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n }\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n canUseSessionStorage = !!canUseSessionStorage;\r\n var unsentItems = _self[_DYN__GET /* @min:%2e_get */]().slice(0);\r\n var sentItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]).slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n // to make sure that we do not send duplicated payloads when it is switched back to previous one\r\n _self[_DYN_CLEAR /* @min:%2eclear */]();\r\n var newBuffer = canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(unsentItems, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n if (canUseSessionStorage) {\r\n // arr buffer will clear all payloads if markAsSent() is called\r\n newBuffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](sentItems);\r\n }\r\n return newBuffer;\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloads, value) === -1) {\r\n remaining[_DYN_PUSH /* @min:%2epush */](value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = getItem(logger, prefixedKey);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 42 /* _eInternalMessageId.FailedToRestoreStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON[_DYN_STRINGIFY /* @min:%2estringify */](buffer);\r\n setItem(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n setItem(logger, prefixedKey, JSON[_DYN_STRINGIFY /* @min:%2estringify */]([]));\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clear.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.createNew.\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\";\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\";\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, DisabledPropertyName, Event, Exception, Metric, PageView, PageViewPerformance, ProcessLegacy, RemoteDependencyData, RequestHeaders, SampleRate, Trace, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _throwInternal, _warnToConsole, arrForEach, cfgDfBoolean, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dateNow, dumpObj, getExceptionName, getIEVersion, getJSON, getNavigator, getWindow, isArray, isBeaconsSupported, isFetchSupported, isNullOrUndefined, isXhrSupported, mergeEvtNamespace, objExtend, objKeys, onConfigChange, runTargetUnload, useXDomainRequest } from \"@microsoft/applicationinsights-core-js\";\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { isTruthy, objDeepFreeze, objDefine, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { createOfflineListener } from \"./Offline\";\r\nimport { ArraySendBuffer, SessionStorageSendBuffer } from \"./SendBuffer\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport { _DYN_BASE_TYPE, _DYN_BATCH_PAYLOADS, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONVERT_UNDEFINED, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_CUSTOM_HEADERS, _DYN_DIAG_LOG, _DYN_DISABLE_XHR, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENABLE_SESSION_STORA4, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_EVENTS_SEND_REQUEST, _DYN_INSTRUMENTATION_KEY, _DYN_IS_BEACON_API_DISABL3, _DYN_IS_ONLINE, _DYN_ITEMS_ACCEPTED, _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_MAX_BATCH_INTERVAL, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_ONUNLOAD_DISABLE_BEA2, _DYN_ONUNLOAD_DISABLE_FET5, _DYN_PUSH, _DYN_SAMPLE_RATE, _DYN_SET_REQUEST_HEADER, _DYN_TAGS, _DYN_TRIGGER_SEND, _DYN__BUFFER, _DYN__ON_ERROR, _DYN__ON_PARTIAL_SUCCESS, _DYN__ON_SUCCESS, _DYN__SENDER, _DYN__XHR_READY_STATE_CHA6 } from \"./__DynamicConstants\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nvar defaultAppInsightsChannelConfig = objDeepFreeze((_a = {\r\n // Use the default value (handles empty string in the configuration)\r\n endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)\r\n },\r\n _a[_DYN_EMIT_LINE_DELIMITED_0 /* @min:emitLineDelimitedJson */] = cfgDfBoolean(),\r\n _a[_DYN_MAX_BATCH_INTERVAL /* @min:maxBatchInterval */] = 15000,\r\n _a[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:maxBatchSizeInBytes */] = 102400,\r\n _a.disableTelemetry = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_SESSION_STORA4 /* @min:enableSessionStorageBuffer */] = cfgDfBoolean(true),\r\n _a.isRetryDisabled = cfgDfBoolean(),\r\n _a[_DYN_IS_BEACON_API_DISABL3 /* @min:isBeaconApiDisabled */] = cfgDfBoolean(true),\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_FET5 /* @min:onunloadDisableFetch */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:onunloadDisableBeacon */] = cfgDfBoolean(),\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a.namePrefix = UNDEFINED_VALUE,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_CUSTOM_HEADERS /* @min:customHeaders */] = UNDEFINED_VALUE,\r\n _a[_DYN_CONVERT_UNDEFINED /* @min:convertUndefined */] = UNDEFINED_VALUE,\r\n _a[_DYN_EVENTS_LIMIT_IN_MEM /* @min:eventsLimitInMem */] = 10000,\r\n _a[_DYN_BUFFER_OVERRIDE /* @min:bufferOverride */] = false,\r\n _a));\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nvar EnvelopeTypeCreator = (_b = {},\r\n _b[Event.dataType] = EventEnvelopeCreator,\r\n _b[Trace.dataType] = TraceEnvelopeCreator,\r\n _b[PageView.dataType] = PageViewEnvelopeCreator,\r\n _b[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _b[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _b[Metric.dataType] = MetricEnvelopeCreator,\r\n _b[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _b);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n // Don't set the defaults here, set them in the _initDefaults() as this is also called during unload\r\n var _consecutiveErrors; // How many times in a row a retryable error condition has occurred.\r\n var _retryAt; // The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n var _lastSend; // The time of the last send operation.\r\n var _paused; // Flag indicating that the sending should be paused\r\n var _timeoutHandle; // Handle to the timer for delayed sending of batches of data.\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers;\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _fallbackSender; // The sender to use if the payload size is too large\r\n var _syncUnloadSender; // The identified sender to use for the synchronous unload stage\r\n var _offlineListener;\r\n var _evtNamespace;\r\n var _endpointUrl;\r\n var _orgEndpointUrl;\r\n var _maxBatchSizeInBytes;\r\n var _beaconSupported;\r\n var _customHeaders;\r\n var _disableTelemetry;\r\n var _instrumentationKey;\r\n var _convertUndefined;\r\n var _isRetryDisabled;\r\n var _maxBatchInterval;\r\n var _sessionStorageUsed;\r\n var _bufferOverrideUsed;\r\n var _namePrefix;\r\n var _enableSendPromise;\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n _checkMaxSize();\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function (isAsync, callBack, sendReason) {\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](isAsync, null, sendReason || 1 /* SendRequestReason.ManualFlush */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 22 /* _eInternalMessageId.FlushFailed */, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if (_beaconSupported) {\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, _doUnloadSend, 2 /* SendRequestReason.Unload */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush(false);\r\n }\r\n }\r\n };\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"Sender\"), core.evtNamespace && core.evtNamespace());\r\n _offlineListener = createOfflineListener(_evtNamespace);\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n var senderConfig = ctx.getExtCfg(identifier, defaultAppInsightsChannelConfig);\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return senderConfig;\r\n }\r\n });\r\n // Only update the endpoint if the original config !== the current config\r\n // This is so any redirect endpointUrl is not overwritten\r\n if (_orgEndpointUrl !== senderConfig.endpointUrl) {\r\n if (_orgEndpointUrl) {\r\n // TODO: add doc to remind users to flush before changing endpoint, otherwise all unsent payload will be sent to new endpoint\r\n }\r\n _endpointUrl = _orgEndpointUrl = senderConfig.endpointUrl;\r\n }\r\n if (_customHeaders && _customHeaders !== senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */]) {\r\n // Removing any previously defined custom headers as they have changed\r\n arrForEach(_customHeaders, function (customHeader) {\r\n delete _headers[customHeader.header];\r\n });\r\n }\r\n _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */];\r\n _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false) && isBeaconsSupported();\r\n var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */];\r\n var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA4 /* @min:%2eenableSessionStorageBuffer */] &&\r\n (!!bufferOverride || utlCanUseSessionStorage());\r\n var namePrefix = senderConfig.namePrefix;\r\n //Note: emitLineDelimitedJson and eventsLimitInMem is directly accessed via config in senderBuffer\r\n //Therefore, if canUseSessionStorage is not changed, we do not need to re initialize a new one\r\n var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)\r\n || (canUseSessionStorage && (_namePrefix !== namePrefix)) // prefixName is only used in session storage\r\n || (canUseSessionStorage && (_bufferOverrideUsed !== bufferOverride));\r\n if (_self[_DYN__BUFFER /* @min:%2e_buffer */]) {\r\n // case1 (Pre and Now enableSessionStorageBuffer settings are same)\r\n // if namePrefix changes, transfer current buffer to new buffer\r\n // else no action needed\r\n //case2 (Pre and Now enableSessionStorageBuffer settings are changed)\r\n // transfer current buffer to new buffer\r\n if (shouldUpdate) {\r\n try {\r\n _self._buffer = _self._buffer[_DYN_CREATE_NEW /* @min:%2ecreateNew */](diagLog, senderConfig, canUseSessionStorage);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"failed to transfer telemetry to different buffer storage, telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n _checkMaxSize();\r\n }\r\n else {\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = canUseSessionStorage\r\n ? new SessionStorageSendBuffer(diagLog, senderConfig) : new ArraySendBuffer(diagLog, senderConfig);\r\n }\r\n _namePrefix = namePrefix;\r\n _sessionStorageUsed = canUseSessionStorage;\r\n _bufferOverrideUsed = bufferOverride;\r\n _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);\r\n _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n if (!_validateInstrumentationKey(_instrumentationKey, config)) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, \"Invalid Instrumentation key \" + _instrumentationKey);\r\n }\r\n _customHeaders = senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */];\r\n if (!isInternalApplicationInsightsEndpoint(_endpointUrl) && _customHeaders && _customHeaders[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(_customHeaders, function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n else {\r\n _customHeaders = null;\r\n }\r\n _enableSendPromise = senderConfig.enableSendPromise;\r\n var sendPostFunc = null;\r\n if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */] && useXDomainRequest()) {\r\n sendPostFunc = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */] && isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n if (!sendPostFunc && isFetchSupported()) {\r\n sendPostFunc = _fetchSender;\r\n }\r\n // always fallback to XHR\r\n _fallbackSender = sendPostFunc || _xhrSender;\r\n if (!senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] && isBeaconsSupported()) {\r\n // Config is set to always used beacon sending\r\n sendPostFunc = _beaconSender;\r\n }\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = sendPostFunc || _xhrSender;\r\n if (!senderConfig[_DYN_ONUNLOAD_DISABLE_FET5 /* @min:%2eonunloadDisableFetch */] && isFetchSupported(true)) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Try and use sendBeacon\r\n _syncUnloadSender = _beaconSender;\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */] && useXDomainRequest()) {\r\n _syncUnloadSender = _xdrSender; // IE 8 and 9\r\n }\r\n else if (!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */] && isXhrSupported()) {\r\n _syncUnloadSender = _xhrSender;\r\n }\r\n else {\r\n _syncUnloadSender = _fallbackSender;\r\n }\r\n _disableTelemetry = senderConfig.disableTelemetry;\r\n _convertUndefined = senderConfig[_DYN_CONVERT_UNDEFINED /* @min:%2econvertUndefined */] || UNDEFINED_VALUE;\r\n _isRetryDisabled = senderConfig.isRetryDisabled;\r\n _maxBatchInterval = senderConfig[_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */];\r\n }));\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n var diagLogger = itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n // if master off switch is set, don't send any data\r\n if (_disableTelemetry) {\r\n // Do not send/save data\r\n return;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n return;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 70 /* _eInternalMessageId.InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n return;\r\n }\r\n if (!telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n // Default\r\n telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */] = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self[_DYN__SENDER /* @min:%2e_sender */]) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender was not initialized\");\r\n return;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 33 /* _eInternalMessageId.TelemetrySampledAndNotSent */, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] });\r\n return;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */];\r\n }\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _instrumentationKey;\r\n var aiEnvelope_1 = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, _convertUndefined);\r\n if (!aiEnvelope_1) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 47 /* _eInternalMessageId.CreateEnvelopeError */, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem_1 = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem[_DYN_TAGS /* @min:%2etags */] && telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy]) {\r\n arrForEach(telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope_1) === false) {\r\n doNotSendItem_1 = true;\r\n _warnToConsole(diagLogger, \"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy];\r\n }\r\n if (doNotSendItem_1) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer.serialize(aiEnvelope_1);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n _checkMaxSize(payload);\r\n // enqueue the payload\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self[_DYN__XHR_READY_STATE_CHA6 /* @min:%2e_xhrReadyStateChange */] = function (xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, _formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async - {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender - {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */] = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n if (!_paused) {\r\n try {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n // Send data only if disableTelemetry is false\r\n if (!_disableTelemetry) {\r\n if (buffer[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* SendRequestReason.Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n result = forcedSender.call(_self, payload, async);\r\n }\r\n else {\r\n result = _self[_DYN__SENDER /* @min:%2e_sender */](payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _self.onunloadFlush();\r\n runTargetUnload(_offlineListener, false);\r\n _initDefaults();\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */] = function (payload, message, event) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */] = function (payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n }\r\n if (payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]);\r\n }\r\n if (failed[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](failed, _formatErrorMessageXhr(null, [\"partial success\", results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */], \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _resendPayload(retry);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Partial success. \" +\r\n \"Delivered: \" + payload[_DYN_LENGTH /* @min:%2elength */] + \", Failed: \" + failed[_DYN_LENGTH /* @min:%2elength */] +\r\n \". Will retry to send \" + retry[_DYN_LENGTH /* @min:%2elength */] + \" our of \" + results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] + \" items\");\r\n }\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */] = function (payload, countOfItemsInPayload) {\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, 0);\r\n }\r\n else {\r\n var results = _parseResponse(responseText);\r\n if (results && results.itemsReceived && results.itemsReceived > results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]\r\n && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, results);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n };\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _checkMaxSize(incomingPayload) {\r\n var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if ((_self[_DYN__BUFFER /* @min:%2e_buffer */].size() + incomingSize) > _maxBatchSizeInBytes) {\r\n if (!_offlineListener || _offlineListener[_DYN_IS_ONLINE /* @min:%2eisOnline */]()) { // only trigger send when currently online\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = _parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (!_isRetryDisabled && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload[_DYN_LENGTH /* @min:%2elength */] + \" items.\");\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else if (_offlineListener && !_offlineListener[_DYN_IS_ONLINE /* @min:%2eisOnline */]()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_isRetryDisabled) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(!_offlineListener.isOnline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = _parseResponse(res);\r\n }\r\n if (response && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, response);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _endpointUrl) {\r\n _endpointUrl = responseUrl;\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n _beaconSender(payload, isAsync);\r\n }\r\n }\r\n function _doBeaconSend(payload) {\r\n var nav = getNavigator();\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n var url = _endpointUrl;\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = new Blob([batch], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n if (queued) {\r\n buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n // no response from beaconSender, clear buffer\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, isAsync) {\r\n if (isArray(payload) && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload)) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var thePayload = payload[lp];\r\n if (!_doBeaconSend([thePayload])) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload[_DYN_PUSH /* @min:%2epush */](thePayload);\r\n }\r\n }\r\n if (droppedPayload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _fallbackSender && _fallbackSender(droppedPayload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - Indicates if the request should be sent asynchronously\r\n */\r\n function _xhrSender(payload, isAsync) {\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var xhr = new XMLHttpRequest();\r\n var endPointUrl = _endpointUrl;\r\n try {\r\n xhr[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n xhr.open(\"POST\", endPointUrl, isAsync);\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](\"Content-type\", \"application/json\");\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */], RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */]);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](headerName, _headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () {\r\n _self._xhrReadyStateChange(xhr, payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n if (xhr.readyState === 4) {\r\n resolveFunc && resolveFunc(true);\r\n }\r\n };\r\n xhr.onerror = function (event) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXhr(xhr), event);\r\n rejectFunc && rejectFunc(event);\r\n };\r\n if (isAsync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n // compose an array of payloads\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n xhr.send(batch);\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n return thePromise;\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n if (isArray(payload)) {\r\n var payloadSize = payload[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n payloadSize += payload[lp][_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if ((_syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n _doFetchSender(payload, false);\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n _beaconSender(payload, isAsync);\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n _fallbackSender && _fallbackSender(payload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n }\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - not used\r\n */\r\n function _fetchSender(payload, isAsync) {\r\n return _doFetchSender(payload, true);\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\r\n function _doFetchSender(payload, isAsync) {\r\n var _a;\r\n var endPointUrl = _endpointUrl;\r\n var batch = _self._buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n var plainTextBatch = new Blob([batch], { type: \"application/json\" });\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var requestHeaders = new Headers();\r\n var batchLength = batch[_DYN_LENGTH /* @min:%2elength */];\r\n var ignoreResponse = false;\r\n var responseHandled = false;\r\n // append Sdk-Context request header only in case of breeze endpoint\r\n if (isInternalApplicationInsightsEndpoint(endPointUrl)) {\r\n requestHeaders.append(RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */], RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */]);\r\n }\r\n arrForEach(objKeys(_headers), function (headerName) {\r\n requestHeaders.append(headerName, _headers[headerName]);\r\n });\r\n var init = (_a = {\r\n method: \"POST\",\r\n headers: requestHeaders,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n if (!isAsync) {\r\n init.keepalive = true;\r\n // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n // just like beacon send assume that the events have been accepted and processed\r\n ignoreResponse = true;\r\n _syncFetchPayload += batchLength;\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n if (isAsync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n try {\r\n doAwaitResponse(fetch(request), function (result) {\r\n if (!isAsync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n if (!result.rejected) {\r\n var response_1 = result.value;\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!response_1.ok) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, response_1.statusText);\r\n resolveFunc && resolveFunc(false);\r\n }\r\n else {\r\n doAwaitResponse(response_1.text(), function (resp) {\r\n _checkResponsStatus(response_1.status, payload, response_1.url, payload[_DYN_LENGTH /* @min:%2elength */], response_1.statusText, resp.value || \"\");\r\n resolveFunc && resolveFunc(true);\r\n });\r\n }\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, result.reason && result.reason.message);\r\n rejectFunc && rejectFunc(result.reason);\r\n }\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n if (ignoreResponse && !responseHandled) {\r\n // Assume success during unload processing as we most likely won't get the response\r\n responseHandled = true;\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n resolveFunc && resolveFunc(true);\r\n }\r\n return thePromise;\r\n }\r\n /**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\n function _parseResponse(response) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result.itemsReceived && result.itemsReceived >= result[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */] &&\r\n result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH /* @min:%2elength */]) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 43 /* _eInternalMessageId.InvalidBackendResponse */, \"Cannot parse the response. \" + getExceptionName(e), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return;\r\n }\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_maxBatchInterval, retryInterval);\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 1 /* SendRequestReason.NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n return statusCode === 401 // Unauthorized\r\n || statusCode === 403 // Forbidden\r\n || statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 502 // Bad Gateway.\r\n || statusCode === 503 // Service unavailable.\r\n || statusCode === 504; // Gateway timeout.\r\n }\r\n function _formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr.status + \",Response:\" + _getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param isAsync - {boolean} - Indicates if the request should be sent asynchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, isAsync) {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n // NOTE: xdr may send previous retry payload to new endpoint since we are not able to check response URL\r\n xdr.onload = function () { return _self._xdrOnLoad(xdr, payload); };\r\n xdr.onerror = function (event) { return _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, _formatErrorMessageXdr(xdr), event); };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location.protocol || \"\";\r\n if (_endpointUrl.lastIndexOf(hostingProtocol, 0) !== 0) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\");\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n return;\r\n }\r\n var endpointUrl = _endpointUrl.replace(/^(https?:)/, \"\");\r\n xdr.open(\"POST\", endpointUrl);\r\n // compose an array of payloads\r\n var batch = buffer[_DYN_BATCH_PAYLOADS /* @min:%2ebatchPayloads */](payload);\r\n xdr.send(batch);\r\n buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n }\r\n function _formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + _getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */]) {\r\n try {\r\n manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(instrumentationKey, config) {\r\n var disableValidation = config.disableInstrumentationKeyValidation;\r\n var disableIKeyValidationFlag = isNullOrUndefined(disableValidation) ? false : disableValidation;\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(instrumentationKey);\r\n }\r\n function _initDefaults() {\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = null;\r\n _self._appId = null;\r\n _self._sample = null;\r\n _headers = {};\r\n _offlineListener = null;\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = null;\r\n _paused = false;\r\n _timeoutHandle = null;\r\n _serializer = null;\r\n _stamp_specific_redirects = 0;\r\n _syncFetchPayload = 0;\r\n _fallbackSender = null;\r\n _syncUnloadSender = null;\r\n _evtNamespace = null;\r\n _endpointUrl = null;\r\n _orgEndpointUrl = null;\r\n _maxBatchSizeInBytes = 0;\r\n _beaconSupported = false;\r\n _customHeaders = null;\r\n _disableTelemetry = false;\r\n _instrumentationKey = null;\r\n _convertUndefined = UNDEFINED_VALUE;\r\n _isRetryDisabled = false;\r\n _sessionStorageUsed = null;\r\n _namePrefix = UNDEFINED_VALUE;\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return objExtend({}, defaultAppInsightsChannelConfig);\r\n }\r\n });\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n// Removed Stub for Sender.prototype.pause.\r\n// Removed Stub for Sender.prototype.resume.\r\n// Removed Stub for Sender.prototype.flush.\r\n// Removed Stub for Sender.prototype.onunloadFlush.\r\n// Removed Stub for Sender.prototype.initialize.\r\n// Removed Stub for Sender.prototype.processTelemetry.\r\n// Removed Stub for Sender.prototype._xhrReadyStateChange.\r\n// Removed Stub for Sender.prototype.triggerSend.\r\n// Removed Stub for Sender.prototype._onError.\r\n// Removed Stub for Sender.prototype._onPartialSuccess.\r\n// Removed Stub for Sender.prototype._onSuccess.\r\n// Removed Stub for Sender.prototype._xdrOnLoad.\r\n// Removed Stub for Sender.prototype.addHeader.\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getJSON, isArray, isFunction, isObject, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self.serialize = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 50 /* _eInternalMessageId.CircularReferenceDetected */, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* FieldType.Required */) : (contract & 1 /* FieldType.Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* FieldType.Hidden */) : (contract & 4 /* FieldType.Hidden */);\r\n var isArray = contract & 2 /* FieldType.Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 24 /* _eInternalMessageId.MissingRequiredFieldSpecification */, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 54 /* _eInternalMessageId.ItemNotInArray */, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output[_DYN_PUSH /* @min:%2epush */](item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value[_DYN_TO_STRING /* @min:%2etoString */]) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n if (isNaN(num)) {\r\n output[field] = \"NaN\";\r\n }\r\n else {\r\n output[field] = num;\r\n }\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n// Removed Stub for Serializer.prototype.serialize.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n Serializer.__ieDyn=1;\n\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_LENGTH } from \"../../__DynamicConstants\";\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input[_DYN_LENGTH /* @min:%2elength */] < MIN_INPUT_LENGTH) {\r\n input = input.concat(input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nimport { _DYN_GET_HASH_CODE_SCORE, _DYN_GET_SAMPLING_SCORE, _DYN_TAGS, _DYN_TRACE_ID } from \"../../__DynamicConstants\";\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */] = function (item) {\r\n var score = 0;\r\n if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator[_DYN_GET_HASH_CODE_SCORE /* @min:%2egetHashCodeScore */](item.ext.user.id);\r\n }\r\n else if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DATA_TYPE, _DYN_GET_SAMPLING_SCORE, _DYN_SAMPLE_RATE } from \"../__DynamicConstants\";\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(2 /* eLoggingSeverity.WARNING */, 58 /* _eInternalMessageId.SampleRateOutOfRange */, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */]; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */](envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n","/*\r\n * @nevware21/ts-utils\r\n * https://github.com/nevware21/ts-utils\r\n *\r\n * Copyright (c) 2022 Nevware21\r\n * Licensed under the MIT license.\r\n */\r\nimport { ArrProto } from \"../internal/constants\";\r\nimport { _unwrapFunction } from \"../internal/unwrapFunction\";\r\n/**\r\n * The arrReduce() method executes a user-supplied \"reducer\" callback function on each element of the array,\r\n * in order, passing in the return value from the calculation on the preceding element. The final result of\r\n * running the reducer across all elements of the array is a single value.\r\n *\r\n * The first time that the callback is run there is no \"return value of the previous calculation\". If supplied,\r\n * an initial value may be used in its place. Otherwise the array element at index 0 is used as the initial\r\n * value and iteration starts from the next element (index 1 instead of index 0).\r\n * @group Array\r\n * @group ArrayLike\r\n * @typeParam T - Identifies the type of array elements\r\n * @param theArray - The array or array like object of elements to be searched.\r\n * @param callbackfn A function that accepts up to four arguments. The reduce method calls the callbackfn function one time for each element in the array.\r\n * @param initialValue If initialValue is specified, it is used as the initial value to start the accumulation. The first call to the callbackfn function provides this value as an argument instead of an array value.\r\n * @returns The value that results from running the \"reducer\" callback function to completion over the entire array.\r\n * @example\r\n * ```ts\r\n * const getMax = (a: number, b: number) => Math.max(a, b);\r\n *\r\n * // callback is invoked for each element in the array starting at index 0\r\n * arrReduce([1, 100], getMax, 50); // 100\r\n * arrReduce([ 50], getMax, 10); // 50\r\n *\r\n * // callback is invoked once for element at index 1\r\n * arrReduce([1, 100], getMax); // 100\r\n *\r\n * // callback is not invoked\r\n * arrReduce([ 50], getMax); // 50\r\n * arrReduce([ ], getMax, 1); // 1\r\n *\r\n * arrReduce([ ], getMax); // throws TypeError\r\n *\r\n * // Also supports Array like objects\r\n * arrReduce({ length: 2, 0: 1, 1: 100 }, getMax, 50); // 100\r\n * arrReduce({ length: 1, 0: 50 }, getMax, 10); // 50\r\n *\r\n * // callback is invoked once for element at index 1\r\n * arrReduce({ length: 2, 0: 1, 1: 100 }, getMax); // 100\r\n *\r\n * // callback is not invoked\r\n * arrReduce({ length: 1, 0: 50 }, getMax); // 50\r\n * arrReduce({ length: 0 }, getMax, 1); // 1\r\n * ```\r\n */\r\nexport var arrReduce = _unwrapFunction(\"reduce\", ArrProto);\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrReduce, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { _DYN_INGESTIONENDPOINT, _DYN_LENGTH, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString[_DYN_SPLIT /* @min:%2esplit */](_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv[_DYN_SPLIT /* @min:%2esplit */](_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts[_DYN_LENGTH /* @min:%2elength */] === 2) { // only save fields with valid formats\r\n var key = kvParts[0][_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // use endpoint suffix where overrides are not provided\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply the default endpoints\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || DEFAULT_BREEZE_ENDPOINT;\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _throwInternal, arrIndexOf, isNotNullOrUndefined, isNullOrUndefined, onConfigChange, randomValue, safeGetLogger, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { arrForEach, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"./StorageHelperFuncs\";\r\nimport { _DYN_COUNT, _DYN_DATE, _DYN_DAYS_OF_MONTH, _DYN_DISABLED, _DYN_GET_UTCDATE, _DYN_INTERVAL, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PRE_TRIGGER_DATE, _DYN_STRINGIFY } from \"./__DynamicConstants\";\r\nvar THROTTLE_STORAGE_PREFIX = \"appInsightsThrottle\";\r\nvar ThrottleMgr = /** @class */ (function () {\r\n function ThrottleMgr(core, namePrefix) {\r\n var _self = this;\r\n var _canUseLocalStorage;\r\n var _logger;\r\n var _config;\r\n var _localStorageObj;\r\n var _isTriggered; //_isTriggered is to make sure that we only trigger throttle once a day\r\n var _namePrefix;\r\n var _queue;\r\n var _isReady = false;\r\n var _isSpecificDaysGiven = false;\r\n _initConfig();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_queue];\r\n };\r\n _self.getConfig = function () {\r\n return _config;\r\n };\r\n /**\r\n * Check if it is the correct day to send message.\r\n * If _isTriggered is true, even if canThrottle returns true, message will not be sent,\r\n * because we only allow triggering sendMessage() once a day.\r\n * @returns if the current date is the valid date to send message\r\n */\r\n _self.canThrottle = function (msgId) {\r\n var localObj = _getLocalStorageObjByKey(msgId);\r\n var cfg = _getCfgByKey(msgId);\r\n return _canThrottle(cfg, _canUseLocalStorage, localObj);\r\n };\r\n /**\r\n * Check if throttle is triggered on current day(UTC)\r\n * if canThrottle returns false, isTriggered will return false\r\n * @returns if throttle is triggered on current day(UTC)\r\n */\r\n _self.isTriggered = function (msgId) {\r\n return _isTrigger(msgId);\r\n };\r\n /**\r\n * Before isReady set to true, all message will be stored in queue.\r\n * Message will only be sent out after isReady set to true.\r\n * Initial and default value: false\r\n * @returns isReady state\r\n */\r\n _self.isReady = function () {\r\n return _isReady;\r\n };\r\n /**\r\n * Flush all message with given message key in queue with isReady state set to true.\r\n * @returns if message queue is flushed\r\n */\r\n _self.flush = function (msgId) {\r\n try {\r\n var queue = _getQueueByKey(msgId);\r\n if (queue && queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var items = queue.slice(0);\r\n _queue[msgId] = [];\r\n arrForEach(items, function (item) {\r\n _flushMessage(item.msgID, item[_DYN_MESSAGE /* @min:%2emessage */], item.severity, false);\r\n });\r\n return true;\r\n }\r\n }\r\n catch (err) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n /**\r\n * Flush all message in queue with isReady state set to true.\r\n * @returns if message queue is flushed\r\n */\r\n _self.flushAll = function () {\r\n try {\r\n if (_queue) {\r\n var result_1 = true;\r\n objForEachKey(_queue, function (key) {\r\n var isFlushed = _self.flush(parseInt(key));\r\n result_1 = result_1 && isFlushed;\r\n });\r\n return result_1;\r\n }\r\n }\r\n catch (err) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n /**\r\n * Set isReady State\r\n * if isReady set to true, message queue will be flushed automatically.\r\n * @param isReady isReady State\r\n * @pa\r\n * @returns if message queue is flushed\r\n */\r\n _self.onReadyState = function (isReady, flushAll) {\r\n if (flushAll === void 0) { flushAll = true; }\r\n _isReady = isNullOrUndefined(isReady) ? true : isReady;\r\n if (_isReady && flushAll) {\r\n return _self.flushAll();\r\n }\r\n return null;\r\n };\r\n _self.sendMessage = function (msgID, message, severity) {\r\n return _flushMessage(msgID, message, severity, true);\r\n };\r\n function _flushMessage(msgID, message, severity, saveUnsentMsg) {\r\n if (_isReady) {\r\n var isSampledIn = _canSampledIn(msgID);\r\n if (!isSampledIn) {\r\n return;\r\n }\r\n var cfg = _getCfgByKey(msgID);\r\n var localStorageObj = _getLocalStorageObjByKey(msgID);\r\n var canThrottle = _canThrottle(cfg, _canUseLocalStorage, localStorageObj);\r\n var throttled = false;\r\n var number = 0;\r\n var isTriggered = _isTrigger(msgID);\r\n try {\r\n if (canThrottle && !isTriggered) {\r\n number = Math.min(cfg.limit.maxSendNumber, localStorageObj[_DYN_COUNT /* @min:%2ecount */] + 1);\r\n localStorageObj[_DYN_COUNT /* @min:%2ecount */] = 0;\r\n throttled = true;\r\n _isTriggered[msgID] = true;\r\n localStorageObj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */] = new Date();\r\n }\r\n else {\r\n _isTriggered[msgID] = canThrottle;\r\n localStorageObj[_DYN_COUNT /* @min:%2ecount */] += 1;\r\n }\r\n var localStorageName = _getLocalStorageName(msgID);\r\n _resetLocalStorage(_logger, localStorageName, localStorageObj);\r\n for (var i = 0; i < number; i++) {\r\n _sendMessage(msgID, _logger, message, severity);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return {\r\n isThrottled: throttled,\r\n throttleNum: number\r\n };\r\n }\r\n else {\r\n if (!!saveUnsentMsg) {\r\n var queue = _getQueueByKey(msgID);\r\n queue.push({\r\n msgID: msgID,\r\n message: message,\r\n severity: severity\r\n });\r\n }\r\n }\r\n return null;\r\n }\r\n function _initConfig() {\r\n _logger = safeGetLogger(core);\r\n _isTriggered = {};\r\n _localStorageObj = {};\r\n _queue = {};\r\n _config = {};\r\n _setCfgByKey(109 /* _eInternalMessageId.DefaultThrottleMsgKey */);\r\n _namePrefix = isNotNullOrUndefined(namePrefix) ? namePrefix : \"\";\r\n core.addUnloadHook(onConfigChange(core.config, function (details) {\r\n var coreConfig = details.cfg;\r\n _canUseLocalStorage = utlCanUseLocalStorage();\r\n var configMgr = coreConfig.throttleMgrCfg || {};\r\n objForEachKey(configMgr, function (key, cfg) {\r\n _setCfgByKey(parseInt(key), cfg);\r\n });\r\n }));\r\n }\r\n function _getCfgByKey(msgID) {\r\n return _config[msgID] || _config[109 /* _eInternalMessageId.DefaultThrottleMsgKey */];\r\n }\r\n function _setCfgByKey(msgID, config) {\r\n var _a, _b;\r\n try {\r\n var cfg = config || {};\r\n var curCfg = {};\r\n curCfg[_DYN_DISABLED /* @min:%2edisabled */] = !!cfg[_DYN_DISABLED /* @min:%2edisabled */];\r\n var configInterval = cfg[_DYN_INTERVAL /* @min:%2einterval */] || {};\r\n _isSpecificDaysGiven = (configInterval === null || configInterval === void 0 ? void 0 : configInterval.daysOfMonth) && (configInterval === null || configInterval === void 0 ? void 0 : configInterval.daysOfMonth[_DYN_LENGTH /* @min:%2elength */]) > 0;\r\n curCfg[_DYN_INTERVAL /* @min:%2einterval */] = _getIntervalConfig(configInterval);\r\n var limit = {\r\n samplingRate: ((_a = cfg.limit) === null || _a === void 0 ? void 0 : _a.samplingRate) || 100,\r\n // dafault: every time sent only 1 event\r\n maxSendNumber: ((_b = cfg.limit) === null || _b === void 0 ? void 0 : _b.maxSendNumber) || 1\r\n };\r\n curCfg.limit = limit;\r\n _config[msgID] = curCfg;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _getIntervalConfig(interval) {\r\n interval = interval || {};\r\n var monthInterval = interval === null || interval === void 0 ? void 0 : interval.monthInterval;\r\n var dayInterval = interval === null || interval === void 0 ? void 0 : interval.dayInterval;\r\n // default: send data every 3 month each year\r\n if (isNullOrUndefined(monthInterval) && isNullOrUndefined(dayInterval)) {\r\n interval.monthInterval = 3;\r\n if (!_isSpecificDaysGiven) {\r\n // default: send data on 28th\r\n interval[_DYN_DAYS_OF_MONTH /* @min:%2edaysOfMonth */] = [28];\r\n _isSpecificDaysGiven = true;\r\n }\r\n }\r\n interval = {\r\n // dafault: sent every three months\r\n monthInterval: interval === null || interval === void 0 ? void 0 : interval.monthInterval,\r\n dayInterval: interval === null || interval === void 0 ? void 0 : interval.dayInterval,\r\n daysOfMonth: interval === null || interval === void 0 ? void 0 : interval.daysOfMonth\r\n };\r\n return interval;\r\n }\r\n function _canThrottle(config, canUseLocalStorage, localStorageObj) {\r\n if (config && !config[_DYN_DISABLED /* @min:%2edisabled */] && canUseLocalStorage && isNotNullOrUndefined(localStorageObj)) {\r\n var curDate = _getThrottleDate();\r\n var date = localStorageObj[_DYN_DATE /* @min:%2edate */];\r\n var interval = config[_DYN_INTERVAL /* @min:%2einterval */];\r\n var monthCheck = 1;\r\n if (interval === null || interval === void 0 ? void 0 : interval.monthInterval) {\r\n var monthExpand = (curDate.getUTCFullYear() - date.getUTCFullYear()) * 12 + curDate.getUTCMonth() - date.getUTCMonth();\r\n monthCheck = _checkInterval(interval.monthInterval, 0, monthExpand);\r\n }\r\n var dayCheck = 1;\r\n if (_isSpecificDaysGiven) {\r\n dayCheck = arrIndexOf(interval[_DYN_DAYS_OF_MONTH /* @min:%2edaysOfMonth */], curDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]());\r\n }\r\n else if (interval === null || interval === void 0 ? void 0 : interval.dayInterval) {\r\n var daySpan = Math.floor((curDate.getTime() - date.getTime()) / 86400000);\r\n dayCheck = _checkInterval(interval.dayInterval, 0, daySpan);\r\n }\r\n return monthCheck >= 0 && dayCheck >= 0;\r\n }\r\n return false;\r\n }\r\n function _getLocalStorageName(msgKey, prefix) {\r\n var fix = isNotNullOrUndefined(prefix) ? prefix : \"\";\r\n if (msgKey) {\r\n return THROTTLE_STORAGE_PREFIX + fix + \"-\" + msgKey;\r\n }\r\n return null;\r\n }\r\n // returns if throttle is triggered on current Date\r\n function _isTriggeredOnCurDate(preTriggerDate) {\r\n try {\r\n if (preTriggerDate) {\r\n var curDate = new Date();\r\n return preTriggerDate.getUTCFullYear() === curDate.getUTCFullYear() &&\r\n preTriggerDate.getUTCMonth() === curDate.getUTCMonth() &&\r\n preTriggerDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]() === curDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n // transfer local storage string value to object that identifies start date, current count and preTriggerDate\r\n function _getLocalStorageObj(value, logger, storageName) {\r\n try {\r\n var storageObj = {\r\n date: _getThrottleDate(),\r\n count: 0\r\n };\r\n if (value) {\r\n var obj = JSON.parse(value);\r\n var curObj = {\r\n date: _getThrottleDate(obj[_DYN_DATE /* @min:%2edate */]) || storageObj[_DYN_DATE /* @min:%2edate */],\r\n count: obj[_DYN_COUNT /* @min:%2ecount */] || storageObj[_DYN_COUNT /* @min:%2ecount */],\r\n preTriggerDate: obj.preTriggerDate ? _getThrottleDate(obj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */]) : undefined\r\n };\r\n return curObj;\r\n }\r\n else {\r\n _resetLocalStorage(logger, storageName, storageObj);\r\n return storageObj;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n // if datestr is not defined, current date will be returned\r\n function _getThrottleDate(dateStr) {\r\n // if new Date() can't be created through the provided dateStr, null will be returned.\r\n try {\r\n if (dateStr) {\r\n var date = new Date(dateStr);\r\n //make sure it is a valid Date Object\r\n if (!isNaN(date.getDate())) {\r\n return date;\r\n }\r\n }\r\n else {\r\n return new Date();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _resetLocalStorage(logger, storageName, obj) {\r\n try {\r\n return utlSetLocalStorage(logger, storageName, strTrim(JSON[_DYN_STRINGIFY /* @min:%2estringify */](obj)));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _checkInterval(interval, start, current) {\r\n if (interval <= 0) {\r\n return 1;\r\n }\r\n // count from start year\r\n return (current >= start) && (current - start) % interval == 0 ? Math.floor((current - start) / interval) + 1 : -1;\r\n }\r\n function _sendMessage(msgID, logger, message, severity) {\r\n _throwInternal(logger, severity || 1 /* eLoggingSeverity.CRITICAL */, msgID, message);\r\n }\r\n // NOTE: config.limit.samplingRate is set to 4 decimal places,\r\n // so config.limit.samplingRate = 1 means 0.0001%\r\n function _canSampledIn(msgID) {\r\n try {\r\n var cfg = _getCfgByKey(msgID);\r\n return randomValue(1000000) <= cfg.limit.samplingRate;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _getLocalStorageObjByKey(key) {\r\n try {\r\n var curObj = _localStorageObj[key];\r\n if (!curObj) {\r\n var localStorageName = _getLocalStorageName(key, _namePrefix);\r\n curObj = _getLocalStorageObj(utlGetLocalStorage(_logger, localStorageName), _logger, localStorageName);\r\n _localStorageObj[key] = curObj;\r\n }\r\n return _localStorageObj[key];\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _isTrigger(key) {\r\n var isTrigger = _isTriggered[key];\r\n if (isNullOrUndefined(isTrigger)) {\r\n isTrigger = false;\r\n var localStorageObj = _getLocalStorageObjByKey(key);\r\n if (localStorageObj) {\r\n isTrigger = _isTriggeredOnCurDate(localStorageObj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */]);\r\n }\r\n _isTriggered[key] = isTrigger;\r\n }\r\n return _isTriggered[key];\r\n }\r\n function _getQueueByKey(key) {\r\n _queue = _queue || {};\r\n if (isNullOrUndefined(_queue[key])) {\r\n _queue[key] = [];\r\n }\r\n return _queue[key];\r\n }\r\n }\r\n return ThrottleMgr;\r\n}());\r\nexport { ThrottleMgr };\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createAllPromise, createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, objDefine, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_2, _DYN_SPLICE, _DYN_UNLOAD, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar defaultValues = {\r\n perfEvtsSendAll: false\r\n};\r\nfunction _runListeners(listeners, name, isAsync, callback) {\r\n arrForEach(listeners, function (listener) {\r\n if (listener && listener[name]) {\r\n if (isAsync) {\r\n scheduleTimeout(function () { return callback(listener); }, 0);\r\n }\r\n else {\r\n try {\r\n callback(listener);\r\n }\r\n catch (e) {\r\n // Catch errors to ensure we don't block sending the requests\r\n }\r\n }\r\n }\r\n });\r\n}\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll;\r\n var unloadHandler;\r\n var _listeners = [];\r\n var cfgHandler = createDynamicConfig(config, defaultValues);\r\n unloadHandler = cfgHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;\r\n });\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n objDefine(_self, \"listeners\", {\r\n g: function () { return _listeners; }\r\n });\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _listeners[_DYN_PUSH /* @min:%2epush */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - AWTNotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n var index = arrIndexOf(_listeners, listener);\r\n while (index > -1) {\r\n _listeners[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n index = arrIndexOf(_listeners, listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param events - The array of events that have been sent.\r\n */\r\n _self[STR_EVENTS_SENT /* @min:%2eeventsSent */] = function (events) {\r\n _runListeners(_listeners, STR_EVENTS_SENT, true, function (listener) {\r\n listener[STR_EVENTS_SENT /* @min:%2eeventsSent */](events);\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param events - The array of events that have been discarded by the SDK.\r\n * @param reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason) {\r\n _runListeners(_listeners, STR_EVENTS_DISCARDED, true, function (listener) {\r\n listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason);\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param sendReason - The reason why the event batch is being sent.\r\n * @param isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */] = function (sendReason, isAsync) {\r\n _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync, function (listener) {\r\n listener[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendReason, isAsync);\r\n });\r\n };\r\n _self[STR_PERF_EVENT /* @min:%2eperfEvent */] = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */]()) {\r\n _runListeners(_listeners, STR_PERF_EVENT, false, function (listener) {\r\n if (perfEvent[_DYN_IS_ASYNC /* @min:%2eisAsync */]) {\r\n scheduleTimeout(function () { return listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent); }, 0);\r\n }\r\n else {\r\n listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n var _finishUnload = function () {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n _listeners = [];\r\n };\r\n var waiting;\r\n _runListeners(_listeners, \"unload\", false, function (listener) {\r\n var asyncUnload = listener[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n if (asyncUnload) {\r\n if (!waiting) {\r\n waiting = [];\r\n }\r\n waiting[_DYN_PUSH /* @min:%2epush */](asyncUnload);\r\n }\r\n });\r\n if (waiting) {\r\n return createPromise(function (resolve) {\r\n return doAwaitResponse(createAllPromise(waiting), function () {\r\n _finishUnload();\r\n resolve();\r\n });\r\n });\r\n }\r\n else {\r\n _finishUnload();\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for NotificationManager.prototype.addNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.removeNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.eventsSent.\r\n// Removed Stub for NotificationManager.prototype.eventsDiscarded.\r\n// Removed Stub for NotificationManager.prototype.eventsSendRequest.\r\n// Removed Stub for NotificationManager.prototype.perfEvent.\r\n// Removed Stub for NotificationManager.prototype.unload.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n NotificationManager.__ieDyn=1;\n\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport { __spreadArrayFn as __spreadArray } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise } from \"@nevware21/ts-async\";\r\nimport { arrAppend, arrForEach, arrIndexOf, createTimeout, deepExtend, hasDocument, isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, objDefine, objForEachKey, objFreeze, objHasOwn, scheduleTimeout, throwError } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_CREATE_NEW, _DYN_ENABLED, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT0, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_NOTIFY, _DYN_ON_COMPLETE, _DYN_POLL_INTERNAL_LOGS, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_2, _DYN_SET_DF, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_TIME, _DYN_UNLOAD, _DYN_VERSION, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { doUnloadAll, runTargetUnload } from \"./AsyncUtils\";\r\nimport { ChannelControllerPriority } from \"./Constants\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nimport { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getSetValue, proxyFunctionAs, proxyFunctions, toISOString } from \"./HelperFuncs\";\r\nimport { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EMPTY, STR_EVENTS_DISCARDED, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { PerfManager, doPerf, getGblPerfMgr } from \"./PerfManager\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { _getPluginState, createDistributedTraceContext, initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { TelemetryInitializerPlugin } from \"./TelemetryInitializerPlugin\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strValidationError = \"Plugins must provide initialize method\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar strSdkUnloadingError = \"SDK is still unloading...\";\r\nvar strSdkNotInitialized = \"SDK is not initialized\";\r\n// const strPluginUnloadFailed = \"Failed to unload plugin\";\r\n/**\r\n * The default settings for the config.\r\n * WE MUST include all defaults here to ensure that the config is created with all of the properties\r\n * defined as dynamic.\r\n */\r\nvar defaultConfig = objDeepFreeze((_a = {\r\n cookieCfg: {}\r\n },\r\n _a[STR_EXTENSIONS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_CHANNELS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_EXTENSION_CONFIG] = { ref: true, v: {} },\r\n _a[STR_CREATE_PERF_MGR] = UNDEFINED_VALUE,\r\n _a.loggingLevelConsole = 0 /* eLoggingSeverity.DISABLED */,\r\n _a.diagnosticLogInterval = UNDEFINED_VALUE,\r\n _a));\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nfunction _validateExtensions(logger, channelPriority, allExtensions) {\r\n var _a;\r\n // Concat all available extensions\r\n var coreExtensions = [];\r\n var channels = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n // Check for ext.initialize\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE /* @min:%2einitialize */])) {\r\n throwError(strValidationError);\r\n }\r\n var extPriority = ext[STR_PRIORITY /* @min:%2epriority */];\r\n var identifier = ext[_DYN_IDENTIFIER /* @min:%2eidentifier */];\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n _warnToConsole(logger, \"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channels\r\n if (!extPriority || extPriority < channelPriority) {\r\n // Add to core extension that will be managed by AppInsightsCore\r\n coreExtensions[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n else {\r\n channels[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n return _a = {},\r\n _a[STR_CORE /* @min:core */] = coreExtensions,\r\n _a[STR_CHANNELS /* @min:channels */] = channels,\r\n _a;\r\n}\r\nfunction _isPluginPresent(thePlugin, plugins) {\r\n var exists = false;\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin === thePlugin) {\r\n exists = true;\r\n return -1;\r\n }\r\n });\r\n return exists;\r\n}\r\nfunction _deepMergeConfig(details, target, newValues, merge) {\r\n // Lets assign the new values to the existing config\r\n if (newValues) {\r\n objForEachKey(newValues, function (key, value) {\r\n if (merge) {\r\n if (isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n }\r\n if (merge && isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n else {\r\n // Just Assign (replace) and/or make the property dynamic\r\n details.set(target, key, value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _findWatcher(listeners, newWatcher) {\r\n var theListener = null;\r\n var idx = -1;\r\n arrForEach(listeners, function (listener, lp) {\r\n if (listener.w === newWatcher) {\r\n theListener = listener;\r\n idx = lp;\r\n return -1;\r\n }\r\n });\r\n return { i: idx, l: theListener };\r\n}\r\nfunction _addDelayedCfgListener(listeners, newWatcher) {\r\n var theListener = _findWatcher(listeners, newWatcher).l;\r\n if (!theListener) {\r\n theListener = {\r\n w: newWatcher,\r\n rm: function () {\r\n var fnd = _findWatcher(listeners, newWatcher);\r\n if (fnd.i !== -1) {\r\n listeners[_DYN_SPLICE /* @min:%2esplice */](fnd.i, 1);\r\n }\r\n }\r\n };\r\n listeners[_DYN_PUSH /* @min:%2epush */](theListener);\r\n }\r\n return theListener;\r\n}\r\nfunction _registerDelayedCfgListener(config, listeners, logger) {\r\n arrForEach(listeners, function (listener) {\r\n var unloadHdl = onConfigChange(config, listener.w, logger);\r\n delete listener.w; // Clear the listener reference so it will get garbage collected.\r\n // replace the remove function\r\n listener.rm = function () {\r\n unloadHdl.rm();\r\n };\r\n });\r\n}\r\n/**\r\n * @group Classes\r\n * @group Entrypoint\r\n */\r\nvar AppInsightsCore = /** @class */ (function () {\r\n function AppInsightsCore() {\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _configHandler;\r\n var _isInitialized;\r\n var _logger;\r\n var _eventQueue;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cfgPerfManager;\r\n var _cookieManager;\r\n var _pluginChain;\r\n var _configExtensions;\r\n var _channelConfig;\r\n var _channels;\r\n var _isUnloading;\r\n var _telemetryInitializerPlugin;\r\n var _internalLogsEventName;\r\n var _evtNamespace;\r\n var _unloadHandlers;\r\n var _hookContainer;\r\n var _debugListener;\r\n var _traceCtx;\r\n var _instrumentationKey;\r\n var _cfgListeners;\r\n var _extensions;\r\n var _pluginVersionStringArr;\r\n var _pluginVersionString;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller;\r\n var _internalLogPollerListening;\r\n var _forceStopInternalLogPoller;\r\n dynamicProto(AppInsightsCore, this, function (_self) {\r\n // Set the default values (also called during teardown)\r\n _initDefaults();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_extensions];\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () { return _isInitialized; };\r\n // Creating the self.initialize = ()\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n if (_isUnloading) {\r\n throwError(strSdkUnloadingError);\r\n }\r\n // Make sure core is only initialized once\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n throwError(\"Core cannot be initialized more than once\");\r\n }\r\n _configHandler = createDynamicConfig(config, defaultConfig, logger || _self[_DYN_LOGGER /* @min:%2elogger */], false);\r\n // Re-assigning the local config property so we don't have any references to the passed value and it can be garbage collected\r\n config = _configHandler.cfg;\r\n // This will be \"re-run\" if the referenced config properties are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n _instrumentationKey = details.cfg.instrumentationKey;\r\n // Mark the extensionConfig and all first level keys as referenced\r\n // This is so that calls to getExtCfg() will always return the same object\r\n // Even when a user may \"re-assign\" the plugin properties (or it's unloaded/reloaded)\r\n var extCfg = details.ref(details.cfg, STR_EXTENSION_CONFIG);\r\n objForEachKey(extCfg, function (key) {\r\n details.ref(extCfg, key);\r\n });\r\n if (isNullOrUndefined(_instrumentationKey)) {\r\n throwError(\"Please provide instrumentation key\");\r\n }\r\n }));\r\n _notificationManager = notificationManager;\r\n _initDebugListener();\r\n _initPerfManager();\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = logger;\r\n var cfgExtensions = config[STR_EXTENSIONS /* @min:%2eextensions */];\r\n // Extension validation\r\n _configExtensions = [];\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */].apply(_configExtensions, __spreadArray(__spreadArray([], extensions, false), cfgExtensions, false));\r\n _channelConfig = config[STR_CHANNELS /* @min:%2echannels */];\r\n _initPluginChain(null);\r\n if (!_channels || _channels[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n throwError(\"No \" + STR_CHANNELS + \" available\");\r\n }\r\n if (_channelConfig && _channelConfig[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n var teeController = _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */](\"TeeChannelController\");\r\n if (!teeController || !teeController.plugin) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"TeeChannel required\");\r\n }\r\n }\r\n _registerDelayedCfgListener(config, _cfgListeners, _logger);\r\n _cfgListeners = null;\r\n _isInitialized = true;\r\n _self.releaseQueue();\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n };\r\n _self.getChannels = function () {\r\n var controls = [];\r\n if (_channels) {\r\n arrForEach(_channels, function (channel) {\r\n controls[_DYN_PUSH /* @min:%2epush */](channel);\r\n });\r\n }\r\n return objFreeze(controls);\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */](), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n if (!telemetryItem[_DYN_NAME /* @min:%2ename */] && isNullOrUndefined(telemetryItem[_DYN_NAME /* @min:%2ename */])) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throwError(\"telemetry name required\");\r\n }\r\n // setup default iKey if not passed in\r\n telemetryItem.iKey = telemetryItem.iKey || _instrumentationKey;\r\n // add default timestamp if not passed in\r\n telemetryItem[_DYN_TIME /* @min:%2etime */] = telemetryItem[_DYN_TIME /* @min:%2etime */] || toISOString(new Date());\r\n // Common Schema 4.0\r\n telemetryItem.ver = telemetryItem.ver || \"4.0\";\r\n if (!_isUnloading && _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n // Process the telemetry plugin chain\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](telemetryItem);\r\n }\r\n else {\r\n // Queue events until all extensions are initialized\r\n _eventQueue[_DYN_PUSH /* @min:%2epush */](telemetryItem);\r\n }\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n _self[_DYN_GET_PROCESS_TEL_CONT0 /* @min:%2egetProcessTelContext */] = _createTelCtx;\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */] = function () {\r\n if (!_notificationManager) {\r\n _notificationManager = new NotificationManager(_configHandler.cfg);\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param listener - An INotificationListener object.\r\n */\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]()[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - INotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */](listener);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_configHandler.cfg, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n if (_cookieManager !== cookieMgr) {\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = cookieMgr;\r\n }\r\n };\r\n _self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */] = function () {\r\n if (!_perfManager && !_cfgPerfManager) {\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n if (details.cfg.enablePerfMgr) {\r\n var createPerfMgr = details.cfg[STR_CREATE_PERF_MGR /* @min:%2ecreatePerfMgr */];\r\n if (isFunction(createPerfMgr)) {\r\n _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]());\r\n }\r\n }\r\n }));\r\n }\r\n return _perfManager || _cfgPerfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.releaseQueue = function () {\r\n if (_isInitialized && _eventQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var eventQueue = _eventQueue;\r\n _eventQueue = [];\r\n arrForEach(eventQueue, function (event) {\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](event);\r\n });\r\n }\r\n };\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */] = function (eventName) {\r\n _internalLogsEventName = eventName || null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n return _startLogPoller(true);\r\n };\r\n function _startLogPoller(alwaysStart) {\r\n if ((!_internalLogPoller || !_internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */]) && !_forceStopInternalLogPoller) {\r\n var shouldStart = alwaysStart || (_logger && _logger.queue[_DYN_LENGTH /* @min:%2elength */] > 0);\r\n if (shouldStart) {\r\n if (!_internalLogPollerListening) {\r\n _internalLogPollerListening = true;\r\n // listen for any configuration changes so that changes to the\r\n // interval will cause the timer to be re-initialized\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var interval = details.cfg.diagnosticLogInterval;\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n var isRunning = false;\r\n if (_internalLogPoller) {\r\n // It was already created so remember it's running and cancel\r\n isRunning = _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */];\r\n _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n }\r\n // Create / reconfigure\r\n _internalLogPoller = createTimeout(_flushInternalLogs, interval);\r\n _internalLogPoller.unref();\r\n // Restart if previously running\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = isRunning;\r\n }));\r\n }\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = true;\r\n }\r\n }\r\n return _internalLogPoller;\r\n }\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */] = function () {\r\n _forceStopInternalLogPoller = true;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _flushInternalLogs();\r\n };\r\n // Add addTelemetryInitializer\r\n proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, [\"addTelemetryInitializer\"]);\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync, unloadComplete, cbTimeout) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_isInitialized) {\r\n // The SDK is not initialized\r\n throwError(strSdkNotInitialized);\r\n }\r\n // Check if the SDK still unloading so throw\r\n if (_isUnloading) {\r\n // The SDK is already unloading\r\n throwError(strSdkUnloadingError);\r\n }\r\n var unloadState = (_a = {\r\n reason: 50 /* TelemetryUnloadReason.SdkUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a.flushComplete = false,\r\n _a);\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);\r\n processUnloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n _hookContainer.run(_self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Run any \"unload\" functions for the _cookieManager, _notificationManager and _logger\r\n doUnloadAll([_cookieManager, _notificationManager, _logger], isAsync, function () {\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n });\r\n }, _self);\r\n function _doUnload(flushComplete) {\r\n unloadState.flushComplete = flushComplete;\r\n _isUnloading = true;\r\n // Run all of the unload handlers first (before unloading the plugins)\r\n _unloadHandlers.run(processUnloadCtx, unloadState);\r\n // Stop polling the internal logs\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */]();\r\n // Start unloading the components, from this point onwards the SDK should be considered to be in an unstable state\r\n processUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n _flushInternalLogs();\r\n if (!_flushChannels(isAsync, _doUnload, 6 /* SendRequestReason.SdkUnload */, cbTimeout)) {\r\n _doUnload(false);\r\n }\r\n return result;\r\n };\r\n _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */] = _getPlugin;\r\n _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {\r\n if (!plugin) {\r\n addCb && addCb(false);\r\n _logOrThrowError(strValidationError);\r\n return;\r\n }\r\n var existingPlugin = _getPlugin(plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n if (existingPlugin && !replaceExisting) {\r\n addCb && addCb(false);\r\n _logOrThrowError(\"Plugin [\" + plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"] is already loaded!\");\r\n return;\r\n }\r\n var updateState = {\r\n reason: 16 /* TelemetryUpdateReason.PluginAdded */\r\n };\r\n function _addPlugin(removed) {\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n updateState.added = [plugin];\r\n // Re-Initialize the plugin chain\r\n _initPluginChain(updateState);\r\n addCb && addCb(true);\r\n }\r\n if (existingPlugin) {\r\n var removedPlugins_1 = [existingPlugin.plugin];\r\n var unloadState = {\r\n reason: 2 /* TelemetryUnloadReason.PluginReplace */,\r\n isAsync: !!isAsync\r\n };\r\n _removePlugins(removedPlugins_1, unloadState, function (removed) {\r\n if (!removed) {\r\n // Previous plugin was successfully removed or was not installed\r\n addCb && addCb(false);\r\n }\r\n else {\r\n updateState.removed = removedPlugins_1;\r\n updateState.reason |= 32 /* TelemetryUpdateReason.PluginRemoved */;\r\n _addPlugin(true);\r\n }\r\n });\r\n }\r\n else {\r\n _addPlugin(false);\r\n }\r\n };\r\n _self.updateCfg = function (newConfig, mergeExisting) {\r\n if (mergeExisting === void 0) { mergeExisting = true; }\r\n var updateState;\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n updateState = {\r\n reason: 1 /* TelemetryUpdateReason.ConfigurationChanged */,\r\n cfg: _configHandler.cfg,\r\n oldCfg: deepExtend({}, _configHandler.cfg),\r\n newConfig: deepExtend({}, newConfig),\r\n merge: mergeExisting\r\n };\r\n newConfig = updateState.newConfig;\r\n var cfg = _configHandler.cfg;\r\n // replace the immutable (if initialized) values\r\n // We don't currently allow updating the extensions and channels via the update config\r\n // So overwriting any user provided values to reuse the existing values\r\n newConfig[STR_EXTENSIONS /* @min:%2eextensions */] = cfg[STR_EXTENSIONS /* @min:%2eextensions */];\r\n newConfig[STR_CHANNELS /* @min:%2echannels */] = cfg[STR_CHANNELS /* @min:%2echannels */];\r\n }\r\n // Explicitly blocking any previous config watchers so that they don't get called because\r\n // of this bulk update (Probably not necessary)\r\n _configHandler._block(function (details) {\r\n // Lets assign the new values to the existing config either overwriting or re-assigning\r\n var theConfig = details.cfg;\r\n _deepMergeConfig(details, theConfig, newConfig, mergeExisting);\r\n if (!mergeExisting) {\r\n // Remove (unassign) the values \"missing\" from the newConfig and also not in the default config\r\n objForEachKey(theConfig, function (key) {\r\n if (!objHasOwn(newConfig, key)) {\r\n // Set the value to undefined\r\n details.set(theConfig, key, UNDEFINED_VALUE);\r\n }\r\n });\r\n }\r\n // Apply defaults to the new config\r\n details[_DYN_SET_DF /* @min:%2esetDf */](theConfig, defaultConfig);\r\n }, true);\r\n // Now execute all of the listeners (synchronously) so they update their values immediately\r\n _configHandler[_DYN_NOTIFY /* @min:%2enotify */]();\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n };\r\n _self.evtNamespace = function () {\r\n return _evtNamespace;\r\n };\r\n _self.flush = _flushChannels;\r\n _self.getTraceCtx = function (createNew) {\r\n if (!_traceCtx) {\r\n _traceCtx = createDistributedTraceContext();\r\n }\r\n return _traceCtx;\r\n };\r\n _self.setTraceCtx = function (traceCtx) {\r\n _traceCtx = traceCtx || null;\r\n };\r\n _self.addUnloadHook = _addUnloadHook;\r\n // Create the addUnloadCb\r\n proxyFunctionAs(_self, \"addUnloadCb\", function () { return _unloadHandlers; }, \"add\");\r\n _self.onCfgChange = function (handler) {\r\n var unloadHook;\r\n if (!_isInitialized) {\r\n unloadHook = _addDelayedCfgListener(_cfgListeners, handler);\r\n }\r\n else {\r\n unloadHook = onConfigChange(_configHandler.cfg, handler, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return {\r\n rm: function () {\r\n unloadHook.rm();\r\n }\r\n };\r\n };\r\n _self.getWParam = function () {\r\n return (hasDocument() || !!_configHandler.cfg.enableWParam) ? 0 : -1;\r\n };\r\n function _setPluginVersions() {\r\n var thePlugins = {};\r\n _pluginVersionStringArr = [];\r\n var _addPluginVersions = function (plugins) {\r\n if (plugins) {\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] && plugin[_DYN_VERSION /* @min:%2eversion */] && !thePlugins[plugin.identifier]) {\r\n var ver = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"=\" + plugin[_DYN_VERSION /* @min:%2eversion */];\r\n _pluginVersionStringArr[_DYN_PUSH /* @min:%2epush */](ver);\r\n thePlugins[plugin.identifier] = plugin;\r\n }\r\n });\r\n }\r\n };\r\n _addPluginVersions(_channels);\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (channels) {\r\n _addPluginVersions(channels);\r\n });\r\n }\r\n _addPluginVersions(_configExtensions);\r\n }\r\n function _initDefaults() {\r\n _isInitialized = false;\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _configHandler = createDynamicConfig({}, defaultConfig, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Set the logging level to critical so that any critical initialization failures are displayed on the console\r\n _configHandler.cfg[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */] = 1 /* eLoggingSeverity.CRITICAL */;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _configHandler.cfg; },\r\n s: function (newValue) {\r\n _self.updateCfg(newValue, false);\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionStringArr\", {\r\n g: function () {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n return _pluginVersionStringArr;\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionString\", {\r\n g: function () {\r\n if (!_pluginVersionString) {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n _pluginVersionString = _pluginVersionStringArr.join(\";\");\r\n }\r\n return _pluginVersionString || STR_EMPTY;\r\n }\r\n });\r\n objDefine(_self, \"logger\", {\r\n g: function () {\r\n if (!_logger) {\r\n _logger = new DiagnosticLogger(_configHandler.cfg);\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = _logger;\r\n }\r\n return _logger;\r\n },\r\n s: function (newLogger) {\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = newLogger;\r\n if (_logger !== newLogger) {\r\n runTargetUnload(_logger, false);\r\n _logger = newLogger;\r\n }\r\n }\r\n });\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = new DiagnosticLogger(_configHandler.cfg);\r\n _extensions = [];\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n _telemetryInitializerPlugin = new TelemetryInitializerPlugin();\r\n _eventQueue = [];\r\n runTargetUnload(_notificationManager, false);\r\n _notificationManager = null;\r\n _perfManager = null;\r\n _cfgPerfManager = null;\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = null;\r\n _pluginChain = null;\r\n _configExtensions = [];\r\n _channelConfig = null;\r\n _channels = null;\r\n _isUnloading = false;\r\n _internalLogsEventName = null;\r\n _evtNamespace = createUniqueNamespace(\"AIBaseCore\", true);\r\n _unloadHandlers = createUnloadHandlerContainer();\r\n _traceCtx = null;\r\n _instrumentationKey = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _cfgListeners = [];\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n _forceStopInternalLogPoller = false;\r\n }\r\n function _createTelCtx() {\r\n var theCtx = createProcessTelemetryContext(_getPluginChain(), _configHandler.cfg, _self);\r\n theCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n return theCtx;\r\n }\r\n // Initialize or Re-initialize the plugins\r\n function _initPluginChain(updateState) {\r\n // Extension validation\r\n var theExtensions = _validateExtensions(_self[_DYN_LOGGER /* @min:%2elogger */], ChannelControllerPriority, _configExtensions);\r\n _pluginChain = null;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Get the primary channel queue and include as part of the normal extensions\r\n _channels = (_channelConfig || [])[0] || [];\r\n // Add any channels provided in the extensions and sort them\r\n _channels = sortPlugins(arrAppend(_channels, theExtensions[STR_CHANNELS /* @min:%2echannels */]));\r\n // Create an array of all extensions, including the _channels\r\n var allExtensions = arrAppend(sortPlugins(theExtensions[STR_CORE /* @min:%2ecore */]), _channels);\r\n // Required to allow plugins to call core.getPlugin() during their own initialization\r\n _extensions = objFreeze(allExtensions);\r\n // This has a side effect of adding the extensions passed during initialization\r\n // into the config.extensions, so you can see all of the extensions loaded.\r\n // This will also get updated by the addPlugin() and remove plugin code.\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n var rootCtx = _createTelCtx();\r\n // Initializing the channels first\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n initializePlugins(rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels), allExtensions);\r\n }\r\n // Now initialize the normal extensions (explicitly not including the _channels as this can cause duplicate initialization)\r\n initializePlugins(rootCtx, allExtensions);\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n }\r\n function _getPlugin(pluginIdentifier) {\r\n var theExt = null;\r\n var thePlugin = null;\r\n var channelHosts = [];\r\n arrForEach(_extensions, function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier && ext !== _telemetryInitializerPlugin) {\r\n thePlugin = ext;\r\n return -1;\r\n }\r\n if (ext.getChannel) {\r\n channelHosts[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n if (!thePlugin && channelHosts[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channelHosts, function (host) {\r\n thePlugin = host.getChannel(pluginIdentifier);\r\n if (!thePlugin) {\r\n return -1;\r\n }\r\n });\r\n }\r\n if (thePlugin) {\r\n theExt = {\r\n plugin: thePlugin,\r\n setEnabled: function (enabled) {\r\n _getPluginState(thePlugin)[STR_DISABLED] = !enabled;\r\n },\r\n isEnabled: function () {\r\n var pluginState = _getPluginState(thePlugin);\r\n return !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] && !pluginState[STR_DISABLED];\r\n },\r\n remove: function (isAsync, removeCb) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n var pluginsToRemove = [thePlugin];\r\n var unloadState = (_a = {\r\n reason: 1 /* TelemetryUnloadReason.PluginUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a);\r\n _removePlugins(pluginsToRemove, unloadState, function (removed) {\r\n if (removed) {\r\n // Re-Initialize the plugin chain\r\n _initPluginChain({\r\n reason: 32 /* TelemetryUpdateReason.PluginRemoved */,\r\n removed: pluginsToRemove\r\n });\r\n }\r\n removeCb && removeCb(removed);\r\n });\r\n }\r\n };\r\n }\r\n return theExt;\r\n }\r\n function _getPluginChain() {\r\n if (!_pluginChain) {\r\n // copy the collection of extensions\r\n var extensions = (_extensions || []).slice();\r\n // During add / remove this may get called again, so don't read if already present\r\n if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {\r\n extensions[_DYN_PUSH /* @min:%2epush */](_telemetryInitializerPlugin);\r\n }\r\n _pluginChain = createTelemetryProxyChain(sortPlugins(extensions), _configHandler.cfg, _self);\r\n }\r\n return _pluginChain;\r\n }\r\n function _removePlugins(thePlugins, unloadState, removeComplete) {\r\n if (thePlugins && thePlugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var unloadChain = createTelemetryProxyChain(thePlugins, _configHandler.cfg, _self);\r\n var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self);\r\n unloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n var removed = false;\r\n // Remove the listed config extensions\r\n var newConfigExtensions = [];\r\n arrForEach(_configExtensions, function (plugin, idx) {\r\n if (!_isPluginPresent(plugin, thePlugins)) {\r\n newConfigExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n _configExtensions = newConfigExtensions;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Re-Create the channel config\r\n var newChannelConfig = [];\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (queue, idx) {\r\n var newQueue = [];\r\n arrForEach(queue, function (channel) {\r\n if (!_isPluginPresent(channel, thePlugins)) {\r\n newQueue[_DYN_PUSH /* @min:%2epush */](channel);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n newChannelConfig[_DYN_PUSH /* @min:%2epush */](newQueue);\r\n });\r\n _channelConfig = newChannelConfig;\r\n }\r\n removeComplete && removeComplete(removed);\r\n _startLogPoller();\r\n });\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n else {\r\n removeComplete(false);\r\n }\r\n }\r\n function _flushInternalLogs() {\r\n if (_logger && _logger.queue) {\r\n var queue = _logger.queue.slice(0);\r\n _logger.queue[_DYN_LENGTH /* @min:%2elength */] = 0;\r\n arrForEach(queue, function (logMessage) {\r\n var _a;\r\n var item = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = _internalLogsEventName ? _internalLogsEventName : \"InternalMessageId: \" + logMessage[_DYN_MESSAGE_ID /* @min:%2emessageId */],\r\n _a.iKey = _instrumentationKey,\r\n _a[_DYN_TIME /* @min:time */] = toISOString(new Date()),\r\n _a.baseType = _InternalLogMessage.dataType,\r\n _a.baseData = { message: logMessage[_DYN_MESSAGE /* @min:%2emessage */] },\r\n _a);\r\n _self.track(item);\r\n });\r\n }\r\n }\r\n function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {\r\n // Setting waiting to one so that we don't call the callBack until we finish iterating\r\n var waiting = 1;\r\n var doneIterating = false;\r\n var cbTimer = null;\r\n cbTimeout = cbTimeout || 5000;\r\n function doCallback() {\r\n waiting--;\r\n if (doneIterating && waiting === 0) {\r\n cbTimer && cbTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n cbTimer = null;\r\n callBack && callBack(doneIterating);\r\n callBack = null;\r\n }\r\n }\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var flushCtx = _createTelCtx()[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels);\r\n flushCtx.iterate(function (plugin) {\r\n if (plugin.flush) {\r\n waiting++;\r\n var handled_1 = false;\r\n // Not all channels will call this callback for every scenario\r\n if (!plugin.flush(isAsync, function () {\r\n handled_1 = true;\r\n doCallback();\r\n }, sendReason)) {\r\n if (!handled_1) {\r\n // If any channel doesn't return true and it didn't call the callback, then we should assume that the callback\r\n // will never be called, so use a timeout to allow the channel(s) some time to \"finish\" before triggering any\r\n // followup function (such as unloading)\r\n if (isAsync && cbTimer == null) {\r\n cbTimer = scheduleTimeout(function () {\r\n cbTimer = null;\r\n doCallback();\r\n }, cbTimeout);\r\n }\r\n else {\r\n doCallback();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n doneIterating = true;\r\n doCallback();\r\n return true;\r\n }\r\n function _initDebugListener() {\r\n // Lazily ensure that the notification manager is created\r\n !_notificationManager && _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n // Will get recalled if any referenced config values are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var disableDbgExt = details.cfg.disableDbgExt;\r\n if (disableDbgExt === true && _debugListener) {\r\n // Remove any previously loaded debug listener\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_2 /* @min:%2eremoveNotificationListener */](_debugListener);\r\n _debugListener = null;\r\n }\r\n if (_notificationManager && !_debugListener && disableDbgExt !== true) {\r\n _debugListener = getDebugListener(details.cfg);\r\n _notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](_debugListener);\r\n }\r\n }));\r\n }\r\n function _initPerfManager() {\r\n // Will get recalled if any referenced config values are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var enablePerfMgr = details.cfg.enablePerfMgr;\r\n if (!enablePerfMgr && _cfgPerfManager) {\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n }\r\n if (enablePerfMgr) {\r\n // Set the performance manager creation function if not defined\r\n getSetValue(details.cfg, STR_CREATE_PERF_MGR, _createPerfManager);\r\n }\r\n }));\r\n }\r\n function _doUpdate(updateState) {\r\n var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self);\r\n updateCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n function _logOrThrowError(message) {\r\n var logger = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // there should always be a logger\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, message);\r\n _startLogPoller();\r\n }\r\n else {\r\n throwError(message);\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n if (manager) {\r\n manager[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */]([telemetryItem], 2 /* eEventsDiscardedReason.InvalidEvent */);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _hookContainer.add(hooks);\r\n }\r\n });\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.getChannels.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n// Removed Stub for AppInsightsCore.prototype.getProcessTelContext.\r\n// Removed Stub for AppInsightsCore.prototype.getNotifyMgr.\r\n// Removed Stub for AppInsightsCore.prototype.addNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.removeNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.getPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.eventCnt.\r\n// Removed Stub for AppInsightsCore.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.addTelemetryInitializer.\r\n// Removed Stub for AppInsightsCore.prototype.unload.\r\n// Removed Stub for AppInsightsCore.prototype.getPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.addPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.updateCfg.\r\n// Removed Stub for AppInsightsCore.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsCore.prototype.flush.\r\n// Removed Stub for AppInsightsCore.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.setTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadHook.\r\n// Removed Stub for AppInsightsCore.prototype.onCfgChange.\r\n// Removed Stub for AppInsightsCore.prototype.releaseQueue.\r\n// Removed Stub for AppInsightsCore.prototype._updateHook.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n AppInsightsCore.__ieDyn=1;\n\n return AppInsightsCore;\r\n}());\r\nexport { AppInsightsCore };\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// \r\n// \r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_SPLICE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getExceptionName } from \"./HelperFuncs\";\r\nimport { STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nfunction _addInitializer(_initializers, id, telemetryInitializer) {\r\n var theInitializer = {\r\n id: id,\r\n fn: telemetryInitializer\r\n };\r\n arrAppend(_initializers, theInitializer);\r\n var handler = {\r\n remove: function () {\r\n arrForEach(_initializers, function (initializer, idx) {\r\n if (initializer.id === theInitializer.id) {\r\n _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n return handler;\r\n}\r\nfunction _runInitializers(_initializers, item, logger) {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */];\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _initializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Telemetry initializer failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n return !doNotSendItem;\r\n}\r\nvar TelemetryInitializerPlugin = /** @class */ (function (_super) {\r\n __extends(TelemetryInitializerPlugin, _super);\r\n function TelemetryInitializerPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"TelemetryInitializerPlugin\";\r\n _this.priority = 199;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _id;\r\n var _initializers;\r\n _initDefaults();\r\n dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) {\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n return _addInitializer(_initializers, _id++, telemetryInitializer);\r\n };\r\n _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) {\r\n if (_runInitializers(_initializers, item, itemCtx ? itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]() : _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]())) {\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx);\r\n }\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () {\r\n _initDefaults();\r\n };\r\n });\r\n function _initDefaults() {\r\n _id = 0;\r\n _initializers = [];\r\n }\r\n return _this;\r\n }\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n TelemetryInitializerPlugin.__ieDyn=1;\n\n return TelemetryInitializerPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { TelemetryInitializerPlugin };\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var ChannelControllerPriority = 500;\r\n","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_REQUEST_URL = \"requestUrl\"; // Count: 12\r\nexport var _DYN_INST = \"inst\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 10\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 9\r\nexport var _DYN_SPAN_ID = \"spanID\"; // Count: 8\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 13\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 7\r\nexport var _DYN_ABORTED = \"aborted\"; // Count: 7\r\nexport var _DYN_TRACE_ID0 = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID1 = \"spanId\"; // Count: 5\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 4\r\nexport var _DYN_CORE = \"core\"; // Count: 8\r\nexport var _DYN_INCLUDE_CORRELATION_2 = \"includeCorrelationHeaders\"; // Count: 4\r\nexport var _DYN_GET_ABSOLUTE_URL = \"getAbsoluteUrl\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 6\r\nexport var _DYN_REQUEST_HEADERS = \"requestHeaders\"; // Count: 13\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_TRACK_DEPENDENCY_DAT3 = \"trackDependencyDataInternal\"; // Count: 2\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_ENABLE_REQUEST_HEADE4 = \"enableRequestHeaderTracking\"; // Count: 3\r\nexport var _DYN_ENABLE_AJAX_ERROR_ST5 = \"enableAjaxErrorStatusText\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_PERF_TRA6 = \"enableAjaxPerfTracking\"; // Count: 2\r\nexport var _DYN_MAX_AJAX_CALLS_PER_V7 = \"maxAjaxCallsPerView\"; // Count: 2\r\nexport var _DYN_EXCLUDE_REQUEST_FROM8 = \"excludeRequestFromAutoTrackingPatterns\"; // Count: 2\r\nexport var _DYN_ADD_REQUEST_CONTEXT = \"addRequestContext\"; // Count: 2\r\nexport var _DYN_DISABLE_AJAX_TRACKIN9 = \"disableAjaxTracking\"; // Count: 3\r\nexport var _DYN_AJAX_PERF_LOOKUP_DEL10 = \"ajaxPerfLookupDelay\"; // Count: 2\r\nexport var _DYN_DISABLE_FETCH_TRACKI11 = \"disableFetchTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_RESPONSE_HEAD12 = \"enableResponseHeaderTracking\"; // Count: 2\r\nexport var _DYN_STATUS = \"status\"; // Count: 11\r\nexport var _DYN_STATUS_TEXT = \"statusText\"; // Count: 9\r\nexport var _DYN_HEADER_MAP = \"headerMap\"; // Count: 8\r\nexport var _DYN_OPEN_DONE = \"openDone\"; // Count: 3\r\nexport var _DYN_SEND_DONE = \"sendDone\"; // Count: 3\r\nexport var _DYN_REQUEST_SENT_TIME = \"requestSentTime\"; // Count: 9\r\nexport var _DYN_ABORT_DONE = \"abortDone\"; // Count: 3\r\nexport var _DYN_GET_TRACE_ID = \"getTraceId\"; // Count: 3\r\nexport var _DYN_GET_TRACE_FLAGS = \"getTraceFlags\"; // Count: 3\r\nexport var _DYN_METHOD = \"method\"; // Count: 8\r\nexport var _DYN_ERROR_STATUS_TEXT = \"errorStatusText\"; // Count: 3\r\nexport var _DYN_STATE_CHANGE_ATTACHE13 = \"stateChangeAttached\"; // Count: 2\r\nexport var _DYN_RESPONSE_TEXT = \"responseText\"; // Count: 6\r\nexport var _DYN_RESPONSE_FINISHED_TI14 = \"responseFinishedTime\"; // Count: 7\r\nexport var _DYN__CREATE_TRACK_ITEM = \"CreateTrackItem\"; // Count: 3\r\nexport var _DYN_RESPONSE = \"response\"; // Count: 4\r\nexport var _DYN_GET_ALL_RESPONSE_HEA15 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_GET_PART_APROPS = \"getPartAProps\"; // Count: 3\r\nexport var _DYN_PERF_MARK = \"perfMark\"; // Count: 4\r\nexport var _DYN_NAME = \"name\"; // Count: 6\r\nexport var _DYN_PERF_TIMING = \"perfTiming\"; // Count: 3\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 5\r\nexport var _DYN_AJAX_DIAGNOSTICS_MES16 = \"ajaxDiagnosticsMessage\"; // Count: 3\r\nexport var _DYN_CORRELATION_CONTEXT = \"correlationContext\"; // Count: 3\r\nexport var _DYN_AJAX_TOTAL_DURATION = \"ajaxTotalDuration\"; // Count: 3\r\nexport var _DYN_EVENT_TRACE_CTX = \"eventTraceCtx\"; // Count: 3\r\n","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { Extensions, dataSanitizeUrl, dateTimeUtilsDuration, msToTimeSpan, urlGetAbsoluteUrl, urlGetCompleteUrl } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isNullOrUndefined, isNumber, isString, normalizeJsName, objForEachKey, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION, STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_ERROR_STATUS_TEXT, _DYN_EVENT_TRACE_CTX, _DYN_GET_ABSOLUTE_URL, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADER_MAP, _DYN_LENGTH, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_SEND_DONE, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */];\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[STR_DURATION /* @min:%2eduration */];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, STR_DURATION, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */]) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self[_DYN_OPEN_DONE /* @min:%2eopenDone */] = false;\r\n self.setRequestHeaderDone = false;\r\n self[_DYN_SEND_DONE /* @min:%2esendDone */] = false;\r\n self[_DYN_ABORT_DONE /* @min:%2eabortDone */] = false;\r\n // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\r\n self[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceId, spanId, logger, traceCtx) {\r\n var _a;\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self[_DYN_PERF_MARK /* @min:%2eperfMark */] = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] = null;\r\n self[_DYN_ABORTED /* @min:%2eaborted */] = 0;\r\n self.pageUrl = null;\r\n self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = null;\r\n self.requestSize = 0;\r\n self[_DYN_METHOD /* @min:%2emethod */] = null;\r\n self[_DYN_STATUS /* @min:%2estatus */] = null;\r\n self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = null;\r\n self.responseStartedTime = null;\r\n self[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self[_DYN_TRACE_ID /* @min:%2etraceID */] = traceId;\r\n self[_DYN_SPAN_ID /* @min:%2espanID */] = spanId;\r\n self[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();\r\n if (traceCtx) {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = (_a = {},\r\n _a[_DYN_TRACE_ID0 /* @min:traceId */] = traceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */](),\r\n _a[_DYN_SPAN_ID1 /* @min:spanId */] = traceCtx.getSpanId(),\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = traceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */](),\r\n _a);\r\n }\r\n else {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = null;\r\n }\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;\r\n };\r\n self.getPathName = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD /* @min:%2emethod */], self[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;\r\n };\r\n self[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + self[_DYN_SPAN_ID /* @min:%2espanID */],\r\n target: self[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */]()\r\n },\r\n _a[_DYN_NAME /* @min:name */] = self.getPathName(),\r\n _a.type = ajaxType,\r\n _a[_DYN_START_TIME /* @min:startTime */] = null,\r\n _a.duration = self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],\r\n _a.success = (+(self[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(self[_DYN_STATUS /* @min:%2estatus */])) < 400,\r\n _a.responseCode = (+(self[_DYN_STATUS /* @min:%2estatus */])),\r\n _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD /* @min:%2emethod */] },\r\n _a);\r\n var props = dependency[STR_PROPERTIES];\r\n if (self[_DYN_ABORTED /* @min:%2eaborted */]) {\r\n props[_DYN_ABORTED /* @min:%2eaborted */] = true;\r\n }\r\n if (self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {\r\n // Set the correct dependency start time\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(self.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {\r\n if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];\r\n }\r\n }\r\n if (self[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {\r\n if (self[_DYN_STATUS /* @min:%2estatus */] >= 400) {\r\n var responseType = response.type;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + response[strResponseText] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n if (responseType === \"json\") {\r\n props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + JSON.stringify(response[_DYN_RESPONSE /* @min:%2eresponse */]) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n }\r\n else if (self[_DYN_STATUS /* @min:%2estatus */] === 0) {\r\n props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */] || \"\";\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n };\r\n self[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */] = function () {\r\n var _a;\r\n var partA = null;\r\n var traceCtx = self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */];\r\n if (traceCtx && (traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */] || traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */])) {\r\n partA = {};\r\n var traceExt = partA[Extensions.TraceExt] = (_a = {},\r\n _a[_DYN_TRACE_ID /* @min:traceID */] = traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */],\r\n _a.parentID = traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */],\r\n _a);\r\n if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {\r\n traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n }\r\n }\r\n return partA;\r\n };\r\n });\r\n }\r\n// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.\r\n// Removed Stub for ajaxRecord.prototype.getPathName.\r\n// Removed Stub for ajaxRecord.prototype.CreateTrackItem.\r\n// Removed Stub for ajaxRecord.prototype.getPartAProps.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n ajaxRecord.__ieDyn=1;\n\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { DisabledPropertyName, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, createDistributedTraceContextFromTrace, createTelemetryItem, createTraceParent, dateTimeUtilsNow, formatTraceParent, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentFunc, InstrumentProto, _throwInternal, arrForEach, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOn, generateW3CId, getExceptionName, getGlobal, getIEVersion, getLocation, getPerformance, isFunction, isNullOrUndefined, isString, isXhrSupported, mergeEvtNamespace, onConfigChange, strPrototype, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isWebWorker, objFreeze, scheduleTimeout, strIndexOf, strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_DIAGNOSTICS_MES16, _DYN_AJAX_PERF_LOOKUP_DEL10, _DYN_CONTEXT, _DYN_CORE, _DYN_CORRELATION_CONTEXT, _DYN_DISABLE_AJAX_TRACKIN9, _DYN_DISABLE_FETCH_TRACKI11, _DYN_ENABLE_AJAX_ERROR_ST5, _DYN_ENABLE_AJAX_PERF_TRA6, _DYN_ENABLE_REQUEST_HEADE4, _DYN_ENABLE_RESPONSE_HEAD12, _DYN_ERROR_STATUS_TEXT, _DYN_EXCEPTION, _DYN_EXCLUDE_REQUEST_FROM8, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA15, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADERS, _DYN_HEADER_MAP, _DYN_INCLUDE_CORRELATION_2, _DYN_INST, _DYN_LENGTH, _DYN_MAX_AJAX_CALLS_PER_V7, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_RESPONSE_TEXT, _DYN_SEND_DONE, _DYN_SET_REQUEST_HEADER, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN_TRACK_DEPENDENCY_DAT3, _DYN__ADD_HOOK, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\nimport { ajaxRecord } from \"./ajaxRecord\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar AJAX_DATA_CONTAINER = \"_ajaxData\";\r\nvar STR_FETCH = \"fetch\";\r\nvar ERROR_HEADER = \"Failed to monitor XMLHttpRequest\";\r\nvar ERROR_PREFIX = \", monitoring data for this ajax call \";\r\nvar ERROR_POSTFIX = ERROR_PREFIX + \"may be incorrect.\";\r\nvar ERROR_NOT_SENT = ERROR_PREFIX + \"won't be sent.\";\r\nvar CORRELATION_HEADER_ERROR = \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\";\r\nvar CUSTOM_REQUEST_CONTEXT_ERROR = \"Failed to add custom defined request context as configured call back may missing a null check.\";\r\nvar FAILED_TO_CALCULATE_DURATION_ERROR = \"Failed to calculate the duration of the \";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n var _global = getGlobal();\r\n if (!_global ||\r\n isNullOrUndefined(_global.Request) ||\r\n isNullOrUndefined(_global.Request[strPrototype]) ||\r\n isNullOrUndefined(_global[STR_FETCH])) {\r\n return null;\r\n }\r\n return _global[STR_FETCH];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance, ajaxDataId) {\r\n var _a, _b;\r\n var result = false;\r\n if (isXhrSupported()) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !isNullOrUndefined(proto) &&\r\n !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\r\n !isNullOrUndefined(proto.send) &&\r\n !isNullOrUndefined(proto.abort);\r\n }\r\n var ieVer = getIEVersion();\r\n if (ieVer && ieVer < 9) {\r\n result = false;\r\n }\r\n if (result) {\r\n // Disable if the XmlHttpRequest can't be extended or hooked\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n var xhrData = {\r\n xh: [],\r\n i: (_a = {},\r\n _a[ajaxDataId] = {},\r\n _a)\r\n };\r\n xhr[AJAX_DATA_CONTAINER] = xhrData;\r\n // Check that we can update the prototype\r\n var theOpen = XMLHttpRequest[strPrototype].open;\r\n XMLHttpRequest[strPrototype].open = theOpen;\r\n }\r\n catch (e) {\r\n // We can't decorate the xhr object so disable monitoring\r\n result = false;\r\n _throwInternalCritical(ajaxMonitorInstance, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", (_b = {},\r\n _b[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _b));\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Internal helper to fetch the SDK instance tracking data for this XHR request\r\n * @param xhr\r\n * @param ajaxDataId\r\n * @returns\r\n */\r\nvar _getAjaxData = function (xhr, ajaxDataId) {\r\n if (xhr && ajaxDataId && xhr[AJAX_DATA_CONTAINER]) {\r\n return (xhr[AJAX_DATA_CONTAINER].i || {})[ajaxDataId];\r\n }\r\n return null;\r\n};\r\n/**\r\n * @ignore\r\n * Internal helper to track the singleton shared tracking headers, so we can attempt to not create headers\r\n * that might cause an issue if multiple values are populated.\r\n * @param xhr - The instrumented XHR instance\r\n */\r\nvar _addSharedXhrHeaders = function (xhr, name, value) {\r\n if (xhr) {\r\n var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;\r\n if (headers) {\r\n headers.push({\r\n n: name,\r\n v: value\r\n });\r\n }\r\n }\r\n};\r\nvar _isHeaderSet = function (xhr, name) {\r\n var isPresent = false;\r\n if (xhr) {\r\n var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;\r\n if (headers) {\r\n arrForEach(headers, function (header) {\r\n if (header.n === name) {\r\n isPresent = true;\r\n return -1;\r\n }\r\n });\r\n }\r\n }\r\n return isPresent;\r\n};\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr, ajaxDataId) {\r\n var result = \"\";\r\n try {\r\n var ajaxData = _getAjaxData(xhr, ajaxDataId);\r\n if (ajaxData && ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) {\r\n result += \"(url: '\" + ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] + \"')\";\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 1 /* eLoggingSeverity.CRITICAL */, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 2 /* eLoggingSeverity.WARNING */, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n // tslint:disable-next-line\r\n return function (callDetails) {\r\n var _a;\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, (_a = {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(callDetails[_DYN_INST /* @min:%2einst */], ajaxMonitorInstance._ajaxDataId)\r\n },\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(callDetails.err),\r\n _a));\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return strIndexOf(value, match);\r\n }\r\n return -1;\r\n}\r\nfunction _addHandler(container, id, theFunc) {\r\n var theHandler = {\r\n id: id,\r\n fn: theFunc\r\n };\r\n container.push(theHandler);\r\n return {\r\n remove: function () {\r\n arrForEach(container, function (initializer, idx) {\r\n if (initializer.id === theHandler.id) {\r\n container.splice(idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n}\r\nfunction _processDependencyContainer(core, container, details, message) {\r\n var result = true;\r\n arrForEach(container, function (theFunc, idx) {\r\n try {\r\n if (theFunc.fn.call(null, details) === false) {\r\n result = false;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(core && core.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Dependency \" + message + \" [#\" + idx + \"] failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n return result;\r\n}\r\nfunction _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {\r\n var _a;\r\n var initializersCount = listeners[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {},\r\n _a[_DYN_CORE /* @min:core */] = core,\r\n _a.xhr = xhr,\r\n _a.input = input,\r\n _a.init = init,\r\n _a.traceId = ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */],\r\n _a.spanId = ajaxData[_DYN_SPAN_ID /* @min:%2espanID */],\r\n _a.traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */],\r\n _a.context = ajaxData[_DYN_CONTEXT /* @min:%2econtext */] || {},\r\n _a.aborted = !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */],\r\n _a);\r\n _processDependencyContainer(core, listeners, details, \"listener\");\r\n ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] = details[_DYN_TRACE_ID0 /* @min:%2etraceId */];\r\n ajaxData[_DYN_SPAN_ID /* @min:%2espanID */] = details[_DYN_SPAN_ID1 /* @min:%2espanId */];\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = details[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n ajaxData[_DYN_CONTEXT /* @min:%2econtext */] = details[_DYN_CONTEXT /* @min:%2econtext */];\r\n }\r\n}\r\nvar BLOB_CORE = \"*.blob.core.\";\r\nexport var DfltAjaxCorrelationHeaderExDomains = objFreeze([\r\n BLOB_CORE + \"windows.net\",\r\n BLOB_CORE + \"chinacloudapi.cn\",\r\n BLOB_CORE + \"cloudapi.de\",\r\n BLOB_CORE + \"usgovcloudapi.net\"\r\n]);\r\nvar _internalExcludeEndpoints = [\r\n /https:\\/\\/[^\\/]*(\\.pipe\\.aria|aria\\.pipe|events\\.data|collector\\.azure)\\.[^\\/]+\\/(OneCollector\\/1|Collector\\/3)\\.0/i\r\n];\r\nvar _defaultConfig = objFreeze((_a = {},\r\n _a[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:maxAjaxCallsPerView */] = 500,\r\n _a[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:disableAjaxTracking */] = false,\r\n _a[_DYN_DISABLE_FETCH_TRACKI11 /* @min:disableFetchTracking */] = false,\r\n _a[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,\r\n _a.disableCorrelationHeaders = false,\r\n _a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,\r\n _a.correlationHeaderDomains = undefined,\r\n _a.correlationHeaderExcludePatterns = undefined,\r\n _a.appId = undefined,\r\n _a.enableCorsCorrelation = false,\r\n _a[_DYN_ENABLE_REQUEST_HEADE4 /* @min:enableRequestHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_RESPONSE_HEAD12 /* @min:enableResponseHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_AJAX_ERROR_ST5 /* @min:enableAjaxErrorStatusText */] = false,\r\n _a[_DYN_ENABLE_AJAX_PERF_TRA6 /* @min:enableAjaxPerfTracking */] = false,\r\n _a.maxAjaxPerfLookupAttempts = 3,\r\n _a[_DYN_AJAX_PERF_LOOKUP_DEL10 /* @min:ajaxPerfLookupDelay */] = 25,\r\n _a.ignoreHeaders = [\r\n \"Authorization\",\r\n \"X-API-Key\",\r\n \"WWW-Authenticate\"\r\n ],\r\n _a[_DYN_ADD_REQUEST_CONTEXT /* @min:addRequestContext */] = undefined,\r\n _a.addIntEndpoints = true,\r\n _a));\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n __extends(AjaxMonitor, _super);\r\n function AjaxMonitor() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AjaxMonitor.identifier;\r\n _this.priority = 120;\r\n var _fetchInitialized; // fetch monitoring initialized\r\n var _xhrInitialized; // XHR monitoring initialized\r\n var _currentWindowHost;\r\n var _extensionConfig;\r\n var _enableRequestHeaderTracking;\r\n var _enableAjaxErrorStatusText;\r\n var _trackAjaxAttempts;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking;\r\n var _maxAjaxCallsPerView;\r\n var _enableResponseHeaderTracking;\r\n var _disabledUrls;\r\n var _disableAjaxTracking;\r\n var _disableFetchTracking;\r\n var _excludeRequestFromAutoTrackingPatterns;\r\n var _addRequestContext;\r\n var _evtNamespace;\r\n var _ajaxDataId;\r\n var _dependencyHandlerId;\r\n var _dependencyListeners;\r\n var _dependencyInitializers;\r\n var _ignoreHeaders;\r\n var _maxAjaxPerfLookupAttempts;\r\n var _ajaxPerfLookupDelay;\r\n var _distributedTracingMode;\r\n var _appId;\r\n var _polyfillInitialized;\r\n dynamicProto(AjaxMonitor, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"ajax\"), core && core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n _instrumentXhr();\r\n _instrumentFetch();\r\n _populateContext();\r\n }\r\n };\r\n _self._doTeardown = function () {\r\n _initDefaults();\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], null, dependency, properties);\r\n };\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */] = function (ajaxData, input, init, xhr) {\r\n // Test Hook to allow the overriding of the location host\r\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n _processDependencyListeners(_dependencyListeners, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, xhr, input, init);\r\n if (input || input === \"\") { // Fetch\r\n if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n var headers = new Headers(init[_DYN_HEADERS /* @min:%2eheaders */] || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n headers.set(RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n var appId = _appId || (_context && _context.appId());\r\n if (appId) {\r\n headers.set(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n headers.set(RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = headers;\r\n }\r\n return init;\r\n }\r\n else if (xhr) { // XHR\r\n if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n if (!_isHeaderSet(xhr, RequestHeaders[3 /* eRequestHeaders.requestIdHeader */])) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[3 /* eRequestHeaders.requestIdHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n var appId = _appId || (_context && _context.appId());\r\n if (appId) {\r\n if (!_isHeaderSet(xhr, RequestHeaders[0 /* eRequestHeaders.requestContextHeader */])) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[0 /* eRequestHeaders.requestContextHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n if (!_isHeaderSet(xhr, RequestHeaders[4 /* eRequestHeaders.traceParentHeader */])) {\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[4 /* eRequestHeaders.traceParentHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */] = function (dependency, properties, systemProperties) {\r\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n // Hack since expected format in w3c mode is |abc.def.\r\n // Non-w3c format is |abc.def\r\n // @todo Remove if better solution is available, e.g. handle in portal\r\n if ((_distributedTracingMode === 2 /* eDistributedTracingModes.W3C */\r\n || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id[_DYN_LENGTH /* @min:%2elength */] - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n if (isNullOrUndefined(dependency[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n }\r\n var item = createTelemetryItem(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */].track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, 55 /* _eInternalMessageId.MaxAjaxPerPVExceeded */, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n }\r\n ++_trackAjaxAttempts;\r\n };\r\n _self.addDependencyListener = function (dependencyListener) {\r\n return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);\r\n };\r\n _self.addDependencyInitializer = function (dependencyInitializer) {\r\n return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);\r\n };\r\n function _initDefaults() {\r\n var location = getLocation();\r\n _fetchInitialized = false; // fetch monitoring initialized\r\n _xhrInitialized = false; // XHR monitoring initialized\r\n _polyfillInitialized = false; // polyfill monitoring initialized\r\n _currentWindowHost = location && location.host && location.host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _extensionConfig = null;\r\n _enableRequestHeaderTracking = false;\r\n _enableAjaxErrorStatusText = false;\r\n _trackAjaxAttempts = 0;\r\n _context = null;\r\n _isUsingW3CHeaders = false;\r\n _isUsingAIHeaders = false;\r\n _markPrefix = null;\r\n _enableAjaxPerfTracking = false;\r\n _maxAjaxCallsPerView = 0;\r\n _enableResponseHeaderTracking = false;\r\n _disabledUrls = {};\r\n _disableAjaxTracking = false;\r\n _disableFetchTracking = false;\r\n _excludeRequestFromAutoTrackingPatterns = null;\r\n _addRequestContext = null;\r\n _evtNamespace = null;\r\n _dependencyHandlerId = 0;\r\n _dependencyListeners = [];\r\n _dependencyInitializers = [];\r\n _ajaxDataId = createUniqueNamespace(\"ajaxData\");\r\n _self._ajaxDataId = _ajaxDataId;\r\n _ignoreHeaders = null;\r\n _maxAjaxPerfLookupAttempts = 1;\r\n _ajaxPerfLookupDelay = 1;\r\n _distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _appId = null;\r\n }\r\n function _populateDefaults(config) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);\r\n _extensionConfig = ctx.getExtCfg(AjaxMonitor.identifier, _defaultConfig);\r\n _distributedTracingMode = _extensionConfig.distributedTracingMode;\r\n _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 /* @min:%2eenableRequestHeaderTracking */];\r\n _enableAjaxErrorStatusText = _extensionConfig[_DYN_ENABLE_AJAX_ERROR_ST5 /* @min:%2eenableAjaxErrorStatusText */];\r\n _enableAjaxPerfTracking = _extensionConfig[_DYN_ENABLE_AJAX_PERF_TRA6 /* @min:%2eenableAjaxPerfTracking */];\r\n _maxAjaxCallsPerView = _extensionConfig[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:%2emaxAjaxCallsPerView */];\r\n _excludeRequestFromAutoTrackingPatterns = [].concat(_extensionConfig[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */] || [], _extensionConfig.addIntEndpoints !== false ? _internalExcludeEndpoints : []);\r\n _addRequestContext = _extensionConfig[_DYN_ADD_REQUEST_CONTEXT /* @min:%2eaddRequestContext */];\r\n _isUsingAIHeaders = _distributedTracingMode === 0 /* eDistributedTracingModes.AI */ || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _isUsingW3CHeaders = _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */ || _distributedTracingMode === 2 /* eDistributedTracingModes.W3C */;\r\n if (_enableAjaxPerfTracking) {\r\n var iKey = config.instrumentationKey || \"unkwn\";\r\n if (iKey[_DYN_LENGTH /* @min:%2elength */] > 5) {\r\n _markPrefix = AJAX_MONITOR_PREFIX + strSubstring(iKey, iKey[_DYN_LENGTH /* @min:%2elength */] - 5) + \".\";\r\n }\r\n else {\r\n _markPrefix = AJAX_MONITOR_PREFIX + iKey + \".\";\r\n }\r\n }\r\n _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];\r\n _maxAjaxPerfLookupAttempts = _extensionConfig.maxAjaxPerfLookupAttempts;\r\n _ajaxPerfLookupDelay = _extensionConfig[_DYN_AJAX_PERF_LOOKUP_DEL10 /* @min:%2eajaxPerfLookupDelay */];\r\n _ignoreHeaders = _extensionConfig.ignoreHeaders;\r\n _appId = _extensionConfig.appId;\r\n }));\r\n }\r\n function _populateContext() {\r\n var propExt = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (propExt) {\r\n _context = propExt.plugin[_DYN_CONTEXT /* @min:%2econtext */]; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\r\n function _canIncludeHeaders(header) {\r\n var rlt = true;\r\n if (header || _ignoreHeaders) {\r\n arrForEach(_ignoreHeaders, (function (key) {\r\n if (key[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === header[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) {\r\n rlt = false;\r\n return -1;\r\n }\r\n }));\r\n }\r\n return rlt;\r\n }\r\n // Fetch Stuff\r\n function _instrumentFetch() {\r\n var fetch = _supportsFetch();\r\n if (!fetch) {\r\n return;\r\n }\r\n var global = getGlobal();\r\n var isPolyfill = fetch.polyfill;\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n _disableFetchTracking = !!_extensionConfig[_DYN_DISABLE_FETCH_TRACKI11 /* @min:%2edisableFetchTracking */];\r\n _enableResponseHeaderTracking = _extensionConfig[_DYN_ENABLE_RESPONSE_HEAD12 /* @min:%2eenableResponseHeaderTracking */];\r\n if (!_disableFetchTracking && !_fetchInitialized) {\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (!_disableFetchTracking && _fetchInitialized &&\r\n !_isDisabledRequest(null, input, init) &&\r\n // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n !(isPolyfill && _xhrInitialized)) {\r\n var ctx = callDetails.ctx();\r\n fetchData = _createFetchRecord(input, init);\r\n var newInit = _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](fetchData, input, init);\r\n if (newInit !== init) {\r\n callDetails.set(1, newInit);\r\n }\r\n ctx.data = fetchData;\r\n }\r\n },\r\n rsp: function (callDetails, input) {\r\n if (!_disableFetchTracking) {\r\n var fetchData_1 = callDetails.ctx().data;\r\n if (fetchData_1) {\r\n // Replace the result with the new promise from this code\r\n callDetails.rslt = callDetails.rslt.then(function (response) {\r\n _reportFetchMetrics(callDetails, (response || {})[_DYN_STATUS /* @min:%2estatus */], input, response, fetchData_1, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: (response || {})[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getFetchCorrelationContext(response),\r\n _a);\r\n if (_enableResponseHeaderTracking && response) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n if (_canIncludeHeaders(name)) {\r\n responseHeaderMap_1[name] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })\r\n .catch(function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, null, fetchData_1, null, { error: reason.message || dumpObj(reason) });\r\n throw reason;\r\n });\r\n }\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to monitor Window.fetch\" + ERROR_POSTFIX)\r\n }, true, isWebWorker()));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill && !_polyfillInitialized) {\r\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n // Note: Polyfill implementations that don't support the \"polyfill\" tag are not supported\r\n // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n // App Insights\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n req: function (callDetails, input, init) {\r\n // Just call so that we record any disabled URL\r\n _isDisabledRequest(null, input, init);\r\n }\r\n }));\r\n _polyfillInitialized = true;\r\n }\r\n }));\r\n if (isPolyfill) {\r\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n // But also supports multiple App Insights usages\r\n global[STR_FETCH].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _addHook(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (!_supportsAjaxMonitoring(_self, _ajaxDataId)) {\r\n return;\r\n }\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];\r\n _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 /* @min:%2eenableRequestHeaderTracking */];\r\n if (!_disableAjaxTracking && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, method, url, async) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, ajaxData, true)) {\r\n if (!ajaxData || !ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */]) {\r\n // Only create a single ajaxData (even when multiple AI instances are running)\r\n ajaxData = _openHandler(xhr, method, url, async);\r\n }\r\n // always attach to the on ready state change (required for handling multiple instances)\r\n _attachToOnReadyStateChange(xhr, ajaxData);\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, ERROR_HEADER + \".open\" + ERROR_POSTFIX)\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, context) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */, ERROR_HEADER + ERROR_POSTFIX)\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */]) {\r\n ajaxData[_DYN_ABORTED /* @min:%2eaborted */] = 1;\r\n ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */, ERROR_HEADER + \".abort\" + ERROR_POSTFIX)\r\n });\r\n // Instrument setRequestHeader\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, header, value) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (ajaxData && _isMonitoredXhrInstance(xhr, ajaxData)) {\r\n _addSharedXhrHeaders(xhr, header, value);\r\n if (_enableRequestHeaderTracking && _canIncludeHeaders(header)) {\r\n if (ajaxData) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][header] = value;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, ERROR_HEADER + \".setRequestHeader\" + ERROR_POSTFIX)\r\n });\r\n _xhrInitialized = true;\r\n }\r\n }));\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\r\n arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\r\n var theRegex = regex;\r\n if (isString(regex)) {\r\n theRegex = new RegExp(regex);\r\n }\r\n if (!isDisabled) {\r\n isDisabled = theRegex.test(theUrl);\r\n }\r\n });\r\n // if request url matches with exclude regex pattern, return true and no need to check for headers\r\n if (isDisabled) {\r\n return isDisabled;\r\n }\r\n var idx = _indexOf(theUrl, \"?\");\r\n var idx2 = _indexOf(theUrl, \"#\");\r\n if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n idx = idx2;\r\n }\r\n if (idx !== -1) {\r\n // Strip off any Query string\r\n theUrl = theUrl.substring(0, idx);\r\n }\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n if (!isNullOrUndefined(xhr)) {\r\n // Look on the XMLHttpRequest of the URL string value\r\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n }\r\n else if (!isNullOrUndefined(request)) { // fetch\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\r\n if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\r\n isDisabled = true;\r\n }\r\n if (isDisabled) {\r\n // Add the disabled url if not present\r\n if (!_disabledUrls[theUrl]) {\r\n _disabledUrls[theUrl] = 1;\r\n }\r\n }\r\n else {\r\n // Check to see if the url is listed as disabled\r\n if (_disabledUrls[theUrl]) {\r\n isDisabled = true;\r\n }\r\n }\r\n return isDisabled;\r\n }\r\n /// Verifies that particular instance of XMLHttpRequest needs to be monitored\r\n /// Optional parameter. True if ajaxData must be excluded from verification\r\n /// True if instance needs to be monitored, otherwise false\r\n function _isMonitoredXhrInstance(xhr, ajaxData, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(ajaxData);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation;\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n // Fall back\r\n if (!distributedTraceCtx && _context && _context.telemetryTrace) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);\r\n }\r\n return distributedTraceCtx;\r\n }\r\n function _openHandler(xhr, method, url, async) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = strSubstr(generateW3CId(), 0, 16);\r\n var xhrRequestData = xhr[AJAX_DATA_CONTAINER] = (xhr[AJAX_DATA_CONTAINER] || { xh: [], i: {} });\r\n var ajaxDataCntr = xhrRequestData.i = (xhrRequestData.i || {});\r\n var ajaxData = ajaxDataCntr[_ajaxDataId] = (ajaxDataCntr[_ajaxDataId] || new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx()));\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = url;\r\n ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */] = true;\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = {};\r\n ajaxData.async = async;\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n return ajaxData;\r\n }\r\n function _attachToOnReadyStateChange(xhr, ajaxData) {\r\n ajaxData.xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = eventOn(xhr, \"readystatechange\", function () {\r\n var _a;\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr, ajaxData)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = dumpObj(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + \" 'readystatechange' event handler\" + ERROR_POSTFIX, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),\r\n _a[_DYN_EXCEPTION /* @min:exception */] = exceptionText,\r\n _a));\r\n }\r\n }\r\n }, _evtNamespace);\r\n }\r\n function _getResponseText(xhr) {\r\n try {\r\n var responseType = xhr.responseType;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n return xhr[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */];\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happen because of the above check -- but just in case, so just ignore\r\n }\r\n return null;\r\n }\r\n function _onAjaxComplete(xhr) {\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = xhr[_DYN_STATUS /* @min:%2estatus */];\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */, FAILED_TO_CALCULATE_DURATION_ERROR + \"ajax call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: xhr[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getAjaxCorrelationContext(xhr),\r\n _a.type = xhr.responseType,\r\n _a[_DYN_RESPONSE_TEXT /* @min:responseText */] = _getResponseText(xhr),\r\n _a.response = xhr[_DYN_RESPONSE /* @min:%2eresponse */],\r\n _a);\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr[_DYN_GET_ALL_RESPONSE_HEA15 /* @min:%2egetAllResponseHeaders */]();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n var responseHeaderMap_2 = {};\r\n arrForEach(arr, function (line) {\r\n var parts = line.split(\": \");\r\n var header = parts.shift();\r\n var value = parts.join(\": \");\r\n if (_canIncludeHeaders(header)) {\r\n responseHeaderMap_2[header] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n var properties = void 0;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: xhr[_DYN_STATUS /* @min:%2estatus */], xhr: xhr });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n var xhrRequestData = (xhr[AJAX_DATA_CONTAINER] || { i: {} });\r\n var ajaxDataCntr = (xhrRequestData.i || {});\r\n if (ajaxDataCntr[_ajaxDataId]) {\r\n ajaxDataCntr[_ajaxDataId] = null;\r\n }\r\n }\r\n catch (e) {\r\n // May throw in environments that prevent extension or freeze xhr\r\n }\r\n }\r\n }, function (e) {\r\n _reportXhrError(e, null);\r\n });\r\n }\r\n function _getAjaxCorrelationContext(xhr) {\r\n var _a;\r\n try {\r\n var responseHeadersString = xhr[_DYN_GET_ALL_RESPONSE_HEA15 /* @min:%2egetAllResponseHeaders */]();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), RequestHeaders[8 /* eRequestHeaders.requestContextHeaderLowerCase */]);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return correlationIdGetCorrelationContext(responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && isFunction(performance_1.mark)) {\r\n _markCount++;\r\n var markId = _markPrefix + type + \"#\" + _markCount;\r\n performance_1.mark(markId);\r\n var entries = performance_1.getEntriesByName(markId);\r\n if (entries && entries[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */] = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */];\r\n var performance = getPerformance();\r\n var maxAttempts = _maxAjaxPerfLookupAttempts;\r\n var retryDelay = _ajaxPerfLookupDelay;\r\n var requestUrl = ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */];\r\n var attempt = 0;\r\n (function locateResourceTiming() {\r\n try {\r\n if (performance && perfMark) {\r\n attempt++;\r\n var perfTiming = null;\r\n var entries = performance.getEntries();\r\n for (var lp = entries[_DYN_LENGTH /* @min:%2elength */] - 1; lp >= 0; lp--) {\r\n var entry = entries[lp];\r\n if (entry) {\r\n if (entry.entryType === \"resource\") {\r\n if (entry.initiatorType === initiatorType &&\r\n (_indexOf(entry[_DYN_NAME /* @min:%2ename */], requestUrl) !== -1 || _indexOf(requestUrl, entry[_DYN_NAME /* @min:%2ename */]) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry[_DYN_NAME /* @min:%2ename */] === perfMark[_DYN_NAME /* @min:%2ename */]) {\r\n // We hit the start event\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] = perfTiming;\r\n break;\r\n }\r\n if (entry[_DYN_START_TIME /* @min:%2estartTime */] < perfMark[_DYN_START_TIME /* @min:%2estartTime */] - 1000) {\r\n // Fallback to try and reduce the time spent looking for the perf entry\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!perfMark || // - we don't have a perfMark or\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] || // - we have not found the perf entry or\r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) { // - this is a sync request\r\n if (perfMark && isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark[_DYN_NAME /* @min:%2ename */]);\r\n }\r\n ajaxData.perfAttempts = attempt;\r\n // just continue and report the track event\r\n trackCallback();\r\n }\r\n else {\r\n // We need to wait for the browser to populate the window.performance entry\r\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n // this is a scheduling issue for the browser implementation\r\n scheduleTimeout(locateResourceTiming, retryDelay);\r\n }\r\n }\r\n catch (e) {\r\n reportError(e);\r\n }\r\n })();\r\n }\r\n function _createFetchRecord(input, init) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = strSubstr(generateW3CId(), 0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n if (input instanceof Request) {\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = input ? input.url : \"\";\r\n }\r\n else {\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = input;\r\n }\r\n var method = \"GET\";\r\n if (init && init[_DYN_METHOD /* @min:%2emethod */]) {\r\n method = init[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init[_DYN_HEADERS /* @min:%2eheaders */] : 0) || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n if (_canIncludeHeaders(key)) {\r\n requestHeaders[key] = value;\r\n }\r\n });\r\n }\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = requestHeaders;\r\n _createMarkId(STR_FETCH, ajaxData);\r\n return ajaxData;\r\n }\r\n function _getFailedFetchDiagnosticsMessage(input) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\".concat(input, \"')\");\r\n }\r\n else {\r\n result += \"(url: '\".concat(input.url, \"')\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n function _reportFetchError(msgId, e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + \"fetch call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;\r\n _findPerfResourceEntry(STR_FETCH, ajaxData, function () {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n var properties;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: status, request: input, response: response });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n var _a;\r\n if (response && response[_DYN_HEADERS /* @min:%2eheaders */]) {\r\n try {\r\n var responseHeader = response[_DYN_HEADERS /* @min:%2eheaders */].get(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return correlationIdGetCorrelationContext(responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response)\r\n },\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n }\r\n function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {\r\n var _a;\r\n var result = true;\r\n var initializersCount = initializers[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {\r\n item: dependency\r\n },\r\n _a[STR_PROPERTIES /* @min:properties */] = properties,\r\n _a.sysProperties = systemProperties,\r\n _a.context = ajaxData ? ajaxData[_DYN_CONTEXT /* @min:%2econtext */] : null,\r\n _a.aborted = ajaxData ? !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */] : false,\r\n _a);\r\n result = _processDependencyContainer(core, initializers, details, \"initializer\");\r\n }\r\n if (result) {\r\n _self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */](dependency, properties, systemProperties);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AjaxMonitor.prototype.initialize.\r\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n this.processNext(item, itemCtx);\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyData.\r\n// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.\r\n// Removed Stub for AjaxMonitor.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nvar Version = '3.0.3';\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config, unloadHookContainer) {\r\n var _this = this;\r\n var unloadHook = onConfigChange((config), function () {\r\n var prefix = config.sdkExtension;\r\n _this.sdkVersion = (prefix ? prefix + \"_\" : \"\") + \"javascript:\" + Version;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SESSION_MANAGER = \"sessionManager\"; // Count: 3\r\nexport var _DYN_UPDATE = \"update\"; // Count: 4\r\nexport var _DYN_IS_USER_COOKIE_SET = \"isUserCookieSet\"; // Count: 4\r\nexport var _DYN_IS_NEW_USER = \"isNewUser\"; // Count: 4\r\nexport var _DYN_GET_TRACE_CTX = \"getTraceCtx\"; // Count: 3\r\nexport var _DYN_TELEMETRY_TRACE = \"telemetryTrace\"; // Count: 3\r\nexport var _DYN_APPLY_SESSION_CONTEX0 = \"applySessionContext\"; // Count: 2\r\nexport var _DYN_APPLY_APPLICATION_CO1 = \"applyApplicationContext\"; // Count: 2\r\nexport var _DYN_APPLY_DEVICE_CONTEXT = \"applyDeviceContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATION_CONT2 = \"applyOperationContext\"; // Count: 2\r\nexport var _DYN_APPLY_USER_CONTEXT = \"applyUserContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATING_SYST3 = \"applyOperatingSystemContxt\"; // Count: 2\r\nexport var _DYN_APPLY_LOCATION_CONTE4 = \"applyLocationContext\"; // Count: 2\r\nexport var _DYN_APPLY_INTERNAL_CONTE5 = \"applyInternalContext\"; // Count: 2\r\nexport var _DYN_ACCOUNT_ID = \"accountId\"; // Count: 7\r\nexport var _DYN_GET_SESSION_ID = \"getSessionId\"; // Count: 4\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 3\r\nexport var _DYN_SESSION_COOKIE_POSTF6 = \"sessionCookiePostfix\"; // Count: 2\r\nexport var _DYN_USER_COOKIE_POSTFIX = \"userCookiePostfix\"; // Count: 2\r\nexport var _DYN_ID_LENGTH = \"idLength\"; // Count: 4\r\nexport var _DYN_GET_NEW_ID = \"getNewId\"; // Count: 3\r\nexport var _DYN_LENGTH = \"length\"; // Count: 4\r\nexport var _DYN_AUTOMATIC_SESSION = \"automaticSession\"; // Count: 5\r\nexport var _DYN_AUTHENTICATED_ID = \"authenticatedId\"; // Count: 6\r\nexport var _DYN_ACQUISITION_DATE = \"acquisitionDate\"; // Count: 5\r\nexport var _DYN_RENEWAL_DATE = \"renewalDate\"; // Count: 4\r\nexport var _DYN_JOIN = \"join\"; // Count: 5\r\nexport var _DYN_COOKIE_SEPARATOR = \"cookieSeparator\"; // Count: 5\r\nexport var _DYN_AUTH_USER_COOKIE_NAM7 = \"authUserCookieName\"; // Count: 3\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, dateNow, dumpObj, getExceptionName, isFunction, newId, onConfigChange, safeGetCookieMgr, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ACQUISITION_DATE, _DYN_AUTOMATIC_SESSION, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_RENEWAL_DATE, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nvar SESSION_COOKIE_NAME = \"ai_session\";\r\nvar ACQUISITION_SPAN = 86400000; // 24 hours in ms\r\nvar RENEWAL_SPAN = 1800000; // 30 minutes in ms\r\nvar COOKIE_UPDATE_INTERVAL = 60000; // 1 minute in ms\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, core, unloadHookContainer) {\r\n var self = this;\r\n var _storageNamePrefix;\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _sessionExpirationMs;\r\n var _sessionRenewalMs;\r\n dynamicProto(_SessionManager, self, function (_self) {\r\n if (!config) {\r\n config = {};\r\n }\r\n var unloadHook = onConfigChange(config, function (details) {\r\n _sessionExpirationMs = config.sessionExpirationMs || ACQUISITION_SPAN;\r\n _sessionRenewalMs = config.sessionRenewalMs || RENEWAL_SPAN;\r\n // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n var sessionCookiePostfix = config.sessionCookiePostfix || config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\";\r\n _storageNamePrefix = SESSION_COOKIE_NAME + sessionCookiePostfix;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */] = new Session();\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function () {\r\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n // the number to be incorrect.\r\n var nowMs = dateNow();\r\n var isExpired = false;\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n if (!session.id) {\r\n isExpired = !_initializeAutomaticSession(session, nowMs);\r\n }\r\n if (!isExpired && _sessionExpirationMs > 0) {\r\n var timeSinceAcqMs = nowMs - session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n var timeSinceRenewalMs = nowMs - session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */];\r\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n isExpired = isExpired || timeSinceAcqMs > _sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n isExpired = isExpired || timeSinceRenewalMs > _sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n }\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (isExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew(nowMs);\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > COOKIE_UPDATE_INTERVAL) {\r\n _setCookie(session, nowMs);\r\n }\r\n }\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _self.backup = function () {\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n _setStorage(session.id, session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */], session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */]);\r\n };\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSession(session, now) {\r\n var isValid = false;\r\n var cookieValue = _cookieManager.get(_storageNamePrefix);\r\n if (cookieValue && isFunction(cookieValue.split)) {\r\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix);\r\n if (storageValue) {\r\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n }\r\n }\r\n return isValid || !!session.id;\r\n }\r\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param sessionData - The string stored in an ai_session cookie or local storage backup\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSessionWithData(session, sessionData) {\r\n var isValid = false;\r\n var sessionReset = \", session will be reset\";\r\n var tokens = sessionData.split(\"|\");\r\n if (tokens[_DYN_LENGTH /* @min:%2elength */] >= 2) {\r\n try {\r\n var acqMs = +tokens[1] || 0;\r\n var renewalMs = +tokens[2] || 0;\r\n if (isNaN(acqMs) || acqMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session acquisition date is 0\" + sessionReset);\r\n }\r\n else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session renewal date is 0\" + sessionReset);\r\n }\r\n else if (tokens[0]) {\r\n // Everything looks valid so set the values\r\n session.id = tokens[0];\r\n session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = acqMs;\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = renewalMs;\r\n isValid = true;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 9 /* _eInternalMessageId.ErrorParsingAISessionCookie */, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return isValid;\r\n }\r\n function _renew(nowMs) {\r\n var getNewId = config[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n _self.automaticSession.id = getNewId(config[_DYN_ID_LENGTH /* @min:%2eidLength */] || 22);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */][_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = nowMs;\r\n _setCookie(_self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */], nowMs);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!utlCanUseLocalStorage()) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 0 /* _eInternalMessageId.BrowserDoesNotSupportLocalStorage */, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(session, nowMs) {\r\n var acq = session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = nowMs;\r\n var renewalPeriodMs = _sessionRenewalMs;\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acqTimeLeftMs = (acq + _sessionExpirationMs) - nowMs;\r\n var cookie = [session.id, acq, nowMs];\r\n var maxAgeSec = 0;\r\n if (acqTimeLeftMs < renewalPeriodMs) {\r\n maxAgeSec = acqTimeLeftMs / 1000;\r\n }\r\n else {\r\n maxAgeSec = renewalPeriodMs / 1000;\r\n }\r\n var cookieDomain = config.cookieDomain || null;\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires.\r\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n _cookieManager.set(_storageNamePrefix, cookie[_DYN_JOIN /* @min:%2ejoin */](\"|\"), _sessionExpirationMs > 0 ? maxAgeSec : null, cookieDomain);\r\n _cookieUpdatedTimestamp = nowMs;\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n utlSetLocalStorage(_logger, _storageNamePrefix, [guid, acq, renewal][_DYN_JOIN /* @min:%2ejoin */](\"|\"));\r\n }\r\n });\r\n }\r\n// Removed Stub for _SessionManager.prototype.update.\r\n// Removed Stub for _SessionManager.prototype.backup.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n _SessionManager.__ieDyn=1;\n\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\r\n var _self = this;\r\n _self.traceID = id || generateW3CId();\r\n _self.parentID = parentId;\r\n var location = getLocation();\r\n if (!name && location && location.pathname) {\r\n name = location.pathname;\r\n }\r\n _self.name = dataSanitizeString(logger, name);\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, newId, onConfigChange, safeGetCookieMgr, safeGetLogger, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_AUTHENTICATED_ID, _DYN_AUTH_USER_COOKIE_NAM7, _DYN_COOKIE_SEPARATOR, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"../__DynamicConstants\";\r\nfunction _validateUserInput(id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== \"string\" ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(config, core, unloadHookContainer) {\r\n /**\r\n * A flag indicating whether this represents a new user\r\n */\r\n this.isNewUser = false;\r\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\r\n this.isUserCookieSet = false;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n dynamicProto(User, this, function (_self) {\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return config; }\r\n });\r\n var unloadHook = onConfigChange(config, function () {\r\n var userCookiePostfix = config[_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */] || \"\";\r\n _storageNamePrefix = User.userCookieName + userCookiePostfix;\r\n // get userId or create new one if none exists\r\n var cookie = _cookieManager.get(_storageNamePrefix);\r\n if (cookie) {\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var params = cookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (params[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self.id = params[0];\r\n // we already have a cookie\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = !!_self.id;\r\n }\r\n }\r\n if (!_self.id) {\r\n _self.id = _generateNewId();\r\n var newCookie = _generateNewCookie(_self.id);\r\n _setUserCookie(newCookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = (config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\") + \"ai_session\";\r\n utlRemoveStorage(_logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility.\r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = config[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] || undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: |\r\n var authCookie = _cookieManager.get(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (authCookieString[0]) {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authCookieString[0];\r\n }\r\n if (authCookieString[_DYN_LENGTH /* @min:%2elength */] > 1 && authCookieString[1]) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = authCookieString[1];\r\n }\r\n }\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n function _generateNewId() {\r\n var theConfig = (config || {});\r\n var getNewId = theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n var id = getNewId(theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */] ? config[_DYN_ID_LENGTH /* @min:%2eidLength */] : 22);\r\n return id;\r\n }\r\n function _generateNewCookie(userId) {\r\n var acqStr = toISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = true;\r\n var newCookie = [userId, acqStr];\r\n return newCookie;\r\n }\r\n function _setUserCookie(cookie) {\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 = 31536000\r\n var oneYear = 31536000;\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = _cookieManager.set(_storageNamePrefix, cookie, oneYear);\r\n }\r\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 60 /* _eInternalMessageId.SetAuthContextFailedAccountName */, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authenticatedUserId;\r\n var authCookie = _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */];\r\n if (accountId) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = accountId;\r\n authCookie = [_self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], _self.accountId][_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n _cookieManager.set(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */], encodeURI(authCookie));\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n _self.clearAuthenticatedUserContext = function () {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = null;\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = null;\r\n _cookieManager.del(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (userId) {\r\n // Optimizations to avoid setting and processing the cookie when not needed\r\n if (_self.id !== userId || !_self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n var user_id = userId ? userId : _generateNewId();\r\n var user_cookie = _generateNewCookie(user_id);\r\n _setUserCookie(user_cookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for User.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.clearAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.update.\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n User.authUserCookieName = \"ai_authUser\";\r\n return User;\r\n}());\r\nexport { User };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* TelemetryContext.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CtxTagKeys, Extensions, PageView, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalLogMessage, getSetValue, hasWindow, isNullOrUndefined, isString, objKeys, setValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nimport { User } from \"./Context/User\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_AUTHENTICATED_ID, _DYN_AUTOMATIC_SESSION, _DYN_GET_SESSION_ID, _DYN_LENGTH, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE } from \"./__DynamicConstants\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n if (target && target[name] && objKeys(target[name])[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n delete target[name];\r\n }\r\n}\r\nfunction _nullResult() {\r\n return null;\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(core, defaultConfig, previousTraceCtx, unloadHookContainer) {\r\n var _this = this;\r\n var logger = core.logger;\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.appId = _nullResult;\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = _nullResult;\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig, unloadHookContainer);\r\n if (hasWindow()) {\r\n _self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] = new _SessionManager(defaultConfig, core, unloadHookContainer);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, core, unloadHookContainer);\r\n var traceId = void 0;\r\n var parentId = void 0;\r\n var name_1;\r\n if (previousTraceCtx) {\r\n traceId = previousTraceCtx.getTraceId();\r\n parentId = previousTraceCtx.getSpanId();\r\n name_1 = previousTraceCtx.getName();\r\n }\r\n _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */] = new TelemetryTrace(traceId, parentId, name_1, logger);\r\n _self.session = new Session();\r\n }\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = function () {\r\n var session = _self.session;\r\n var sesId = null;\r\n // If customer set session info, apply their context; otherwise apply context automatically generated\r\n if (session && isString(session.id)) {\r\n sesId = session.id;\r\n }\r\n else {\r\n // Gets the automatic session if it exists or an empty object\r\n var autoSession = (_self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] || {})[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n }\r\n return sesId;\r\n };\r\n _self[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */] = function (evt, itemCtx) {\r\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */](), isString);\r\n };\r\n _self[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */] = function (evt, itemCtx) {\r\n setValue(evt.ext, Extensions.OSExt, _self.os);\r\n };\r\n _self[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */] = function (evt, itemCtx) {\r\n var application = _self.application;\r\n if (application) {\r\n // evt.ext.app\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */] = function (evt, itemCtx) {\r\n var device = _self.device;\r\n if (device) {\r\n // evt.ext.device\r\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n setValue(extDevice, \"localId\", device.id, isString);\r\n setValue(extDevice, \"ip\", device.ip, isString);\r\n setValue(extDevice, \"model\", device.model, isString);\r\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */] = function (evt, itemCtx) {\r\n var internal = _self.internal;\r\n if (internal) {\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n setValue(tags, CtxTagKeys.internalSdkVersion, dataSanitizeString(logger, internal.sdkVersion, 64), isString);\r\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n }\r\n }\r\n };\r\n _self[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */] = function (evt, itemCtx) {\r\n var location = _this.location;\r\n if (location) {\r\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */] = function (evt, itemCtx) {\r\n var telemetryTrace = _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */];\r\n if (telemetryTrace) {\r\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString, isNullOrUndefined);\r\n setValue(extTrace, \"name\", telemetryTrace.name, isString, isNullOrUndefined);\r\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString, isNullOrUndefined);\r\n }\r\n };\r\n _self.applyWebContext = function (evt, itemCtx) {\r\n var web = _this.web;\r\n if (web) {\r\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n }\r\n };\r\n _self[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */] = function (evt, itemCtx) {\r\n var user = _self.user;\r\n if (user) {\r\n var tags = getSetValue(evt, strTags, []);\r\n // stays in tags\r\n setValue(tags, CtxTagKeys.userAccountId, user[_DYN_ACCOUNT_ID /* @min:%2eaccountId */], isString);\r\n // CS 4.0\r\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n setValue(extUser, \"id\", user.id, isString);\r\n setValue(extUser, \"authId\", user[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], isString);\r\n }\r\n };\r\n _self.cleanUp = function (evt, itemCtx) {\r\n var ext = evt.ext;\r\n if (ext) {\r\n _removeEmpty(ext, Extensions.DeviceExt);\r\n _removeEmpty(ext, Extensions.UserExt);\r\n _removeEmpty(ext, Extensions.WebExt);\r\n _removeEmpty(ext, Extensions.OSExt);\r\n _removeEmpty(ext, Extensions.AppExt);\r\n _removeEmpty(ext, Extensions.TraceExt);\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for TelemetryContext.prototype.applySessionContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperatingSystemContxt.\r\n// Removed Stub for TelemetryContext.prototype.applyApplicationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDeviceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyInternalContext.\r\n// Removed Stub for TelemetryContext.prototype.applyLocationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUserContext.\r\n// Removed Stub for TelemetryContext.prototype.cleanUp.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n TelemetryContext.__ieDyn=1;\n\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* PropertiesPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, PageView, PropertiesPluginIdentifier, createDistributedTraceContextFromTrace, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _InternalLogMessage, _logInternalMessage, createProcessTelemetryContext, getNavigator, getSetValue, isNullOrUndefined, onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze, objDefine } from \"@nevware21/ts-utils\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_GET_NEW_ID, _DYN_GET_SESSION_ID, _DYN_GET_TRACE_CTX, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_NAME_PREFIX, _DYN_SESSION_COOKIE_POSTF6, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"./__DynamicConstants\";\r\nvar undefString;\r\nvar nullValue = null;\r\nvar _defaultConfig = objDeepFreeze((_a = {},\r\n _a[_DYN_ACCOUNT_ID /* @min:accountId */] = nullValue,\r\n _a.sessionRenewalMs = 30 * 60 * 1000,\r\n _a.samplingPercentage = 100,\r\n _a.sessionExpirationMs = 24 * 60 * 60 * 1000,\r\n _a.cookieDomain = nullValue,\r\n _a.sdkExtension = nullValue,\r\n _a.isBrowserLinkTrackingEnabled = false,\r\n _a.appId = nullValue,\r\n _a[_DYN_GET_SESSION_ID /* @min:getSessionId */] = nullValue,\r\n _a[_DYN_NAME_PREFIX /* @min:namePrefix */] = undefString,\r\n _a[_DYN_SESSION_COOKIE_POSTF6 /* @min:sessionCookiePostfix */] = undefString,\r\n _a[_DYN_USER_COOKIE_POSTFIX /* @min:userCookiePostfix */] = undefString,\r\n _a[_DYN_ID_LENGTH /* @min:idLength */] = 22,\r\n _a[_DYN_GET_NEW_ID /* @min:getNewId */] = nullValue,\r\n _a));\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 110;\r\n _this.identifier = PropertiesPluginIdentifier;\r\n var _extensionConfig;\r\n var _distributedTraceCtx;\r\n var _previousTraceCtx;\r\n var _context;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n objDefine(_self, \"context\", {\r\n g: function () {\r\n return _context;\r\n }\r\n });\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _populateDefaults(config);\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event - The event that needs to be processed\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (!isNullOrUndefined(event)) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n var theContext = (_context || {});\r\n if (theContext.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof _context.session.id !== \"string\" && theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */]) {\r\n theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */][_DYN_UPDATE /* @min:%2eupdate */]();\r\n }\r\n }\r\n var userCtx = theContext.user;\r\n if (userCtx && !userCtx[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n userCtx[_DYN_UPDATE /* @min:%2eupdate */](theContext.user.id);\r\n }\r\n _processTelemetryInternal(event, itemCtx);\r\n if (userCtx && userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */]) {\r\n userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var message = new _InternalLogMessage(72 /* _eInternalMessageId.SendBrowserInfoOnUserInit */, ((getNavigator() || {}).userAgent || \"\"));\r\n _logInternalMessage(itemCtx.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, message);\r\n }\r\n _self.processNext(event, itemCtx);\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n var core = (unloadCtx || {}).core();\r\n if (core && core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */]) {\r\n var traceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n if (traceCtx === _distributedTraceCtx) {\r\n core.setTraceCtx(_previousTraceCtx);\r\n }\r\n }\r\n _initDefaults();\r\n };\r\n function _initDefaults() {\r\n _extensionConfig = null;\r\n _distributedTraceCtx = null;\r\n _previousTraceCtx = null;\r\n _context = null;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n _self[\"_extConfig\"] = _extensionConfig;\r\n }));\r\n // This is outside of the onConfigChange as we don't want to update (replace) these values whenever a referenced config item changes\r\n _previousTraceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n _context = new TelemetryContext(core, _extensionConfig, _previousTraceCtx, _self._unloadHooks);\r\n _distributedTraceCtx = createDistributedTraceContextFromTrace(_self.context[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */], _previousTraceCtx);\r\n core.setTraceCtx(_distributedTraceCtx);\r\n _self.context.appId = function () {\r\n var breezeChannel = core.getPlugin(BreezeChannelIdentifier);\r\n return breezeChannel ? breezeChannel.plugin[\"_appId\"] : null;\r\n };\r\n }\r\n function _processTelemetryInternal(evt, itemCtx) {\r\n // Set Part A fields\r\n getSetValue(evt, \"tags\", []);\r\n getSetValue(evt, \"ext\", {});\r\n var ctx = _self.context;\r\n ctx[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */](evt, itemCtx);\r\n ctx.applyWebContext(evt, itemCtx);\r\n ctx[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */](evt, itemCtx); // legacy tags\r\n ctx[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */](evt, itemCtx); // legacy tags\r\n ctx.cleanUp(evt, itemCtx);\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for PropertiesPlugin.prototype.initialize.\r\n// Removed Stub for PropertiesPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PropertiesPlugin.__ieDyn=1;\n\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n","/*\n * Application Insights JavaScript SDK - Web, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nvar _AUTHENTICATED_USER_CONTEXT = \"AuthenticatedUserContext\";\r\nvar _TRACK = \"track\";\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_SNIPPET = \"snippet\";\r\nexport var STR_GET_COOKIE_MGR = \"getCookieMgr\";\r\nexport var STR_START_TRACK_PAGE = \"startTrackPage\";\r\nexport var STR_STOP_TRACK_PAGE = \"stopTrackPage\";\r\nexport var STR_FLUSH = \"flush\";\r\nexport var STR_START_TRACK_EVENT = \"startTrackEvent\";\r\nexport var STR_STOP_TRACK_EVENT = \"stopTrackEvent\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZER = \"addTelemetryInitializer\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZERS = STR_ADD_TELEMETRY_INITIALIZER + \"s\";\r\nexport var STR_POLL_INTERNAL_LOGS = \"pollInternalLogs\";\r\nexport var STR_GET_PLUGIN = \"getPlugin\";\r\nexport var STR_EVT_NAMESPACE = \"evtNamespace\";\r\nexport var STR_TRACK_EVENT = _TRACK + \"Event\";\r\nexport var STR_TRACK_TRACE = _TRACK + \"Trace\";\r\nexport var STR_TRACK_METRIC = _TRACK + \"Metric\";\r\nexport var STR_TRACK_PAGE_VIEW = _TRACK + \"PageView\";\r\nexport var STR_TRACK_EXCEPTION = _TRACK + \"Exception\";\r\nexport var STR_TRACK_DEPENDENCY_DATA = _TRACK + \"DependencyData\";\r\nexport var STR_SET_AUTHENTICATED_USER_CONTEXT = \"set\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var STR_CLEAR_AUTHENTICATED_USER_CONTEXT = \"clear\" + _AUTHENTICATED_USER_CONTEXT;\r\n","/*\n * Application Insights JavaScript SDK - Web, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a, _b, _c;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { CfgSyncPlugin } from \"@microsoft/applicationinsights-cfgsync-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { AnalyticsPluginIdentifier, DEFAULT_BREEZE_PATH, PropertiesPluginIdentifier, ThrottleMgr, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\nimport { AppInsightsCore, _throwInternal, addPageHideEventListener, addPageUnloadEventListener, cfgDfValidate, createDynamicConfig, createProcessTelemetryContext, createUniqueNamespace, doPerf, hasDocument, hasWindow, isArray, isFeatureEnabled, isFunction, isNullOrUndefined, isReactNative, isString, mergeEvtNamespace, onConfigChange, proxyAssign, proxyFunctions, removePageHideEventListener, removePageUnloadEventListener } from \"@microsoft/applicationinsights-core-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { createPromise } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, objDefine, objForEachKey, strIndexOf, throwUnsupported } from \"@nevware21/ts-utils\";\r\nimport { STR_ADD_TELEMETRY_INITIALIZER, STR_CLEAR_AUTHENTICATED_USER_CONTEXT, STR_EVT_NAMESPACE, STR_FLUSH, STR_GET_COOKIE_MGR, STR_GET_PLUGIN, STR_POLL_INTERNAL_LOGS, STR_SET_AUTHENTICATED_USER_CONTEXT, STR_SNIPPET, STR_START_TRACK_EVENT, STR_START_TRACK_PAGE, STR_STOP_TRACK_EVENT, STR_STOP_TRACK_PAGE, STR_TRACK_DEPENDENCY_DATA, STR_TRACK_EVENT, STR_TRACK_EXCEPTION, STR_TRACK_METRIC, STR_TRACK_PAGE_VIEW, STR_TRACK_TRACE } from \"./InternalConstants\";\r\nimport { _DYN_ADD_HOUSEKEEPING_BEF0, _DYN_CONNECTION_STRING, _DYN_CONTEXT, _DYN_ENDPOINT_URL, _DYN_INSTRUMENTATION_KEY, _DYN_IS_THROTTLED, _DYN_ONUNLOAD_FLUSH, _DYN_QUEUE, _DYN_SEND_MESSAGE, _DYN_UPDATE_SNIPPET_DEFIN1, _DYN_VERSION } from \"./__DynamicConstants\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n STR_SNIPPET, \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\nvar IKEY_USAGE = \"iKeyUsage\";\r\nvar CDN_USAGE = \"CdnUsage\";\r\nvar SDK_LOADER_VER = \"SdkLoaderVer\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar default_throttle_config = {\r\n disabled: true,\r\n limit: {\r\n samplingRate: 100,\r\n maxSendNumber: 1\r\n },\r\n interval: {\r\n monthInterval: 3,\r\n daysOfMonth: [28]\r\n }\r\n};\r\n// We need to include all properties that we only reference that we want to be dynamically updatable here\r\n// So they are converted even when not specified in the passed configuration\r\nvar defaultConfigValues = (_a = {},\r\n _a[_DYN_CONNECTION_STRING /* @min:connectionString */] = UNDEFINED_VALUE,\r\n _a[_DYN_ENDPOINT_URL /* @min:endpointUrl */] = UNDEFINED_VALUE,\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a.diagnosticLogInterval = cfgDfValidate(_chkDiagLevel, 10000),\r\n _a.featureOptIn = (_b = {},\r\n _b[IKEY_USAGE] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n _b[CDN_USAGE] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n _b[SDK_LOADER_VER] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n _b),\r\n _a.throttleMgrCfg = (_c = {},\r\n _c[109 /* _eInternalMessageId.DefaultThrottleMsgKey */] = default_throttle_config,\r\n _c[106 /* _eInternalMessageId.InstrumentationKeyDeprecation */] = default_throttle_config,\r\n _c[111 /* _eInternalMessageId.SdkLdrUpdate */] = default_throttle_config,\r\n _c[110 /* _eInternalMessageId.CdnDeprecation */] = default_throttle_config,\r\n _c),\r\n _a);\r\nfunction _chkDiagLevel(value) {\r\n // Make sure we have a value > 0\r\n return value && value > 0;\r\n}\r\n/**\r\n * Application Insights API\r\n * @group Entrypoint\r\n * @group Classes\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar AppInsightsSku = /** @class */ (function () {\r\n function AppInsightsSku(snippet) {\r\n var _this = this;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var dependencies;\r\n var properties;\r\n var _sender;\r\n var _snippetVersion;\r\n var _evtNamespace;\r\n var _houseKeepingNamespace;\r\n var _core;\r\n var _config;\r\n var _analyticsPlugin;\r\n var _cfgSyncPlugin;\r\n var _throttleMgr;\r\n var _iKeySentMessage;\r\n var _cdnSentMessage;\r\n var _sdkVerSentMessage;\r\n dynamicProto(AppInsightsSku, this, function (_self) {\r\n _initDefaults();\r\n objDefine(_self, \"config\", {\r\n g: function () {\r\n return _config;\r\n }\r\n });\r\n arrForEach([\"pluginVersionStringArr\", \"pluginVersionString\"], function (key) {\r\n objDefine(_self, key, {\r\n g: function () {\r\n if (_core) {\r\n return _core[key];\r\n }\r\n return null;\r\n }\r\n });\r\n });\r\n // initialize the queue and config in case they are undefined\r\n _snippetVersion = \"\" + (snippet.sv || snippet[_DYN_VERSION /* @min:%2eversion */] || \"\");\r\n snippet[_DYN_QUEUE /* @min:%2equeue */] = snippet[_DYN_QUEUE /* @min:%2equeue */] || [];\r\n snippet[_DYN_VERSION /* @min:%2eversion */] = snippet[_DYN_VERSION /* @min:%2eversion */] || 2.0; // Default to new version\r\n var cfgHandler = createDynamicConfig(snippet.config || {}, defaultConfigValues);\r\n _config = cfgHandler.cfg;\r\n _analyticsPlugin = new AnalyticsPlugin();\r\n objDefine(_self, \"appInsights\", {\r\n g: function () {\r\n return _analyticsPlugin;\r\n }\r\n });\r\n properties = new PropertiesPlugin();\r\n dependencies = new DependenciesPlugin();\r\n _sender = new Sender();\r\n _core = new AppInsightsCore();\r\n objDefine(_self, \"core\", {\r\n g: function () {\r\n return _core;\r\n }\r\n });\r\n // Will get recalled if any referenced values are changed\r\n _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n if (_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]) {\r\n var cs = parseConnectionString(_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */]);\r\n var ingest = cs.ingestionendpoint;\r\n _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = ingest ? (ingest + DEFAULT_BREEZE_PATH) : _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]; // only add /v2/track when from connectionstring\r\n _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = cs.instrumentationkey || _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n }));\r\n _self[STR_SNIPPET /* @min:%2esnippet */] = snippet;\r\n _self[STR_FLUSH /* @min:%2eflush */] = function (async, callBack) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n doPerf(_core, function () { return \"AISKU.flush\"; }, function () {\r\n if (async && !callBack) {\r\n result = createPromise(function (resolve) {\r\n callBack = resolve;\r\n });\r\n }\r\n var waiting = 1;\r\n var flushDone = function () {\r\n waiting--;\r\n if (waiting === 0) {\r\n callBack();\r\n }\r\n };\r\n arrForEach(_core.getChannels(), function (channel) {\r\n if (channel) {\r\n waiting++;\r\n channel[STR_FLUSH /* @min:%2eflush */](async, flushDone);\r\n }\r\n });\r\n // decrement the initial \"waiting\"\r\n flushDone();\r\n }, null, async);\r\n return result;\r\n };\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */] = function (async) {\r\n if (async === void 0) { async = true; }\r\n arrForEach(_core.getChannels(), function (channel) {\r\n if (channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]) {\r\n channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]();\r\n }\r\n else {\r\n channel[STR_FLUSH /* @min:%2eflush */](async);\r\n }\r\n });\r\n };\r\n _self.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n if (legacyMode) {\r\n throwUnsupported(\"Legacy Mode is no longer supported\");\r\n }\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!isNullOrUndefined(_snippetVersion)) {\r\n snippetVer += _snippetVersion;\r\n }\r\n if (_self[_DYN_CONTEXT /* @min:%2econtext */] && _self[_DYN_CONTEXT /* @min:%2econtext */].internal) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (isString(field) &&\r\n !isFunction(value) &&\r\n field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n arrIndexOf(_ignoreUpdateSnippetProperties, field) === -1) {\r\n if (snippet[field] !== value) {\r\n snippet[field] = value;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n // initialize core\r\n _core.initialize(_config, [_sender, properties, dependencies, _analyticsPlugin, _cfgSyncPlugin], logger, notificationManager);\r\n objDefine(_self, \"context\", {\r\n g: function () { return properties[_DYN_CONTEXT /* @min:%2econtext */]; }\r\n });\r\n if (!_throttleMgr) {\r\n _throttleMgr = new ThrottleMgr(_core);\r\n }\r\n var sdkSrc = _findSdkSourceFile();\r\n if (sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */]) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc = sdkSrc;\r\n }\r\n _updateSnippetProperties(_self[STR_SNIPPET /* @min:%2esnippet */]);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self[STR_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF0 /* @min:%2eaddHousekeepingBeforeUnload */](_self);\r\n _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n var defaultEnable = false;\r\n if (_config.throttleMgrCfg[109 /* _eInternalMessageId.DefaultThrottleMsgKey */]) {\r\n defaultEnable = !_config.throttleMgrCfg[109 /* _eInternalMessageId.DefaultThrottleMsgKey */].disabled;\r\n }\r\n if (!_throttleMgr.isReady() && _config.extensionConfig && _config.extensionConfig[_cfgSyncPlugin.identifier] && defaultEnable) {\r\n // set ready state to true will automatically trigger flush()\r\n _throttleMgr.onReadyState(true);\r\n }\r\n var result;\r\n if (!_iKeySentMessage && !_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] && isFeatureEnabled(IKEY_USAGE, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](106 /* _eInternalMessageId.InstrumentationKeyDeprecation */, \"See Instrumentation key support at aka.ms/IkeyMigrate\");\r\n if (result && result[_DYN_IS_THROTTLED /* @min:%2eisThrottled */]) {\r\n _iKeySentMessage = true;\r\n }\r\n }\r\n if (!_cdnSentMessage && _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc.indexOf(\"az416426\") != -1 && isFeatureEnabled(CDN_USAGE, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](110 /* _eInternalMessageId.CdnDeprecation */, \"See Cdn support notice at aka.ms/JsActiveCdn\");\r\n if (result && result[_DYN_IS_THROTTLED /* @min:%2eisThrottled */]) {\r\n _cdnSentMessage = true;\r\n }\r\n }\r\n if (!_sdkVerSentMessage && parseInt(_snippetVersion) < 6 && isFeatureEnabled(SDK_LOADER_VER, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](111 /* _eInternalMessageId.SdkLdrUpdate */, \"An updated Sdk Loader is available, see aka.ms/SnippetVer\");\r\n if (result && result[_DYN_IS_THROTTLED /* @min:%2eisThrottled */]) {\r\n _sdkVerSentMessage = true;\r\n }\r\n }\r\n }));\r\n });\r\n return _self;\r\n };\r\n _self[_DYN_UPDATE_SNIPPET_DEFIN1 /* @min:%2eupdateSnippetDefinitions */] = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, _self, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && arrIndexOf(_ignoreUpdateSnippetProperties, name) === -1;\r\n });\r\n };\r\n _self.emptyQueue = function () {\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (isArray(_self.snippet[_DYN_QUEUE /* @min:%2equeue */])) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet[_DYN_QUEUE /* @min:%2equeue */].length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet[_DYN_QUEUE /* @min:%2equeue */][i];\r\n call();\r\n }\r\n _self.snippet[_DYN_QUEUE /* @min:%2equeue */] = undefined;\r\n delete _self.snippet[_DYN_QUEUE /* @min:%2equeue */];\r\n }\r\n }\r\n catch (exception) {\r\n var properties_1 = {};\r\n if (exception && isFunction(exception.toString)) {\r\n properties_1.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // eLoggingSeverity.WARNING,\r\n // _eInternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF0 /* @min:%2eaddHousekeepingBeforeUnload */] = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping_1 = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n if (isFunction(_self.core[STR_GET_PLUGIN /* @min:%2egetPlugin */])) {\r\n var loadedPlugin = _this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */](PropertiesPluginIdentifier);\r\n if (loadedPlugin) {\r\n var propertiesPlugin = loadedPlugin.plugin;\r\n if (propertiesPlugin && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */] && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager) {\r\n propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager.backup();\r\n }\r\n }\r\n }\r\n };\r\n var added_1 = false;\r\n if (!_houseKeepingNamespace) {\r\n _houseKeepingNamespace = mergeEvtNamespace(_evtNamespace, _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */] && _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */]());\r\n }\r\n // Will be recalled if any referenced config properties change\r\n _addUnloadHook(onConfigChange(_config, function (details) {\r\n var coreConfig = details.cfg;\r\n var analyticsPlugin = appInsightsInstance.appInsights;\r\n var ctx = createProcessTelemetryContext(null, coreConfig, analyticsPlugin.core);\r\n var extConfig = ctx.getExtCfg(analyticsPlugin.identifier || AnalyticsPluginIdentifier);\r\n // As we could get recalled, remove any previously registered event handlers first\r\n _removePageEventHandlers();\r\n var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents;\r\n if (!extConfig.disableFlushOnBeforeUnload) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n if (addPageUnloadEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added_1 = true;\r\n }\r\n // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n if (addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added_1 = true;\r\n }\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added_1 && !isReactNative()) {\r\n _throwInternal(_core.logger, 1 /* eLoggingSeverity.CRITICAL */, 19 /* _eInternalMessageId.FailedToAddHandlerForOnBeforeUnload */, \"Could not add handler for beforeunload and pagehide\");\r\n }\r\n }\r\n if (!added_1 && !extConfig.disableFlushOnUnload) {\r\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace);\r\n }\r\n }));\r\n }\r\n };\r\n _self.getSender = function () {\r\n return _sender;\r\n };\r\n _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n var unloadDone = false;\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n function _unloadCallback(unloadState) {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n }\r\n }\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](isAsync);\r\n _removePageEventHandlers();\r\n _core.unload && _core.unload(isAsync, _unloadCallback, cbTimeout);\r\n return result;\r\n };\r\n proxyFunctions(_self, _analyticsPlugin, [\r\n STR_GET_COOKIE_MGR,\r\n STR_TRACK_EVENT,\r\n STR_TRACK_PAGE_VIEW,\r\n \"trackPageViewPerformance\",\r\n STR_TRACK_EXCEPTION,\r\n \"_onerror\",\r\n STR_TRACK_TRACE,\r\n STR_TRACK_METRIC,\r\n STR_START_TRACK_PAGE,\r\n STR_STOP_TRACK_PAGE,\r\n STR_START_TRACK_EVENT,\r\n STR_STOP_TRACK_EVENT\r\n ]);\r\n proxyFunctions(_self, _getCurrentDependencies, [\r\n STR_TRACK_DEPENDENCY_DATA,\r\n \"addDependencyListener\",\r\n \"addDependencyInitializer\"\r\n ]);\r\n proxyFunctions(_self, _core, [\r\n STR_ADD_TELEMETRY_INITIALIZER,\r\n STR_POLL_INTERNAL_LOGS,\r\n \"stopPollingInternalLogs\",\r\n STR_GET_PLUGIN,\r\n \"addPlugin\",\r\n STR_EVT_NAMESPACE,\r\n \"addUnloadCb\",\r\n \"getTraceCtx\",\r\n \"updateCfg\",\r\n \"onCfgChange\"\r\n ]);\r\n proxyFunctions(_self, function () {\r\n var context = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n return context ? context.user : null;\r\n }, [\r\n STR_SET_AUTHENTICATED_USER_CONTEXT,\r\n STR_CLEAR_AUTHENTICATED_USER_CONTEXT\r\n ]);\r\n // Using a function to support the dynamic adding / removal of plugins, so this will always return the current value\r\n function _getCurrentDependencies() {\r\n return dependencies;\r\n }\r\n function _initDefaults() {\r\n _evtNamespace = createUniqueNamespace(\"AISKU\");\r\n _houseKeepingNamespace = null;\r\n dependencies = null;\r\n properties = null;\r\n _sender = null;\r\n _snippetVersion = null;\r\n _throttleMgr = null;\r\n _iKeySentMessage = false;\r\n _cdnSentMessage = false;\r\n _sdkVerSentMessage = false;\r\n _cfgSyncPlugin = new CfgSyncPlugin();\r\n }\r\n function _removePageEventHandlers() {\r\n // Remove any registered event handlers\r\n if (_houseKeepingNamespace) {\r\n removePageUnloadEventListener(null, _houseKeepingNamespace);\r\n removePageHideEventListener(null, _houseKeepingNamespace);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _core.addUnloadHook(hooks);\r\n }\r\n });\r\n }\r\n // Analytics Plugin\r\n// Removed Stub for AppInsightsSku.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsSku.prototype.trackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageView.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageViewPerformance.\r\n// Removed Stub for AppInsightsSku.prototype.trackException.\r\n// Removed Stub for AppInsightsSku.prototype._onerror.\r\n// Removed Stub for AppInsightsSku.prototype.trackTrace.\r\n// Removed Stub for AppInsightsSku.prototype.trackMetric.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.addTelemetryInitializer.\r\n // Properties Plugin\r\n// Removed Stub for AppInsightsSku.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for AppInsightsSku.prototype.clearAuthenticatedUserContext.\r\n // Dependencies Plugin\r\n// Removed Stub for AppInsightsSku.prototype.trackDependencyData.\r\n // Misc\r\n// Removed Stub for AppInsightsSku.prototype.flush.\r\n// Removed Stub for AppInsightsSku.prototype.onunloadFlush.\r\n// Removed Stub for AppInsightsSku.prototype.loadAppInsights.\r\n// Removed Stub for AppInsightsSku.prototype.updateSnippetDefinitions.\r\n// Removed Stub for AppInsightsSku.prototype.emptyQueue.\r\n// Removed Stub for AppInsightsSku.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.addHousekeepingBeforeUnload.\r\n// Removed Stub for AppInsightsSku.prototype.getSender.\r\n// Removed Stub for AppInsightsSku.prototype.unload.\r\n// Removed Stub for AppInsightsSku.prototype.getPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.addPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.updateCfg.\r\n// Removed Stub for AppInsightsSku.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsSku.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsSku.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AppInsightsSku.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AppInsightsSku.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsSku.prototype.onCfgChange.\r\n return AppInsightsSku;\r\n}());\r\nexport { AppInsightsSku };\r\n// tslint:disable-next-line\r\nexport function _findSdkSourceFile() {\r\n if (_internalSdkSrc) {\r\n // Use the cached value\r\n return _internalSdkSrc;\r\n }\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url_1 = sdkSrc.toLowerCase();\r\n if (url_1) {\r\n var src_1 = \"\";\r\n arrForEach(cdns, function (value, idx) {\r\n if (strIndexOf(url_1, value) !== -1) {\r\n src_1 = \"cdn\" + (idx + 1);\r\n if (strIndexOf(url_1, \"/scripts/\") === -1) {\r\n if (strIndexOf(url_1, \"/next/\") !== -1) {\r\n src_1 += \"-next\";\r\n }\r\n else if (strIndexOf(url_1, \"/beta/\") !== -1) {\r\n src_1 += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src_1 + (isModule ? \".mod\" : \"\");\r\n return -1;\r\n }\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n // Cache the found value so we don't have to look it up again\r\n _internalSdkSrc = sdkSrc;\r\n }\r\n return _internalSdkSrc;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Web, 3.0.3\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_QUEUE = \"queue\"; // Count: 6\r\nexport var _DYN_CONNECTION_STRING = \"connectionString\"; // Count: 4\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 3\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 3\r\nexport var _DYN_ONUNLOAD_FLUSH = \"onunloadFlush\"; // Count: 6\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 5\r\nexport var _DYN_ADD_HOUSEKEEPING_BEF0 = \"addHousekeepingBeforeUnload\"; // Count: 2\r\nexport var _DYN_SEND_MESSAGE = \"sendMessage\"; // Count: 3\r\nexport var _DYN_IS_THROTTLED = \"isThrottled\"; // Count: 3\r\nexport var _DYN_UPDATE_SNIPPET_DEFIN1 = \"updateSnippetDefinitions\"; // Count: 2\r\n","//Node\nimport { Injectable } from '@angular/core';\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\n\n//App\nimport { environment } from '../../../../environments/environment';\nimport { ClaimsService } from '../claims.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MonitoringService {\n appInsights: ApplicationInsights;\n appInsightsEnabled: boolean = false;\n\n constructor(private claimsService: ClaimsService) {\n if (environment.instrumentationkey) {\n this.appInsightsEnabled = true;\n this.appInsights = new ApplicationInsights({\n config: {\n instrumentationKey: environment.instrumentationkey,\n enableAutoRouteTracking: true,\n enableCorsCorrelation: true,\n correlationHeaderExcludedDomains: ['*.googleapis.com']\n }\n });\n this.appInsights.loadAppInsights();\n this.appInsights.addTelemetryInitializer(envelope => {\n envelope.tags['ai.cloud.role'] = \"EOD_SPA\";\n })\n this.claimsService.currentClaims.subscribe((claims) => {\n if (claims && claims.UserId) {\n const accountId = claims.OrgId + \"##\" + claims.UserId;\n this.setUserId(accountId);\n }\n else {\n this.clearUserId();\n }\n });\n }\n }\n\n setUserId(userId: string) {\n if (this.appInsightsEnabled) {\n this.appInsights.setAuthenticatedUserContext(userId);\n }\n }\n\n clearUserId() {\n if (this.appInsightsEnabled) {\n this.appInsights.clearAuthenticatedUserContext();\n }\n }\n\n logPageView(name?: string, url?: string) { // option to call manually\n if (this.appInsightsEnabled) {\n this.appInsights.trackPageView({\n name: name,\n uri: url\n });\n }\n }\n\n logEvent(name: string, properties?: { [key: string]: any }) {\n if (this.appInsightsEnabled) {\n this.appInsights.trackEvent({ name: name }, properties);\n }\n }\n\n logMetric(name: string, average: number, properties?: { [key: string]: any }) {\n if (this.appInsightsEnabled) {\n this.appInsights.trackMetric({ name: name, average: average }, properties);\n }\n }\n\n logException(exception: Error, severityLevel?: number) {\n if (this.appInsightsEnabled) {\n this.appInsights.trackException({ exception: exception, severityLevel: severityLevel });\n }\n }\n\n logTrace(message: string, properties?: { [key: string]: any }) {\n if (this.appInsightsEnabled) {\n this.appInsights.trackTrace({ message: message }, properties);\n }\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { map } from \"rxjs/operators\";\n\nimport { environment } from \"../../../environments/environment\";\nimport {\n UserRequestBase,\n OrganisationBasicSetup,\n VerifyYourEmail,\n UserBrowserDetails,\n} from \"../../_models/user/userrequestdto\";\nimport { Userresponsedto } from \"../../_models/user/userresponsedto\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport {\n OrganisationDTO,\n OrganisationLocationDTO,\n} from \"../../_models/Organisation/organisation-location-dto\";\nimport { ForgotPasswordRequest } from \"../../_models/reset-password/forgotpassword-request\";\n\nimport { Router } from \"@angular/router\";\nimport { setHeader } from \"../../_helpers/setRequestHeader\";\nimport { ClaimsHeaderService } from \"../../shared/claimsHeader/claims-header.service\";\nimport { OAuthService } from \"angular-oauth2-oidc\";\nimport { MonitoringService } from \"./logging/monitoring.service\";\nimport { ClaimsService } from \"./claims.service\";\nimport { NotificationService } from \"./notification.service\";\nimport { ManageempService } from \"../manage-emp/manage-emp.service\";\n\n@Injectable({ providedIn: \"root\" })\nexport class AuthenticationService {\n public currentUserSubject: BehaviorSubject;\n public currentUser: Observable;\n TokenHeader: HttpHeaders;\n loginTokenHeader: HttpHeaders;\n\n post_logout_redirect_uri: any;\n\n constructor(\n private header: setHeader,\n private router: Router,\n private http: HttpClient,\n private oauthService: OAuthService,\n private claimsHeaderService: ClaimsHeaderService,\n private claimsService: ClaimsService,\n private monitoringService: MonitoringService,\n private notificationService: NotificationService,\n private ManageempService: ManageempService\n ) {\n this.currentUserSubject = new BehaviorSubject(\n JSON.parse(localStorage.getItem(\"currentUser\"))\n );\n\n this.currentUser = this.currentUserSubject.asObservable();\n\n window.addEventListener(\"storage\", (event) => {\n // The `key` is `null` if the event was caused by `.clear()`\n if (event.key !== \"access_token\" && event.key !== null) {\n return;\n }\n\n console.warn(\n \"Noticed changes to access_token (most likely from another tab), updating isAuthenticated\"\n );\n //this.isAuthenticatedSubject$.next(this.oauthService.hasValidAccessToken());\n\n if (!this.oauthService.hasValidAccessToken()) {\n this.logout();\n }\n });\n }\n\n hideAppLoader() {\n let loaderElement = document.getElementsByClassName(\n \"app-loading\"\n ) as HTMLCollectionOf;\n\n if (loaderElement.length != 0) {\n loaderElement[0].style.display = \"none\";\n }\n }\n\n loadAccessToken() {\n localStorage.removeItem(\"loginToken\");\n var settings = {\n url: environment.token_endpoint,\n method: \"POST\",\n timeout: 0,\n async: false,\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\",\n Authorization: \"Basic d2ViOnNlY3JldA==\",\n },\n data: {\n grant_type: \"client_credentials\",\n scope: \"Api\",\n },\n };\n $.ajax(settings).done(function (response) {\n localStorage.setItem(\"loginToken\", response.access_token);\n });\n }\n\n public get currentUserValue(): Userresponsedto {\n return this.currentUserSubject.value;\n }\n\n login(user_requestdto: UserRequestBase): Observable {\n this.loginTokenHeader = this.header.authorizationHeader();\n let body = JSON.stringify(user_requestdto);\n return this.http\n .post(`${environment.billingApiUrl}Login`, body, {\n headers: this.loginTokenHeader,\n })\n .pipe(\n map((user) => {\n //\n // login successful if there's a jwt token in the response\n if (user.responseInfo) {\n if (user.responseInfo.isOnboardingProcessComplete) {\n localStorage.setItem(\"currentUser\", JSON.stringify(user));\n //this.currentUserSubject.next(user.responseInfo);\n } else {\n localStorage.setItem(\"currentUserTemp\", JSON.stringify(user));\n }\n }\n\n return user;\n })\n );\n }\n\n \n\n\n LoginWithFaceId(requestinfo: any) {\n let body = JSON.stringify(requestinfo);\n this.loginTokenHeader = this.header.authorizationHeader();\n \n return this.http.post(`${environment.billingApiUrl}LoginWithFaceId`, body, \n { headers: this.loginTokenHeader });\n }\n\n socialmedialogin(user_requestdto: UserRequestBase): Observable {\n this.loginTokenHeader = this.header.authorizationHeader();\n let body = JSON.stringify(user_requestdto);\n\n return this.http\n .post(`${environment.billingApiUrl}SocialMediaLogin`, body, {\n headers: this.loginTokenHeader,\n })\n .pipe(\n map((user) => {\n // login successful if there's a jwt token in the response\n if (user.responseInfo && user.responseInfo.token) {\n // store user details and jwt token in local storage to keep user logged in between page refreshes\n localStorage.setItem(\"currentUser\", JSON.stringify(user));\n //this.currentUserSubject.next(user.responseInfo);\n //this.oauthService\n // .fetchTokenUsingPasswordFlowAndLoadUserProfile(\n // user_requestdto.RequestInfo.LoginId,\n // \"9aYJu5ga9gy95n6a9ETHnp1dF+z/86FzNa3CZ2GvAbPwqTtapgdTUw==\"\n // )\n // .then(() => {\n //\n // console.debug('successfully logged in');\n // var tokenNew = this.oauthService.getAccessToken();\n // //this.loginFailed = false;\n // })\n // .catch(err => {\n // console.error('error logging in', err);\n // //this.loginFailed = true;\n // });\n }\n\n return user;\n })\n );\n }\n\n register(user_requestdto: UserRequestBase): Observable {\n this.loginTokenHeader = this.header.authorizationHeader();\n let body = JSON.stringify(user_requestdto);\n localStorage.setItem(\"currentUserTemp\", JSON.stringify(user_requestdto));\n return this.http.post(`${environment.billingApiUrl}Register`, body, {\n headers: this.loginTokenHeader,\n });\n\n //this.currentUserSubject.next(user.responseInfo);\n }\n\n UpdateUserBrowserDetails(request: UserBrowserDetails): Observable {\n this.loginTokenHeader = this.header.authorizationHeader();\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.billingApiUrl}UpdateUserBrowserDetail`,\n body,\n { headers: this.loginTokenHeader }\n );\n }\n\n registerwithSocial(user_requestdto: UserRequestBase): Observable {\n this.loginTokenHeader = this.header.authorizationHeader();\n let body = JSON.stringify(user_requestdto);\n localStorage.setItem(\"currentUserTemp\", JSON.stringify(user_requestdto));\n return this.http.post(\n `${environment.billingApiUrl}SocialMediaRegister`,\n body,\n { headers: this.loginTokenHeader }\n );\n }\n\n organisationBasicSetup(\n organisationBasicSetup: OrganisationBasicSetup,\n token: string\n ): Observable {\n this.TokenHeader = this.header.authorizationHeader();\n let body = JSON.stringify(organisationBasicSetup);\n return this.http.post(\n `${environment.billingApiUrl}OrganisationBasicSetup`,\n body,\n { headers: this.TokenHeader }\n );\n //.pipe(map(user => {\n // login successful if there's a jwt token in the response\n //if (user) {\n // store user details and jwt token in local storage to keep user logged in between page refreshes\n //localStorage.setItem('currentUser', JSON.stringify(user));\n //this.currentUserSubject.next(user);\n //}\n\n //return user;\n //}));\n }\n\n updateorganisation(\n organisationDto: OrganisationDTO,\n token: string\n ): Observable {\n let body = JSON.stringify(organisationDto);\n return this.http.post(\n `${environment.billingApiUrl}UpdateOrganisation`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n updateorganisationlocation(\n organisationLocationDto: OrganisationLocationDTO,\n token: string\n ): Observable {\n let body = JSON.stringify(organisationLocationDto);\n return this.http.post(\n `${environment.billingApiUrl}AddOrganisationLocation`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n organisationdetails(userid: string, loginid: string, token: string) {\n this.TokenHeader = this.header.authorizationHeader();\n let params = new HttpParams();\n params = params.append(\"LoginId\", loginid);\n params = params.append(\"Userid\", userid);\n\n return this.http.get(\n `${environment.billingApiUrl}OrganisationDetail`,\n { params: params, headers: this.TokenHeader }\n );\n }\n\n organisationlocationdetails(orgid: string, token: string) {\n let params = new HttpParams();\n params = params.append(\"OrgId\", orgid);\n\n return this.http.get(\n `${environment.billingApiUrl}OrganisationLocationDetail`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n logout() {\n let claims = localStorage.getItem(\"claims\");\n if (claims) {\n const userId = JSON.parse(claims).UserId;\n const orgId = JSON.parse(claims).OrgId;\n let params = new HttpParams();\n params = params.append(\"userId\", userId);\n\n this.http.get(`${environment.billingApiUrl}LogoutUser`, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n params: params,\n });\n\n //this.oauthService.logOut();\n\n localStorage.removeItem(\"orgId\");\n localStorage.removeItem(\"selectedCurrencyCode\");\n localStorage.removeItem(\"approverName\");\n localStorage.removeItem(\"emailId\");\n localStorage.removeItem(\"userId\");\n localStorage.removeItem(\"employeesInvited\");\n localStorage.removeItem(\"orgName\");\n localStorage.removeItem(\"financeManager\");\n localStorage.removeItem(\"selectedCurrency\");\n localStorage.removeItem(\"currencyIcon\");\n localStorage.removeItem(\"token\");\n localStorage.removeItem(\"currentUserTemp\");\n localStorage.removeItem(\"loginId\");\n localStorage.removeItem(\"CurrentOrganisationCurrency\");\n localStorage.removeItem(\"claims\");\n localStorage.removeItem(\"currentUser\");\n localStorage.removeItem(\"loginToken\");\n localStorage.removeItem(\"ImportStorageData\");\n sessionStorage.removeItem(\"OrganisationFunctionSubscriptionCache\");\n sessionStorage.removeItem(\"OrganisationSettingListData\");\n sessionStorage.removeItem(\n \"SubscribedFunctionsForOrganisationData_\" + orgId\n );\n sessionStorage.removeItem(\"FunctionPrivilegeMappingData\");\n sessionStorage.removeItem(\"FunctionPrivilegeUserData_\" + userId);\n sessionStorage.removeItem(\"OrgWizardDetailsCache_\" + orgId);\n sessionStorage.removeItem(\"organisationFuncPurchaseCacheKey\");\n sessionStorage.removeItem(\"ExpenseCurrencyListData\");\n sessionStorage.removeItem(\"translatorKeys\");\n sessionStorage.removeItem(\"ExpenseApprovalListFilters\");\n localStorage.removeItem(\"policySubCategoryDetail\");\n\n this.currentUserSubject.next(null);\n\n this.monitoringService.clearUserId();\n\n this.claimsService.updateClaims(null);\n\n this.notificationService.stopConnection();\n\n //var current = JSON.parse(localStorage.getItem('currentUser'));\n\n //var settings = {\n // \"url\": 'http://localhost:5000/connect/endsession/' + current.responseInfo.token + '&post_logout_redirect_uri=http://localhost:59484/login',\n // \"method\": \"GET\",\n // \"timeout\": 0,\n // //\"headers\": {\n // // \"Content-Type\": \"application/x-www-form-urlencoded\",\n // // \"Authorization\": \"Basic V2ViOnNlY3JldA==\"\n // //},\n // //\"data\": {\n // // \"grant_type\": \"client_credentials\",\n // // \"scope\": \"Api\"\n // //}\n //};\n\n //$.ajax(settings).done(function (response) {\n //\n\n //});\n }\n this.ManageempService.DropOrgAllEmployeesCache();\n }\n\n setregisternav() {\n let userResDto: any = localStorage.getItem(\"currentUserTemp\");\n localStorage.setItem(\"currentUser\", userResDto);\n this.currentUserSubject.next(userResDto);\n }\n\n setloginnav() {\n this.notificationService.openNotificationPanel = true;\n let userResDto: any = localStorage.getItem(\"currentUser\");\n this.currentUserSubject.next(userResDto);\n }\n\n verifyYourEmail(\n verifyYourEmail: VerifyYourEmail,\n addCurrentUser: boolean\n ): Observable {\n this.TokenHeader = this.header.authorizationHeader();\n let body = JSON.stringify(verifyYourEmail);\n let user: any = this.http.post(\n `${environment.billingApiUrl}VerifyYourEmail`,\n body,\n { headers: this.TokenHeader }\n );\n if (addCurrentUser) {\n //localStorage.setItem(\"currentUser\", JSON.stringify(user));\n this.currentUserSubject.next(null);\n } else {\n localStorage.setItem(\"currentUserTemp\", JSON.stringify(user));\n this.currentUserSubject.next(null);\n }\n return user;\n }\n\n sendForgotpasswordEmail(\n forgotPasswordRequest: ForgotPasswordRequest\n ): Observable {\n this.TokenHeader = this.header.authorizationHeader();\n let body = JSON.stringify(forgotPasswordRequest);\n return this.http\n .post(`${environment.billingApiUrl}ForgotPassword`, body, {\n headers: this.TokenHeader,\n })\n .pipe(\n map((forgotPasswordResponse) => {\n return forgotPasswordResponse;\n })\n );\n }\n\n getLocationOnIP(orgData) {\n this.TokenHeader = this.header.authorizationHeader();\n return this.http.get(\n `${environment.billingApiUrl}GetLocationDetailsWithIP?ip=` + orgData,\n { headers: this.TokenHeader }\n );\n }\n\n getIpCliente() {\n return this.http.get(`https://api.ipify.org`, {\n responseType: \"text\" as \"json\",\n });\n }\n\n getIpClientLocation() {\n return this.http.get(\"https://ipapi.co/json/\");\n }\n\n checkForUserExistance(emailId) {\n this.loginTokenHeader = this.header.authorizationHeader();\n\n let params = new HttpParams();\n params = params.append(\"emailId\", emailId);\n\n return this.http.get(`${environment.billingApiUrl}GetUserByEmail`, {\n headers: this.loginTokenHeader,\n params: params,\n });\n }\n\n getXeroUserDetails(code) {\n this.loginTokenHeader = this.header.authorizationHeader();\n\n return this.http.get(\n `${environment.exportApiUrl}GetXeroUserDetails/` + code,\n {\n headers: this.loginTokenHeader,\n }\n );\n }\n\n checkDomainEnabledForSSO(domaiName) {\n this.loginTokenHeader = this.header.authorizationHeader();\n\n return this.http.get(\n `${environment.billingApiUrl}CheckDomainEnabledForSSO?domainName=` +\n domaiName,\n {\n headers: this.loginTokenHeader,\n }\n );\n }\n\n CheckDomainRegistered(domaiName) {\n this.loginTokenHeader = this.header.authorizationHeader();\n\n return this.http.get(\n `${environment.billingApiUrl}CheckDomainRegistered?domainName=` +\n domaiName,\n {\n headers: this.loginTokenHeader,\n }\n );\n }\n\n SendInviteeNotificationToFinanceManager(user_requestdto) {\n this.loginTokenHeader = this.header.authorizationHeader();\n let body = JSON.stringify(user_requestdto);\n return this.http\n .post(\n `${environment.billingApiUrl}SendInviteeNotificationToFinanceManager`,\n body,\n {\n headers: this.loginTokenHeader,\n }\n )\n .pipe(\n map((user) => {\n return user;\n })\n );\n }\n\n getTotpSetup(emailId): Observable {\n this.loginTokenHeader = this.header.authorizationHeader();\n return this.http.post(`${environment.billingApiUrl}SetupTwoFactor`, {\n emailId,\n },\n {\n headers: this.loginTokenHeader,\n });\n }\n verifyTotp(token: string, secret: string, emailId: string): Observable {\n this.loginTokenHeader = this.header.authorizationHeader();\n return this.http.post(`${environment.billingApiUrl}VerifyTwoFactor`, {\n token,\n secret,\n emailId,\n },\n {\n headers: this.loginTokenHeader,\n });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport {\n CanActivate,\n Router,\n ActivatedRouteSnapshot,\n RouterStateSnapshot,\n} from \"@angular/router\";\nimport { OAuthService } from \"angular-oauth2-oidc\";\nimport { OrganisationFunctionService } from \"../organisation-setting/organisation-function.service\";\nimport { FunctionPrivilegeService } from \"../secondary-fm/function-privilege.service\";\nimport { ClaimsService } from \"./claims.service\";\nimport { Observable, of } from \"rxjs\";\nimport { mergeMap, map } from \"rxjs/operators\";\nimport { FMRoleType } from \"src/app/_models\";\nimport { environment } from \"src/environments/environment\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { date } from \"@rxweb/reactive-form-validators\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class AuthGuardService {\n claims: Claims;\n restrictedRoutes = environment.restrictedRoutes;\n\n constructor(\n private oauthService: OAuthService,\n private router: Router,\n private organisationService: OrganisationFunctionService,\n private functionPrivilegeService: FunctionPrivilegeService,\n private claimsService: ClaimsService\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n if (claims) {\n this.claims = claims;\n }\n });\n }\n\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): boolean | Observable {\n\n if(state.url.split(\"?\")[0].includes('export/summaryofexport')){\n return true;\n }\n\n if (this.verifyAccessToken() == false) {\n this.router.navigate([\"/login\"]);\n return false;\n }\n\n this.claimsService.currentClaims.subscribe((claims) => {\n if (claims) {\n this.claims = claims;\n var url = state.url.split(\"?\")[0];\n\n if (\n (this.claims && this.claims.orgRoleId == 2) ||\n this.claims.orgRoleId == 1\n ) {\n if (this.claims.orgRoleId == 2 && url.includes('approver')) {\n return true;\n }\n if (this.restrictedRoutes.filter((r) => url.includes(r)).length > 0) {\n if(!url.includes('claimantfcdashboard'))\n {\n this.fnRedirectUsertoCorrectRoot();\n return of(false);\n }\n \n }\n \n } \n\n if (\n this.claims?.isAdvanceBalanceOutstanding &&\n (url == \"/dashboard/advances\" ||\n url == \"/dashboard/advancemanagement\")\n ) {\n return true;\n }\n\n if (url == \"/\" && this.claims?.orgRoleId != 3) {\n this.fnRedirectUsertoCorrectRoot();\n return of(false);\n }\n\n return this.organisationService\n .checkFunctionRouteSubscribed(url, this.claims?.OrgId)\n .pipe(\n mergeMap>((result1) => {\n if (result1) {\n return this.verifyPrivileges(url);\n } else {\n this.fnRedirectUsertoCorrectRoot();\n return of(false);\n }\n })\n );\n }\n });\n }\n\n verifyPrivileges(url): Observable {\n if (this.claims?.FMRoleType == FMRoleType.AllPrivilege) {\n return of(true);\n }\n\n if (this.claims?.FMRoleType == FMRoleType.NoPrivilege) {\n if (\n environment.fmNoPrivilegeRoutes.filter((r) => url.includes(r)).length >\n 0\n ) {\n return of(true);\n }\n this.fnRedirectUsertoCorrectRoot();\n return of(false);\n }\n\n if (\n environment.restrictedRoutes.filter((r) => url.includes(r)).length > 0\n ) {\n this.fnRedirectUsertoCorrectRoot();\n return of(false);\n }\n\n return this.functionPrivilegeService\n .checkRoutePrivilegeAccess(url, this.claims?.UserId)\n .pipe(\n map((result2) => {\n if (result2) {\n return true;\n } else {\n this.fnRedirectUsertoCorrectRoot();\n return false;\n }\n })\n );\n }\n\n fnRedirectUsertoCorrectRoot() {\n if (this.claims && this.claims.orgRoleId == 3) {\n this.router.navigate([\"\"]);\n } else if (this.claims && this.claims.orgRoleId == 2) { \n this.router.navigate([\"/approver/appclaimant/1\"]);\n } else {\n this.router.navigate([\"/claimant/expenselist\"]);\n }\n }\n\n verifyAccessToken() {\n var hasAccessToken = this.oauthService.hasValidAccessToken();\n var hasAccesTokenExpired =\n this.oauthService.getAccessTokenExpiration() <= new Date().getTime();\n return hasAccessToken && !hasAccesTokenExpired;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Claims } from \"../../../../src/app/_models/common/claims\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { FunctionPackageEnum, Page } from \"src/app/_models\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ClaimsService {\n claims: Claims = null;\n private _claims = new BehaviorSubject(this.claims);\n currentClaims = this._claims.asObservable();\n\n constructor() {}\n updateClaims(newClaims: Claims) {\n this._claims.next(newClaims);\n\n if (newClaims) {\n localStorage.setItem(\"claims\", JSON.stringify(newClaims));\n } else {\n localStorage.removeItem(\"claims\");\n }\n }\n\n public selectedPackageCategory: number = 1;\n private _selectedPackageCategory = new BehaviorSubject(\n this.selectedPackageCategory\n );\n currentSelectedPackageCategory = this._selectedPackageCategory.asObservable();\n\n updateSelectedPackageCategory(newValue: number) {\n this._selectedPackageCategory.next(newValue);\n }\n\n SetFunctionPackageClaims(\n functionPurchasedTrailList: any,\n existingClaims: Claims,\n functionCalledFrom: number\n ) {\n for (let index = 0; index < functionPurchasedTrailList.length; index++) {\n let element = functionPurchasedTrailList[index];\n\n let functionId = 0;\n switch (functionCalledFrom) {\n case Page.Home:\n functionId = element.functionId;\n break;\n case Page.ShoppingCartConfirm:\n functionId = element.functionPackageId;\n break;\n }\n\n existingClaims = this.SetValueToFunctionPackageClaims(\n functionId,\n true,\n existingClaims\n );\n }\n\n return existingClaims;\n }\n\n SetValueToFunctionPackageClaims(\n functionId: number,\n value: boolean,\n existingClaims: Claims\n ) {\n switch (functionId) {\n case FunctionPackageEnum.AccountingIntegration:\n existingClaims.IsAccountingIntegrationPackagePurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.SetupCreditCard:\n existingClaims.IsCreditCardPackageSubscribed = value;\n break;\n case FunctionPackageEnum.ExpenseCategoryManagement:\n existingClaims.IsExpenseCategoryPackagePurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.SetupCostCentre_Assign_toClaimants:\n existingClaims.IsCostCentrePackagePurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.Customer:\n existingClaims.IsCustomerPackagePurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.ExportReport:\n existingClaims.IsExportReportPackagePurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.SetupTaxRate:\n existingClaims.IsTaxPackagePurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.ProjectBudget:\n existingClaims.IsProjectBudgetPurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.SetupMultipleCompanies:\n existingClaims.IsMultipleCompaniesPackagePurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.NonReimbursableFuel:\n existingClaims.isNRPackagePurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.FuelCard:\n existingClaims.isFCPackagePurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.Location:\n existingClaims.IsLocationPurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.ConfigureAdministratorPrivilege:\n existingClaims.IsSecondaryFMPackagePurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.AssignDeputyToApprovers:\n existingClaims.IsAssignDeputyToApproversPurchased = value;\n break;\n case FunctionPackageEnum.Supplier:\n existingClaims.IsSupplierPurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.DutyofCare:\n existingClaims.IsDocPackagePurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.MultipleCountry:\n existingClaims.IsMultipleCountryPackagePurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.DuplicateChecker:\n existingClaims.IsDuplicateCheckerPurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.Delegate:\n existingClaims.IsDelegateFunctionPurchasedOrTrial = value;\n if (!value) {\n existingClaims.IsDelegator = false;\n existingClaims.IsDelegate = false;\n }\n break;\n case FunctionPackageEnum.AttendeeType:\n existingClaims.IsAttendeeTypePurchased = value;\n break;\n case FunctionPackageEnum.APAutomation:\n existingClaims.isAPAutomationFunctionPurchasedOrTrial = value;\n break;\n case FunctionPackageEnum.RecallExportedExpenses:\n existingClaims.IsRecallExportedExpensesPurchased = value;\n break;\n case FunctionPackageEnum.SpecialCategory:\n existingClaims.IsSpecialCategoryFunctionPurchasedorTrial = value;\n break;\n case FunctionPackageEnum.Container:\n existingClaims.IsContainerPurchasedOrTrial = value;\n break; \n case FunctionPackageEnum.Pre_Approvals:\n existingClaims.isPreApprovalPurchased = value;\n break; \n }\n\n return existingClaims;\n }\n\n onToggleMobileMenu(IsLeftMenuCollapseAndStopToggle: boolean) {\n if (!IsLeftMenuCollapseAndStopToggle) {\n document.body.classList.toggle(\"sidebar-enable\");\n const currentSIdebarSize =\n document.body.getAttribute(\"data-sidebar-size\");\n if (window.screen.width >= 992) {\n if (currentSIdebarSize == null) {\n document.body.getAttribute(\"data-sidebar-size\") == null ||\n document.body.getAttribute(\"data-sidebar-size\") == \"lg\"\n ? document.body.setAttribute(\"data-sidebar-size\", \"sm\")\n : document.body.setAttribute(\"data-sidebar-size\", \"lg\");\n } else if (currentSIdebarSize == \"md\") {\n document.body.getAttribute(\"data-sidebar-size\") == \"md\"\n ? document.body.setAttribute(\"data-sidebar-size\", \"sm\")\n : document.body.setAttribute(\"data-sidebar-size\", \"md\");\n } else {\n document.body.getAttribute(\"data-sidebar-size\") == \"sm\"\n ? document.body.setAttribute(\"data-sidebar-size\", \"lg\")\n : document.body.setAttribute(\"data-sidebar-size\", \"sm\");\n }\n }\n } else {\n document.body.setAttribute(\"data-sidebar-size\", \"sm\");\n }\n }\n}\n","import { Component, OnInit, Inject, forwardRef } from '@angular/core';\nimport { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http';\n//import { map } from 'rxjs/operators';\nimport { IDashboard } from '../../_models/common/dashboard';\n\nimport { environment } from '../../../environments/environment';\nimport { DashboardDataRequest, IDashBoardAPI } from '../../_models/Dashboard/dashboardAPI';\nimport { setHeader } from 'src/app/_helpers/setRequestHeader';\nimport { ClaimsHeaderService } from 'src/app/shared/claimsHeader/claims-header.service';\nimport { Observable, Subject } from 'rxjs';\nimport { ApiRequest } from 'src/app/_models';\nimport { UserNotificationSettings } from 'src/app/_models/Notifications/user-notification-settings';\nimport { SetupPayStepRequest } from \"src/app/_models/Dashboard/pay-step\";\nimport { IApiresponse } from \"src/app/_models/common/request-response/apiresponse\";\nimport { IApiRequest } from \"src/app/_models/common/request-response/api-request\";\n//import { Observable, of } from 'rxjs';\n\n//@CrossOrigin(origins = \"*\")\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardService implements OnInit {\n\n userUrl: any;\n token: any;\n orgId: number;\n userid: string;\n loginid: string;\n httpHeaders: HttpHeaders;\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService) {\n\n }\n ngOnInit() {\n\n }\n\n getFmDashboardApproveRejectData(orgId, token) {\n this.userUrl = `${environment.expenseApiUrl}GetFMApproveRejectGraph/` + orgId + ``;\n\n return this.http.get(this.userUrl,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n\n }\n\n SoloGetActionableRecordForDashboard(reqInfo: DashboardDataRequest) {\n let request = new ApiRequest(\"GetActionableRecordForDashboard\",\n environment.applicationVersion, environment.requestId);\n request.requestInfo = reqInfo;\n let body = JSON.stringify(request);\n return this.http.post(`${environment.expenseApiUrl}GetActionableRecordForDashboard`, body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n getPendingDeputiesCount() {\n this.userUrl = `${environment.billingApiUrl}GetPendingDeputiesCount`;\n\n return this.http.get(this.userUrl,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n getPendingEmployeeWithGradeCount() {\n this.userUrl = `${environment.billingApiUrl}GetPendingEmployeeWithGradeCount`;\n\n return this.http.get(this.userUrl,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n \n GetWizardCount(reqInfo: DashboardDataRequest) {\n let request = new ApiRequest(\"GetWizardCount\",\n environment.applicationVersion, environment.requestId);\n request.requestInfo = reqInfo;\n let body = JSON.stringify(request);\n return this.http.post(`${environment.expenseApiUrl}GetWizardCount`, body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n public userNotificationSettingsSubject$ = new Subject();\n saveUserNotificationSettings(reqInfo: UserNotificationSettings) {\n\n let request = new ApiRequest(\"/api/SaveUserNotificationSettings\",\n environment.applicationVersion, environment.requestId);\n request.requestInfo = reqInfo;\n let body = JSON.stringify(request);\n return this.http.post(`${environment.billingApiUrl}SaveUserNotificationSettings`, body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n getUserNotificationSettings() {\n this.userUrl = `${environment.billingApiUrl}GetUserNotificationSettings`;\n\n return this.http.get(this.userUrl,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SetupPayStep( requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}SetupPayStep`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\n}\n","import { Component, OnInit, Inject, forwardRef } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { map, debounceTime } from \"rxjs/operators\";\nimport { environment } from \"../../../environments/environment\";\nimport { IEmailSendRequest, ISendReminderResponse } from \"src/app/_models/common/email.model\";\nimport { setHeader } from \"src/app/_helpers/setRequestHeader\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { Observable } from \"rxjs\";\nimport { IApiRequest, IApiresponse } from 'src/app/_models';\nimport { EmailModel } from \"src/app/_models/common/EmailModel\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EmailService {\n\n loginTokenHeader: HttpHeaders;\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService, private header: setHeader,) { }\n\n SendReminderEmail(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}GetSetDetailForSendEmail`, body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SendEmail(requestinfo: IApiRequest) {\n\n this.loginTokenHeader = this.header.authorizationHeader();\n\n let body = JSON.stringify(requestinfo);\n return this.http.post(`${environment.notificationApiUrl}SendInstantEmail`, body,\n { headers: this.loginTokenHeader });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { saveAs } from 'file-saver';\nconst EXCEL_TYPE =\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8\";\nconst EXCEL_EXTENSION = \".xlsx\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ExcelExportService {\n constructor() { }\n\n public isValidCSVFile(file: any) {\n return file.name.endsWith(\".csv\");\n }\n\n public getHeaderArrayFromCSV(csvRecordsArr: any) {\n let headers = (csvRecordsArr[0]).split(',');\n let headerArray = [];\n for (let j = 0; j < headers.length; j++) {\n headerArray.push(headers[j]);\n }\n return headerArray;\n }\n\n public exportAsExcelFile(data: any[], excelFileName: string, header?: any[]): void {\n import(\"xlsx\").then(XLSX => {\n const worksheet = XLSX.utils.json_to_sheet([]);\n if (header) {\n XLSX.utils.sheet_add_aoa(worksheet, header);\n\n //Starting in the second row to avoid overriding and skipping headers\n XLSX.utils.sheet_add_json(worksheet, data, { origin: 'A2', skipHeader: true });\n }\n else {\n XLSX.utils.sheet_add_json(worksheet, data);\n }\n const workbook = {\n Sheets: { data: worksheet },\n SheetNames: [\"data\"]\n };\n const excelBuffer: any = XLSX.write(workbook, {\n bookType: \"xlsx\",\n type: \"array\"\n });\n this.saveAsExcelFile(excelBuffer, excelFileName);\n });\n }\n \n private saveAsExcelFile(buffer: any, fileName: string): void {\n var FileSaver = require('file-saver');\n const data: Blob = new Blob([buffer], {\n type: EXCEL_TYPE\n });\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\n }\n\n public exportToCsv(filename, rows) {\n const processRow = function (row) {\n let finalVal = '';\n for (let j = 0; j < row.length; j++) {\n let innerValue = row[j] === null ? '' : row[j].toString();\n if (row[j] instanceof Date) {\n innerValue = row[j].toLocaleString();\n };\n let result = innerValue.replace(/\"/g, '\"\"');\n result = innerValue.replace(/–/g, '-');\n if (result.search(/(\"|,|\\n)/g) >= 0)\n result = '\"' + result + '\"';\n if (j > 0)\n finalVal += ',';\n finalVal += result;\n }\n return finalVal + '\\n';\n };\n\n let csvFile = '';\n for (let i = 0; i < rows.length; i++) {\n csvFile += processRow(rows[i]);\n }\n\n const blob = new Blob([csvFile], { type: 'text/csv;charset=utf-8;' });\n const nav = (window.navigator as any);\n if (nav.msSaveBlob) { // IE 10+\n nav.msSaveBlob(blob, filename);\n } else {\n let link = document.createElement(\"a\");\n if (link.download !== undefined) { // feature detection\n // Browsers that support HTML5 download attribute\n let url = URL.createObjectURL(blob);\n link.setAttribute(\"href\", url);\n link.setAttribute(\"download\", filename);\n link.style.visibility = 'hidden';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n }\n }\n\n\n public convertStringToBase64TextCsv(str: string) {\n let base64 = btoa(str.replace(/[\\u00A0-\\u2666]/g, function(c) {\n return '&#' + c.charCodeAt(0) + ';';\n }));\n\n return \"data:text/csv;base64,\" + base64;\n }\n\n}\n","import { DatePipe } from \"@angular/common\";\nimport { Injectable } from \"@angular/core\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ExportToCSVService {\n constructor(private datepipe: DatePipe) {}\n downloadFile(data, headerText, headerProperties, filename = \"data\") {\n let csvData = this.ConvertToCSV(data, headerText, headerProperties);\n let blob = new Blob([\"\\ufeff\" + csvData], {\n type: \"text/csv;charset=utf-8;\",\n });\n let dwldLink = document.createElement(\"a\");\n let url = URL.createObjectURL(blob);\n let isSafariBrowser =\n navigator.userAgent.indexOf(\"Safari\") != -1 &&\n navigator.userAgent.indexOf(\"Chrome\") == -1;\n if (isSafariBrowser) {\n //if Safari open in new window to save file with random filename.\n dwldLink.setAttribute(\"target\", \"_blank\");\n }\n dwldLink.setAttribute(\"href\", url);\n dwldLink.setAttribute(\"download\", filename + \".csv\");\n dwldLink.style.visibility = \"hidden\";\n document.body.appendChild(dwldLink);\n dwldLink.click();\n document.body.removeChild(dwldLink);\n }\n\n downloadExcelFile(data, headerText, headerProperties, filename = \"data\") {\n let csvData = this.ConvertToCSV(data, headerText, headerProperties);\n let blob = new Blob([\"\\ufeff\" + csvData], {\n type: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n });\n let dwldLink = document.createElement(\"a\");\n let url = URL.createObjectURL(blob);\n let isSafariBrowser =\n navigator.userAgent.indexOf(\"Safari\") != -1 &&\n navigator.userAgent.indexOf(\"Chrome\") == -1;\n if (isSafariBrowser) {\n //if Safari open in new window to save file with random filename.\n dwldLink.setAttribute(\"target\", \"_blank\");\n }\n dwldLink.setAttribute(\"href\", url);\n dwldLink.setAttribute(\"download\", filename + \".xls\");\n dwldLink.style.visibility = \"hidden\";\n document.body.appendChild(dwldLink);\n dwldLink.click();\n document.body.removeChild(dwldLink);\n }\n\n ConvertToCSV(objArray, headerText, headerProperties) {\n let array = typeof objArray != \"object\" ? JSON.parse(objArray) : objArray;\n let str = \"\";\n let row = \"\";\n\n for (let index in headerText) {\n row += headerText[index] + \",\";\n }\n row = row.slice(0, -1);\n str += row + \"\\r\\n\";\n for (let i = 0; i < array.length; i++) {\n let line = \"\";\n for (let index in headerProperties) {\n let head = headerProperties[index];\n if (array[i][head] == \"\") {\n line += \"\" + \",\";\n } else {\n if ((head.includes(\"Date\") || head.includes(\"submittedOn\")) && !head.includes(\"laterDateEntries\")) {\n line +=\n (array[i][head] == null\n ? \"\"\n : this.datepipe.transform(array[i][head], \"dd-MMM-yyyy\")) + \",\";\n } else {\n line +=\n (array[i][head] == null\n ? \"\"\n : array[i][head].toString().replace(/\\,/g, \"/\")) + \",\";\n }\n }\n }\n str += line + \"\\r\\n\";\n }\n return str;\n }\n}\n","class FileSize {\n\n constructor() { }\n\n GetFileSizeFromBytes(bytes: number, decimals = 2) {\n\n if (bytes === 0) return '0 Bytes';\n\n const k = 1024;\n const dm = decimals < 0 ? 0 : decimals;\n const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n }\n}\n\nexport const fileSizeService = new FileSize()","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n/** @private */\r\nexport class DefaultReconnectPolicy {\r\n constructor(retryDelays) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n nextRetryDelayInMilliseconds(retryContext) {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nexport class HeaderNames {\r\n}\r\nHeaderNames.Authorization = \"Authorization\";\r\nHeaderNames.Cookie = \"Cookie\";\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n constructor(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n}\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport class HttpClient {\r\n get(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n post(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n delete(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n getCookieString(url) {\r\n return \"\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\n/** @private */\r\nexport class AccessTokenHttpClient extends HttpClient {\r\n constructor(innerClient, accessTokenFactory) {\r\n super();\r\n this._innerClient = innerClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n }\r\n async send(request) {\r\n let allowRetry = true;\r\n if (this._accessTokenFactory && (!this._accessToken || (request.url && request.url.indexOf(\"/negotiate?\") > 0))) {\r\n // don't retry if the request is a negotiate or if we just got a potentially new token from the access token factory\r\n allowRetry = false;\r\n this._accessToken = await this._accessTokenFactory();\r\n }\r\n this._setAuthorizationHeader(request);\r\n const response = await this._innerClient.send(request);\r\n if (allowRetry && response.statusCode === 401 && this._accessTokenFactory) {\r\n this._accessToken = await this._accessTokenFactory();\r\n this._setAuthorizationHeader(request);\r\n return await this._innerClient.send(request);\r\n }\r\n return response;\r\n }\r\n _setAuthorizationHeader(request) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (this._accessToken) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${this._accessToken}`;\r\n }\r\n // don't remove the header if there isn't an access token factory, the user manually added the header in this case\r\n else if (this._accessTokenFactory) {\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n }\r\n getCookieString(url) {\r\n return this._innerClient.getCookieString(url);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage, statusCode) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when multiple errors have occurred. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message, innerErrors) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.innerErrors = innerErrors;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger {\r\n constructor() { }\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n log(_logLevel, _message) {\r\n }\r\n}\r\n/** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\nNullLogger.instance = new NullLogger();\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION = \"7.0.12\";\r\n/** @private */\r\nexport class Arg {\r\n static isRequired(val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n static isNotEmpty(val, name) {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n static isIn(val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n static get isBrowser() {\r\n return typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n static get isWebWorker() {\r\n return typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n // react-native has a window but no document\r\n static get isReactNative() {\r\n return typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n static get isNode() {\r\n return !this.isBrowser && !this.isWebWorker && !this.isReactNative;\r\n }\r\n}\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n const view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport async function sendMessage(logger, transportName, httpClient, url, content, options) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers },\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log !== undefined) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nexport class SubjectSubscription {\r\n constructor(subject, observer) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n dispose() {\r\n const index = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class ConsoleLogger {\r\n constructor(minimumLogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n log(logLevel, message) {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport function getUserAgentHeader() {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];\r\n}\r\n/** @private */\r\nexport function constructUserAgent(version, os, runtime, runtimeVersion) {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent = \"Microsoft SignalR/\";\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n }\r\n else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n userAgent += `${runtime}`;\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n }\r\n else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName() {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion() {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\nfunction getRuntime() {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n }\r\n else {\r\n return \"Browser\";\r\n }\r\n}\r\n/** @private */\r\nexport function getErrorString(e) {\r\n if (e.stack) {\r\n return e.stack;\r\n }\r\n else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n/** @private */\r\nexport function getGlobalThis() {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis, isArrayBuffer } from \"./Utils\";\r\nexport class FetchHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n if (typeof fetch === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n this._jar = new (requireFunc(\"tough-cookie\")).CookieJar();\r\n this._fetchType = requireFunc(\"node-fetch\");\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n this._fetchType = requireFunc(\"fetch-cookie\")(this._fetchType, this._jar);\r\n }\r\n else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n if (typeof AbortController === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n this._abortControllerType = requireFunc(\"abort-controller\");\r\n }\r\n else {\r\n this._abortControllerType = AbortController;\r\n }\r\n }\r\n /** @inheritDoc */\r\n async send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n const abortController = new this._abortControllerType();\r\n let error;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n request.headers = request.headers || {};\r\n if (isArrayBuffer(request.content)) {\r\n request.headers[\"Content-Type\"] = \"application/octet-stream\";\r\n }\r\n else {\r\n request.headers[\"Content-Type\"] = \"text/plain;charset=UTF-8\";\r\n }\r\n }\r\n let response;\r\n try {\r\n response = await this._fetchType(request.url, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n }\r\n catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${e}.`);\r\n throw e;\r\n }\r\n finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\");\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n return new HttpResponse(response.status, response.statusText, payload);\r\n }\r\n getCookieString(url) {\r\n let cookies = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\nfunction deserializeContent(response, responseType) {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n return content;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\nexport class XhrHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n }\r\n else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n constructor(logger) {\r\n super();\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n }\r\n else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this._httpClient.send(request);\r\n }\r\n getCookieString(url) {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController {\r\n constructor() {\r\n this._isAborted = false;\r\n this.onabort = null;\r\n }\r\n abort() {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n get signal() {\r\n return this;\r\n }\r\n get aborted() {\r\n return this._isAborted;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport {\r\n constructor(httpClient, logger, options) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n this._running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get pollAborted() {\r\n return this._pollAbort.aborted;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._url = url;\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n const pollOptions = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n this._running = true;\r\n }\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n async _poll(url, pollOptions) {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this._running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n }\r\n else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n async send(data) {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url, data, this._options);\r\n }\r\n async stop() {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n try {\r\n await this._receiving;\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const deleteOptions = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n await this._httpClient.delete(this._url, deleteOptions);\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request sent.\");\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\n/** @private */\r\nexport class ServerSentEventsTransport {\r\n constructor(httpClient, accessToken, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n let eventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });\r\n }\r\n try {\r\n eventSource.onmessage = (e) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);\r\n this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n }\r\n else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n async send(data) {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url, data, this._options);\r\n }\r\n stop() {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n _close(e) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n/** @private */\r\nexport class WebSocketTransport {\r\n constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n let token;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n webSocket.onopen = (_event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n webSocket.onerror = (event) => {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"There was an error with the transport\";\r\n }\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n webSocket.onmessage = (message) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n webSocket.onclose = (event) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n }\r\n else {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n send(data) {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n stop() {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n return Promise.resolve();\r\n }\r\n _close(event) {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => { };\r\n this._webSocket.onmessage = () => { };\r\n this._webSocket.onerror = () => { };\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n }\r\n else if (event instanceof Error) {\r\n this.onclose(event);\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n _isCloseEvent(event) {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AccessTokenHttpClient } from \"./AccessTokenHttpClient\";\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError, AbortError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nconst MAX_REDIRECTS = 100;\r\n/** @private */\r\nexport class HttpConnection {\r\n constructor(url, options = {}) {\r\n this._stopPromiseResolver = () => { };\r\n this.features = {};\r\n this._negotiateVersion = 1;\r\n Arg.isRequired(url, \"url\");\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n }\r\n else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n let webSocketModule = null;\r\n let eventSourceModule = null;\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n webSocketModule = requireFunc(\"ws\");\r\n eventSourceModule = requireFunc(\"eventsource\");\r\n }\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n this._httpClient = new AccessTokenHttpClient(options.httpClient || new DefaultHttpClient(this._logger), options.accessTokenFactory);\r\n this._connectionState = \"Disconnected\" /* Disconnected */;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async start(transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n if (this._connectionState !== \"Disconnected\" /* Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = \"Connecting\" /* Connecting */;\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n return Promise.reject(new AbortError(message));\r\n }\r\n else if (this._connectionState !== \"Connected\" /* Connected */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n this._connectionStarted = true;\r\n }\r\n send(data) {\r\n if (this._connectionState !== \"Connected\" /* Connected */) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport);\r\n }\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n async stop(error) {\r\n if (this._connectionState === \"Disconnected\" /* Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = \"Disconnecting\" /* Disconnecting */;\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n async _stopInternal(error) {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n try {\r\n await this._startInternalPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n this.transport = undefined;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n async _startInternal(transferFormat) {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n this._httpClient._accessTokenFactory = this._accessTokenFactory;\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n }\r\n else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n }\r\n else {\r\n let negotiateResponse = null;\r\n let redirects = 0;\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */ || this._connectionState === \"Disconnected\" /* Disconnected */) {\r\n throw new AbortError(\"The connection was stopped during negotiation.\");\r\n }\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n // set the factory to undefined so the AccessTokenHttpClient won't retry with the same token, since we know it won't change until a connection restart\r\n this._httpClient._accessToken = accessToken;\r\n this._httpClient._accessTokenFactory = undefined;\r\n }\r\n redirects++;\r\n } while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n if (this._connectionState === \"Connecting\" /* Connecting */) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = \"Connected\" /* Connected */;\r\n }\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = \"Disconnected\" /* Disconnected */;\r\n this.transport = undefined;\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _getNegotiationResponse(url) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n const negotiateResponse = JSON.parse(response.content);\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n return negotiateResponse;\r\n }\r\n catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n _createConnectUrl(url, connectionToken) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n async _createTransport(url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n const transportExceptions = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n }\r\n else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n }\r\n catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n }\r\n catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n if (this._connectionState !== \"Connecting\" /* Connecting */) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n }\r\n }\r\n }\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n _constructTransport(transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._httpClient._accessToken, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n _startTransport(url, transferFormat) {\r\n this.transport.onreceive = this.onreceive;\r\n this.transport.onclose = (e) => this._stopConnection(e);\r\n return this.transport.connect(url, transferFormat);\r\n }\r\n _resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat) {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n }\r\n else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n return this._constructTransport(transport);\r\n }\r\n catch (ex) {\r\n return ex;\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n _isITransport(transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n _stopConnection(error) {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n if (this._connectionState === \"Disconnected\" /* Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n if (this._connectionState === \"Connecting\" /* Connecting */) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* Disconnecting */) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n this.connectionId = undefined;\r\n this._connectionState = \"Disconnected\" /* Disconnected */;\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n _resolveUrl(url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n _resolveNegotiateUrl(url) {\r\n const index = url.indexOf(\"?\");\r\n let negotiateUrl = url.substring(0, index === -1 ? url.length : index);\r\n if (negotiateUrl[negotiateUrl.length - 1] !== \"/\") {\r\n negotiateUrl += \"/\";\r\n }\r\n negotiateUrl += \"negotiate\";\r\n negotiateUrl += index === -1 ? \"\" : url.substring(index);\r\n if (negotiateUrl.indexOf(\"negotiateVersion\") === -1) {\r\n negotiateUrl += index === -1 ? \"?\" : \"&\";\r\n negotiateUrl += \"negotiateVersion=\" + this._negotiateVersion;\r\n }\r\n return negotiateUrl;\r\n }\r\n}\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n/** @private */\r\nexport class TransportSendQueue {\r\n constructor(_transport) {\r\n this._transport = _transport;\r\n this._buffer = [];\r\n this._executing = true;\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n send(data) {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n stop() {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n _bufferData(data) {\r\n if (this._buffer.length && typeof (this._buffer[0]) !== typeof (data)) {\r\n throw new Error(`Expected data to be of type ${typeof (this._buffer)} but was of type ${typeof (data)}`);\r\n }\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n async _sendLoop() {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n break;\r\n }\r\n this._sendBufferedData = new PromiseSource();\r\n const transportResult = this._transportResult;\r\n this._transportResult = undefined;\r\n const data = typeof (this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n this._buffer.length = 0;\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n }\r\n catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n static _concatBuffers(arrayBuffers) {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n return result.buffer;\r\n }\r\n}\r\nclass PromiseSource {\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n resolve() {\r\n this._resolver();\r\n }\r\n reject(reason) {\r\n this._rejecter(reason);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n static write(output) {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n static parse(input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\nTextMessageFormat.RecordSeparatorCode = 0x1e;\r\nTextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n writeHandshakeRequest(handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n parseHandshakeResponse(data) {\r\n let messageData;\r\n let remainingData;\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n const textData = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n})(MessageType || (MessageType = {}));\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { SubjectSubscription } from \"./Utils\";\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject {\r\n constructor() {\r\n this.observers = [];\r\n }\r\n next(item) {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n error(err) {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n complete() {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n subscribe(observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { AbortError } from \"./Errors\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\nconst DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[\"Disconnected\"] = \"Disconnected\";\r\n /** The hub connection is connecting. */\r\n HubConnectionState[\"Connecting\"] = \"Connecting\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[\"Connected\"] = \"Connected\";\r\n /** The hub connection is disconnecting. */\r\n HubConnectionState[\"Disconnecting\"] = \"Disconnecting\";\r\n /** The hub connection is reconnecting. */\r\n HubConnectionState[\"Reconnecting\"] = \"Reconnecting\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n constructor(connection, logger, protocol, reconnectPolicy) {\r\n this._nextKeepAlive = 0;\r\n this._freezeEventListener = () => {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://docs.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = DEFAULT_PING_INTERVAL_IN_MS;\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = (data) => this._processIncomingData(data);\r\n this.connection.onclose = (error) => this._connectionClosed(error);\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n static create(connection, logger, protocol, reconnectPolicy) {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy);\r\n }\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state() {\r\n return this._connectionState;\r\n }\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId() {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl() {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n this.connection.baseUrl = url;\r\n }\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n start() {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n async _startWithStateTransitions() {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n try {\r\n await this._startInternal();\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n }\r\n catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n await this.connection.start(this._protocol.transferFormat);\r\n try {\r\n const handshakeRequest = {\r\n protocol: this._protocol.name,\r\n version: this._protocol.version,\r\n };\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n await handshakePromise;\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n if (!this.connection.features.inherentKeepAlive) {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n async stop() {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n _stopInternal(error) {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new AbortError(\"The connection was stopped before the hub handshake could complete.\");\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n stream(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue;\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n return subject;\r\n }\r\n _sendMessage(message) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n _sendWithProtocol(message) {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n send(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n this._launchStreams(streams, sendPromise);\r\n return sendPromise;\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n invoke(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n return p;\r\n }\r\n on(methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this._methods[methodName].push(newMethod);\r\n }\r\n off(methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n onclose(callback) {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n onreconnecting(callback) {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n onreconnected(callback) {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n _processIncomingData(data) {\r\n this._cleanupTimeout();\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n for (const message of messages) {\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n }\r\n else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n break;\r\n }\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n this._resetTimeoutPeriod();\r\n }\r\n _processHandshakeResponse(data) {\r\n let responseMessage;\r\n let remainingData;\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n }\r\n catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n this._cleanupPingTimer();\r\n }\r\n _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined) {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n async _invokeClientMethod(invocationMessage) {\r\n const methodName = invocationMessage.target.toLowerCase();\r\n const methods = this._methods[methodName];\r\n if (!methods) {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${methodName}' found.`);\r\n // No handlers provided by client but the server is expecting a response still, so we send an error\r\n if (invocationMessage.invocationId) {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n await this._sendWithProtocol(this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null));\r\n }\r\n return;\r\n }\r\n // Avoid issues with handlers removing themselves thus modifying the list while iterating through it\r\n const methodsCopy = methods.slice();\r\n // Server expects a response\r\n const expectsResponse = invocationMessage.invocationId ? true : false;\r\n // We preserve the last result or exception but still call all handlers\r\n let res;\r\n let exception;\r\n let completionMessage;\r\n for (const m of methodsCopy) {\r\n try {\r\n const prevRes = res;\r\n res = await m.apply(this, invocationMessage.arguments);\r\n if (expectsResponse && res && prevRes) {\r\n this._logger.log(LogLevel.Error, `Multiple results provided for '${methodName}'. Sending error to server.`);\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `Client provided multiple results.`, null);\r\n }\r\n // Ignore exception if we got a result after, the exception will be logged\r\n exception = undefined;\r\n }\r\n catch (e) {\r\n exception = e;\r\n this._logger.log(LogLevel.Error, `A callback for the method '${methodName}' threw error '${e}'.`);\r\n }\r\n }\r\n if (completionMessage) {\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else if (expectsResponse) {\r\n // If there is an exception that means either no result was given or a handler after a result threw\r\n if (exception) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `${exception}`, null);\r\n }\r\n else if (res !== undefined) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, null, res);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n // Client didn't provide a result or throw from a handler, server expects a response so we send an error\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null);\r\n }\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else {\r\n if (res) {\r\n this._logger.log(LogLevel.Error, `Result given for '${methodName}' method but server is not expecting a result.`);\r\n }\r\n }\r\n }\r\n _connectionClosed(error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new AbortError(\"The underlying connection was closed before the hub handshake could complete.\");\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n _completeClose(error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n async _reconnect(error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n try {\r\n await this._startInternal();\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n return;\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n this._completeClose();\r\n }\r\n _getNextRetryDelay(previousRetryCount, elapsedMilliseconds, retryReason) {\r\n try {\r\n return this._reconnectPolicy.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n _cancelCallbacksWithError(error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n _cleanupPingTimer() {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n _cleanupTimeout() {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n _createInvocation(methodName, args, nonblocking, streamIds) {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n _launchStreams(streams, promiseQueue) {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n }\r\n else if (err && err.toString) {\r\n message = err.toString();\r\n }\r\n else {\r\n message = \"Unknown error\";\r\n }\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n _replaceStreamingParams(args) {\r\n const streams = [];\r\n const streamIds = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n return [streams, streamIds];\r\n }\r\n _isObservable(arg) {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n _createStreamInvocation(methodName, args, streamIds) {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n _createCancelInvocation(id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n _createStreamItemMessage(id, item) {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n _createCompletionMessage(id, error, result) {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nconst JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol {\r\n constructor() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 1;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n }\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n writeMessage(message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n _isInvocationMessage(message) {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n _isStreamItemMessage(message) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n _isCompletionMessage(message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n _assertNotEmptyString(value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\nconst LogLevelNameMapping = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\nfunction parseLogLevel(name) {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n }\r\n else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n configureLogging(logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n }\r\n withUrl(url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n }\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n withHubProtocol(protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n withAutomaticReconnect(retryDelaysOrReconnectPolicy) {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n }\r\n else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n }\r\n else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n return this;\r\n }\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n build() {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol(), this.reconnectPolicy);\r\n }\r\n}\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n","import { HubConnection } from '@microsoft/signalr';\nimport * as signalR from '@microsoft/signalr';\nimport { environment } from \"../../../../environments/environment\";\nimport { OAuthService } from \"angular-oauth2-oidc\";\nimport { ClaimsService } from \"../claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { DefaultParams } from \"src/app/_models/common/request-response/default-params\";\nimport { DeviceInfo } from \"src/app/_models/common/request-response/device-info\";\n\nexport abstract class SignalRService {\n public hubConnection: HubConnection;\n public isConnectionStarted: boolean = false;\n public isConnectionSuccessful: boolean = false;\n\n private claims: Claims;\n\n constructor(private oauthService: OAuthService,\n private claimsService: ClaimsService) {\n\n this.claimsService.currentClaims.subscribe(a => {\n this.claims = a;\n });\n }\n\n abstract intiateListener(); \n\n startConnection() {\n\n var isAuthenticated = this.oauthService.hasValidAccessToken();\n if (!this.isConnectionStarted && isAuthenticated) {\n this.isConnectionStarted = true;\n\n this.hubConnection = new signalR.HubConnectionBuilder()\n .withUrl(environment.functionsUrl, { httpClient: new SignalRHttpClient(this.claims) })\n .configureLogging(signalR.LogLevel.Information)\n .build();\n\n this.hubConnection.start()\n .then(() => {\n this.isConnectionSuccessful = true;\n this.intiateListener();\n })\n .catch(err => {\n this.isConnectionStarted = false;\n console.error('Error while starting connection: ' + err.toString());\n });\n\n this.hubConnection.onclose(() => {\n this.isConnectionSuccessful = false;\n setTimeout(() => {\n var isAuthenticated = this.oauthService.hasValidAccessToken();\n if (isAuthenticated) {\n this.hubConnection.start()\n .then(() => {\n this.isConnectionSuccessful = true;\n this.intiateListener();\n })\n .catch(err => {\n this.isConnectionStarted = false;\n console.error('Error while starting connection: ' + err.toString());\n });\n }\n }, 3000);\n });\n }\n }\n\n stopConnection() {\n if (this.hubConnection && this.isConnectionStarted && this.isConnectionSuccessful) {\n this.hubConnection.stop();\n }\n this.isConnectionStarted = false;\n this.isConnectionSuccessful = false;\n }\n\n}\n\nclass SignalRHttpClient extends signalR.DefaultHttpClient {\n\n constructor(private claims: Claims) {\n super(console);\n }\n\n public async send(request: signalR.HttpRequest): Promise {\n\n var authHeaders = this.getAuthHeaders();\n request.headers = { ...authHeaders, ...request.headers };\n\n return super.send(request);\n }\n\n detectBrowserName() {\n const agent = window.navigator.userAgent.toLowerCase()\n switch (true) {\n case agent.indexOf('firefox') > -1:\n return 'firefox';\n case agent.indexOf('opr') > -1 && !!(window).opr:\n return 'opera'; \n case agent.indexOf('trident') > -1:\n return 'ie';\n case agent.indexOf('edg') > -1:\n return 'edge';\n case agent.indexOf('chrome') > -1 && !!(window).chrome:\n return 'chrome'; \n case agent.indexOf('safari') > -1:\n return 'safari';\n default:\n return 'other';\n }\n }\n\n detectBrowserVersion() {\n let userAgent = navigator.userAgent, tem,\n matchTest = userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n\n if (/trident/i.test(matchTest[1])) {\n tem = /\\brv[ :]+(\\d+)/g.exec(userAgent) || [];\n return 'IE ' + (tem[1] || '');\n }\n if (matchTest[1] === 'Chrome') {\n tem = userAgent.match(/\\b(OPR|Edge)\\/(\\d+)/);\n if (tem != null) return tem.slice(1).join(' ').replace('OPR', 'Opera');\n }\n matchTest = matchTest[2] ? [matchTest[1], matchTest[2]] : [navigator.appName, navigator.appVersion, '-?'];\n if ((tem = userAgent.match(/version\\/(\\d+)/i)) != null) matchTest.splice(1, 1, tem[1]);\n return matchTest.join(' ');\n }\n getAuthHeaders() {\n let defaultParams = new DefaultParams(this.claims.OrgId, this.claims.UserId, this.claims.FinanceManager, environment.requestTimeStamp);\n let deviceInfo = new DeviceInfo(this.claims.CurrentOrganisationCurrency, environment.platform,\n environment.applicationVersion.toString(), environment.appId, environment.deviceId, this.detectBrowserName(), this.detectBrowserVersion());\n defaultParams.deviceInfo = deviceInfo;\n\n var headers: any = {\n \"Content-Type\": \"application/json\",\n \"DefaultParams\": JSON.stringify(defaultParams),\n \"Authorization\": `Bearer ${localStorage.getItem(\"loginToken\")}`,\n \"x-ms-signalr-userid\": this.claims.UserId.toString()\n };\n\n return headers;\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { OAuthService } from \"angular-oauth2-oidc\";\nimport { Observable, Subject } from \"rxjs\";\nimport { ClaimsService } from \"./claims.service\";\nimport { SignalRService } from \"./signalr/signalr.service\";\nimport { Notification } from \"../../_models/common/notification\";\nimport {\n BackgroundTask,\n BackgroundTaskStatus,\n} from \"../../_models/common/background-task\";\nimport { environment } from \"src/environments/environment\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class NotificationService extends SignalRService {\n notificationAction: Subject = new Subject();\n notifications: Subject = new Subject();\n notificationSessionStorageKey: string = \"NotificationActionModel\";\n\n openNotificationPanel: boolean = false;\n\n constructor(\n oauthService: OAuthService,\n claimsService: ClaimsService,\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService\n ) {\n super(oauthService, claimsService);\n }\n\n submitBackgroundJob(data: BackgroundTask): Observable {\n return this.http.post(\n `${environment.catalogApiUrl}SubmitJob`,\n data,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getBackgroundJobStatus(jobId: string): Observable {\n return this.http.get(\n `${environment.catalogApiUrl}GetJobStatus?id=${jobId}`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetRunningJobStatusByKey(key: string): Observable {\n return this.http.get(\n `${environment.catalogApiUrl}GetRunningJobStatusByKey?key=${key}`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n markJobRemoved(jobId: string): Observable {\n return this.http.get(\n `${environment.catalogApiUrl}MarkJobRemoved?id=${jobId}`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n intiateListener() {\n this.hubConnection.on(\"notificationraised\", (data: any) => {\n if (data) {\n const notification = JSON.parse(data) as Notification;\n this.notifications.next(notification);\n }\n });\n }\n\n GetNotificationsForUser(): Observable {\n return this.http.get(\n `${environment.functionsUrl}GetNotifications`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n MarkNotificationRead(notifications: Notification[]): Observable {\n const notificationIds = notifications.map((n) => n.id);\n return this.http.post(\n `${environment.functionsUrl}MarkNotificationRead`,\n notificationIds,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SnoozeNotification(notification: Notification): Observable {\n return this.http.post(\n `${environment.functionsUrl}SnoozeNotification`,\n notification,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n RemoveNotifications(notificationId: string): Observable {\n return this.http.post(\n `${environment.functionsUrl}RemoveNotification`,\n notificationId,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n RemoveAllUserNotification(userId: string): Observable {\n return this.http.post(\n `${environment.functionsUrl}RemoveAllUserNotification`,\n userId,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n setNotificationActionModel(notification: Notification) {\n sessionStorage.setItem(\n this.notificationSessionStorageKey,\n JSON.stringify(notification)\n );\n this.notificationAction.next(notification);\n }\n\n getNotificationAction(): Notification {\n const notificationAction = sessionStorage.getItem(\n this.notificationSessionStorageKey\n );\n let notification: Notification = null;\n if (notificationAction) {\n notification = JSON.parse(notificationAction) as Notification;\n }\n return notification;\n }\n\n onNotificationRaised(): Observable {\n return this.notifications.asObservable();\n }\n\n onNotificationAction(): Observable {\n return this.notificationAction.asObservable();\n }\n\n notificationActionCompleted() {\n sessionStorage.removeItem(this.notificationSessionStorageKey);\n }\n\n GetScanDocumentWithURI(url): Observable {\n return this.http.get(\n `${environment.functionsUrl}ScanDocumentWithURI?`+url,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n ScanDocumentWithBase64(body): Observable {\n return this.http.post(\n `${environment.functionsUrl}ScanDocumentWithBase64`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n}\n","import { OnInit } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { environment } from \"../../../environments/environment\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class VersionHistoryService implements OnInit {\n private versionHistoryUrl = `${environment.catalogApiUrl}GetVersionHistory`;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService\n ) { }\n ngOnInit() { }\n\n getVersionHistory() {\n return this.http.get(this.versionHistoryUrl, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\nimport { IApiresponse } from \"src/app/_models/common/request-response/apiresponse\";\nimport { IApiRequest } from \"src/app/_models/common/request-response/api-request\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { KeyValueArray, Wizard, WizardDetailRequest, WizardResponse } from \"src/app/_models/common/wizard\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { map } from \"rxjs/operators\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class WizardService {\n httpHeaders: HttpHeaders;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService,\n private translate: TranslateService,\n ) { }\n\n GetWizardDetails(requestinfo: IApiRequest): Observable {\n let body = JSON.stringify(requestinfo);\n return this.http\n .post>(`${environment.billingApiUrl}GetWizardDetails`,body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n )\n .pipe(\n map((result) => {\n result.responseInfo.wizardList = this.mapwizard(result.responseInfo.wizardList);\n return result.responseInfo;\n })\n );\n }\n\n mapwizard(wizardData): Wizard[] {\n const result: Wizard[] = [];\n wizardData.forEach((row) => {\n if (row) {\n result.push({\n iconClass: row.iconClass,\n iconPlacement: row.iconPlacement,\n iconTooltip: row.iconTooltip !=null ? this.translate.instant(row.iconTooltip) : null,\n isStepMandatory: row.isStepMandatory,\n progressbarMessage: this.fnGetKeyValueReplaceString(\n row.progressbarMessageArray,\n row.progressbarMessage\n ),\n progressbarMessageArray: row.progressbarMessageArray,\n progressbarType: row.progressbarType !=null ? row.progressbarType : null,\n progressbarValue: row.progressbarValue,\n stepClass: row.stepClass,\n stepDesc: this.translate.instant(row.stepDesc),\n stepDescMessage: this.fnGetKeyValueReplaceString(\n row.stepDescMessageArray,\n row.stepDescMessage\n ),\n stepDescMessageArray: row.stepDescMessageArray,\n stepExtraMessage: this.fnGetKeyValueReplaceString(\n row.stepExtraMessageArray,\n row.stepExtraMessage\n ),\n stepExtraMessageArray: row.stepExtraMessageArray,\n stepName: this.translate.instant(row.stepName),\n stepNum: row.stepNum,\n alertPanelType: row.alertPanelType,\n functionId: row.functionId,\n highlightStep: row.highlightStep,\n isDisabled: row.isDisabled,\n isInfoIcon: row.isInfoIcon,\n infoIconMsg: row.infoIconMsg,\n stepUrl: row.stepUrl,\n disabledClass: row.disabledClass,\n isProgressBar: row.isProgressBar,\n comingSoonDesc: this.translate.instant(row.comingSoonDesc),\n actualStepNum: row.stepNum\n\n });\n }\n });\n return result;\n }\n\n fnGetKeyValueReplaceString(keyValueArray: KeyValueArray[], text: string) {\n if (keyValueArray) {\n for (let index = 0; index < keyValueArray.length; index++) {\n let replacer = \"##\" + index + \"##\";\n text = text.replace(\n replacer,\n this.translate.instant(keyValueArray[index].value)\n );\n }\n return text;\n }\n }\n}\n\n\n","import { Injectable } from '@angular/core';\nimport { Claims } from 'src/app/_models/common/claims';\nimport { HttpClient } from '@angular/common/http';\nimport { ClaimsHeaderService } from 'src/app/shared/claimsHeader/claims-header.service';\nimport { ClaimsService } from './claims.service';\nimport { IApiRequest, IApiresponse, BillingMethod } from 'src/app/_models';\nimport { IWorkflowRequest } from 'src/app/_models/Workflow/workflow-request';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { IWorkflowResponse, WorkflowApprover, IWorkflowApprover } from '../../../app/_models/Workflow/workflow-response';\nimport { IPresetExport, PresetExport } from 'src/app/_models/Dashboard/preset-export';\nimport { EmployeeStatusEnum } from 'src/app/_models/common/manage-emp-enum.enum';\nimport { DatePipe } from '@angular/common';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkflowService {\n claims: Claims;\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService\n , private claimsService: ClaimsService, public datepipe: DatePipe)\n {\n this.claimsService.currentClaims.subscribe(claims => this.claims = claims);\n }\n\n SoloGetWorkflow(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.expenseApiUrl}GetWorkflow`, body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n SoloGetDashboardPresetData(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.expenseApiUrl}GetDashboardPresetData`, body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n mapWFApprover(data: any[]): WorkflowApprover[] {\n let result: IWorkflowApprover[] = [];\n if (data && data.length > 0) {\n data.forEach(row => {\n let emp: WorkflowApprover = {\n employeeID: row.eid,\n employeeCode: row.ec,\n employeeCode2: row.ec2,\n employeeCode3: row.ec3,\n employeeCode4: row.ec4,\n firstName: row.fn,\n lastName: row.ln,\n displayName: row.dn,\n email: row.e,\n status: row.s,\n employeeRole: row.er,\n vehicleTypeId: row.vti,\n derivedName: row.den,\n emailDisplayName: row.edn,\n vehicleStatus: row.vs,\n vehicleSubTypeId: row.vsti,\n rateType: row.rt,\n orgVehicleTypeMapId: row.ovtm,\n approverId: row.ai,\n updatedOn: row.uo,\n approverName: row.an,\n costCentreId: row.cci ? row.cci : 0,\n costCentreName: row.ccn ? row.ccn : '',\n disableDeactivate: false,\n disableOthers: false,\n isRowHighlighted: false,\n selected: false,\n hideDeactivate: false,\n hideResendInvite: row.s != EmployeeStatusEnum.Pending,\n hideSendInvite: row.s != EmployeeStatusEnum.NotInvited,\n hideActivate: row.s != EmployeeStatusEnum.Inactive,\n disableResendInvite: false,\n disableSendInvite: false,\n disableActivate: false,\n disableEdit: false,\n hideEdit: false,\n isCheckboxDisabled: false,\n createdOn: row.co,\n costCentreCode1: row.ccc1 ? row.ccc1 : '',\n gradeId: row.gi,\n gradeName: row.gn,\n linkedToXero: row.ltx,\n approvalStatus: row.approvalStatus,\n number: row.number,\n comment: row.comment,\n actionDate: row.actionDate,\n actionDateString: this.datepipe.transform(row.actionDate, \"dd-MMM-yyyy HH:mm:ss\"),\n sno: row.sno,\n perPersonBillingType: row.bt == BillingMethod.PerPersonBilling,\n hybridBillingType: row.bt == BillingMethod.HybridBilling,\n displaySN: row.sno == 0 ? 'Approver' : 'CA '+row.sno+'.',\n userType : row.userType,\n kycStatus:row.kycs,\n assignedExpCatIds:row.aeIds,\n assignedFormIds:row.afIds,\n companyName: row.comn,\n isConvertedToPowerUser : row.icpu,\n costCentreRuleId : row.crid,\n isDeleted: false,\n userUpdatedOn: row.uuo\n };\n\n result.push(emp);\n });\n }\n return result;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Observable, of } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\nimport { IApiRequest, IApiresponse } from \"src/app/_models\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport {ContainerTurnOnSettingResponse,IContainerTurnOnSettingRequest,\n IContainerListRequest,ContainerResponse, ContainerRequest,\n DeleteContainerRequest, IExpenseContainerListRequest,ExpenseContainerResponse,\n SaveContainerResponse,ContainerListResponse, IUpdateContainerRequest, UpdateContainerRequest, UpdateContainerResponse,\n MoveExpensesToContainerRequest, IApproverContainerListRequest, ApproverContainerListResponse\n} from \"src/app/_models/container/container\";\nimport { map } from \"rxjs/operators\";\nimport { RSAHelper } from \"src/app/_helpers/RSAHelper\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ContainerService {\n\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService\n ) { }\n\n\nEncryptParameters(encryptValue) {\n let rsaHelper = new RSAHelper();\n let encrypt = rsaHelper.Encrypt(encryptValue);\n return encrypt;\n }\n\nDecryptParameters(encryptedParam): string {\n let rsaHelper = new RSAHelper();\n let decrypt = rsaHelper.Decrypt(encryptedParam);\n return decrypt;\n }\n\nGetContainerTurnOnSetting(orgId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"orgId\", orgId.toString());\n return this.http.get>(\n `${environment.billingApiUrl}GetContainerTurnOnSetting`, \n { params: params, headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\nSaveContainerTurnOnSetting( \n requestInfo: IApiRequest ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveContainerTurnOnSetting`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n \nGetContainerList( \n requestInfo: IApiRequest ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetContainerList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AddContainer( \n requestInfo: IApiRequest ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}AddContainer`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UpdateContainer( \n requestInfo: IApiRequest ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}UpdateContainer`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetContainerById(containerId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"containerId\", containerId.toString());\n return this.http.get>(\n `${environment.expenseApiUrl}GetContainerById`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n}\n\nDeleteContainer( \n requestInfo: IApiRequest ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}DeleteContainer`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\nGetExpenseContainerList( \n requestInfo: IApiRequest ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetExpenseContainerList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\nUpdateContainerStatus( \n requestInfo: IApiRequest ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}UpdateContainerStatus`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\nMoveExpensesToContainer( \n requestInfo: IApiRequest ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}MoveExpensesToContainer`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\n \nGetClaimantContainerListForApproval( \n requestInfo: IApiRequest ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetClaimantContainerListForApproval`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"../../../environments/environment\";\nimport { IApiRequest, IApiresponse } from \"src/app/_models\";\nimport {\n IResponseCostCentre,\n IRequestCostCentre,\n IRequestCostCentreByOrg,\n IRequestGetCostCentre,\n IRequestGetCostCentreLog,\n IResponseCostCenterLog,\n IRequestGetCostCentreListForAssignEmployee,\n ICostCentreMappedEmployeeList,\n IRequestBulkDeactiveCostCentre,\n IRequestImportCostCentre,\n ICSVRecordExport,\n CSVRecordExport,\n IGetCostCentreResponse,\n CostCentreModel,\n CostCentreApprover,\n CostCentreApproversCount,\n SaveCostCentreApproverRequest,\n RequestSaveCCDisplaySetting,\n} from \"../../_models/costCentre/costCentre\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { ExcelExportService } from \"../common/excel-export.service\";\nimport { map } from \"rxjs/operators\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class CostCentreService {\n costCentreUrl: any;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService,\n private excelExportService: ExcelExportService\n ) {}\n\n GetCostCentresWithApprovers(): Observable<\n IApiresponse\n > {\n return this.http.get>(\n `${environment.billingApiUrl}GetCostCentresWithApprovers`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCostCentreCountWithoutApprovers(): Observable<\n IApiresponse\n > {\n return this.http.get>(\n `${environment.billingApiUrl}GetCostCentresWithoutApprovers`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n saveCostCentreApproverAssignment(\n requestInfo: SaveCostCentreApproverRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveCostCentreApprovers`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCostCentres(): Observable> {\n return this.http\n .get>(\n `${environment.billingApiUrl}GetCostCentres`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n )\n .pipe(\n map((result) => {\n if (result && result.responseInfo && result.responseInfo.length > 0)\n result.responseInfo = result.responseInfo.sort((a, b) =>\n a.value.toUpperCase() > b.value.toUpperCase() ? 1 : -1\n );\n return result;\n })\n );\n }\n\n GetCostCentresForOrg(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetCostCentresByOrgId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCostCentre(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetCostCentreById`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCostCentreLogs(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetCostCenterHistoryByCostCentreId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UpdateCostCentre(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}UpdateCostCentre`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n DeactiveCostCentre(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}DeactiveCostCentre`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n CreateCostCentre(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}CreateCostCentre`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n CreateCostCentreBulk(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}CreateCostCentreBulk`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n ReactiveCostCentre(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}ReactiveCostCentre`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCostCentresForAssignEmployees(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetCostCenterListForAssignEmployee`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCustomerCCInfo(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetCostCentreCustomerSettings`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveCCDisplaySetting(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveCostCentreSettings`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AssignDeassignCostCentreToEmployee(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}AssignDeassignCostCentreToEmployee`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AssignDeassignCostCentreToEmployeeBackground(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}AssignDeassignCostCentreToEmployeeBackground`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n BulkDeactiveCostCentre(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}BulkDeactiveCostCentre`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetAllCostCentresForOrg(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetAllCostCentresByOrgId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n ImportCostCentre(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}ImportCostCentre`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n exportData(\n exportedData: any[],\n excelFileName: string,\n addErrorColumn: boolean\n ) {\n let mappedData: ICSVRecordExport[] = [];\n for (let i = 0; i < exportedData.length; i++) {\n let recordExport = new CSVRecordExport();\n recordExport.CostCentreName = exportedData[i].costCentreName;\n recordExport.CostCentreCode1 = exportedData[i].costCentreCode1;\n recordExport.CostCentreCode2 = exportedData[i].costCentreCode2;\n if (addErrorColumn) {\n recordExport.Error = exportedData[i].error;\n }\n\n mappedData.push(recordExport);\n }\n\n this.excelExportService.exportAsExcelFile(mappedData, excelFileName);\n }\n\n BulkReactiveCostCentre(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}BulkReactiveCostCentre`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetActiveCostCentre(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetActiveCostCentres`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n GetCcDisplaySettings(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetCcDisplaySettings`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { IApiRequest, IApiresponse } from '../../_models';\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { environment } from \"../../../environments/environment\";\nimport { IReqSaveCategoryCounterApproverSettings, IReqSaveCounterApproverDetails, IReqSaveCounterApproverRules, IRespApproverCADetails, IRespCategoryCounterApproverSettings, IRespCounterApproverAppDetails, IRespDeletedApproverCADetails, IResponseCounterApproverRules, IRespReplacedCounterApproverDetails } from '../../_models/counter-approver/counter-approver.model';\n@Injectable({\n providedIn: 'root'\n})\nexport class CounterApproverService {\n\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService,) { }\n\n GetApproverCounterApproverDetails(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetApproverCounterApproverDetails`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetDeletedCounterApproverDetails(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetDeletedCounterApproverDetails`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetReplacedCounterApproverDetails(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetReplacedCounterApproverDetails`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCounterApproverByApprover(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetCounterApproverByApprover`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveCounterApproverDetails(requestinfo: IApiRequest): Observable>{\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveCounterApproverDetails`,body, \n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCounterAppImportSampleData() {\n return this.http.get('/assets/sample-data/import/import-counter-approver.json');\n }\n\n GetCategoryCounterApproverSettings(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetCategoryCounterApproverSettings`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveCategoryCounterApproverSettings(requestinfo: IApiRequest): Observable>{\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveCategoryCounterApproverSettings`,body, \n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCounterApproverRules(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetCounterApproverRules`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveCounterApproverRules(requestinfo: IApiRequest): Observable>{\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveCounterApproverRules`,body, \n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n}","import { Injectable, Inject, forwardRef } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\nimport { IApiresponse } from \"src/app/_models/common/request-response/apiresponse\";\nimport { IApiRequest } from \"src/app/_models/common/request-response/api-request\";\nimport { setHeader } from \"src/app/_helpers/setRequestHeader\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { ICountryCurrencyMappingResponse } from \"src/app/_models/country-currency-mapping/country-currency-mapping\";\n\n\n@Injectable({\n providedIn: \"root\",\n})\n\nexport class CountryCurrencyMappingService {\n httpHeaders: HttpHeaders;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService,\n private header: setHeader\n ) { }\n\n GetCountryCurrencyMapping() {\n return this.http.get>(\n `${environment.catalogApiUrl}GetCountryCurrencyMapping`, { headers: this.header.authorizationHeader() });\n }\n}","import { Injectable, forwardRef, Inject } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"../../../environments/environment\";\nimport { IApiresponse } from \"../../_models/common/request-response/apiresponse\";\nimport { IApiRequest } from \"../../_models/common/request-response/api-request\";\nimport {\n ICardOrganisationSaveResponse,\n ICardOrganisationSaveRequest,\n ICardImportTemplateSaveRequest,\n ICardImportTemplateSaveResponse,\n ICardRulesFinancialYearResponse,\n ICardRulesFinancialYearSaveRequest,\n ICardRulesEmailReminderResponse,\n ICardRulesEmailReminderSaveRequest,\n ICardRulesImportResponse,\n ICardRulesImportSaveRequest,\n ICardUserAssignmentListRequest,\n ICardUserAssignmentListResponse,\n ICardUserAssignmentRequest,\n ICSVRecordExport,\n CSVRecordExport,\n ICSVRecordSampleCCImportTemplateExport,\n CSVRecordSampleCCImportTemplateExport,\n ICardReviewUploadedStatementRequest,\n ICardAssignCardExpensesToClaimantRequest,\n IGetAllEmployeesRequest,\n IDismissCardExpenseRequest,\n IClaimantAssociatedExpenseListRequest,\n IClaimantAssociatedExpenseListResponse,\n ClaimantAssociatedExpenseListRequest,\n ICardPendingExpenseListResponse,\n ICardPendingExpenseListByImportIdRequest,\n ICardPendingExpenseListRequest,\n ICardReassignedAndDeletedExpenseListResponse,\n ICardSaveSupervisoryActionRequest,\n ICardReviewUploadedTransactionsRequest,\n ICardImportTemplateSaveRequestModel,\n IGoLiveWithCardFunctionRequest,\n ICardImportTemplateDetailSaveDateFormatRequest,\n ICardPendingExpenseRequest,\n IPendingCreditCardExpenseListByCardRequest,\n UsersForAssignCCExpense,\n IUnassignExpenseByCardRequest,\n IDuplicateCardDetailsRequest,\n IDuplicateCardDetailsResponse,\n ICCDashboardRequest,\n ICCDashboardResponse,\n ICCExpenseResponse,\n ICCPendingTransactionRequest,\n IBulkImportAssignCreditCardResponse,\n IBulkImportAssignCreditCardRequest,\n ICCImportedTransactionRequest,\n ICCDashboardImportDetails,\n CCImportedFileDateDetails,\n IAssignCreditCardToClaimantRes,\n SaveUserCreditCardDetailsRequest,\n ICardDetailsForImport\n} from \"../../_models/credit-card/credit-card\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { ExcelExportService } from \"../common/excel-export.service\";\n\nimport { BackgroundTaskKeys, BackgroundTaskNotificationBody, BackgroundTaskNotificationHeaders, BackgroundTaskTopics } from 'src/app/common/commonvariables';\nimport { NotificationService } from 'src/app/_services/common/notification.service';\nimport { FunctionPackageEnum, FunctionPrivilege } from 'src/app/_models';\nimport { BackgroundTask } from 'src/app/_models/common/background-task';\nimport { IPendingExpenseResponse} from \"../../_models/multiple-companies/multiple-companies\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class CreditCardService {\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService,\n private excelExportService: ExcelExportService,\n private notificationService: NotificationService,\n ) { }\n\n SaveCardOrganisation(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}SaveCardOrganisation`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCardOrganisation(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.expenseApiUrl}GetCardOrganisation`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n SaveCardImportTemplate(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}SaveCardImportTemplate`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCardImportTemplate(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.expenseApiUrl}GetCardImportTemplate`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n GetCardImportTemplateHistory(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.expenseApiUrl}GetCardImportTemplateHistoryByOrganisationId`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n SaveCardRulesImport(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}SaveCardRulesImport`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCardRulesImport(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.expenseApiUrl}GetCardRulesImport`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n SaveCardRulesEmailReminder(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}SaveCardRulesEmailReminder`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCardRulesEmailReminder(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.expenseApiUrl}GetCardRulesEmailReminder`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n SaveCardRulesFinancialYear(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}SaveCardRulesFinancialYear`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCardRulesFinancialYear(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.expenseApiUrl}GetCardRulesFinancialYear`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n GetCardUserAssignmentForOrg(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetCardUserAssignmentByOrgId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveCardUserAssignment(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}SaveCardUserAssignment`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCardUserAssignmentHistory(cardUserAssignmentId: number) {\n let params = new HttpParams();\n params = params.append(\n \"cardUserAssignmentId\",\n cardUserAssignmentId.toString()\n );\n\n return this.http.get(\n `${environment.expenseApiUrl}GetCardUserAssignmentHistoryByCardUserAssignmentId`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n exportData(\n exportedData: any[],\n excelFileName: string,\n addErrorColumn: boolean\n ) {\n let mappedData: ICSVRecordExport[] = [];\n\n for (let i = 0; i < exportedData.length; i++) {\n let recordExport = new CSVRecordExport();\n\n recordExport.EmployeeID = exportedData[i].employeeCode;\n recordExport.ClaimantName = exportedData[i].fullName;\n recordExport.Email = exportedData[i].claimantEmail;\n recordExport.CreditCardNumber = exportedData[i].cardNumber;\n\n if (addErrorColumn) {\n recordExport.Error = exportedData[i].error;\n }\n\n mappedData.push(recordExport);\n }\n\n this.excelExportService.exportAsExcelFile(mappedData, excelFileName);\n }\n\n exportErrorLogData(\n exportedData: any[],\n excelFileName: string,\n addErrorColumn: boolean\n ) {\n let mappedData: ICSVRecordExport[] = [];\n\n for (let i = 0; i < exportedData.length; i++) {\n let recordExport = new CSVRecordExport();\n\n recordExport.EmployeeID = exportedData[i].claimantCode;\n recordExport.ClaimantName = exportedData[i].employeeName;\n recordExport.Email = exportedData[i].email;\n recordExport.CreditCardNumber = exportedData[i].cardNumber;\n\n if (addErrorColumn) {\n recordExport.Error = exportedData[i].error;\n }\n\n mappedData.push(recordExport);\n }\n\n this.excelExportService.exportAsExcelFile(mappedData, excelFileName);\n }\n\n GetCardSetupCount(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.expenseApiUrl}GetCardSetupCount`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n GetReferenceNumbersFromImportedTransactions(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.expenseApiUrl}GetReferenceNumbersFromImportedTransactionsByOrganisationId`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n exportSampleCCImportData(\n exportedData: any[],\n excelFileName: string,\n addErrorColumn: boolean\n ) {\n let mappedData: ICSVRecordSampleCCImportTemplateExport[] = [];\n\n for (let i = 0; i < exportedData.length; i++) {\n let recordExport = new CSVRecordSampleCCImportTemplateExport();\n\n recordExport.ExpenseDate = exportedData[i].ExpenseDate;\n recordExport.CardNo = exportedData[i].CardNo;\n recordExport.ReferenceNo = exportedData[i].ReferenceNo;\n recordExport.Amount = exportedData[i].Amount;\n recordExport.Supplier = exportedData[i].Supplier;\n\n mappedData.push(recordExport);\n }\n\n this.excelExportService.exportAsExcelFile(mappedData, excelFileName);\n }\n\n ReviewUploadedCardStatement(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n\n return this.http.post>(\n `${environment.expenseApiUrl}ReviewUploadedCardStatement`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n ReviewUploadedCardStatementNew(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n\n return this.http.post>(\n `${environment.expenseApiUrl}ReviewUploadedCardStatement`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveReviewedImports(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n\n return this.http.post>(\n `${environment.expenseApiUrl}SaveReviewedImports`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetDismissedTransactions(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n\n return this.http.post>(\n `${environment.expenseApiUrl}GetDismissedExpenseList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getCardDashboardData(\n organisationId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetCardDashboardData`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n getCardDashboardPendingTransactionsData(\n organisationId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetCardDashboardPendingTransactionsData`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n getCardDashboardTopSpendor(\n organisationId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetTopSpendor`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n getCardDashboardUsedCategories(\n organisationId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetTopFrequentlyUsedCategories`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n getCardDashboardTopQuickestActionTakers(\n organisationId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetQuickestActionTakers`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n getCardDashboardTopSlowestActionTakers(\n organisationId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetTopSlowestActionTakers`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n getCreditCardDashboardGraphsData(\n organisationId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetCreditCardDashboardGraphsData`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n getCreditCardDashboardDownloadImportedTransactions(\n organisationId: number,\n cardOrginialFieldId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n params = params.append(\n \"cardImportOriginalFileId\",\n cardOrginialFieldId.toString()\n );\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetCreditCardDashboardDownloadImportedTransactions`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n getCreditCardDashboardDownloadNotImportedTransactions(\n organisationId: number,\n cardOrginialFieldId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n params = params.append(\n \"cardImportOriginalFileId\",\n cardOrginialFieldId.toString()\n );\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetCreditCardDashboardDownloadNotImportedTransactions`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n getCreditCardDashboardDownloadPendingTransactions(\n organisationId: number,\n cardOrginialFieldId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n params = params.append(\n \"cardImportOriginalFileId\",\n cardOrginialFieldId.toString()\n );\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetCreditCardDashboardDownloadPendingTransactions`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n GetUnassignedCardExpenses() {\n let url = `${environment.expenseApiUrl}GetUnassignedCardExpenses`;\n return this.http.get(url, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n AssignCardExpensesToClaimant(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n\n return this.http.post>(\n `${environment.expenseApiUrl}AssignCardExpensesToClaimant`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getDismissedExpenseCount(\n organisationId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetDismissedExpenseCount`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n DismissExpense(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n\n return this.http.post>(\n `${environment.expenseApiUrl}DismissExpense`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n\n GetClaimantAssociatedExpenseList(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetClaimantAssociatedExpenseList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCardRulesSetupStatus(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.expenseApiUrl}GetCardRulesSetupStatus`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n GetCardNumberLength(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.expenseApiUrl}GetCardNumberLength`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n GetPendingCreditCardExpenseListByImportId(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetPendingCreditCardExpenseListByImportId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetAllPendingCreditCardExpenseList(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetAllPendingCreditCardExpenseList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetReassignedAndDeletedCreditCardExpenseList(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetReassignedAndDeletedCreditCardExpenseList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveCardSupervisoryAction(\n requestInfo: IApiRequest\n ): Observable {\n let body = JSON.stringify(requestInfo);\n return this.http.post(\n `${environment.expenseApiUrl}SaveCardSupervisoryAction`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetUnassignedCardExpenseCount(): Observable {\n let url = `${environment.expenseApiUrl}GetUnassignedCardExpenseCountByOrgId`;\n return this.http.get(url, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetUsersWithInActiveAndNoCardsForOrg(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetUsersWithInActiveAndNoCardsForOrg`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveCardImportTemplateDetail(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}SaveCardImportTemplateDetail`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCardImportTemplateDetail(organisationId: number, cardOrganisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n params = params.append(\"cardOrganisationId\", cardOrganisationId.toString());\n\n return this.http.get(\n `${environment.expenseApiUrl}GetCardImportTemplateDetail`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n BulkCreditCardExpensesImport(\n saveRequest: IApiRequest): Observable {\n const notificationBody = BackgroundTaskNotificationBody.BulkCreditCardExpensesImport;\n const route = \"universalimport/importsummary\";\n let jobInfo = new BackgroundTask(BackgroundTaskTopics.Expense, BackgroundTaskKeys.BulkCreditCardExpensesImport,\n saveRequest, saveRequest.requestInfo.processedImportDataList.map(e => e.cardNumber), BackgroundTaskNotificationHeaders.BulkCreditCardExpensesImport,\n notificationBody, route, FunctionPackageEnum.UniversalImport, FunctionPrivilege.SetupCreditCard, saveRequest.requestInfo.fmName);\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n\n }\n\n GoLiveWithCardFunction( requestinfo: IApiRequest)\n : Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GoLiveWithCardFunction`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveCardImportTemplateDateFormat(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}SaveCardImportTemplateDateFormat`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetOrgTop5CreditCardImportList(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.expenseApiUrl}GetOrgTop5CreditCardImportList`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n GetCardPendingExpenseList(\n requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetCardPendingExpenseList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\n\nGetPendingCreditCardExpenseListByCard(\n requestInfo: IApiRequest\n): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetPendingCreditCardExpenseListByCard`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\nGetUsersForAssignCCExpense(orgId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"orgId\", orgId.toString());\n return this.http.get>(\n `${environment.billingApiUrl}GetUsersForAssignCCExpense`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n}\n\nGetUnassignCreditCardExpenseList(orgId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"orgId\", orgId.toString());\n return this.http.get>(\n `${environment.expenseApiUrl}GetUnassignCreditCardExpenseList`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n}\n\nGetUnassignExpenseByCard( requestinfo: IApiRequest)\n: Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetUnassignExpenseByCard`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\nGetOrgDuplicateCardDetails(\n requestInfo: IApiRequest\n): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetOrgDuplicateCardDetails`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\nGetCCDashboard(\n requestInfo: IApiRequest\n): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetCCDashboard`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\n\nGetCCDeletedExpenseList(orgId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"orgId\", orgId.toString());\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetCCDeletedExpenseList`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n}\n\nGetCCPendingTransactionList(\n requestInfo: IApiRequest\n): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetCCPendingTransactionList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\n\nValidateBulkImportAssignCreditCard(\n requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}ValidateBulkImportAssignCreditCard`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\n\nBulkImportAssignCreditCard(\n requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}BulkImportAssignCreditCard`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\nGetAssignCreditCardToClaimantList(orgId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"orgId\", orgId.toString());\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetAssignCreditCardToClaimantList`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n}\n\nSaveUserCreditCardDetails(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(`${environment.expenseApiUrl}SaveUserCreditCardDetails`, body, \n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n}\n\nGetCreditCardDetailsForImport(orgId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"orgId\", orgId.toString());\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetCreditCardDetailsForImport`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n}\n\nGetCCImportedTransactionList(\n requestInfo: IApiRequest\n): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.expenseApiUrl}GetCCImportedTransactionList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n}\n\n\nGetCCImportedFileDateList(orgId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"orgId\", orgId.toString());\n return this.http.get>(\n `${environment.expenseApiUrl}GetCCImportedFileDateList`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n}\n\n\n\nUpdateRowHighlightStatus(cardImportOriginalFileId: number) {\n let params = new HttpParams();\n params = params.append(\"cardImportOriginalFileId\", cardImportOriginalFileId.toString());\n return this.http.get>(\n `${environment.expenseApiUrl}UpdateRowHighlightStatus`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n}\n\n\n}\n","import { HttpHeaders, HttpClient, HttpParams } from \"@angular/common/http\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { Injectable } from \"@angular/core\";\nimport {\n IRequestGetCustomer,\n ICustomerResponse,\n IResponseCustomerList,\n ICustomerListRequest,\n IRequestGetCustomersByOrgIdAndStatus,\n ICustomerRequest,\n IBulkActionOnCustomerRequest,\n IRequestGetEmployeesForCustomerRule,\n IResponseGetEmployeesForCustomerRule,\n IBulkActionsForCustomerRuleRequest,\n RequestGetCustomerHistory,\n CustomerHistoryResponse,\n ICustomerCsvRecordExport,\n CustomerCsvRecordExport,\n IRequestGetCustomersByCustomerIdsOrgId,\n IGetCustomerResponse,\n EmployeeListForCustomerCostCentreRuleAssignmentResponse,\n GetEmployeeForCustomerCostCentreRuleAssignmentRequest,\n AssignCustomerCostCentreAccessRuleToEmployeesRequest,\n CustomerResponse,\n IBulkSaveCustomerRequest,\n IBulkSaveCustomerResponse,\n} from \"src/app/_models/customer/customer\";\nimport { IApiRequest, IApiresponse } from \"src/app/_models\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\nimport { ExcelExportService } from \"../common/excel-export.service\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class CustomerService {\n httpHeaders: HttpHeaders;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService,\n private excelExportService: ExcelExportService\n ) {}\n\n GetCustomerById(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetCustomerById`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCustomerByOrgId(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetCustomerByOrgId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCustomersByCustomerIdsOrgId(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetCustomersByCustomerIdsOrgId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCustomersByOrgIdAndStatus(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetCustomersByOrgIdAndStatus`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AddCustomer(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}AddCustomer`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UpdateCustomer(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}UpdateCustomer`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n BulkActionsOnCustomer(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}BulkActionsOnCustomer`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetOrganisationEmployeesForCustomerRule(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetOrganisationEmployeesForCustomerRule`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n BulkActionsForCustomerRule(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}BulkActionsForCustomerRule`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCustomerHistoryByCustomerId(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetCustomerHistoryByCustomerId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n exportData(\n exportedData: any[],\n excelFileName: string,\n addErrorColumn: boolean\n ) {\n let mappedData: ICustomerCsvRecordExport[] = [];\n for (let i = 0; i < exportedData.length; i++) {\n let recordExport = new CustomerCsvRecordExport();\n recordExport.CustomerName = exportedData[i].customerName;\n recordExport.CustomerCode1 = exportedData[i].customerCode1;\n recordExport.CustomerCode2 = exportedData[i].customerCode2;\n if (addErrorColumn) {\n recordExport.Error = exportedData[i].error;\n }\n\n mappedData.push(recordExport);\n }\n\n this.excelExportService.exportAsExcelFile(mappedData, excelFileName);\n }\n\n GetActiveCustomers(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetActiveCustomers`,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n GetEmployeeListForCustomerCostCentreRuleAssignment(\n requestInfo: IApiRequest\n ): Observable<\n IApiresponse\n > {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetEmployeeListForCustomerCostCentreRuleAssignment`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetEmployeeListForLocationRuleAssignment(\n requestInfo: IApiRequest\n ): Observable<\n IApiresponse\n > {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetEmployeeListForLocationRuleAssignment`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AssignCustomerCostCentreAccessRuleToEmployees(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}AssignCustomerCostCentreAccessRuleToEmployees`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AssignLocationAccessRuleToEmployees(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}AssignLocationAccessRuleToEmployees`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n\n GetAllCustomers(\n organisationId: number\n ): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n return this.http.get>(\n `${environment.billingApiUrl}GetAllCustomers`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n BulkSaveCustomer(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}BulkSaveCustomer`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\nimport { IApiresponse } from \"src/app/_models/common/request-response/apiresponse\";\nimport { IApiRequest } from \"src/app/_models/common/request-response/api-request\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport {IGradesForDelegateSetupResponse,IUsersForActivateDelegatorDelegateResponse,\n IUsersForActivateDelegatorDelegateRequest,ISaveDelegatorDelegateByGradeRequest,\n ISaveDelegatorDelegateRequest,IDelegateListForAssignmentResponse,\n IAssignDelegateToDelegatorRequest,IDelegatorsDetailsRequest,\n IDelegatorsDetailsResponse,IDelegateListForAssignmentRequest,\n IClaimantDelegatorListRequest,IUserDelegatorDelegateStatusRequest,\n IUserDelegatorDelegateStatusResponse,IBulkAssignDelegateToDelegatorRequest\n} from \"src/app/_models/delegate/delegate\";\nimport { RSAHelper } from 'src/app/_helpers/RSAHelper';\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class DelegateService {\n httpHeaders: HttpHeaders;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService\n ) { }\n\n GetGradesForDelegateSetup(organisationId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n return this.http.get>(\n `${environment.billingApiUrl}GetGradesForDelegateSetup`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n GetUsersForActivateDelegatorDelegate(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetUsersForActivateDelegatorDelegate`, body, \n { \n headers: this.claimsHeaderService.createLoginAuthorizationHeader() \n });\n }\n\n SaveDelegatorDelegateByGrade(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveDelegatorDelegateByGrade`, body, \n { \n headers: this.claimsHeaderService.createLoginAuthorizationHeader() \n });\n }\n\n \n SaveDelegatorDelegate(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveDelegatorDelegate`, body, \n { \n headers: this.claimsHeaderService.createLoginAuthorizationHeader() \n });\n }\n\n GetActiveDelegatorsDetails(organisationId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n return this.http.get>(\n `${environment.billingApiUrl}GetActiveDelegatorsDetails`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n GetDelegateListForAssignment(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetDelegateListForAssignment`, body, \n { \n headers: this.claimsHeaderService.createLoginAuthorizationHeader() \n });\n }\n\n AssignDelegateToDelegator(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}AssignDelegateToDelegator`, body, \n { \n headers: this.claimsHeaderService.createLoginAuthorizationHeader() \n });\n }\n\n GetDelegatorDetailsById(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetDelegatorDetailsById`, body, \n { \n headers: this.claimsHeaderService.createLoginAuthorizationHeader() \n });\n }\n\n\n GetClaimantDelegatorList(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetClaimantDelegatorList`, body, \n { \n headers: this.claimsHeaderService.createLoginAuthorizationHeader() \n });\n }\n\n EncryptParameters(encryptValue) {\n let rsaHelper = new RSAHelper();\n let encrypt = rsaHelper.Encrypt(encryptValue);\n return encrypt;\n }\n DecryptParameters(encryptedParam): string {\n let rsaHelper = new RSAHelper();\n let decrypt = rsaHelper.Decrypt(encryptedParam);\n return decrypt;\n }\n\n GetUserDelegatorDelegateStatus(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetUserDelegatorDelegateStatus`, body, \n { \n headers: this.claimsHeaderService.createLoginAuthorizationHeader() \n });\n }\n\n BulkAssignDelegateToDelegator(requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}BulkAssignDelegateToDelegator`, body, \n { \n headers: this.claimsHeaderService.createLoginAuthorizationHeader() \n });\n }\n\n}\n\n\n","import { Injectable, Inject, forwardRef } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"../../../environments/environment\";\nimport { IApiresponse } from \"../../_models/common/request-response/apiresponse\";\nimport { IApiRequest } from \"../../_models/common/request-response/api-request\";\nimport {\n IOrganisationGooglePackageSaveRequest,\n IOrganisationGooglePackageSaveResponse,\n IOrganisationGooglePackageUpdateCallsRequest,\n IOrganisationGooglePackageUpdateCallsResponse,\n IUnsubscribeGooglePackageCallsRequest,\n IDismissGooglePackagePurchaseReminderRequest,\n IUpdateOrganisationGooglePackagePaymentDetailStatusRequest,\n IPlaidConnectionResponse,\n} from \"../../_models/google-mapping/google-mapping\";\nimport { setHeader } from \"src/app/_helpers/setRequestHeader\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class GoogleMappingService {\n httpHeaders: HttpHeaders;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService\n ) {}\n\n SaveOrganisationGooglePackage(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveOrganisationGooglePackage`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetOrganisationGooglePackage(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.billingApiUrl}GetOrganisationGooglePackage`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n UpdateOrganisationGooglePackageCalls(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.billingApiUrl}UpdateOrganisationGooglePackageCalls`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetActiveGooglePackageDetailsForOrganisation(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.billingApiUrl}GetActiveGooglePackageDetailsForOrganisation`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n UnsubscribeGooglePackageCalls(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}UnsubscribeGooglePackageCalls`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n DismissGooglePackagePurchaseReminder(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}DismissGooglePackagePurchaseReminder`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UpdateOrganisationGooglePackagePaymentDetailStatus(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}UpdateOrganisationGooglePackagePaymentDetailStatus`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveOrganisationPlaidPackage(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveOrganisationPlaidPackage`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetOrganisationPlaidPackage(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.billingApiUrl}GetOrganisationPlaidPackage`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n GetActivePlaidPackageDetailsForOrganisation(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.billingApiUrl}GetActivePlaidPackageDetailsForOrganisation`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n UnsubscribePlaidPackageCalls(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}UnsubscribePlaidPackageCalls`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetOrganisationPlaidConnections(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.billingApiUrl}GetOrganisationPlaidConnections`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n AddUpdateOrganisationPlaidConnections(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}AddUpdateOrganisationPlaidConnections`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetPlaidToken(countryCodes): Observable {\n let clientId = \"\";\n let clientSecret = \"\";\n\n if (countryCodes[0] == \"GB\") {\n clientId = environment.plaidClientId_UK;\n clientSecret = environment.plaidClientSecret_UK;\n } else if (countryCodes[0] == \"US\") {\n clientId = environment.plaidClientId_US;\n clientSecret = environment.plaidClientSecret_US;\n }\n\n let body = {\n client_id: clientId,\n secret: clientSecret,\n client_name: \"ExpenseOnDemand\",\n user: {\n client_user_id: clientId,\n },\n products: [\"transactions\"],\n country_codes: countryCodes,\n language: \"en\",\n webhook: \"https://apps.expenseondemand.com/orgsetting/ccsetup\",\n redirect_uri: \"https://apps.expenseondemand.com/orgsetting/ccsetup\",\n };\n\n return this.http.post(`${environment.functionsUrl}GetPlaidToken`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n\n GetPlaidAccessToken(publicToken,countryCodes): Observable {\n\n let clientId = \"\";\n let clientSecret = \"\";\n\n if (countryCodes[0] == \"GB\") {\n clientId = environment.plaidClientId_UK;\n clientSecret = environment.plaidClientSecret_UK;\n } else if (countryCodes[0] == \"US\") {\n clientId = environment.plaidClientId_US;\n clientSecret = environment.plaidClientSecret_US;\n }\n\n\n let body = {\n client_id: clientId,\n secret: clientSecret,\n public_token: publicToken,\n };\n\n return this.http.post(\n `${environment.functionsUrl}GetPlaidAccessToken`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n}\n","import { Injectable, OnInit, forwardRef, Inject } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\n\nimport { environment } from '../../../environments/environment';\nimport { IUser } from '../../_models/common/user';\nimport { ClaimsHeaderService } from 'src/app/shared/claimsHeader/claims-header.service';\nimport { CreditCardModule } from 'src/app/_modules/modules/creditcard.module';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService implements OnInit {\n\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService) { }\n ngOnInit() {\n\n\n }\n\n GetFinanceManagerCount(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.billingApiUrl}GetOrgFinanceManagerCount`,\n { params: params, headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetOrgActiveFinanceManagerCount(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n\n return this.http.get(\n `${environment.billingApiUrl}GetOrgActiveFinanceManagerCount`,\n { params: params, headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n\n}\n","import { Component, OnInit, Inject, forwardRef } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\n//import { ExpenseCategory } from '../_models';\nimport { map, debounceTime } from \"rxjs/operators\";\nimport { environment } from \"../../../environments/environment\";\nimport {\n ExpenseCategoryRequest,\n ExpenseCategoryInExpenseRequest,\n} from \"src/app/_models/claimant/expense-category-request\";\nimport { IApiRequest, IApiresponse } from \"src/app/_models\";\nimport { Observable } from \"rxjs\";\nimport {\n IExpenseCategoryRequest,\n IExpenseCategoryResponse,\n} from \"src/app/_models/common/expense-category\";\nimport { setHeader } from \"src/app/_helpers/setRequestHeader\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ExpenseCategoryService implements OnInit {\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService\n ) { }\n private masterExpenseCategoryUrl = `${environment.catalogApiUrl}GetFFLExpenseCategory`;\n private ExpenseCategoryUrl = `${environment.billingApiUrl}GetExpenseCategoryByID`;\n private ExpenseCategoryInExpenseUrl = `${environment.expenseApiUrl}GetExpenseCategoriesInExpenses`;\n\n ngOnInit() { }\n\n getMasterExpenseCategoryList(): Observable {\n return this.http\n .get(this.masterExpenseCategoryUrl, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n })\n .pipe(\n map((expenseCategory) => {\n return expenseCategory;\n })\n );\n }\n\n getOrgExpenseCategory(\n expenseCategoryRequest: ExpenseCategoryRequest\n ): Observable {\n let body = JSON.stringify(expenseCategoryRequest);\n return this.http\n .post(this.ExpenseCategoryUrl, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n })\n .pipe(\n map((expenseCategory) => {\n return expenseCategory;\n })\n );\n }\n\n getOrgExpenseCategoryInExpense(\n expenseCategoryRequest: ExpenseCategoryInExpenseRequest\n ): Observable {\n let body = JSON.stringify(expenseCategoryRequest);\n return this.http\n .post(this.ExpenseCategoryInExpenseUrl, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n })\n .pipe(\n map((expenseCategory) => {\n return expenseCategory;\n })\n );\n }\n\n GetExpenseCategories(\n requestinfo: ExpenseCategoryRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetExpenseCategories`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetVendorExpenseCategories(\n requestinfo: ExpenseCategoryRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetVendorExpenseCategories`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n \n}\n","import { OnInit } from \"@angular/core\";\nimport { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { map, debounceTime } from \"rxjs/operators\";\nimport { environment } from \"../../../environments/environment\";\nimport { State } from \"src/app/_models\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { Observable, of } from \"rxjs\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StateService implements OnInit {\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService) { }\n\n private StateUrl = `${environment.catalogApiUrl}GetState`;\n\n ngOnInit() {\n this.getExpenseState();\n }\n\n getExpenseState() {\n var listOfState = this.http.get(this.StateUrl,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }).pipe(\n debounceTime(500), // WAIT FOR 500 MILISECONDS ATER EACH KEY STROKE.\n map((data: any) => {\n return data.length != 0\n ? (data as any[])\n : [{ State: \"No Record Found\" } as any];\n })\n );\n\n return listOfState;\n }\n\n getExpenseStates() {\n return this.http.get(this.StateUrl,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n getAllExpenseState() {\n\n const cacheKey = \"ExpenseStateListData\";\n let cacheData = sessionStorage.getItem(cacheKey);\n\n if (cacheData) {\n return of(JSON.parse(cacheData));\n } else {\n return this.http.get(this.StateUrl, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }).pipe(map(data => {\n sessionStorage.setItem(cacheKey, JSON.stringify(data));\n return data;\n }));\n }\n\n }\n}","import { Injectable, OnInit, Inject, forwardRef } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable } from 'rxjs';\n\nimport { environment } from '../../../environments/environment';\nimport {\n IBasicMileageRequestDto, IBasicMileageDto, IApiRequest, ISaveMileageRequestDto, IApiresponse, ISaveMileageResponseDto,\n IGetMileageHistoryResponseDto\n} from '../../_models';\nimport { ClaimsHeaderService } from '../../shared/claimsHeader/claims-header.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BasicMileageService {\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService) {\n //this.httpHeaders = this.header.createAuthorizationHeader();\n }\n SaveOrgBasicMileage(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n //let token = localStorage.getItem('token');\n //this.httpHeaders.append('Authorization', token);\n return this.http.post>(`${environment.billingApiUrl}SaveOrgBasicMileage`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetBasicMileageHistory(request: IApiRequest): Observable> {\n let body = JSON.stringify(request);\n return this.http.post>(`${environment.billingApiUrl}GetBasicMileageHistory`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders,HttpParams } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"../../../environments/environment\";\nimport { IApiRequest, IApiresponse } from \"src/app/_models\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { ExcelExportService } from \"../common/excel-export.service\";\nimport {\n IRequestGradeListAll,\n IRequestGetGrade,\n IResponseGrade,\n IResponseGradeList,\n IRequestGrade,\n IRequestGradeListForAssignEmployee,\n IGradeMappedEmployeeList,\n IRequestGradeBulkDeactivate,\n IGradeCsvRecordExport,\n GradeCsvRecordExport,\n} from \"../../_models/grade/grade\";\n@Injectable({\n providedIn: \"root\",\n})\nexport class GradeService {\n gradeUrl: any;\n httpHeaders: HttpHeaders;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService,\n private excelExportService: ExcelExportService\n ) {}\n\n GetGrade(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetGradeById`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n CreateGrade(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}CreateGrade`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n UpdateGrade(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}UpdateGrade`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetGradeListForAssignEmployee(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetGradeListForAssignEmployee`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AssignDeassignGradeToEmployee(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}AssignDeassignGradeToEmployee`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AssignDeassignGradeToEmployeeBackground(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}AssignDeassignGradeToEmployeeBackground`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n BulkDeactiveGrade(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}BulkDeactiveGrade`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetAllGradeByOrgId(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetAllGradesByOrgId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n exportData(\n exportedData: any[],\n excelFileName: string,\n addErrorColumn: boolean\n ) {\n let mappedData: IGradeCsvRecordExport[] = [];\n for (let i = 0; i < exportedData.length; i++) {\n let recordExport = new GradeCsvRecordExport();\n recordExport.GradeName = exportedData[i].gradeName;\n recordExport.Description = exportedData[i].gradeDescription;\n if (addErrorColumn) {\n recordExport.Error = exportedData[i].error;\n }\n\n mappedData.push(recordExport);\n }\n\n this.excelExportService.exportAsExcelFile(mappedData, excelFileName);\n }\n\n BulkReactiveGrade(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}BulkReactiveGrade`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getCategpriesToGrade(): Observable {\n let url = `${environment.billingApiUrl}GetOrgAssignCategoryToGrades`;\n return this.http.get(url, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n\n saveCategpriesToGradeByGrade(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}SaveAssignCategoryToGradesByGrade`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetGradeDetailsById(gradeId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"gradeId\", gradeId.toString());\n return this.http.get>(\n `${environment.billingApiUrl}GetGradeDetailsById`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n}\n\n}\n","import { HttpHeaders, HttpClient } from \"@angular/common/http\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { Injectable } from \"@angular/core\";\n\nimport { IApiRequest, IApiresponse } from \"src/app/_models\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\nimport {\n ActiveLocationForAssignResponse,\n AssignLocationToEmployeesRequest,\n BulkActionOnLocationRequest,\n EmployeeListForLocationAssignmentResponse,\n GetEmployeeForLocationAssignmentRequest,\n GetLocationByLocationIdRequest,\n GetLocationByLocationIdsRequest,\n GetLocationByOrgIdAndStatusRequest,\n GetLocationListForGridRequest,\n GetLocationShortDetailsResponse,\n LocationCsvRecordExport,\n LocationListForGridResponse,\n LocationRequest,\n LocationResponse,\n} from \"../../_models/location/location\";\nimport { ExcelExportService } from \"../common/excel-export.service\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class LocationService {\n httpHeaders: HttpHeaders;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService,\n private excelExportService: ExcelExportService\n ) {}\n\n AddLocation(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}AddLocation`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UpdateLocation(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}UpdateLocation`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AssignLocationToEmployees(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}AssignLocationToEmployees`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetEmployeeForLocationAssignment(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post<\n IApiresponse\n >(`${environment.billingApiUrl}GetEmployeeForLocationAssignment`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n\n GetLocationByLocationId(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetLocationByLocationId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetLocationByLocationIds(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetLocationByLocationIds`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetLocationByOrgIdAndStatus(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetLocationByOrgIdAndStatus`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetLocationListForGrid(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetLocationListForGrid`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetActiveLocations(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetActiveLocations`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetLocationShortDetailsByOrgIdAndStatus(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetLocationShortDetailsByOrgIdAndStatus`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n ExportData(\n exportedData: any[],\n excelFileName: string,\n addErrorColumn: boolean\n ) {\n let mappedData: LocationCsvRecordExport[] = [];\n for (let i = 0; i < exportedData.length; i++) {\n let recordExport = new LocationCsvRecordExport();\n recordExport.LocationName = exportedData[i].locationName;\n recordExport.LocationCode1 = exportedData[i].locationCode1;\n recordExport.LocationCode2 = exportedData[i].locationCode2;\n if (addErrorColumn) {\n recordExport.Error = exportedData[i].error;\n }\n\n mappedData.push(recordExport);\n }\n\n this.excelExportService.exportAsExcelFile(mappedData, excelFileName);\n }\n\n BulkActionOnLocation(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}BulkActionOnLocation`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AddUpdateLocationRange(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}AddUpdateLocationRange`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetListForGrid(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetListForGrid`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetEmployeeListForLocationAssignment(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post<\n IApiresponse\n >(\n `${environment.billingApiUrl}GetEmployeeListForLocationAssignment`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n \n UpdateLocationPreference(locationLabel): Observable> {\n return this.http.get> (\n `${environment.billingApiUrl}UpdateLocationPreference?locationLabel=` + locationLabel,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { ClaimsService } from \"../common/claims.service\";\nimport { Observable, Subject } from \"rxjs\";\nimport { ClaimsHeaderService } from \"../../shared/claimsHeader/claims-header.service\";\nimport { LogObjects } from \"../../_models/common/LogObjects\";\nimport { Claims } from \"../../_models/common/claims\";\nimport { environment } from \"../../../environments/environment\";\nimport { IApiresponse } from \"../../_models/common/request-response/apiresponse\";\nimport { LoggingPanelModel } from \"../../_models/common/LoggingPanelModel\";\n\n\n@Injectable({\n providedIn: \"root\"\n})\nexport class LoggingPanelService {\n orgId: number;\n userId: number;\n token: string;\n organisationCurrency: string;\n claims: Claims;\n\n private logPanelModelSubject: Subject = new Subject();\n\n constructor(private http: HttpClient, private claimsService: ClaimsService, private claimsHeaderService: ClaimsHeaderService) {\n this.claimsService.currentClaims.subscribe(\n claims => (this.claims = claims)\n );\n }\n\n\n getFMActionLog(OrgId, FunctionId, FilterType, MileageFilterType=\"0\", EntityFilterType=\"0\"): Observable> {\n let url = `${environment.catalogApiUrl}GetLogs/` + OrgId + `/` + FunctionId + `/` + FilterType + `/` + MileageFilterType + ``+ `/` + EntityFilterType + ``;\n return this.http.get>(url, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n\n public onShowLogPanel(model: LoggingPanelModel) {\n \n this.logPanelModelSubject.next(model);\n }\n\n public getLogPanelEvent(): Observable {\n return this.logPanelModelSubject.asObservable();\n }\n\n\n}\n","import { Injectable, OnDestroy } from \"@angular/core\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport {\n IEmployeeCounter,\n IBulkUpdateEmployeeRole,\n IBulkUpdateEmployeeStatus,\n IOwnershipTypeList,\n ILoginIDHistoryList,\n IGetAllEmployeesRequest,\n IGetAllTypeEmployeesRequest,\n IEmpListRequestDto,\n IAppListRequestDto,\n IAppListResponseDto,\n IEmpLogRequestDto,\n IEmpLogResponseDto,\n IAddEmpLogRequestDto,\n IAddEmpImportLogResponseDto,\n IAddFailedImportDto,\n IFailedEmpImportReqDto,\n IFailedEmpImportRespDto,\n IUpdateVehicleTypeRequest,\n IGetExistingEmployeeCountRequest,\n IGetExistingEmployeeCountResponse,\n IAddUpdateBulkEmployeeRequestDto,\n IEmpList,\n EmpList,\n IEmpListResponseDto,\n IOrgVehicleTypeResponse,\n IImportEmployeeRequest,\n} from \"../../_models/manage-emp/manage-emp\";\nimport { environment } from \"../../../environments/environment\";\nimport {\n IApiRequest,\n IApiresponse,\n ApiRequest,\n FunctionPackageEnum,\n FunctionPrivilege,\n BillingMethod,\n IRequestVehicleTypes,\n} from \"../../_models\";\nimport { ClaimsHeaderService } from \"../../shared/claimsHeader/claims-header.service\";\nimport { IDashboardGraphDetail } from \"src/app/_models/manage-emp/dashboard-graph-detail\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { Observable, of, Subscription } from \"rxjs\";\nimport {\n BackgroundTaskKeys,\n BackgroundTaskNotificationBody,\n BackgroundTaskNotificationHeaders,\n BackgroundTaskTopics,\n} from \"src/app/common/commonvariables\";\nimport { BackgroundTask } from \"src/app/_models/common/background-task\";\nimport { NotificationService } from \"../common/notification.service\";\nimport { OrganisationFunctionService } from \"../organisation-setting/organisation-function.service\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport {\n EmployeeStatusEnum,\n UserTypeEnum,\n} from \"src/app/_models/common/manage-emp-enum.enum\";\nimport { CostCentreService } from \"../costCentre/costCentre.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport {\n IPurchaseFunctionListRequest,\n PurchaseFunctionListRequest,\n} from \"src/app/_models/organisation-setting/organisation-setting\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { OrganisationSettingService } from \"../organisation-setting/organisation-setting.service\";\nimport { ClaimsService } from \"../common/claims.service\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ManageempService implements OnDestroy {\n private static AllEmployeesList: IEmpList[] = [];\n private static AllTypeEmployeesList: IEmpList[] = [];\n private static AllVendorList: IEmpList[] = [];\n employeeListUrl: any;\n employeeCounterUrl: any;\n approverListUrl: any;\n vehicleListUrl: any;\n ownershipTypeList: any;\n loginIDHistoryUrl: any;\n functionPackageChangeSubscription: Subscription;\n claims: Claims;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService,\n private notificationService: NotificationService,\n private alertService: AlertService,\n private organisationFunctionService: OrganisationFunctionService,\n private costCentreService: CostCentreService,\n private translate: TranslateService,\n private organisationSettingService: OrganisationSettingService,\n private claimsService: ClaimsService\n ) {\n this.functionPackageChangeSubscription = this.alertService\n .onFunctionSubscriptionChangeEvent()\n .subscribe((result) => {\n this.DropOrgAllEmployeesCache();\n });\n this.claimsService.currentClaims.subscribe(\n (claims) => (this.claims = claims)\n );\n }\n\n ngOnDestroy() {\n this.functionPackageChangeSubscription.unsubscribe();\n }\n\n GetLog(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetEmployeeImportLog`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetFailedImportInfo(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetFailedEmployeeImport`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n DeleteFailedImportInfo(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}DeleteFailedEmployeeImport`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UpdateEmployeeImportInfo(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}UpdateEmployeeImportLog`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AddLog(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}AddEmployeeImport`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AddFailedImportData(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}AddFailedEmployeeImport`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AssignCostCentreToExpenses(employeesList): Observable {\n let body = JSON.stringify(employeesList);\n return this.http.post(\n `${environment.expenseApiUrl}AssignCostCentreToExpenses`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetAllCostCentresAndEmployees(\n request: IApiRequest,\n isDropCache: boolean\n ): Observable {\n if (isDropCache) {\n this.DropOrgAllEmployeesCache();\n }\n\n return this.costCentreService.GetCostCentresWithApprovers().pipe(\n mergeMap((costCentres) => {\n const costCentreList: any[] =\n costCentres &&\n costCentres.responseInfo &&\n costCentres.responseInfo.length > 0\n ? costCentres.responseInfo\n : [];\n\n return this.GetAllClaimants(request).pipe(\n map((response: any[]) => {\n if (response && response.length > 0) {\n const employeesList = response;\n\n if (costCentreList.length > 0) {\n employeesList.forEach((emp) => {\n if (\n emp.employeeRole == UserTypeEnum.Approver ||\n emp.employeeRole == UserTypeEnum.FinanceManager\n ) {\n emp.costCentresForApprover = [];\n for (let i = 0; i < costCentreList.length; i++) {\n if (\n costCentreList[i].approverIds.indexOf(emp.employeeID) >\n -1\n ) {\n emp.costCentresForApprover.push({\n costCentreName: costCentreList[i].costCentreName,\n costCentreId: costCentreList[i].costCentreId,\n costCentreCode1: costCentreList[i].costCentreCode1,\n });\n }\n }\n emp.costCentresData =\n emp.costCentresForApprover.length +\n \" \" +\n this.translate.instant(\"cost_centre\");\n }\n });\n\n costCentreList.forEach((costCentre) => {\n costCentre.claimantsList = employeesList.filter(\n (e) => e.costCentreId == costCentre.costCentreId\n );\n costCentre.approversList = employeesList.filter(\n (e) => costCentre.approverIds.indexOf(e.employeeID) > -1\n );\n\n costCentre.claimantCount = costCentre.claimantsList.length;\n costCentre.approverCount = costCentre.approverIds.length;\n\n costCentre.assignedApproverCount = costCentre.approverCount;\n costCentre.assignedApproverList = costCentre.approversList;\n\n if (costCentre.approverCount <= 0) {\n costCentre.approvers =\n this.translate.instant(\"no_approver\");\n } else if (costCentre.approverCount == 1) {\n costCentre.approvers =\n costCentre.approversList[0].displayName;\n } else {\n costCentre.approvers = `${\n costCentre.approversList[0].displayName\n } (+${costCentre.approverCount - 1})`;\n }\n });\n }\n\n return {\n costCentreList: costCentreList,\n employeesList: employeesList,\n };\n } else {\n return null;\n }\n })\n );\n })\n );\n }\n\n GetAllApprovers(\n request: IApiRequest\n ): Observable {\n return this.GetAllClaimants(request).pipe(\n map((employees) => {\n return employees.filter(\n (e) =>\n parseInt(e.employeeRole) == UserTypeEnum.Approver ||\n parseInt(e.employeeRole) == UserTypeEnum.FinanceManager\n );\n })\n );\n }\n\n GetAllClaimants(\n request: IApiRequest\n ): Observable {\n return this.GetAllEmployees(request).pipe(\n mergeMap((employees) => {\n if (employees && employees.length > 0) {\n const functions = [\n FunctionPackageEnum.SetupCostCentre_Assign_toClaimants,\n ];\n const defaultSortColumn = \"displayName\";\n\n return this.organisationFunctionService\n .checkFunctionsSubscribed(functions, this.claimsHeaderService.orgId)\n .pipe(\n map((subscription) => {\n const isCostCenterAccess =\n subscription.indexOf(functions[0]) > -1;\n\n let employeesList: any[] = employees.sort((a, b) => {\n let x = a[defaultSortColumn].toLowerCase();\n let y = b[defaultSortColumn].toLowerCase();\n return x < y ? -1 : x > y ? 1 : 0;\n });\n employeesList.forEach((emp) => {\n if (emp.approverId) {\n const approver = employeesList.find(\n (e) => e.employeeID == emp.approverId\n );\n if (approver) {\n emp.approverStatus = approver.status;\n emp.approverName = approver.displayName;\n }\n }\n if (!isCostCenterAccess) {\n emp.costCentreName = \"N/A\";\n emp.costCentreCode1 = \"N/A\";\n }\n emp.isCheckboxDisabled = false;\n });\n return employees;\n })\n );\n } else {\n return of([]);\n }\n })\n );\n }\n\n GetAllEmployees(\n request: IApiRequest\n ): Observable {\n if (ManageempService.AllEmployeesList.length > 0) {\n return of(ManageempService.AllEmployeesList.slice());\n } else {\n let body = JSON.stringify(request);\n return this.http\n .post(`${environment.billingApiUrl}GetAllEmployees`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n })\n .pipe(\n map((data) => {\n if (data && data.responseInfo && data.responseInfo.empList) {\n ManageempService.AllEmployeesList = this.mapEmployees(\n data.responseInfo.empList\n );\n return ManageempService.AllEmployeesList;\n } else {\n return [];\n }\n })\n );\n }\n }\n\n GetAllTypeEmployees(\n request: IApiRequest\n ): Observable {\n if (ManageempService.AllTypeEmployeesList.length > 0) {\n return of(ManageempService.AllTypeEmployeesList.slice());\n } else {\n let body = JSON.stringify(request);\n return this.http\n .post(`${environment.billingApiUrl}GetAllTypeEmployees`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n })\n .pipe(\n map((data) => {\n if (data && data.responseInfo && data.responseInfo.empList) {\n ManageempService.AllEmployeesList = this.mapEmployees(\n data.responseInfo.empList\n );\n return ManageempService.AllEmployeesList;\n } else {\n return [];\n }\n })\n );\n }\n }\n\n GetAllVendors(\n request: IApiRequest\n ): Observable {\n if (ManageempService.AllVendorList.length > 0) {\n return of(ManageempService.AllVendorList.slice());\n } else {\n let body = JSON.stringify(request);\n return this.http\n .post(`${environment.billingApiUrl}GetAllEmployees`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n })\n .pipe(\n map((data) => {\n if (data && data.responseInfo && data.responseInfo.empList) {\n ManageempService.AllVendorList = this.mapEmployees(\n data.responseInfo.empList\n );\n return ManageempService.AllVendorList;\n } else {\n return [];\n }\n })\n );\n }\n }\n\n mapEmployees(data: any[]): EmpList[] {\n let result: IEmpList[] = [];\n if (data && data.length > 0) {\n data.forEach((row) => {\n let emp: EmpList = {\n employeeID: row.eid,\n employeeCode: row.ec,\n employeeCode2: row.ec2,\n employeeCode3: row.ec3,\n employeeCode4: row.ec4,\n firstName: row.fn,\n lastName: row.ln,\n displayName: row.dn,\n email: row.e,\n status: row.s,\n employeeRole: row.er,\n vehicleTypeId: row.vti,\n derivedName: row.den,\n emailDisplayName: row.edn,\n vehicleStatus: row.vs,\n vehicleSubTypeId: row.vsti,\n rateType: row.rt,\n orgVehicleTypeMapId: row.ovtm,\n approverId: row.ai,\n updatedOn: row.uo,\n approverName: row.an,\n costCentreId: row.cci ? row.cci : 0,\n costCentreName: row.ccn ? row.ccn : \"\",\n disableDeactivate: false,\n disableOthers: false,\n isRowHighlighted: false,\n selected: false,\n hideDeactivate: false,\n hideResendInvite: row.s != EmployeeStatusEnum.Pending,\n hideSendInvite: row.s != EmployeeStatusEnum.NotInvited,\n hideActivate: row.s != EmployeeStatusEnum.Inactive,\n disableResendInvite: false,\n disableSendInvite: false,\n disableActivate: false,\n disableEdit: false,\n hideEdit: false,\n isCheckboxDisabled: false,\n perPersonBillingType: row.bt == BillingMethod.PerPersonBilling,\n hybridBillingType: row.bt == BillingMethod.HybridBilling,\n createdOn: row.co,\n costCentreCode1: row.ccc1 ? row.ccc1 : \"\",\n gradeId: row.gi,\n gradeName: row.gn,\n linkedToXero: row.ltx,\n userType: row.ut,\n kycStatus: row.kycs,\n assignedExpCatIds: row.aeIds,\n assignedFormIds: row.afIds,\n companyName: row.comn,\n isConvertedToPowerUser: row.icpu,\n costCentreRuleId: row.crid,\n isDeleted: false,\n userUpdatedOn: row.uuo\n };\n\n result.push(emp);\n });\n }\n return result;\n }\n\n DropOrgAllEmployeesCache() {\n ManageempService.AllEmployeesList = [];\n }\n\n DropOrgAllVendorCache() {\n ManageempService.AllVendorList = [];\n }\n\n GetExistingEmployeeCount(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetExistingEmployeeCount`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetAllFinanceManager(\n requestinfo: IApiRequest\n ): Observable {\n let body = JSON.stringify(requestinfo);\n return this.http\n .post(`${environment.billingApiUrl}GetAllFinanceManagers`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n })\n .pipe(\n map((data) => {\n let empList = this.mapEmployees(data.responseInfo.employees);\n return empList;\n })\n );\n }\n\n GetEmployeeListByStatus(\n requestinfo: IApiRequest\n ): Observable {\n let body = JSON.stringify(requestinfo);\n return this.http\n .post(`${environment.billingApiUrl}GetEmployeeList`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n })\n .pipe(\n map((data) => {\n let result: IEmpListResponseDto = {\n counter: data.responseInfo.counter,\n employees: this.mapEmployees(data.responseInfo.empList),\n };\n return result;\n })\n );\n }\n\n GetLoginIDHistoryList(UserID): Observable {\n this.loginIDHistoryUrl =\n `${environment.billingApiUrl}GetLoginIDHistory/` + UserID + ``;\n return this.http.get(this.loginIDHistoryUrl, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n\n GetOrgVehcileTypeList(\n requestinfo: IApiRequest\n ): Observable> {\n requestinfo = this.fnCheckPurchaseFunctionList(requestinfo);\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetOrgVehicleType`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n fnCheckPurchaseFunctionList(requestinfo: IApiRequest) {\n let request = new ApiRequest(\n \"SoloPurchaseFunctionList\",\n environment.applicationVersion,\n environment.requestId\n );\n request.requestInfo = new PurchaseFunctionListRequest(\n this.claims.UserId,\n this.claims.OrgId\n );\n let functionIds = [];\n this.organisationSettingService\n .soloPurchaseFunctionList(request)\n .subscribe((data: IApiresponse) => {\n if (data.responseInfo.orgPaidFunctionList.length > 0) {\n let purchaseFuncListDetails =\n data.responseInfo.orgPaidFunctionList[0].paidFunctions;\n purchaseFuncListDetails.forEach((element) => {\n functionIds.push(element.functionId);\n });\n }\n requestinfo.requestInfo.purchaseFunctionList = functionIds;\n });\n return requestinfo;\n }\n\n GetApproverList(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetApproverList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetOwnershipType(orgID): Observable {\n this.ownershipTypeList =\n `${environment.billingApiUrl}GetOwnershipTypes/` + orgID + ``;\n return this.http.get(this.ownershipTypeList, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n\n GetOrganisationEmployeeCounters(orgID): Observable {\n this.employeeCounterUrl =\n `${environment.billingApiUrl}GetOrganisationEmployeeCounters/` +\n orgID +\n ``;\n return this.http.get(this.employeeCounterUrl, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n\n BulkAddUpdateEmployee(\n addUpdatereq: IAddUpdateBulkEmployeeRequestDto\n ): Observable {\n let userType = addUpdatereq.employees.find((it) => it.userType == 1)\n ? 0\n : 1;\n if (addUpdatereq.employees.length > 5 || addUpdatereq.isImport) {\n if (userType == UserTypeEnum.Claimant) {\n const notificationBody = addUpdatereq.isImport\n ? BackgroundTaskNotificationBody.BulkInviteEmployees\n : BackgroundTaskNotificationBody.BulkUpdateEmployees;\n const route = addUpdatereq.isImport\n ? \"orgsetting/importemployee\"\n : \"orgsetting/manageemployee\";\n let jobInfo = new BackgroundTask(\n BackgroundTaskTopics.Billing,\n BackgroundTaskKeys.BulkInviteEmployees,\n addUpdatereq,\n addUpdatereq.employees.map((e) => e.email),\n BackgroundTaskNotificationHeaders.BulkInviteEmployees,\n notificationBody,\n route,\n FunctionPackageEnum.ManageEmployees,\n FunctionPrivilege.ManageEmployees,\n addUpdatereq.fmName\n );\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n } else {\n const notificationBody = addUpdatereq.isImport\n ? BackgroundTaskNotificationBody.BulkInviteVendors\n : BackgroundTaskNotificationBody.BulkUpdateVendors;\n const route = \"vendorSetup\";\n let jobInfo = new BackgroundTask(\n BackgroundTaskTopics.Billing,\n BackgroundTaskKeys.BulkInviteEmployees,\n addUpdatereq,\n addUpdatereq.employees.map((e) => e.email),\n BackgroundTaskNotificationHeaders.BulkInviteVendors,\n notificationBody,\n route,\n FunctionPackageEnum.ManageEmployees,\n FunctionPrivilege.ManageEmployees,\n addUpdatereq.fmName\n );\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n }\n } else {\n let requestinfo = new ApiRequest(\n \"BulkInviteEmployee\",\n 1.0,\n \"111\"\n );\n requestinfo.requestInfo = addUpdatereq;\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}BulkInviteEmployee`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n }\n\n async SoloSaveDashboardGraphData(\n requestinfo: IApiRequest\n ): Promise> {\n let body = JSON.stringify(requestinfo);\n let result = await this.http\n .post>(\n `${environment.expenseApiUrl}SaveDashboardGraphData`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n )\n .toPromise();\n return result;\n }\n\n UpdateVehicle(\n requestInfo: ApiRequest\n ): Observable {\n let body = JSON.stringify(requestInfo);\n return this.http.post(\n `${environment.billingApiUrl}BulkUpdateVehicle`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UpdateRole(employeeList: IBulkUpdateEmployeeRole[]): Observable {\n let body = JSON.stringify(employeeList);\n return this.http.post(\n `${environment.billingApiUrl}BulkUpdateRole`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UpdateStatus(employeeList: IBulkUpdateEmployeeStatus[]): Observable {\n let body = JSON.stringify(employeeList);\n return this.http.post(\n `${environment.billingApiUrl}BulkUpdateEmployeeStatus`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetEmployeeImportSampleData() {\n return this.http.get(\"/assets/sample-data/import/import-employee.json\");\n }\n\n BulkImportEmployees(\n saveRequest: IApiRequest\n ): Observable {\n const notificationBody = BackgroundTaskNotificationBody.BulkImportEmployees;\n const route = \"universalimport/importsummary\";\n let jobInfo = new BackgroundTask(\n BackgroundTaskTopics.Billing,\n BackgroundTaskKeys.BulkImportEmployees,\n saveRequest,\n saveRequest.requestInfo.employees.map((e) => e.email),\n BackgroundTaskNotificationHeaders.BulkImportEmployees,\n notificationBody,\n route,\n FunctionPackageEnum.UniversalImport,\n FunctionPrivilege.ManageEmployees,\n saveRequest.requestInfo.fmName\n );\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n }\n\n GetCostCentreApproverImportSampleData() {\n return this.http.get(\n \"/assets/sample-data/import/costcentre-approver-import.json\"\n );\n }\n\n GetViewUserDetailsById(userId: number): Observable> {\n let params = new HttpParams();\n params = params.append(\"userId\", userId.toString());\n return this.http.get>(\n `${environment.billingApiUrl}GetViewUserDetailsById`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n GetEmployeeDomainList(): Observable> {\n let params = new HttpParams();\n return this.http.get>(\n `${environment.billingApiUrl}GetEmployeeDomainList`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n \n\n UpdateEmployeeDomainListUpdate(request: IApiRequest): Observable {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.billingApiUrl}UpdateEmployeeDomainListUpdate`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n GetEmployeesToEnableSSO(): Observable> {\n let params = new HttpParams();\n return this.http.get>(\n `${environment.billingApiUrl}GetEmployeesToEnableSSO`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n UpdateEmployeeSSOStatus(request: IApiRequest): Observable {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.billingApiUrl}UpdateEmployeeSSOStatus`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n\n UpdateSSOPreference(isSSOEnabled): Observable> {\n return this.http.get> (\n `${environment.billingApiUrl}UpdateSSOPreference?isSSOEnabled=` + isSSOEnabled,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UpdateMFAPreference(isMFAEnabled): Observable> {\n return this.http.get> (\n `${environment.billingApiUrl}UpdateMFAPreference?isMFAEnabled=` + isMFAEnabled,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n}\n","export class FunctionPrivilegeMapping {\n constructor(public privilegeID: number, public privilegeName: string, public privilegeCategory: string,\n public privilegeIconUrl: string, public routes: FunctionRouteMapping[]) {\n\n }\n}\n\nexport class FunctionRouteMapping {\n constructor(public functionID: number, public route: string) {\n\n }\n}","import { Injectable } from \"@angular/core\";\nimport { Observable, of } from \"rxjs\";\nimport { FunctionPackageEnum, ApiRequest, IMileageWizardRequestDto, MileageWizardRequestDto, MileageRateTypeEnum,FMRoleType } from \"src/app/_models\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { FunctionPrivilegeService } from \"../secondary-fm/function-privilege.service\";\nimport { FunctionRouteMapping } from \"../../_models/secondary-fm/function-privilege\";\nimport { MileageWizardService } from \"../advance-mileage/mileage-wizard-service\";\nimport { OrganisationSettingService } from \"./organisation-setting.service\";\nimport { ClaimsService } from \"../common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Injectable({\n providedIn: \"root\",\n})\n\n\nexport class OrganisationFunctionService {\n\n IsLeaveManagementAllowed: boolean;\n isUniversalImportAllowed: boolean;\n IsAPAutomationAllow:boolean;\n activeUserRoleType: number;\n isContainerAllowed: boolean;\n \n constructor(\n private organisationSettingService: OrganisationSettingService,\n private functionPrivilegeService: FunctionPrivilegeService,\n private mileageWizardService: MileageWizardService,\n private claimsService: ClaimsService, private translate: TranslateService\n ) {\n\n\n }\n\n getAvailableFunctionsForOrganisation(organisationId: number, filterActive: boolean): Observable {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.IsLeaveManagementAllowed = claims.IsLeaveManagementAllowed;\n this.isUniversalImportAllowed = claims.isUniversalImportAllowed;\n this.IsAPAutomationAllow = claims.IsAPAutomationAllow;\n this.activeUserRoleType = claims.FMRoleType;\n this.isContainerAllowed = claims.IsContainerAllowed;\n });\n return this.organisationSettingService.GetOrganisationSettingList().pipe(mergeMap((data) => {\n if (data.statusCode == 0 && data.responseInfo) {\n let allFunctionCategories: any = data.responseInfo.functionCategoryDetail;\n this.hideSpecialHandledFunctionPackages(allFunctionCategories);\n return this.organisationSettingService.getSubscribedFunctionsForOrganisation(organisationId).pipe(map((subsData) => {\n if (subsData.statusCode == 0 && subsData.responseInfo) {\n //set functionStatus for Purchased or InTrial functionPackages\n subsData.responseInfo.forEach((sdFunc) => {\n allFunctionCategories.forEach((a) => {\n a.functionPackageDetail.forEach((b) => {\n if (b.functionPackageId == FunctionPackageEnum.LeaveManagement) {\n b.showPackage = this.IsLeaveManagementAllowed;\n }\n if (b.functionPackageId == FunctionPackageEnum.UniversalImport) {\n b.showPackage = this.isUniversalImportAllowed;\n }\n if (b.functionPackageId == FunctionPackageEnum.APAutomation) {\n b.showPackage = this.IsAPAutomationAllow;\n }\n if(b.functionPackageId == FunctionPackageEnum.Container){\n b.showPackage = this.isContainerAllowed;\n }\n if (b.functionPackageId == sdFunc.functionID) {\n switch (sdFunc.functionID) {\n case FunctionPackageEnum.AccountingIntegration:\n this.managePackagesForAccountingIntegrationSubscribedCondition(\n allFunctionCategories,\n sdFunc.subscriptionStatus,\n sdFunc.remainingTrialDays,\n sdFunc.startDate,\n sdFunc.trialEndDate\n );\n break;\n case FunctionPackageEnum.AssignDeputyToApprovers:\n this.managePackagesForDeputyForApprovers(\n allFunctionCategories,\n sdFunc.subscriptionStatus,\n sdFunc.remainingTrialDays,\n sdFunc.startDate,\n sdFunc.trialEndDate\n );\n break;\n case FunctionPackageEnum.DutyofCare:\n this.managePackagesForDutyOfCare(\n allFunctionCategories,\n sdFunc.subscriptionStatus,\n sdFunc.remainingTrialDays,\n sdFunc.startDate,\n sdFunc.trialEndDate\n );\n break;\n case FunctionPackageEnum.APAutomation:\n this.managePackagesForAPAutomation(\n allFunctionCategories,\n sdFunc.subscriptionStatus,\n sdFunc.remainingTrialDays,\n sdFunc.startDate,\n sdFunc.trialEndDate\n ); \n break;\n case FunctionPackageEnum.DataTransferXERO:\n this.managePackagesForDutyOfCare(\n allFunctionCategories,\n sdFunc.subscriptionStatus,\n sdFunc.remainingTrialDays,\n sdFunc.startDate,\n sdFunc.trialEndDate\n );\n break;\n }\n //Function Status\n //1 = Trial\n //2 = Purchased\n b.functionStatus = sdFunc.subscriptionStatus;\n b.remainingTrialDays = sdFunc.remainingTrialDays;\n b.startDate = sdFunc.startDate;\n b.trialEndDate = sdFunc.trialEndDate;\n }\n });\n });\n });\n return this.filterFunctionCategory(allFunctionCategories, filterActive);\n }\n }));\n }\n }));\n }\n\n getAvailableFunctionPrivilegesForOrganisation(organisationid: number): Observable {\n return this.getAvailableFunctionsForOrganisation(organisationid, true).pipe(mergeMap(functionCategories => {\n\n functionCategories.forEach(cat => {\n cat.functionPackageDetail = cat.functionPackageDetail.filter(function (f) {\n return f.functionPackageId !== FunctionPackageEnum.ConfigureAdministratorPrivilege;\n });\n });\n\n return this.functionPrivilegeService.getFunctionPrivilegeMappings().pipe(map(privilegeList => {\n\n //add additional privileges to function category list\n for (let i = 0; i < privilegeList.responseInfo.length; i++) {\n const privilegeFunctions = privilegeList.responseInfo[i].routes.map(r => r.functionID).filter(function (f) {\n return f > 0;\n });\n if (privilegeFunctions.length === 0) {\n const existingCategory = functionCategories.filter((cat) => {\n return cat.functionCategoryName === privilegeList.responseInfo[i].privilegeCategory;\n });\n let pack = {\n functionPackageId: 10000 + i,\n functionPackageSequence: 10000 + i,\n functionPackageName: privilegeList.responseInfo[i].privilegeName,\n iconUrl: privilegeList.responseInfo[i].privilegeIconUrl,\n };\n\n privilegeList.responseInfo[i].routes.push(new FunctionRouteMapping(pack.functionPackageId, ''));\n\n if (existingCategory.length > 0) {\n existingCategory[0].functionPackageDetail.push(pack);\n }\n else {\n functionCategories.push({\n functionCategoryId: 1000 + i,\n functionCategorySequence: 1000 + i,\n functionCategoryName: privilegeList.responseInfo[i].privilegeCategory,\n functionPackageDetail: [pack]\n });\n }\n }\n }\n\n functionCategories.forEach(category => {\n category.functionPackageDetail.forEach(pack => {\n const privilege = privilegeList.responseInfo.filter((p) => {\n return p.routes.filter(r => r.functionID === pack.functionPackageId).length > 0;\n });\n if (privilege && privilege.length > 0) {\n pack.PrivilegeID = privilege[0].privilegeID;\n }\n });\n });\n\n return functionCategories;\n }));\n }));\n }\n\n filterFunctionCategory(origFunctionsList, filterActive) {\n\n const filterFunc = filterActive ? this.filterActiveFunction : this.filterFunction;\n\n const availableFunctionCategories = origFunctionsList\n .filter((el) => {\n return el.functionPackageDetail.some(filterFunc);\n })\n .map((a) => {\n a.functionPackageDetail = a.functionPackageDetail\n .filter(filterFunc)\n .sort(function (a, b) {\n return a.functionPackageSequence - b.functionPackageSequence;\n });\n return a;\n });\n\n return availableFunctionCategories;\n }\n\n filterFunction(f) {\n return (\n f.comingSoon == false &&\n (typeof f.showPackage == undefined ||\n f.showPackage == null ||\n (f.showPackage && f.showPackage === true))\n );\n }\n\n filterActiveFunction(f) {\n return (\n ((f.comingSoon === false && f.isFree === true &&\n (typeof f.showPackage == undefined ||\n f.showPackage == null ||\n (f.showPackage && f.showPackage === true))) ||\n (f.functionStatus &&\n (f.functionStatus == 1 || f.functionStatus == 2) &&\n (typeof f.showPackage == undefined ||\n f.showPackage == null ||\n (f.showPackage && f.showPackage === true))))\n );\n }\n\n\n checkFunctionRouteSubscribed(route: string, organisationId: number): Observable {\n return this.functionPrivilegeService.getFunctionPrivilegeMappings().pipe(mergeMap((privileges: any) => {\n let functionIds = [];\n for (let i = 0; i < privileges.responseInfo.length; i++) {\n const privilegeRouteMap = privileges.responseInfo[i].routes.filter(function (r) {\n return route.includes(r.route);\n });\n if (privilegeRouteMap && privilegeRouteMap.length > 0) {\n functionIds = functionIds.concat(privilegeRouteMap.map(r => r.functionID).filter(f => f > 0));\n break;\n }\n }\n return this.checkFunctionsSubscribed(functionIds, organisationId).pipe(map(subscription => {\n return subscription && subscription.length > 0;\n }));\n }));\n }\n\n checkFunctionsSubscribed(functionIds: number[], organisationId: number): Observable {\n if (functionIds && functionIds.length > 0) {\n return this.getAvailableFunctionsForOrganisation(organisationId, true).pipe(map((functionCategories: any) => {\n const category = functionCategories.filter(function (cat) {\n return cat.functionPackageDetail.filter(function (pack) {\n return functionIds.indexOf(pack.functionPackageId) > -1;\n }).length > 0;\n });\n var result = [];\n category.forEach(cat => {\n cat.functionPackageDetail.forEach(pack => {\n result.push(pack.functionPackageId);\n });\n });\n return result;\n }));\n }\n else {\n return of([0]);\n }\n }\n\n hideSpecialHandledFunctionPackages(allFunctionCategories) {\n const specialHandledPackageIds: number[] =\n [FunctionPackageEnum.EnterOutofOffice,\n FunctionPackageEnum.DutyofCareApproval,FunctionPackageEnum.ApproveKYCDocuments, FunctionPackageEnum.ReceiptsTransferXERO];\n\n allFunctionCategories.forEach((a) => {\n a.functionPackageDetail.forEach((b) => {\n if (specialHandledPackageIds.indexOf(b.functionPackageId) > -1) {\n b.showPackage = false;\n }\n if (b.functionPackageId == FunctionPackageEnum.SetupAdvancedMileage) {\n b.showPackage = true;\n b.isFree = true;\n //b.functionPackageName = this.translate.instant('select_mileage');\n }\n\n if (b.functionPackageId == FunctionPackageEnum.LeaveManagement) {\n b.showPackage = this.IsLeaveManagementAllowed;\n }\n\n if (b.functionPackageId == FunctionPackageEnum.UniversalImport) {\n b.showPackage = this.isUniversalImportAllowed;\n }\n if (b.functionPackageId == FunctionPackageEnum.APAutomation) {\n b.showPackage = this.IsAPAutomationAllow;\n }\n\n if(b.functionPackageId == FunctionPackageEnum.Container){\n b.showPackage = this.isContainerAllowed;\n }\n\n if (b.functionPackageId == FunctionPackageEnum.ConfigureAdministratorPrivilege && this.activeUserRoleType !== FMRoleType.AllPrivilege) {\n b.showPackage = false;\n }\n\n });\n });\n }\n\n managePackagesForAccountingIntegrationSubscribedCondition(\n allFunctionCategories,\n functionStatus,\n remainingTrialDays,\n startDate,\n trialEndDate\n ) {\n allFunctionCategories.forEach((a) => {\n a.functionPackageDetail.forEach((b) => {\n if (\n b.functionPackageId == FunctionPackageEnum.DataTransferXERO ||\n b.functionPackageId == FunctionPackageEnum.DataTransferQUICKBOOKS ||\n b.functionPackageId == FunctionPackageEnum.DataTransferSAGE ||\n b.functionPackageId == FunctionPackageEnum.DataTransferTALLY ||\n b.functionPackageId == FunctionPackageEnum.DataTransferSAGE200\n ) {\n b.functionStatus = functionStatus;\n b.remainingTrialDays = remainingTrialDays;\n b.startDate = startDate;\n b.trialEndDate = trialEndDate;\n }\n });\n });\n }\n managePackagesForDeputyForApprovers(\n allFunctionCategories,\n functionStatus,\n remainingTrialDays,\n startDate,\n trialEndDate\n ) {\n allFunctionCategories.forEach((a) => {\n a.functionPackageDetail.forEach((b) => {\n if (\n b.functionPackageId == FunctionPackageEnum.EnterOutofOffice\n ) {\n b.functionStatus = functionStatus;\n b.remainingTrialDays = remainingTrialDays;\n b.startDate = startDate;\n b.trialEndDate = trialEndDate;\n b.showPackage = true;\n }\n });\n });\n }\n\n managePackagesForXeroDataTransfer(\n allFunctionCategories,\n functionStatus,\n remainingTrialDays,\n startDate,\n trialEndDate\n ) {\n allFunctionCategories.forEach((a) => {\n a.functionPackageDetail.forEach((b) => {\n if (\n b.functionPackageId == FunctionPackageEnum.DataTransferXERO\n ) {\n b.functionStatus = functionStatus;\n b.remainingTrialDays = remainingTrialDays;\n b.startDate = startDate;\n b.trialEndDate = trialEndDate;\n b.showPackage = true;\n }\n });\n });\n }\n\n managePackagesForDutyOfCare(\n allFunctionCategories,\n functionStatus,\n remainingTrialDays,\n startDate,\n trialEndDate\n ) {\n allFunctionCategories.forEach((a) => {\n a.functionPackageDetail.forEach((b) => {\n if (\n b.functionPackageId == FunctionPackageEnum.DutyofCareApproval\n ) {\n b.functionStatus = functionStatus;\n b.remainingTrialDays = remainingTrialDays;\n b.startDate = startDate;\n b.trialEndDate = trialEndDate;\n b.showPackage = true;\n }\n });\n });\n }\n\n managePackagesForAPAutomation(\n allFunctionCategories,\n functionStatus,\n remainingTrialDays,\n startDate,\n trialEndDate\n ) {\n allFunctionCategories.forEach((a) => {\n a.functionPackageDetail.forEach((b) => {\n if (\n b.functionPackageId == FunctionPackageEnum.ApproveKYCDocuments\n ) {\n b.functionStatus = functionStatus;\n b.remainingTrialDays = remainingTrialDays;\n b.startDate = startDate;\n b.trialEndDate = trialEndDate;\n b.showPackage = true;\n }\n });\n });\n }\n fnGetOrgWizardDetails(organisationId): Observable {\n let mileagereq = new ApiRequest(\n \"GetOrgMileageWizardDetails\",\n 1.0,\n \"111\"\n );\n let mileagereqinfo = new MileageWizardRequestDto(\n organisationId.toString()\n );\n mileagereq.requestInfo = mileagereqinfo;\n\n return this.mileageWizardService\n .GetOrgWizardDetails(mileagereq)\n .pipe(map((res: any) => {\n let result = {\n isTrangulationOn: res.responseInfo.triangulationRule > 0,\n selectedRateType: res.responseInfo.rateType\n }\n return result;\n }));\n }\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Observable, of } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\nimport { IApiresponse } from \"src/app/_models/common/request-response/apiresponse\";\nimport {\n IOrganisationSettingResponse,\n IGetCartDetailsRequest,\n ICartDetailsResponse,\n ICartDetailsRequest,\n IFunctionDefaultCurrency,\n IListCartDetails,\n IRemoveFunction,\n IGetOrgDependentFunctionListRequest,\n IOrgDependentFunctionDetails,\n IPurchaseFunctionListRequest,\n IPurchaseFunctionListDetails,\n IFunctionPackageCurrencyMappingResponse,\n RequestGetPreferences,\n} from \"src/app/_models/organisation-setting/organisation-setting\";\nimport { IApiRequest } from \"src/app/_models\";\nimport { OrganisationFeedback } from \"src/app/_models/feedback/feedback\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { IFunctionPackageCancellationPolicyResponse } from \"src/app/_models/organisation-setting/functionPackageCancellationPolicyResponse\";\nimport { map } from \"rxjs/operators\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { ApprovalRuleSaveRequest } from \"src/app/_models/application-setting/approval-rule\";\nimport { IGetUserIdForInvoiceResponse, IReceiptNumberPreference, IReqReceiptTypeDetails, ISaveInvoiceDataRequest } from \"../../_models/vat-novat-receipt/vat-novat-receipt\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class OrganisationSettingService {\n organisationFuncPurchaseCacheKey = \"organisationFuncPurchaseCacheKey\";\n constructor(\n private http: HttpClient,\n private alertService: AlertService,\n private claimsHeaderService: ClaimsHeaderService,\n private translate:TranslateService\n ) { }\n GetOrganisationSettingList(): Observable> {\n const cacheKey = \"OrganisationSettingListData\";\n let cacheData = sessionStorage.getItem(cacheKey);\n if (cacheData) {\n return of(JSON.parse(cacheData));\n }\n else \n {\n var lang= this.translate.getBrowserLang();\n return this.http.get>(\n `${environment.catalogApiUrl}OrganisationSettingList/`+lang,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n ).pipe(map(data => {\n sessionStorage.setItem(cacheKey, JSON.stringify(data));\n return data;\n }));\n }\n }\n\n SubmitOrgFeedback(feedbackModel: OrganisationFeedback): Observable {\n return this.http.post(\n `${environment.billingApiUrl}SubmitOrganisationFeedback`,\n feedbackModel,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n isFeedbackSubmitted(type): Observable {\n return this.http.get(\n `${environment.billingApiUrl}IsFeedbackSubmitted?type=` + type,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n resetOrganisationSettingListCache(organisationId) {\n const cacheKey = \"OrganisationSettingListData\";\n sessionStorage.removeItem(cacheKey);\n const cacheKey2 = \"SubscribedFunctionsForOrganisationData_\" + organisationId;\n sessionStorage.removeItem(cacheKey2);\n this.alertService.onFunctionSubscriptionChange();\n }\n\n saveApprovalRuleSetting(approvalRuleSaveRequest: ApprovalRuleSaveRequest) {\n return this.http.post>(\n `${environment.billingApiUrl}SaveApprovalRuleSetting`,\n approvalRuleSaveRequest,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getSubscribedFunctionsForOrganisation(organisationId: number) {\n const cacheKey = \"SubscribedFunctionsForOrganisationData_\" + organisationId;\n let cacheData = sessionStorage.getItem(cacheKey);\n if (cacheData) {\n return of(JSON.parse(cacheData));\n }\n else {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n return this.http.get(\n `${environment.billingApiUrl}GetSubscribedFunctionsForOrganisation`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n ).pipe(map(data => {\n sessionStorage.setItem(cacheKey, JSON.stringify(data));\n return data;\n }));\n }\n }\n\n getCartDetailsList(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.catalogApiUrl}GetCartDetails`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveCartDetails(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.catalogApiUrl}SaveCartDetails`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetFunctionDefaultCurrency(\n requestinfo: IApiRequest\n ): Observable {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.catalogApiUrl}GetFunctionDefaultCurrency`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n RemoveFunction(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.catalogApiUrl}RemoveCartFunction`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getOrgDependentFunctionList(\n requestinfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.catalogApiUrl}GetOrgDependentFunctionList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n soloPurchaseFunctionList(\n requestinfo: IApiRequest\n ): Observable> {\n\n let cacheData = sessionStorage.getItem(this.organisationFuncPurchaseCacheKey);\n if (cacheData) {\n return of(JSON.parse(cacheData));\n }\n else {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}PurchaseFunctionList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n ).pipe(map(result => {\n sessionStorage.setItem(this.organisationFuncPurchaseCacheKey, JSON.stringify(result));\n return result;\n }));\n }\n }\n\n SoloGetAllFunctionPackageCancellationPolicysByPackageId(\n functionPackageId: number,\n langaugeCode: string\n ): Observable> {\n let url =\n `${environment.catalogApiUrl}GetAllFunctionPackageCancellationPolicysByPackageId/` +\n functionPackageId +\n `/` +\n langaugeCode +\n ``;\n return this.http.get<\n IApiresponse\n >(url, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n\n getOrgAllDependentFunctionList(): Observable<\n IApiresponse\n > {\n return this.http.get>(\n `${environment.catalogApiUrl}GetAllDependentFuncList`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetReceiptNumberSettings(): Observable {\n return this.http.get(\n `${environment.billingApiUrl}GetReceiptNumberSettings`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveReceiptNumberSettings(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveReceiptNumberSettings`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getVatNoVatReceiptType(): Observable {\n return this.http.get(\n `${environment.catalogApiUrl}GetVatNoVatReceiptType`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n updateVatNoVatReceiptType(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}UpdateReceiptTypeSettings`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n\n getAllFunctionsForOrganisation(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n return this.http.get(\n `${environment.billingApiUrl}GetAllFunctionsForOrganisation`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n getCartSubscriptionType(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n return this.http.get(\n `${environment.catalogApiUrl}GetCartSubscriptionType`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n GetOrgPricingFunctionList(currencyId: number) {\n let params = new HttpParams();\n params = params.append(\"currencyId\", currencyId.toString());\n return this.http.get(\n `${environment.catalogApiUrl}GetOrgPricingFunctionList`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n GetOrgBasicFunctionList() {\n return this.http.get(\n `${environment.catalogApiUrl}GetOrgBasicFunctionList`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n GetOrgFunctionPackageCurrencyMapping(currencyId: number) {\n let params = new HttpParams();\n params = params.append(\"currencyId\", currencyId.toString());\n return this.http.get>(\n `${environment.catalogApiUrl}GetOrgFunctionPackageCurrencyMapping`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n GetOrgFunctionTrialDays(organisationId: number) {\n let params = new HttpParams();\n params = params.append(\"organisationId\", organisationId.toString());\n return this.http.get(\n `${environment.billingApiUrl}GetOrgFunctionTrialDays`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n }\n );\n }\n GetOrganisationPreferences(\n requestinfo: IApiRequest\n ): Observable> {\n requestinfo.requestInfo = new RequestGetPreferences();\n let body = JSON.stringify(requestinfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetOrganisationPreferences`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n ).pipe(map(result => {\n return result;\n }));\n }\n\n\n UpdateAttendeeOrgPreferences(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}UpdateAttendeeOrgPreferences`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n \n UpdatePowerUserOrgPreferences(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}UpdatePowerUserOrgPreferences`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n UpdateManageCCPreference(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}UpdateManageCCPreference`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n UpdateCCFeedPreferences(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}UpdateCCFeedPreferences`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetCCFeedPreferences(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetCCFeedPreferences`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetAttendeeOrgPreferences(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetAttendeeOrgPreferences`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n AddUpdateCompliancePreferences(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}AddUpdateCompliancePreferences`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n AddUpdateCounterApproverPreferences(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}AddUpdateCounterApproverPreferences`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveInvoiceDataForOrganization(requestinfo: IApiRequest): Observable>{\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveInvoiceDataForOrganization`,body, \n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetUserIdForInvoiceForOrganization(orgId): Observable>{\n return this.http.get>(`${environment.billingApiUrl}GetUserIdForInvoiceForOrganization?orgId=${orgId}`, \n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n}\n","import { Injectable} from '@angular/core';\nimport { HttpClient} from '@angular/common/http';\nimport { IApiRequest, IApiresponse, GradePolicyFilterEnum} from 'src/app/_models';\nimport { IRequestOtherPolicyData, IResponseOtherPolicyData, IRequestSaveOtherPolicyData, IResponseSaveOtherPolicyData, IRequestDuplicatePolicyData, IResponseDuplicatePolicyData, IRequestSaveDuplicatePolicyData, IResponseSaveDuplicatePolicyData, IRequestEscalationSettings, IResponseEscalationSettings, IReqBusinessPurpose, IRespBusinessPurpose, IRespGetBusinessPurposeValues, IReqSaveBPValues, IResponseGetAdditionalFieldValues, ISaveAdditionalFieldsRequest, ISaveAdditionalFieldsResponse, IDeleteAdditionalFieldRequest, IDeleteFieldByIdRequest, IExpTimeLimitSaveRequest, IRequestPolicyConversion, IRequestDeleteOtherPoliciesForConversionToGradeOrClaimantWise, ClaimantWisePolicyExport, IClaimantWisePolicyExport, IRequestClaimantWisePolicyExport, IRequestClaimantWisePolicyHistoricalView, IResponseClaimantWisePolicyHistoricalView, PolicyDashboardData, PolicyDashboardFilter, PolicyDashBoardPanelModel, PolicyDashboardPanelData, IYearEndSaveRequest } from 'src/app/_models/policy/policy-data';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { IRequestGetPolicyDetail, IRequestPolicyViolation, IResponsePolicyDetail, IResponsePolicyViolation } from 'src/app/_models/twostepapproval/claimant-expense-detail';\nimport { setHeader } from 'src/app/_helpers/setRequestHeader';\nimport { ClaimsHeaderService } from 'src/app/shared/claimsHeader/claims-header.service';\nimport { IReqUpdateDocRules, IRespUpdateRules } from '../../_models/DutyofCare/dutyofcare';\nimport { ExcelExportService } from '../common/excel-export.service';\nimport { IResponseFraudDetails } from '../../_models/twostepapproval/claimant-expense-detail';\nimport { ReqSaveCategoryAdditionalFieldDetails, RespCategoryAdditionalFieldSettings } from '../../_models/policy/policy-data';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PolicyDataService {\n\n constructor(private http: HttpClient, private header: setHeader,\n private claimsHeaderService: ClaimsHeaderService,\n private excelExportService: ExcelExportService\n ) { }\n\n //httpHeaders = this.header.createAuthorizationHeader();\n GetPolicyDetail(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}GetPolicyDetail`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetPolicyData(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.expenseApiUrl}GetPolicyViolationDetatils`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetPotentialFraudData(expenseId): Observable> {\n let expenseDetailUrl = `${environment.expenseApiUrl}GetPotentialFraudDetatils/` + expenseId + ``;\n return this.http.get>(expenseDetailUrl, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetOtherPolicyData(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}GetOtherPolicesByGradeAndType`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetDuplicatePolicyData(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}GetAllDuplicatePolicy`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveOtherPolicyData(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveOtherPolicesByGradeAndType`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveDuplicatePolicyData(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveAllDuplicatePolicy`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveEscalationSettings(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveEscalationSettings`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveDocRules(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveDOCRules`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveBusinessPurpose(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SetBusinessPurposeForOrganisation`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetBusinessPurposeValues(): Observable> {\n let url = `${environment.billingApiUrl}GetBusinessPurposeValues`;\n return this.http.get>(url, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetAdditionalFieldValues(): Observable> {\n let url = `${environment.billingApiUrl}GetAdditionalFieldValues`;\n return this.http.get>(url, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveBusinessPurposeValues(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveBusinessPurposeValues`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveAFValues(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveAdditionalFieldValues`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n DeleteAFValues(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}DeleteAdditionalFieldsData`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n DeleteAFDataValues(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}DeleteAdditionalFieldsDataById`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveExpenseTimeLimit(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SetupExpenseTimeLimit`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n SaveYearEndValues(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SetupYearEndRule`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetClaimantWiseMonthlyAndYearlyCappingPolicy(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}GetClaimantWiseMonthlyAndYearlyCappingPolicy`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n SaveClaimantWiseMonthlyAndYearlyCappingPolicy(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveClaimantWiseMonthlyAndYearlyCappingPolicy`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n ConvertPolicyFromGradeToClaimantWise(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}ConvertPolicyFromGradeToClaimantWise`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n DeleteOtherPoliciesForConversionToGradeOrClaimantWise(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}DeleteOtherPoliciesForConversionToGradeOrClaimantWise`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n ExportClaimantWisePolicyExcel(\n exportedData: any[],\n excelFileName: string\n ) {\n let mappedData: IClaimantWisePolicyExport[] = [];\n\n for (let i = 0; i < exportedData.length; i++) {\n let recordExport = new ClaimantWisePolicyExport();\n\n recordExport.ClaimantName = exportedData[i].claimantName;\n recordExport.Category = exportedData[i].expenseCategoryName;\n recordExport.Limit = exportedData[i].limit;\n recordExport.EffectiveFrom = exportedData[i].effectiveFrom;\n recordExport.AlertPercentage = exportedData[i].alertPercentage;\n\n mappedData.push(recordExport);\n }\n\n this.excelExportService.exportAsExcelFile(mappedData, excelFileName);\n }\n\n GetClaimantWisePolicyHistoricalView(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}GetClaimantWisePolicyHistoricalView`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n ExportClaimantWisePolicyData(requestinfo: IApiRequest) {\n let body = JSON.stringify(requestinfo);\n return this.http.post(\n `${environment.billingApiUrl}ExportClaimantWisePolicyData`,\n body,\n {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n responseType: \"text\" as \"json\",\n }\n );\n }\n\n SetPolicyDefaultFilter(gradeId: number, gradeWithPolicy: number, policyCallback: any, defaultFilter: boolean = false)\n {\n if(defaultFilter && gradeWithPolicy <= 0)\n {\n var filterByValue = gradeWithPolicy > 0 ? GradePolicyFilterEnum.GradeWithPolicy\n : GradePolicyFilterEnum.GradeWithoutPolicy; \n policyCallback(gradeId, filterByValue); \n }\n }\n \n GetPolicyDashboardData(filterdata: IApiRequest): Observable> {\n let body = JSON.stringify(filterdata);\n return this.http.post>(`${environment.expenseApiUrl}GetPolicyDashboardData`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n GetPolicyPanelData(filterdata: IApiRequest): Observable> {\n let body = JSON.stringify(filterdata);\n return this.http.post>(`${environment.expenseApiUrl}GetPolicyPanelData`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GetCategoryAdditionalFieldSettings(): Observable> {\n return this.http.get>(\n `${environment.billingApiUrl}GetCategoryAdditionalFieldSettings`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n SaveCategoryAdditionalFieldSettings(requestinfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestinfo);\n return this.http.post>(`${environment.billingApiUrl}SaveCategoryAdditionalFieldSettings`, body, { headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Observable, of } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\nimport { IApiresponse } from \"src/app/_models/common/request-response/apiresponse\";\nimport { IFunctionPackageCurrencyMappingResponse, } from \"src/app/_models/organisation-setting/organisation-setting\";\nimport { IApiRequest, ApiRequest } from \"src/app/_models\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { map } from \"rxjs/operators\";\nimport { setHeader } from \"../../_helpers/setRequestHeader\";\nimport { IBillingMultiCurrencySettingResponse } from \"src/app/_models/billingMultiCurrencySetting/billingMultiCurrencySetting\";\nimport { FunctionDiscountList } from 'src/app/_models/billing-pricing/FunctionDiscountList';\nimport { IBillingDataForPricingResponse, IBillingDataForPricingRequest, QuoteModel, IPricingEmailQuoteRequest } from 'src/app/_models/pricing/pricing';\n\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class PricingService {\n\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService,\n private header: setHeader\n ) { }\n\n GetFunctionPackageCurrencyMapping(currencyId: number) {\n let params = new HttpParams();\n params = params.append(\"currencyId\", currencyId.toString());\n return this.http.get>(\n `${environment.catalogApiUrl}GetOrgFunctionPackageCurrencyMapping`,\n {\n params: params,\n headers: this.header.authorizationHeader(),\n }\n );\n }\n\n GetPricingFunctionList(currencyId: number) {\n let params = new HttpParams();\n params = params.append(\"currencyId\", currencyId.toString());\n return this.http.get(\n `${environment.catalogApiUrl}GetOrgPricingFunctionList`,\n {\n params: params,\n headers: this.header.authorizationHeader(),\n }\n );\n }\n\n GetPricingFunctionListbyCurrencyCode(currencyCode: string) {\n let params = new HttpParams();\n params = params.append(\"currencyCode\", currencyCode);\n return this.http.get(\n `${environment.catalogApiUrl}GetOrgPricingFunctionListByCurrencyCode`,\n {\n params: params,\n headers: this.header.authorizationHeader(),\n }\n );\n }\n\n GetMultiCurrencySetting(currencyId: number) {\n let params = new HttpParams();\n params = params.append(\"currencyId\", currencyId.toString());\n return this.http.get>(\n `${environment.billingApiUrl}GetBillingMultiCurrencySetting`,\n {\n params: params,\n headers: this.header.authorizationHeader(),\n }\n );\n }\n\n GetSubscriptionDiscountList(): Observable> {\n return this.http.get>\n (`${environment.billingApiUrl}FunctionDiscountList`,\n {\n headers: this.header.authorizationHeader()\n });\n }\n\n GetAllBillingDataForPricing(requestInfo: IApiRequest)\n : Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetAllBillingDataForPricing`,\n body,\n { headers: this.header.authorizationHeader() }\n );\n }\n\n DiscussPricingQuote(\n request: ApiRequest\n ) {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.catalogApiUrl}DiscussPricingQuote`,\n body,\n {\n headers: this.header.authorizationHeader(),\n }\n );\n }\n\n EmailPricingQuote(\n request: ApiRequest\n ) {\n let body = JSON.stringify(request);\n return this.http.post(\n `${environment.catalogApiUrl}EmailPricingQuote`,\n body,\n {\n headers: this.header.authorizationHeader(),\n }\n );\n }\n\n}\n","import { HttpHeaders, HttpClient } from \"@angular/common/http\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { Injectable } from \"@angular/core\";\n\nimport { IApiRequest, IApiresponse } from \"src/app/_models\";\nimport { Observable } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\n\nimport {\n CategorySummaryResponse,\n CloseProjectRequest,\n CostCentreCustomerList,\n GetActiveEmployeesForProjectBudgetRequest,\n GetActiveEmployeesForProjectBudgetResponse,\n GetCustomerCostCentreListRequest,\n GetProjectBudgetAllDetailsByProgBudIdRequest,\n GetProjectBudgetByEntityTypeRequest,\n GetProjectListForCloseResponse,\n GetProjectManagerCountRequest,\n IProjectBudgetListRequest,\n IProjectBudgetListResponse,\n ProjectBudgetForEntity,\n ProjectBudgetResponse,\n ProjectCategorySummaryRequest,\n ProjectManagerDetails,\n ProjectSummaryRequest,\n ProjectSummaryResponse,\n UpdateProjectManagerRequest,\n IGetCustomerCostCentreProjectsListRequest,\n ICostCentreCustomerProjectListResponse,\n} from \"src/app/_models/project-budget/project-budget\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ProjectBudgetService {\n httpHeaders: HttpHeaders;\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService\n ) {}\n\n GetProjectBudgetList(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetProjectBudgetList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetProjectSummary(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetProjectSummary`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCustomerCostCentreList(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetCustomerCostCentreList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetActiveEmployeesForProjectBudget(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post<\n IApiresponse\n >(`${environment.billingApiUrl}GetActiveEmployeesForProjectBudget`, body, {\n headers: this.claimsHeaderService.createLoginAuthorizationHeader(),\n });\n }\n\n SaveProjectBudget(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}AddEditProjectBudget`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetProjectBudgetAllDetailsByProjectBudgetId(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetProjectBudgetAllDetailsByProjectBudgetId`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetProjectCategorySummaryResponse(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetProjectCategorySummaryResponse`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetProjectBudgetByEntityType(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetProjectBudgetByEntityType`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetProjectManagerCount(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetProjectManagerCount`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n UpdateProjectManagerWhenApproverDeactivate(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}UpdateProjectManagerWhenApproverDeactivate`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetProjectListForClose(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetProjectListForClose`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n CloseProject(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}CloseProject`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetCustomerCostCentreProjectList(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}GetCustomerCostCentreProjectList`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable, of } from \"rxjs\";\nimport { environment } from \"src/environments/environment\";\nimport { IApiresponse, Apiresponse } from \"src/app/_models/common/request-response/apiresponse\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { FunctionPrivilegeMapping } from \"src/app/_models/secondary-fm/function-privilege\";\nimport { UserPrivilegeModel } from \"src/app/_models/secondary-fm/user-privilege\";\nimport { FinanceManagerModel } from \"src/app/_models/secondary-fm/finance-manager\";\nimport { map, mergeMap } from \"rxjs/operators\";\nimport { ApiRequest } from \"src/app/_models\";\nimport { ISavePrivilegesRequest } from \"src/app/_models/secondary-fm/save-privilege\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class FunctionPrivilegeService {\n\n constructor(\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService\n ) { }\n\n getFunctionPrivilegeMappings(): Observable> {\n\n const cacheKey = \"FunctionPrivilegeMappingData\";\n let cachedData = sessionStorage.getItem(cacheKey);\n if (cachedData) {\n return of(JSON.parse(cachedData));\n }\n else {\n return this.http.get(\n `${environment.catalogApiUrl}GetFunctionPrivilegeMappings`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n ).pipe(map(data => {\n sessionStorage.setItem(cacheKey, JSON.stringify(data));\n return data;\n }));\n }\n }\n\n checkRoutePrivilegeAccess(route: string, userId: number): Observable {\n return this.getFunctionPrivilegeMappings().pipe(mergeMap((privileges) => {\n var routePrivilegeMap = privileges.responseInfo.filter(function (p) {\n return p.routes.filter(function (r) {\n return route.includes(r.route);\n }).length > 0;\n });\n if (routePrivilegeMap && routePrivilegeMap.length > 0) {\n return this.checkPrivilegesAccess([routePrivilegeMap[0].privilegeID], userId).pipe(map(access => {\n return access && access.length > 0;\n }));\n }\n else {\n return of(true);\n }\n }));\n }\n\n checkPrivilegesAccess(privilegeId: number[], userId: number): Observable {\n return this.getFunctionPrivilegesForUser(userId).pipe(map(userPrivileges => {\n var userAllowed = userPrivileges.responseInfo.privileges.filter(function (p) {\n return privilegeId.indexOf(p) > -1;\n });\n return userAllowed;\n }));\n }\n\n getPrivilegesAccessList( userId: number): Observable> {\n return this.http.get(\n `${environment.billingApiUrl}GetFunctionPrivilegesForUser?userId=${userId}`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getFinanceManagerPrivileges(): Observable> {\n return this.http.get(\n `${environment.billingApiUrl}GetFinanceManagers`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getFunctionPrivilegesForUser(userId): Observable> {\n const cacheKey = \"FunctionPrivilegeUserData_\" + userId;\n let cachedData = sessionStorage.getItem(cacheKey);\n if (cachedData) {\n return of(JSON.parse(cachedData));\n }\n else {\n return this.http.get(\n `${environment.billingApiUrl}GetFunctionPrivilegesForUser?userId=${userId}`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n ).pipe(map(data => {\n sessionStorage.setItem(cacheKey, JSON.stringify(data));\n return data;\n }));\n }\n }\n\n saveFunctionPrivilegesForUser(request: ApiRequest): Observable> {\n const cacheKey = \"FunctionPrivilegeUserData_\" + request.requestInfo.UserID;\n let body = JSON.stringify(request);\n return this.http.post>(\n `${environment.billingApiUrl}SaveFunctionPrivilegesForUser`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n ).pipe(map(result => {\n if (result.statusCode == 0 && result.responseInfo) {\n sessionStorage.removeItem(cacheKey);\n }\n return result;\n }));\n }\n\n}\n","import { Injectable, forwardRef, Inject } from '@angular/core';\nimport { HttpHeaders, HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { IApiresponse } from '../../_models/common/request-response/apiresponse';\nimport { IStripeSessionResponse, IStripeSessionRequest, IStripeGenerateInvoiceRequest, IStripeRegisterUserResponse, IStripeChangeUserCardRequest, IStripeInstantPaymentSessionRequest, IStripeInstantPaymentRegisterUserResponse } from '../../_models/stripe/stripe';\nimport { IApiRequest } from 'src/app/_models';\nimport { setHeader } from 'src/app/_helpers/setRequestHeader';\nimport { ClaimsHeaderService } from 'src/app/shared/claimsHeader/claims-header.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class StripeService {\n orgSettingUrl: any;\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService) { }\n\n CreateStripeSession(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n\n return this.http.post>(\n `${environment.billingApiUrl}CreateStripeSession`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n RegisterUserCardOnStripe(sessionId: string): Observable> {\n let params = new HttpParams();\n params = params.append(\"sessionId\", sessionId);\n\n return this.http.get>(`${environment.billingApiUrl}RegisterUserOnStripe`, { params: params, headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n GenerateInvoice(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n\n return this.http.post>(\n `${environment.billingApiUrl}GenerateStripeInvoice`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n ChangeStripeUserCard(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n\n return this.http.post>(\n `${environment.billingApiUrl}ChangeStripeUserCard`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n CreateStripeSessionForInstantPayment(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n\n return this.http.post>(\n `${environment.billingApiUrl}CreateStripeSessionForInstantPayment`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n GetStripeCustomerDetailsForInstantPaymentCaptured(sessionId: string): Observable> {\n let params = new HttpParams();\n params = params.append(\"sessionId\", sessionId);\n\n return this.http.get>(`${environment.billingApiUrl}GetStripeCustomerDetailsForInstantPaymentCaptured`, { params: params, headers: this.claimsHeaderService.createLoginAuthorizationHeader() });\n }\n\n CreateStripeSessionForExistingCustomer(\n requestInfo: IApiRequest\n ): Observable> {\n let body = JSON.stringify(requestInfo);\n\n return this.http.post>(\n `${environment.billingApiUrl}CreateStripeSessionForExistingCustomer`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\nimport { setHeader } from \"src/app/_helpers/setRequestHeader\";\nimport { ClaimsHeaderService } from \"src/app/shared/claimsHeader/claims-header.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ClaimsService } from \"../common/claims.service\";\nimport { UniversalImportTemplateEnum } from \"src/app/_models/enum/solo-enum\";\nimport { BehaviorSubject } from \"rxjs/internal/BehaviorSubject\";\nimport { environment } from \"../../../environments/environment\";\nimport { Observable } from \"rxjs\";\nimport { IApiresponse } from \"../../_models/common/request-response/apiresponse\";\nimport { ApiRequest, IApiRequest } from \"../../_models/common/request-response/api-request\";\nimport {\n IUniversalImportFieldMasterResponse,\n IEmployeeImportModel,\n IValidateUniversalImportEmployeesRequest,\n IValidateUniversalImportEmployeesResponse,\n IBulkSaveUniversalImportEmployeesRequest,\n StorageData,\n IBulkSaveUniversalCostCentreApproversRequest\n} from \"src/app/_models/universal-importer/universal-importer\";\nimport { BackgroundTaskKeys, BackgroundTaskNotificationBody, BackgroundTaskNotificationHeaders, BackgroundTaskTopics } from 'src/app/common/commonvariables';\nimport { BackgroundTask } from 'src/app/_models/common/background-task';\nimport { NotificationService } from 'src/app/_services/common/notification.service';\nimport { FunctionPackageEnum, FunctionPrivilege, BillingMethod } from '../../_models';\nimport { AdvanceCappingPolicyImport } from \"src/app/_models/advances/advances\";\nimport { IBulkSaveCustomerRequest } from \"src/app/_models/customer/customer\";\nimport {IBulkImportExpenseCategoryRequest } from \"src/app/_models/manage-category/expense-category\";\nimport { IBulkCounterAppRequest } from \"../../_models/counter-approver/counter-approver.model\";\nimport { IBulkSaveCurrenciesRequest } from \"../../_models/fxRate/fx-rate.model\";\nimport { UkMileageRateSettingService } from \"../advance-mileage/uk-mileage-rate-setting.service\";\nimport {IBulkImportAssignCreditCardRequest} from \"src/app/_models/credit-card/credit-card\";\nimport { BulkImportGradeRequest } from \"src/app/_models/grade/grade\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class UniversalImporterService {\n\n //add observable import storage\n importStorageData: StorageData = new StorageData();\n private _importStorageData = new BehaviorSubject(this.importStorageData);\n currentImportStorageData = this._importStorageData.asObservable();\n\n orgId: number;\n userId: number;\n organisationCurrency: string;\n claims: Claims;\n\n\n private currentTemplateName = new BehaviorSubject('');\n templateName = this.currentTemplateName.asObservable();\n\n private currentImportTemplateData = new BehaviorSubject('');\n importTemplateData = this.currentImportTemplateData.asObservable();\n\n private currentImportTemplateExtension = new BehaviorSubject('');\n importTemplateExtension = this.currentImportTemplateExtension.asObservable();\n\n private currentImportTemplateFileName = new BehaviorSubject('');\n importTemplatFileName = this.currentImportTemplateFileName.asObservable();\n\n private currentImportTemplateGridData = new BehaviorSubject('');\n importTemplateGridData = this.currentImportTemplateGridData.asObservable();\n\n private isCurrentTemplateContainsHeader = new BehaviorSubject(true);\n isTemplateContainsHeader = this.isCurrentTemplateContainsHeader.asObservable();\n\n private currentReviewEmployeesList = new BehaviorSubject([]);\n importReviewEmployeesList = this.currentReviewEmployeesList.asObservable();\n\n constructor(\n private http: HttpClient,\n private header: setHeader,\n private claimsService: ClaimsService,\n private claimsHeaderService: ClaimsHeaderService,\n private notificationService: NotificationService,\n private ukMileageRateSettingService: UkMileageRateSettingService\n ) {\n this.claimsService.currentClaims.subscribe(\n (claims) => (this.claims = claims)\n );\n this.orgId = this.claims.OrgId;\n this.userId = this.claims.UserId;\n this.organisationCurrency = this.claims.CurrentOrganisationCurrency;\n }\n\n updateTemplateName(name: string) {\n this.currentTemplateName.next(name)\n }\n\n updateimporttemplatedata(name: string) {\n this.currentImportTemplateData.next(name)\n }\n\n updateimporttemplateextension(name: string) {\n this.currentImportTemplateExtension.next(name)\n }\n\n updateImportTemplateFileName(name: string) {\n this.currentImportTemplateFileName.next(name)\n }\n\n updateImportTemplateGridData(name: string) {\n this.currentImportTemplateGridData.next(name);\n }\n\n updateIsCurrentTemplateContainsHeader(value: boolean) {\n this.isCurrentTemplateContainsHeader.next(value);\n }\n\n updateCurrentReviewEmployeesList(reviewEmployeesList: IEmployeeImportModel[] = []) {\n this.currentReviewEmployeesList.next(reviewEmployeesList);\n }\n\n\n GetUniversalImportFieldMasterByTemplateType(templateType: number):\n Observable> {\n let params = new HttpParams();\n params = params.append(\"templateType\", templateType.toString());\n return this.http.get>(\n `${environment.catalogApiUrl}GetUniversalImportFieldMasterByTemplateType`,\n {\n params: params,\n headers: this.claimsHeaderService.createLoginAuthorizationHeader()\n }\n );\n }\n\n ValidateUniversalImportEmployees(\n requestInfo: IApiRequest): Observable> {\n let body = JSON.stringify(requestInfo);\n return this.http.post>(\n `${environment.billingApiUrl}ValidateUniversalImportEmployees`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n\n // BulkSaveUniversalImportEmployees(\n // requestInfo: IApiRequest): Observable> {\n // let body = JSON.stringify(requestInfo);\n // return this.http.post>(\n // `${environment.billingApiUrl}BulkSaveUniversalImportEmployees`,\n // body,\n // { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n // );\n // }\n\n BulkSaveUniversalImportEmployees(\n saveRequest: IApiRequest): Observable {\n const notificationBody = BackgroundTaskNotificationBody.BulkUniversalImportEmployees;\n const route = \"universalimport/importsummary\";\n let jobInfo = new BackgroundTask(BackgroundTaskTopics.Billing, BackgroundTaskKeys.BulkUniversalImportEmployees,\n saveRequest, saveRequest.requestInfo.employees.map(e => e.email), BackgroundTaskNotificationHeaders.BulkUniversalImportEmployees,\n notificationBody, route,\n FunctionPackageEnum.UniversalImport, FunctionPrivilege.ManageEmployees, saveRequest.requestInfo.fmName);\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n\n }\n\n // BulkSaveUniversalCostCentreApprovers(\n // requestInfo: IApiRequest): Observable> {\n // let body = JSON.stringify(requestInfo);\n // return this.http.post>(\n // `${environment.billingApiUrl}BulkSaveUniversalCostCentreApprovers`,\n // body,\n // { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n // );\n // }\n\n BulkSaveUniversalCostCentreApprovers(\n saveRequest: IApiRequest): Observable {\n const notificationBody = BackgroundTaskNotificationBody.BulkUniversalCostCentreApprovers;\n const route = \"universalimport/importsummary\";\n let jobInfo = new BackgroundTask(BackgroundTaskTopics.Billing, BackgroundTaskKeys.BulkUniversalCostCentreApprovers,\n saveRequest, saveRequest.requestInfo.costCentreApprovers.map(e => e.costCentreName), BackgroundTaskNotificationHeaders.BulkUniversalCostCentreApprovers,\n notificationBody, route,\n FunctionPackageEnum.UniversalImport, FunctionPrivilege.SetupCostCentre, saveRequest.requestInfo.fmName);\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n }\n\n BulkSaveUniversalAdvanceClaimantPolicy(saveRequest: IApiRequest): Observable {\n const notificationBody = BackgroundTaskNotificationBody.BulkUniversalAdvanceClaimantPolicy;\n const route = \"universalimport/importsummary\";\n let jobInfo = new BackgroundTask(BackgroundTaskTopics.Billing, BackgroundTaskKeys.BulkUniversalAdvanceClaimantPolicy,\n saveRequest, saveRequest.requestInfo.claimantPolicy.map(e => e.userId.toString()), BackgroundTaskNotificationHeaders.BulkUniversalAdvanceClaimantPolicy,\n notificationBody, route,\n FunctionPackageEnum.Advances, FunctionPrivilege.Advances, saveRequest.requestInfo.fmName);\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n }\n\n BulkSaveUniversalImportCustomers(\n saveRequest: IApiRequest): Observable {\n const notificationBody = BackgroundTaskNotificationBody.BulkUniversalImportCustomers;\n const route = \"universalimport/importsummary\";\n let jobInfo = new BackgroundTask(BackgroundTaskTopics.Billing, BackgroundTaskKeys.BulkUniversalImportCustomers,\n saveRequest, saveRequest.requestInfo.customerList.map(e => e.name), BackgroundTaskNotificationHeaders.BulkUniversalImportCustomers,\n notificationBody, route,\n FunctionPackageEnum.UniversalImport, FunctionPrivilege.Customers, saveRequest.requestInfo.fmName);\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n\n }\n\n BulkSaveUniversalImportCounterApprover(\n saveRequest: IApiRequest): Observable {\n const notificationBody = BackgroundTaskNotificationBody.BulkUniversalImportCounterApprover;\n const route = \"universalimport/importsummary\";\n let jobInfo = new BackgroundTask(BackgroundTaskTopics.Billing, BackgroundTaskKeys.BulkUniversalImportCounterApprover,\n saveRequest, saveRequest.requestInfo.counterAppList.map(e => e.approverId.toString()), BackgroundTaskNotificationHeaders.BulkUniversalImportCounterApprover,\n notificationBody, route,\n FunctionPackageEnum.UniversalImport, FunctionPrivilege.CounterApprover, saveRequest.requestInfo.fmName);\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n\n }\n\n BulkSaveUniversalImportCurrencies(\n saveRequest: IApiRequest): Observable {\n const notificationBody = BackgroundTaskNotificationBody.BulkUniversalImportFxRate;\n const route = \"universalimport/importsummary\";\n let jobInfo = new BackgroundTask(BackgroundTaskTopics.CataLog, BackgroundTaskKeys.BulkUniversalImportFxRate,\n saveRequest, saveRequest.requestInfo.currencyList.map(e => e.currencyId.toString()), BackgroundTaskNotificationHeaders.BulkUniversalImportFxRate,\n notificationBody, route,\n FunctionPackageEnum.UniversalImport, FunctionPrivilege.FxRate, saveRequest.requestInfo.fmName);\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n\n }\n\n\n fnSaveDataToLocalStorage(newStorageData) {\n this._importStorageData.next(newStorageData);\n }\n\n BulkUniversalImportEmployees(\n saveRequest: IApiRequest): Observable {\n const notificationBody = BackgroundTaskNotificationBody.BulkImportEmployees;\n const route = \"universalimport/importsummary\";\n let jobInfo = new BackgroundTask(BackgroundTaskTopics.Billing, BackgroundTaskKeys.BulkImportEmployees,\n saveRequest, saveRequest.requestInfo.employees.map(e => e.email), BackgroundTaskNotificationHeaders.BulkImportEmployees,\n notificationBody, route,\n FunctionPackageEnum.UniversalImport, FunctionPrivilege.ManageEmployees, saveRequest.requestInfo.fmName);\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n\n }\n\n BulkUniversalImportCategories(\n saveRequest: IApiRequest): Observable {\n const notificationBody = BackgroundTaskNotificationBody.BulkUniversalImportCategories;\n const route = \"universalimport/importsummary\";\n let jobInfo = new BackgroundTask(BackgroundTaskTopics.Billing, BackgroundTaskKeys.BulkUniversalImportCategories,\n saveRequest, saveRequest.requestInfo.categoryList.map(e => e.expenseCategoryName), BackgroundTaskNotificationHeaders.BulkUniversalImportCategories,\n notificationBody, route,\n FunctionPackageEnum.UniversalImport, FunctionPrivilege.ExpenseCategoryManagement, saveRequest.requestInfo.fmName);\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n\n }\n CreateGradeInBulk(\n saveRequest: IApiRequest): Observable {\n const notificationBody = BackgroundTaskNotificationBody.BulkImportGradeBody;\n const route = \"orgsetting/grade\";\n let jobInfo = new BackgroundTask(BackgroundTaskTopics.Expense, BackgroundTaskKeys.BulkImportGrades,\n saveRequest, saveRequest.requestInfo.gradeList.map(e => e.gradeName),\n BackgroundTaskNotificationHeaders.BulkImportGrades,\n notificationBody, route,\n FunctionPackageEnum.UniversalImport, FunctionPrivilege.SetupGrade, saveRequest.requestInfo.fmName);\n\n return this.notificationService.submitBackgroundJob(jobInfo);\n\n }\n bulkSaveUniversalImportVehicleRequest: IApiRequest;\n BulkSaveUniversalImportVehicleAssignment(\n request: any): Observable> {\n this.bulkSaveUniversalImportVehicleRequest = new ApiRequest(\"BulkImportUserVehicleAssignment\",\n environment.applicationVersion,\n environment.requestId);\n let functionIds = this.ukMileageRateSettingService.fnGetPurchaseFunctionList();\n let apiRequest = {\n purchaseFunctionList: functionIds,\n bulkImportVehicleAssignments: request\n }\n this.bulkSaveUniversalImportVehicleRequest.requestInfo = apiRequest\n let body = JSON.stringify(apiRequest);\n return this.http.post>(\n `${environment.billingApiUrl}BulkImportUserVehicleAssignment`,\n body,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n BulkImportAssignCreditCard(\n saveRequest: IApiRequest): Observable {\n const notificationBody = BackgroundTaskNotificationBody.BulkImportAssignCreditCard;\n const route = \"universalimport/importsummary\";\n let jobInfo = new BackgroundTask(BackgroundTaskTopics.Expense, BackgroundTaskKeys.BulkImportAssignCreditCard,\n saveRequest, saveRequest.requestInfo.assignCreditCardList.map(e => e.cardNumber), BackgroundTaskNotificationHeaders.BulkImportAssignCreditCard,\n notificationBody, route,\n FunctionPackageEnum.SetupCreditCard, FunctionPrivilege.SetupCreditCard, saveRequest.requestInfo.fmName);\n \n return this.notificationService.submitBackgroundJob(jobInfo);\n \n }\n }\n\n\n\n \n\n","
\n
\n
\n
\n
\n

{{data.title}}

\n
\n
\n
\n
1)\" class=\"note\">{{ 'note' | translate}}
\n\n
1\">\n
\n \n \n
\n
\n
1\">\n
1\">\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
0\">\n \n
\n
\n
\n","import { Component, Input, OnInit, Output, EventEmitter } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { AlertPanelModel } from \"../_models/common/alertPanelModel\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\nimport { ClaimsService } from \"../_services/common/claims.service\";\nimport { Claims } from \"../_models/common/claims\";\n\n@Component({\n selector: \"app-alert-panel\",\n templateUrl: \"./alert-panel.component.html\"\n})\nexport class AlertPanelComponent implements OnInit {\n @Input() data: AlertPanelModel;\n @Input() isConfirmDisplay: boolean = true;\n \n param: string;\n claims: Claims;\n bodyClass : string = \"block mt-2\";\n hideInfoIcon : boolean = false;\n singleMessageTextClass:string = \"\";\n constructor(private translate: TranslateService, private sanitizer: DomSanitizer,\n private claimsService: ClaimsService) {\n this.claimsService.currentClaims.subscribe(claims => this.claims = claims);\n }\n\n ngOnInit() { \n if(this.data.hideInfoIcon)\n { \n this.hideInfoIcon = this.data.hideInfoIcon; \n }\n if(this.data.bodyClass)\n {\n this.bodyClass = this.data.bodyClass;\n }\n if(this.data.singleMessagetextClass)\n {\n this.singleMessageTextClass = this.data.singleMessagetextClass;\n }\n }\n\n @Output() callbackEvent = new EventEmitter();\n\n accept() {\n this.callbackEvent.emit(true);\n }\n\n dismiss()\n {\n this.callbackEvent.emit(false);\n }\n\n sanitizerHtml(element) {\n let safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return safeText;\n }\n\n setClasses(){\n let divClass = '';\n if(this.data.bodyClass)\n {\n divClass = this.data.bodyClass;\n }\n else\n {\n divClass = 'block mt-2';\n }\n return divClass;\n }\n\n fnSendAction(action:number)\n {\n this.callbackEvent.emit(action);\n }\n\n}\n","import { NgModule } from \"@angular/core\";\nimport { AlertPanelComponent } from \"./alert-panel.component\";\nimport { NgbTooltipModule, NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { AlertService } from \"./alert.service\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n NgbModule,\n NgbTooltipModule,\n TranslateModule,\n ],\n declarations: [\n AlertPanelComponent\n ],\n providers: [AlertService],\n exports: [\n NgbTooltipModule,\n AlertPanelComponent\n ]\n})\nexport class AlertModule {\n constructor() { }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable()\nexport class AlertService {\n\n private static isFormClosingSubject: Subject = new Subject();\n private static onUserActionSubject: Subject = new Subject();\n private static onFunctionSubscriptionChangeSubject: Subject = new Subject();\n\n constructor() {\n }\n\n public onFunctionSubscriptionChange() {\n AlertService.onFunctionSubscriptionChangeSubject.next(true);\n }\n\n public onFunctionSubscriptionChangeEvent(): Observable {\n return AlertService.onFunctionSubscriptionChangeSubject.asObservable();\n }\n\n public onFormClosed() {\n AlertService.isFormClosingSubject.next(true);\n }\n\n public getFormClosingEvent(): Observable {\n return AlertService.isFormClosingSubject.asObservable();\n }\n\n public onUserAction(value: boolean) {\n AlertService.onUserActionSubject.next(value);\n }\n\n public getUserActionEvent(): Observable {\n return AlertService.onUserActionSubject.asObservable();\n }\n\n}\n","// This api will come in the next version\n\nimport { AuthConfig } from 'angular-oauth2-oidc';\nimport { environment } from '../environments/environment';\n\nexport const authPasswordFlowConfig: AuthConfig = {\n // Url of the Identity Provider\n issuer: environment.issuer,\n\n // URL of the SPA to redirect the user to after login\n redirectUri: environment.AppUrl + 'settings',\n\n // URL of the SPA to redirect the user after silent refresh\n silentRefreshRedirectUri: window.location.origin + '/silent-refresh.html',\n\n // The SPA's id. The SPA is registerd with this id at the auth-server\n clientId: 'eod_user',\n\n dummyClientSecret: \"websecret1\",\n\n sessionChecksEnabled: true,\n\n // set the scope for the permissions the client should request\n // The first three are defined by OIDC. The 4th is a usecase-specific one\n scope: 'openid profile Api offline_access',\n\n showDebugInformation: true,\n\n oidc: false\n};\n","
\n
\n
\n
\n
\n

{{this.title}}

\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
{{this.dateText}}{{this.ActionByText}}{{this.LogText}}
{{item.Date}}{{item.ActionBy}}
\n {{ \"no_data_available\" | translate: param }}\n
\n
\n
\n
\n
\n\n\n\n","import { Component, OnInit, Input, EventEmitter, Output } from \"@angular/core\";\n//import { MarketingPopup } from \"../../_models/common/marketing-popup\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Router } from \"@angular/router\";\nimport { IApiresponse } from \"../../_models/common/request-response/apiresponse\";\nimport { Observable } from \"rxjs\";\nimport { ClaimsHeaderService } from \"../claimsHeader/claims-header.service\";\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { first } from \"rxjs/operators\";\nimport { LoggingPanelModel, LoggingPanelData } from \"../../_models/common/LoggingPanelModel\";\nimport { LoggingPanelService } from \"src/app/_services/logging-panel/logging-panel.service\";\nimport { LogObjects } from \"../../_models/common/LogObjects\";\n//import { DatePipe } from \"@angular/common\";\nimport { LogObjectActionEnum } from 'src/app/_models';\nimport { EODDateFormatPipe } from \"src/app/_helpers/pipe.module\";\n\n@Component({\n selector: \"logging-panel\",\n templateUrl: \"./logging-panel.component.html\",\n styleUrls: [\"./logging-panel.component.scss\"],\n})\n\nexport class LoggingPanelComponent implements OnInit {\n\n loggingPanelModel: LoggingPanelModel;\n title: string;\n btnCancelToolTipText: string;\n\n dateText: string;\n ActionByText: string;\n LogText: string;\n\n logObjects: LogObjects[];\n messages: LoggingPanelData[] = [];\n logObjectActionEnum = LogObjectActionEnum;\n\n constructor(\n private translate: TranslateService,\n private router: Router,\n private http: HttpClient,\n private claimsHeaderService: ClaimsHeaderService,\n private loggingPanelService: LoggingPanelService,\n //private datePipe: DatePipe,\n private eodDate: EODDateFormatPipe\n ) {\n this.loggingPanelService.getLogPanelEvent().subscribe((model) => {\n this.loggingPanelModel = model;\n if (this.loggingPanelModel) {\n this.title = this.translate.instant(\"label_log_history\");\n this.btnCancelToolTipText = this.translate.instant(\"close\");\n this.dateText = this.translate.instant(\"date_and_time\");\n this.ActionByText = this.translate.instant(\"action_by\");\n this.LogText = this.translate.instant(\"label_log\");\n this.getFMActionLog(this.loggingPanelModel.orgId, this.loggingPanelModel.functionId, this.loggingPanelModel.FilterType, this.loggingPanelModel.MileageFilterType,this.loggingPanelModel.EntityFilterType);\n }\n });\n }\n\n ngOnInit() {\n\n }\n\n\n getFMActionLog(orgId: string, functionId: string, FilterType: string, MileageFilterType: string=\"0\", EntityFilterType: string=\"0\") {\n this.messages = [];\n this.loggingPanelService.getFMActionLog(orgId, functionId, FilterType, MileageFilterType, EntityFilterType)\n .subscribe((res: any) => {\n this.logObjects = res.responseInfo;\n this.processLogText(this.logObjects);\n });\n}\n\n processLogText(logObjects: LogObjects[]) {\n logObjects.forEach(logs => {\n let LogDisplayText = this.getLogText(logs);\n if (LogDisplayText.length > 0) \n this.messages.push({ Date: this.eodDate.transform(logs.addOn), ActionBy: logs.actionByUserName?.toString(), Log: LogDisplayText.trimEnd() });\n });\n }\n\n\n getLogText(logs: LogObjects): string { \n let displayText = this.translate.instant(logs.text.key);\n for (let i = 0; i < logs.text.params.length; i++) {\n if(logs.text.params[i]){\n let parameter = this.translate.instant(logs.text.params[i]);\n displayText = displayText.replace(`{${i}}`, parameter);\n } \n }\n return displayText;\n }\n\n dismiss() {\n this.loggingPanelModel = null;\n }\n\n}\n","\n\n\n\n\n\n\n
\n
\n
\n
\n
\n

{{ \"label_alert\" | translate }}

\n
\n
\n
\n
\n \n {{ 'we_just_updated_this_page' | translate}}\n
\n
\n \n {{ 'you_will_not_be_able_to_refresh' | translate}}\n \n
\n\n
\n \n {{ 'please_refresh_the_page' | translate}}\n \n
\n \n
\n
\n
\n \n
\n
\n
\n
\n","import { Component } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { authPasswordFlowConfig } from \"./auth-password-flow.config\";\nimport { OAuthService } from \"angular-oauth2-oidc\";\nimport { AlertService } from \"./alert-panel/alert.service\";\nimport { AlertPanelModel } from \"./_models/common/alertPanelModel\";\nimport { UpToDateBuildService } from \"./up-to-date.service\";\nexport let browserRefresh = false;\n\n\n@Component({\n selector: \"app-root\",\n templateUrl: \"./app.component.html\",\n styleUrls: [\"./app.component.scss\"],\n})\nexport class AppComponent {\n\n\n alertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n\n\n alertPanelModelForReload = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"Alert\")\n );\n\n constructor(private translate: TranslateService, \n private oauthService: OAuthService, private alertService: AlertService,private upToDateService: UpToDateBuildService,) {\n\n setInterval(() => {\n upToDateService.pollForBuildNumber().subscribe((buildIsUpToDate) => {\n if (\n this.upToDateService.buildNumberAtStartup !==\n buildIsUpToDate.buildNumber\n )\n this.showAppUpdatePanel = true;\n });\n }, 60000); // 300,000 ms = 5 minutes\n \n\n this.translate.use(this.translate.getBrowserLang());\n\n this.oauthService.configure(authPasswordFlowConfig);\n this.oauthService.setupAutomaticSilentRefresh();\n this.oauthService.loadDiscoveryDocument();\n\n\n this.alertService.getFormClosingEvent().subscribe((hasChanges) => {\n if (hasChanges) {\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_confirm\"),\n [this.translate.instant(\"business_purpose_discard_msg\")],\n this.translate.instant(\"label_cancel\"),\n this.translate.instant(\"label_confirm\"),\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n } else {\n this.alertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n }\n });\n\n // this.alertPanelModelForReload = new AlertPanelModel(\n // true,\n // this.translate.instant(\"label_alert\"),\n // [\"We just updated this page.\",\"You will not be able to use the application until you refresh.\",\"Please refresh the page to access the latest version.\"],\n // \"\",\n // this.translate.instant(\"Refresh\"),\n // false,\n // \"\"\n // );\n }\n\n\n\n closeAlertPanel(returnValue) {\n this.alertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n this.alertService.onUserAction(returnValue);\n }\n\n closeAlertPanelForReload(returnValue) {\n this.alertPanelModelForReload = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n if (returnValue) {\n location.reload();\n }\n }\n onRefreshClick(){\n window.location.reload();\n }\n showAppUpdatePanel = false;\n\n}\n","export class BuildDetails {\n buildNumber: string;\n}","import { Injectable } from '@angular/core';\nimport { BuildDetails } from './build-details';\n\n@Injectable({ providedIn: 'root' })\nexport class BuildDetailsService {\n public buildDetails: BuildDetails;\n\n constructor() {\n this.buildDetails = new BuildDetails();\n }\n}","\nexport class Commonvariables {\n static Configuration = class {\n static emailPattern =\n \"^[a-zA-Z0-9+]+(?:.*_*[a-zA-Z0-9+]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?$\";\n static emailPattern2 =\n /^(?!.*\\.{2})([a-zA-Z0-9!#$%&'*+\\/=?^_`{|}~-]+([\\.][a-zA-Z0-9!#$%&'*+\\/=?^_`{|}~-]+)*)@((([\\-]?[a-zA-Z0-9]){2,}[\\.])*(([a-zA-Z0-9][\\-]?))+).(([\\.]([a-zA-Z0-9][\\-]?){2,}([a-zA-Z0-9])*)+)$/;\n };\n}\n\nexport const BackgroundTaskTopics = {\n Billing: \"billing\",\n Expense: \"expense\",\n CataLog:\"catalog\",\n Notification: \"notification\",\n Export: \"export\",\n GradeImport: \"gradeimport\"\n};\n\nexport const BackgroundTaskKeys = {\n BulkInviteEmployees: 'BulkInviteEmployees',\n BulkApprovalAction: 'BulkApprovalAction',\n BulkUniversalImportEmployees: 'BulkUniversalImportEmployees',\n BulkExportExpensesAction: 'BulkExportExpensesAction',\n BulkUpdateExpenseApprovers: 'BulkUpdateExpenseApprovers',\n BulkCostCentreImport: 'BulkCostCentreImport',\n BulkUniversalCostCentreApprovers: 'BulkUniversalCostCentreApprovers',\n BulkUniversalAdvanceClaimantPolicy: 'BulkUniversalAdvanceClaimantPolicy',\n BulkImportXeroContacts: \"BulkImportXeroContacts\",\n BulkUniversalImportCustomers: \"BulkUniversalImportCustomers\",\n BulkUniversalImportCounterApprover:\"BulkUniversalImportCounterApprover\",\n BulkImportEmployees: 'BulkImportEmployees',\n BulkCreditCardExpensesImport: \"BulkCreditCardExpensesImport\",\n BulkCompanyAssignToEmployee: \"BulkCompanyAssignToEmployee\",\n BulkUniversalImportCategories:'BulkUniversalImportCategories',\n BulkUniversalImportFxRate:'BulkUniversalImportFxRate',\n XeroTokenExpiryNotification : \"XeroTokenExpiryNotification\",\n BulkInviteVendors: 'BulkInviteVendors',\n BulkImportAssignCreditCard: \"BulkImportAssignCreditCard\",\n BulkImportGrades:'BulkImportGrades',\n}\n\nexport const BackgroundTaskNotificationHeaders = {\n BulkInviteEmployees: 'ManageEmployeeImportingHeader',\n BulkApprovalAction: 'FinanceApprovingExpensesHeader',\n BulkApprovalActionApprover: 'ApproverApprovingExpensesHeader',\n BulkExportExpensesAction: 'ExportExpensesHeader',\n BulkUniversalImportEmployees: 'BulkUniversalImportEmployeesHeader',\n BulkCostCentreImport: 'BulkCostCentreImportHeader',\n BulkUniversalCostCentreApprovers: 'BulkUniversalCostCentreApproversHeader',\n BulkUniversalAdvanceClaimantPolicy: 'BulkUniversalClaimantAdvancePolicyHeader',\n BulkUniversalImportCustomers: 'BulkUniversalImportCustomersHeader', \n BulkImportEmployees: 'BulkImportEmployeesHeader',\n BulkCreditCardExpensesImport: 'BulkCreditCardExpensesImportHeader',\n BulkCompanyAssignToEmployee: 'BulkCompanyAssignToEmployeeHeader',\n BulkUniversalImportCategories: 'BulkUniversalImportCategoriesHeader',\n BulkUniversalImportCounterApprover: \"BulkUniversalImportCounterApproverHeader\",\n BulkUniversalImportFxRate: \"BulkUniversalImportFxRateHeader\",\n XeroTokenExpiryNotification : \"Xero Token Expiry Notification\",\n BulkInviteVendors: 'VendorImportingHeader',\n BulkImportAssignCreditCard: 'BulkImportAssignCreditCardHeader',\n BulkImportGrades: 'BulkImportGradesHeader'\n}\n\nexport const BackgroundTaskNotificationBody = {\n BulkInviteEmployees: \"ManageEmployeeImportingBody\",\n BulkUpdateEmployees: \"ManageEmployeeUpdatingBody\",\n BulkApprovalAction: \"FinanceApprovingExpensesBody\",\n BulkApprovalActionApprover: \"ApproverApprovingExpensesBody\",\n BulkExportExpensesAction: \"ExportExpensesBody\",\n BulkUniversalImportEmployees: \"BulkUniversalImportEmployeesBody\",\n BulkUpdateExpenseApprovers: \"BulkUpdateExpenseApproversBody\",\n BulkCostCentreImport: \"BulkCostCentreImportBody\",\n BulkUniversalCostCentreApprovers: \"BulkUniversalCostCentreApproversBody\",\n BulkUniversalAdvanceClaimantPolicy: \"BulkUniversalClaimantAdvancePolicyBody\",\n BulkUniversalImportCustomers: \"BulkUniversalImportCustomersBody\",\n BulkImportEmployees: \"BulkImportEmployeesBody\",\n BulkCompanyAssignToEmployee: \"BulkCompanyAssignToEmployeeBody\",\n BulkCreditCardExpensesImport: \"BulkCreditCardExpensesImportBody\",\n BulkUniversalImportCategories: 'BulkUniversalImportCategoriesBody',\n BulkUniversalImportCounterApprover: \"BulkUniversalImportCounterApproverBody\",\n BulkUniversalImportFxRate: \"BulkUniversalImportFxRateBody\",\n BulkInviteVendors: \"VendorsImportingBody\",\n BulkUpdateVendors: \"VendorsUpdatingBody\",\n BulkImportAssignCreditCard: \"BulkImportAssignCreditCardBody\",\n BulkImportGradeBody: 'BulkImportGradeBody',\n};\n\nexport const storeURLs = {\n playStore:\n \"https://play.google.com/store/apps/details?id=com.expenseondemand.soloexpenses\",\n appStore: \"https://apps.apple.com/in/app/expenseondemand-for-smb/id643685343\",\n website: \"https://www.expenseondemand.com/\",\n};\n\nexport const socialMediaLinks = {\n facebook:\n \"http://www.facebook.com/pages/Solo-Expenses/597280680311359?fref=ts\",\n linkedIn: \"https://www.linkedin.com/company/4830988\",\n twitter: \"https://twitter.com/soloexpenses\",\n youtube: \"https://www.youtube.com/channel/UCY3WsQPGK84vCqNjzYuRukw\",\n};\n\nexport const privacyPolicyURl =\n \"../ExpenseOnDemand-SMB-Version-Privacy-Policy-V2.pdf\";\nexport const termsOfServiceURl = \"../ExpenseOnDemand-SMB-TOS-V2.pdf\";\n\nexport const HowDoIVideoLinks: any = {\n SetupOrganisation:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hcA-cqHUPsYv_BSywbq1Jj\",\n CurrencySetup:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hVIC09-KTCOQXyuNxjooE4\",\n DeleteTestData:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8jCNQAw9AqnlYjbwYpnvTXp\",\n ManageEmployees:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8iepD3e_NdmiBl8C6TjA33P\",\n AssignApprovers:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8htXq_SlLwmdjUQpMmUgpLu\",\n ConfigureApproverRules: \"https://www.youtube.com/embed?list=PLugzlMICZR8jd_goUXDkTjo5kUNCUy7Nw\",\n AssignApproversToClaimants: \"https://www.youtube.com/embed?list=PLugzlMICZR8htXq_SlLwmdjUQpMmUgpLu\",\n // AssignApproversToCostCentre: \"https://www.youtube.com/embed?list=PLugzlMICZR8jd_goUXDkTjo5kUNCUy7Nw\",\n SetupBasicMileage:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8gvmBbMWdutPPhNA-6Bsrpd\",\n YesPayBizPortal:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8h-Psh1p9IHyPLzBr9vVUXk\",\n // FMOneStepApproval: \"https://player.vimeo.com/video/349615133\",\n // CreateExpense: \"https://player.vimeo.com/video/260244296\",\n // ExpenseList: \"https://player.vimeo.com/video/263002780\",\n // MyExpenses: \"https://player.vimeo.com/video/263001666\",\n // OrganisationExpenses: \"https://player.vimeo.com/video/328398856\",\n PreApprovals:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hgG0Xn1hSCL-gLOjaX2Nko\",\n // PreApprovalOneStepApproval: \"https://player.vimeo.com/video/354194593\",\n // VendorOneStepApproval: \"https://player.vimeo.com/video/349615323\",\n // VendorTwoStepApproval: \"https://player.vimeo.com/video/340645071\",\n \n // AssignEmployeestoGrades: \"https://player.vimeo.com/video/261474956\",\n TwoStepApproval:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8iSnflUbVvgy7AzEOtrZZPe\",\n // VendorManagement: \"https://player.vimeo.com/video/331798946\",\n SetupCostCentres:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8ilsHJDwjQu0tUjEcb5pjbV\",\n // AssignCostCentres: \"https://player.vimeo.com/video/261475098\",\n SetupImportCc: \"https://www.youtube.com/embed/videoseries?si=m9Py6nPon6oeiLtm&list=PLugzlMICZR8gLwyl514FxmLgiLzs3_6Mh\",\n AssignCcToClaimants: \"https://www.youtube.com/embed/videoseries?si=0pur9LNzho12_Ncr&list=PLugzlMICZR8ggxE-PUxvbhe0G6VTlG4TP\",\n SetupDisplayNameCodeOfCc: \"https://www.youtube.com/embed/videoseries?si=ZfudOeeuSayinJnd&list=PLugzlMICZR8hBYghQrLcehcbv75IHnb9h\",\n SetupCustomer: \"https://www.youtube.com/embed/videoseries?si=mPX-lPNWWbPUikZ4&list=PLugzlMICZR8j2_twdPqXebwcc5jzrF10y\",\n SetupCcAccessRights: \"https://www.youtube.com/embed/videoseries?si=i9Xe1P3M_hqLd4v3&list=PLugzlMICZR8jUYagbgW6oc6A--wReKU3h\",\n ActivateClaimantsWhoCanDelegate: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8hJGhS5hK7znXTgS0r7clCU\",\n ActivateClaiamantsWhoWillDoTheWork: \"https://www.youtube.com/embed/videoseries?si=-z9mOXtb03SlpWTs&list=PLugzlMICZR8jlXOBBj0Ap7WkzSvNQxHBa\",\n ManageDelegatorsAndDelegates: \"https://www.youtube.com/embed/videoseries?si=V-ng4XMniKNyRlTX&list=PLugzlMICZR8gP215pkqu1pXGve07YOXS8\",\n ExpenseCategoryManagement:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hcvfcGEtf9plQjk8_k_qNF\",\n // TaxRatewithComponents: \"https://www.youtube.com/embed?list=PLugzlMICZR8hPjKl1Lgzxf-xrO5HOYqxp\",\n TaxRatewithoutComponents:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8jQf-Yv7a_ij2es0q1f2Plj\",\n TaxRatewithComponents:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hPjKl1Lgzxf-xrO5HOYqxp\",\n // GeneralSettings: \"https://player.vimeo.com/video/261764790\",\n // GeneralSettingsINR: \"https://player.vimeo.com/video/349615817\",\n AssignTaxtoCategories:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hVIObATldvjwKV4WbigeXA\",\n // SetupPolicyAssigntoGrades: \"https://player.vimeo.com/video/261764877\",\n //SetupUKMileageRates: \"https://www.youtube.com/embed?list=PLugzlMICZR8i85Rrw4e_eMmk-WED8arEj\",\n //VehicleManagement: \"https://player.vimeo.com/video/277604380\",\n // Triangulation: \"https://player.vimeo.com/video/277408514\",\n // ExportDatatoOtherSystems: \"https://www.youtube.com/embed?list=PLugzlMICZR8jpha9c7VwDIcZr362dlWvU\",\n // ExpensesTwoStepApproval: \"https://player.vimeo.com/video/356119256\",\n Tally:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hy4xVveaMWJUwlUmeEoytj\",\n Xero:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8jbh5JqouUMyPiZKuuD2NuW\",\n QuickBooks:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8jK2xFlslYF9JgAcD3vQ8E4\",\n Sage50:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hjHBNvbeuQegUAdrTSueZL\",\n // CardDismissedTransactions: \"https://player.vimeo.com/video/262785095\",\n // CardImportStatement: \"https://player.vimeo.com/video/262785095\",\n CardSetup:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8iMgRqlA9_YnQs6iP5kUd1R\",\n // CardAssignClaimant: \"https://player.vimeo.com/video/262785095\",\n // CardAssignClaimantImport: \"https://player.vimeo.com/video/262785095\",\n // CardImportTemplate: \"https://player.vimeo.com/video/262785095\",\n // CardRegister: \"https://player.vimeo.com/video/262785095\",\n // CardRules: \"https://player.vimeo.com/video/262785095\",\n ExpenseExport:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8jpha9c7VwDIcZr362dlWvU\",\n // ExpenseExportLog: \"https://player.vimeo.com/video/263490841\",\n // ImportCostCentre: \"https://player.vimeo.com/video/261475098\",\n // ImportGrades: \"https://player.vimeo.com/video/261474956\",\n InvoicesSubscription:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8ilLjOuUJtGOj26TJV8kUJF\",\n // ChangePassword: \"https://player.vimeo.com/video/259328865\",\n // TaxRateSetup: \"https://www.youtube.com/embed?list=PLugzlMICZR8jQf-Yv7a_ij2es0q1f2Plj\",\n TaxSetup:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hHTK79mU4k39_bzPAt-tdG\",\n CreateNewReport:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8h0wbNnGuG2Evba_gi4-pKz\",\n Pricing:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hgpmcS5TIRwAkdTAySO8nH\",\n // ExistingReport:\"https://player.vimeo.com/video/259328865\",\n // ExportLog: \"https://player.vimeo.com/video/259328865\",\n // EditExistingReport:\"https://player.vimeo.com/video/259328865\",\n // YesBankImportEmployees:\"https://player.vimeo.com/video/259328865\",\n BillingPlan: \"https://www.youtube.com/embed?list=PLugzlMICZR8j8LsVW8WNTvDU6ncDc-3XX\",\n // YesBankRegistration:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToEmpoyeesTally:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToEmpoyeesXero:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToEmpoyeesQuickBooks:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToEmpoyeesSage50:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToTaxTally:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToTaxXero:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToTaxQuickBooks:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToTaxSage50:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToCategoryTally:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToCategoryXero:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToCategoryQuickBooks:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToCategorySage50:\"https://player.vimeo.com/video/259328865\",\n // AssignCodesToCostCentreTally:\"https://player.vimeo.com/video/259328865\",\n AdvancesSetup:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8jzUQtcFqq7gSmFFrSRscHx\",\n TriangulationOfficeNameAddress:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hVuDoN0X5tOgS6NCgkFK8m\",\n SetupAdvancedMileage:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8iumkWoAbGrO7wxT4rXnIMi\",\n // TriangulationSetupOfficeWorker: \"https://www.youtube.com/embed?list=PLugzlMICZR8hDkkL8C-IvsWPkcpYdC_li\",\n SetupUkHMRCCompliantRates:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8i85Rrw4e_eMmk-WED8arEj\",\n //UkMileageQuickAssignment: \"https://player.vimeo.com/video/259328865\",\n AssignVehicleToClaimants:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hutwJrmhzNSIz5xZQuCH3t\",\n //TriangulationSetupHomeWorker: \"https://player.vimeo.com/video/259328865\",\n SetupUkHMRCCompliantRatesDefault:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8i85Rrw4e_eMmk-WED8arEj\",\n // ReviewYourOrder:\"https://player.vimeo.com/video/259328865\",\n // ShoppingCart: \"https://player.vimeo.com/video/259328865\",\n // PayAllExpenses: \"https://player.vimeo.com/video/259328865\",\n // PayExpenses: \"https://player.vimeo.com/video/259328865\"\n SetupExpensePolicy:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8jXvAN5f1EvUB7AyJRypKMT\",\n AssignVehicleToClaimantsAdvance:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hSFvJixjzEBCOn7tDjUKiq\",\n SetupCustomers:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8j2_twdPqXebwcc5jzrF10y\",\n BusinessPurpose:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8gi5K4QXMTg3zcup8O7s67S\",\n Liability:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8g7fNpAzhCNseWAiw9WN85_\",\n SetupSingleRate:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8iiazDMeWcqN-Gp1wtjJ1U8\",\n AuditTrail:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hWc9deP5yno-atGRN3P1RG\",\n ManualVat:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8gDd7IfhywiQ4IJmTdr8xpw\",\n SetupDifferentialRate:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8jL2xc-rZ8xfoKARC7R0_d3\",\n AdditionalFields:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8ggNu0tZIebglBFI6hz8-_k\",\n ExpenseSubmissionTimeLimit:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8ic0ocSdPVI3Ieg6mVUETS3\",\n vatnovat:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8grqvMQaqkK8a0G2q2yM_s3\",\n SecondaryFM:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8ibsirN72ndbtQPNBFFyD2y\",\n AutoApproval:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hIIpqTQNgZCrB-pFHluIg8\",\n DuplicateRule:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hNHNJcq0tWPTJiUUt-ZvHF\",\n ExpenseCappingDaily:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8j1MUsoIvHd6rs4xQA-2iL3\",\n ExpenseCappingMonthly:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8gZfTQsKibY3GOcu_ydQMNh\",\n ExpenseCappingYearly:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8ifRNxVywYpA6A1jnV8d1e0\",\n OverallDailyLimit:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8gagB4WsSdsbDXqidgeW4zl\",\n ExpenseEscalationSettings:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hgvVhaDbEycVtATxBi7_6f\",\n PerPersonLimit:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8h7x5TW0TPJAEkTb6jKcUOd\",\n PerNightLimit:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8iUjRhUBOln0MIsMxVt4xo9\",\n nr:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hCLGcjE73Pt2sh7AQhXTse\",\n fc:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hYoJvxJJZcQl3O0cYgBgUz\",\n nrfcsetting:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hdnIaqpQOwFv4y5EfWp-nv\",\n ReferNEarn:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8gCNc_58XL5QeZmq1K6gaF-\",\n AssignCategoryToGrade:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8h8q9H4qVPdLYOL5JdD0A7s\",\n ApproverDeputy:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8gJ8-XD14ry-rDfxLyBfane\",\n OutOfOffice:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8gJ8-XD14ry-rDfxLyBfane\",\n ProjectBudgetSummary:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8gFSpGLX1-oT7RneSr6PZ72\",\n MultipleCompanies: \"https://www.youtube.com/embed?list=PLugzlMICZR8g56SykrpJTciUP__T6Q-96\",\n AssignEmployeesToCompany: \"https://www.youtube.com/embed?list=PLugzlMICZR8gtJyO2wD03X2zq0jZrGgf4\",\n AssignMileageRateToGrade:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8gjhd-lMdKJuFl9jyl7POEu\",\n AssignAccountCodeToCompany: \"https://www.youtube.com/embed?list=PLugzlMICZR8iWrQ-pPwslPuR0MQ64WzG3\",\n OpenAPIs: \"https://www.youtube.com/embed?list=PLugzlMICZR8g1C-CjtppzcDpwC3h14hJm\",\n MultipleCompaniesConfigureRules: \"https://www.youtube.com/embed?list=PLugzlMICZR8hYsdlb0o-WjMQkik4MpTq7\",\n MultipleCompaniesConfigureRulesSetup: \"https://www.youtube.com/embed?list=PLugzlMICZR8g8hCUo3gNgJsqpxXpGchaI\",\n ClaimantOnWebExpenseList: \"https://www.youtube.com/embed?list=PLugzlMICZR8gHDyvsNBo-lDqEgKkl987j\",\n ApproverHistoricalView:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8jNQlcGafNmyWp2S2uwPYpq\",\n SetupLocation:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hsfyXao5doXvCutaDVv1e2\",\n AttendeeType: \"https://www.youtube.com/embed?list=PLugzlMICZR8gl-UWwAjp30Z7PoSIaSxZM\",\n DutyofCare: \"https://www.youtube.com/embed/videoseries?si=sI3SssrQipvPSQhn&list=PLugzlMICZR8jBIi-wm0f3phfvrCatppKK\",\n ApproveDutyofCare: \"https://www.youtube.com/embed?list=PLugzlMICZR8jXUrh1MNZI5Ub-r04xEgq7\",\n MonthlyCappingClaimantWise: \"https://www.youtube.com/embed?list=PLugzlMICZR8i3TdRLbRLz_BbcwqGB3t89\",\n YearlyCappingClaimantWise: \"https://www.youtube.com/embed?list=PLugzlMICZR8iRmFCFipzYgPGPY3J05uNt\",\n SetupSupplier:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8gqxZuJA0_vBb99s_fYc1lz\",\n UniversalEmployeesImportTemplate: \"https://www.youtube.com/embed?list=PLugzlMICZR8gIyWPByVoc8qdAO_aAVlrT\",\n LeaveManagement: \"https://www.youtube.com/embed?list=PLugzlMICZR8iIDfqdeoedLBf7yAr_1ds8\",\n UniversalImportTemplate: \"https://www.youtube.com/embed?list=PLugzlMICZR8gIyWPByVoc8qdAO_aAVlrT\",\n MultipleCountry: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8g56SykrpJTciUP__T6Q-96\",\n // ImportCreditCardStatement: \"https://www.youtube.com/embed?list=PLugzlMICZR8iMgRqlA9_YnQs6iP5kUd1R\",\n ImportCreditCardStatement: \"https://www.youtube.com/embed/videoseries?si=M829NqpK6KSmx-wR&list=PLugzlMICZR8jfwVk3EMowX1Y5Y0LzdQko\",\n DiscountContractWork: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8g6_yfaLnp88R6yXtE1o_Y4\",\n DiscountAndCostControl: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8izs6rCBoX7ktGQzSX2Wkjc\",\n DiscountContract: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8g6_yfaLnp88R6yXtE1o_Y4\",\n MultipleVehicle: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8gk7CSlETsufM184-KC1V6b\",\n AssignMultipleVehicle: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8im5BHhmOfLiCaSV19UIGWX\",\n PassengerLoadMiles: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8jg_U0adcT7w4d-_dY0mpjV\",\n AntiFraudMultiple: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8jmoXJqin8g79cpRj6u9FpH\",\n ComplianceStatement: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8gaEGXfDSg1U5j0S0ZFCxD8\",\n ImportEmployees: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8gdDNJa_qn32n5Kuym-9H3l\",\n CashAdvance: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8jKrw9mx5GGb728myVg0m1w\",\n Sage200:\"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8hCen_H_LOoSOLRzjLNR2wg\",\n ExpenseCategorySetup: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8hTbum8jgz4Lcpx6zCoCyc-\",\n ImportCategories: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8iOcwNioBvKSKWN3ybgKQ8I\",\n ForgotPassword: \"https://www.youtube.com/embed/clAvwbrw4B0\",\n DelegateSetup: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8hJGhS5hK7znXTgS0r7clCU\",\n CounterApprover:\"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8iV-_QBkNpzkt9-IIZhDv1F\",\n DelegateAssign:\"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8i1tdCkZuEg1F1jyTLrF5CX\",\n CreateDelegatorsExpense:\"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8hdKSYq1yCazGPaGjjVYd_j\",\n ImportExportMileageRates:\"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8jOjaa0SDL6HOV7PIqxEZ9n\",\n FxRate:\"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8j13aCPiLkMYeGm81IFU0bZ\",\n YearEndRule:\"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8hoBoMeh1HyOxYILTQgGug-\",\n ImportDeputies:\"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8g0aPnWtjuOAjnYlCyyud8P\",\n ImportVehicles:\"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8jwauIDhq9on93g8zFWiKCY\",\n ImportHomePostcodes:\"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8haaWLvWbtZZhxqIWj6Tg8q\",\n ImportMileageRates: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8jOjaa0SDL6HOV7PIqxEZ9n\",\n APAutomation: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8jr0IZ17rzErxaU6qDXa3fC\",\n ApproverKYC: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8jKyry-fW4Jy_fgMT3KhDus\",\n AssignApproversToCostCentre: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8gGLwEGCVmcpax2pR6YCS4-\",\n DisappearingExpense : \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8jtohXf2n_07Mvh5nDxDWhz\",\n CarbonFootprint: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8j3ln8EwoEOUa8oOC8ehvls\",\n SSO:\"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8h4Yl1TfJf-kgh27TBcbCeh\",\n FMCanEditExpense: \"https://www.youtube.com/embed/videoseries?si=4YfFxNpPJbqP1zNo&list=PLugzlMICZR8gyUQ4TxywbrgsZpguxlVkC\",\n AssignGradetoClaimants: \"https://www.youtube.com/embed/videoseries?si=iqww7ImIQD0UspKo&list=PLugzlMICZR8gzXqL-76AXQSBureYY4rc2\",\n ImportGrade: \"https://www.youtube.com/embed/videoseries?si=kDxwrFipr_wn18aD&list=PLugzlMICZR8gShWpE9Z9GsVKYt5Kj5dlr\",\n GradeWizard: \"https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8i9SxQzHjyOrXHUcldv8Rwx\",\n SetupGrades:\"https://www.youtube.com/embed/videoseries?si=QxiOvjAsZHmgmekE&list=PLugzlMICZR8i9SxQzHjyOrXHUcldv8Rwx\",\n ImportGrades: \"https://www.youtube.com/embed/videoseries?si=fv4mNrkiKDBxErT9&list=PLugzlMICZR8gShWpE9Z9GsVKYt5Kj5dlr\",\n Container: \"https://www.youtube.com/embed/videoseries?si=H40sClb5HyQ6ka8A&list=PLugzlMICZR8jwvUT66Fzb-oLQUF90qcfp\",\n AddSetupAndManageEmployees: \"https://www.youtube.com/embed/videoseries?si=5P6FlyZ-DUukv10l&list=PLugzlMICZR8iepD3e_NdmiBl8C6TjA33P\",\n ManageEmployeesImportEmployees: \"https://www.youtube.com/embed/videoseries?si=bibEMDjgTmj2rAe1&list=PLugzlMICZR8gdDNJa_qn32n5Kuym-9H3l\",\n ImportExportExpenseCategories: \"https://www.youtube.com/embed/videoseries?si=pRdtrQrEibRGu2Xh&list=PLugzlMICZR8iOcwNioBvKSKWN3ybgKQ8I\",\n SetupAdditionalField: \" https://www.youtube.com/embed/videoseries?list=PLugzlMICZR8ggNu0tZIebglBFI6hz8-_k\",\n Assignfieldtocategoriesstep5: \"https://www.youtube.com/embed/videoseries?si=j9QYh59EIew_Rejx&list=PLugzlMICZR8iy1XoCo011LA86_6Rdi7Wj\",\n RollBackExportedExpenses: \"https://www.youtube.com/embed/videoseries?si=HTKgk-1ffmuJhf9P&list=PLugzlMICZR8jT4MgsQpZy1Pa7zOCe8rek\",\n ccSetupStep1:\"https://www.youtube.com/embed/videoseries?si=Axbic7gWNWPjmCQH&list=PLugzlMICZR8h86IB6jr9FCO_3p3vd5REn\",\n ccSetupStep2:\"https://www.youtube.com/embed/videoseries?si=qw-5PtvGioEvIW4Q&list=PLugzlMICZR8iT44ujSFS4sv_EtlA2JYc2\",\n ccSetupStep3:\"https://www.youtube.com/embed/videoseries?si=31oL5cbINB81pIGa&list=PLugzlMICZR8iQsUvIswG11PJ8P9aHqsE9\",\n ccSetupStep4:\"https://www.youtube.com/embed/videoseries?si=rjk95M_hCL2yVhPb&list=PLugzlMICZR8irf6KkH6m62OJhQbPBhW2e\",\n ccSetupStep5:\"https://www.youtube.com/embed/videoseries?si=byPopj3dORUSAXAl&list=PLugzlMICZR8hr4PxyslEkROcLd-0eXHlZ\",\n ccSetupStep6:\"https://www.youtube.com/embed/videoseries?si=D1y8lAM2Jxy1hvX0&list=PLugzlMICZR8j71sQPGGfT_FQK7ChGnA9t\",\n ccSetupStep7:\"https://www.youtube.com/embed/videoseries?si=2LQzWCTXs4pfW189&list=PLugzlMICZR8gCFijjHevAChpeItdUVkDf\",\n ccSetupStep8:\"https://www.youtube.com/embed/videoseries?si=Ebz3TUnjey_INdD1&list=PLugzlMICZR8g1WkeDZHhKrSH1ylx_VQUw\",\n ConfigureNamesOfRecieptTypes: \"https://www.youtube.com/embed/videoseries?si=AhYeYc4isvscyusX&list=PLugzlMICZR8jz4Be6RPJCXUmZ06YbA-A1\",\n TurnOnReceiptTypeDisplayToClaimant: \"https://www.youtube.com/embed/videoseries?si=HjZ-6080rOPkhQ5o&list=PLugzlMICZR8h_QT1WyHVmv_kNnQ6Amamz\",\n ConfigurePolicyViolationTaxNoTax: \"https://www.youtube.com/embed/videoseries?si=m3xokw7Otg6TlTjX&list=PLugzlMICZR8ioC18HU5IRPIentcu4T9SN\",\n EnableRecieptNumberCapture: \"https://www.youtube.com/embed/videoseries?si=MOf9EUXQ_dXBhjc&list=PLugzlMICZR8i8OJHmT27E6uFwpZ9E4Dmd\",\n SpecialCatStep1: \"https://www.youtube.com/embed/videoseries?si=KD23YIoIYbiJcwmK&list=PLugzlMICZR8gQKUyIP3nAGieONXKPxXvE\",\n SpecialCatStep2: \"https://www.youtube.com/embed/videoseries?si=F7JyC9V2XeCq5K5C&list=PLugzlMICZR8j7yYAUPMABV-G2zwoI9rAT\",\n SpecialCatStep3: \"https://www.youtube.com/embed/videoseries?si=LfWl_vP5FVyflJ7Z&list=PLugzlMICZR8gYEvtjUxBDFu0bDCmLdxr9\",\n SpecialCatStep4: \"https://www.youtube.com/embed/videoseries?si=W8eSrJG46XbUYIQY&list=PLugzlMICZR8ghrg22zUuj7ChfKEi8c0Wi\",\n XeroSetupStep2: \"https://www.youtube.com/embed/videoseries?si=qJ9lPHchS3T_opUT&list=PLugzlMICZR8gWN9Z6ggzZ1i0b01BVN2VZ\",\n XeroSetupStep3: \"https://www.youtube.com/embed/videoseries?si=ldAGInECAVEjEOQm&list=PLugzlMICZR8g4eCPEZmC-l-Y8kmo3YQeE\",\n XeroSetupStep4 : \"https://www.youtube.com/embed/videoseries?si=rosmwUngQ_pI6ONv&list=PLugzlMICZR8hs44JTFDXZnVVcKnvhjurx\",\n XeroSetupStep5 : \"https://www.youtube.com/embed/videoseries?si=lS7aNY_ywEw8nNoF&list=PLugzlMICZR8jsL97CjujT-dND1WPHv7WN\",\n XeroSetupStep6 : \"https://www.youtube.com/embed/videoseries?si=-dQXmqbxLjaSJEY1&list=PLugzlMICZR8j80o03o3sxZTh7Uc7isqcp\",\n XeroSetupStep7 : \"https://www.youtube.com/embed/videoseries?si=drq8CRANtoFyXqcw&list=PLugzlMICZR8jzlhh-Eg_JvVTx4w8IKLXq\",\n XeroSetupStep8 : \"https://www.youtube.com/embed/videoseries?si=DeJa22C38i_pEXW6&list=PLugzlMICZR8jotRxst3pZTrzt1Q8guzW8\",\n XeroSetupStep9 : \"https://www.youtube.com/embed/videoseries?si=-j1IeYPaoon3t3an&list=PLugzlMICZR8gN0J9aizg33WEFIQsgZMh5\",\n XeroSetupStep10 : \"https://www.youtube.com/embed/videoseries?si=C6QYjHtObtsny0Ma&list=PLugzlMICZR8jxbAOrHr06Fy3UVYKzF7aO\",\n XeroSetupStep11 : \"https://www.youtube.com/embed/videoseries?si=PF9jmwdIuFLc5s5w&list=PLugzlMICZR8iEMHpkWck7ZXCfktXzvjT-\",\n XeroSetupStep12 : \"https://www.youtube.com/embed/videoseries?si=Uj3bRZlb8PmA6OoI&list=PLugzlMICZR8ifd7nWLLRNzIiULELKpqN5\",\n XeroSetupStep13 : \"https://www.youtube.com/embed/videoseries?si=_8BBS7qdFplHDo0U&list=PLugzlMICZR8ixKcV9T6VTB_BMeWrIA_ni\",\n TaxSetupStep1: \"https://www.youtube.com/embed/videoseries?si=1gOBvaS-4VbvBW8k&list=PLugzlMICZR8hZjQHBelReNf76EXT44TTB\",\n TaxSetupStep2: \"https://www.youtube.com/embed?list=PLugzlMICZR8hHTK79mU4k39_bzPAt-tdG\",\n TaxSetupStep4: \"https://www.youtube.com/embed/videoseries?si=7KUcaFM0uOH8XqNO&list=PLugzlMICZR8i_piXkk6xw9_bPviqinyss\",\n TaxRateSetupStep3withoutComponents:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8jQf-Yv7a_ij2es0q1f2Plj\",\n TaxRateSetupStep3withComponents:\n \"https://www.youtube.com/embed?list=PLugzlMICZR8hPjKl1Lgzxf-xrO5HOYqxp\",\n VatnovatStep1: \"https://www.youtube.com/embed/videoseries?si=8KXjvfN7gX6TkeI-&list=PLugzlMICZR8gisSnWR2GD6qwLA7XSeP6H\",\n VatnovatStep5: \"https://www.youtube.com/embed/videoseries?si=yrdOz21OpRUZ5QK7&list=PLugzlMICZR8jDrY7MQsLh719UmbPGqbbh\",\n\n BuildReportWizardStep1: \"https://www.youtube.com/embed/videoseries?si=_ZqhM74qsuez_39B&list=PLugzlMICZR8gpJHPvEPSN3j6Ah-1AFuIV\",\n BuildReportWizardStep2: \"https://www.youtube.com/embed/videoseries?si=Sef18b6eDJ2U4CRx&list=PLugzlMICZR8g4BmQmJZruzyHnov2FabYQ\",\n BuildReportWizardStep3: \"https://www.youtube.com/embed/videoseries?si=UMAoi0dU1QrDzFxU&list=PLugzlMICZR8gSP6rHBUJAHB-sETHif5mw\",\n\n QuickbooksWizardStep2: \"https://www.youtube.com/embed/videoseries?si=MWMtbhDlb4zSnAbo&list=PLugzlMICZR8hzZ5zhJiPpSx-FuZcQPc5t\",\n QuickbooksWizardStep3: \"https://www.youtube.com/embed/videoseries?si=o9lzLHCPhUtTQuie&list=PLugzlMICZR8hc7myhf-__T83PcLRjdCae\",\n QuickbooksWizardStep4: \"https://www.youtube.com/embed/videoseries?si=QDj1_KNztXmBhmJD&list=PLugzlMICZR8gWbCZYCbQnVKIzc5c1Rq9Q\",\n QuickbooksWizardStep5: \"https://www.youtube.com/embed/videoseries?si=ubEQxnnG1pXXWpbX&list=PLugzlMICZR8ilNIkOCZ5YlxbJwsavW5Fy\",\n QuickbooksWizardStep6: \"https://www.youtube.com/embed/videoseries?si=fOA2Qu1miTHcrSuO&list=PLugzlMICZR8iLrA_Orm744dueZpETeovE\",\n\n\n\n\n DutyofCareStep2: \"https://www.youtube.com/embed/videoseries?si=aKvSg9NjUmrwkDNZ&list=PLugzlMICZR8gK4f5wskljaAiEN_IDc_Hd\",\n DutyofCareStep3: \"https://www.youtube.com/embed/videoseries?si=iG45e6HdwqoHlAxZ&list=PLugzlMICZR8g_Byioo-6u6Yc4Qd91FAuE\",\n DutyofCareStep4: \"https://www.youtube.com/embed/videoseries?si=0YmV-PRtVVdUC0eL&list=PLugzlMICZR8g0kt2oKnUWjq3SjAcUwgPP\",\n DutyofCareStep5: \"https://www.youtube.com/embed/videoseries?si=RhRqe3e3YgT5Sf1I&list=PLugzlMICZR8i2Q-ynNodXQdNXsi4gmD5Z\",\n MFA:\"https://www.youtube.com/embed/videoseries?si=AULZpJokrt1YL4FV&list=PLugzlMICZR8h2Kb9y4K_lcWJJGRirkE8o\",\n\n DeputyforApproverStep1: \"https://www.youtube.com/embed/videoseries?si=zG8YQjSP4biBXE9E&list=PLugzlMICZR8hcxIGTRCbCrG0DJlN4Ld69\",\n DeputyforApproverStep2: \"https://www.youtube.com/embed/videoseries?si=L0pULde0O-stwOoz&list=PLugzlMICZR8jWRlJ8tIq55ikq_8U43Iqm\",\n DeputyforApproverStep3: \"https://www.youtube.com/embed/videoseries?si=SBSibeOXgaH6jOdF&list=PLugzlMICZR8hH5NfaOH7eiOcb4WKL21dr\",\n DeputyforApproverStep4: \"https://www.youtube.com/embed/videoseries?si=3aJmVYRcxelNgKwT&list=PLugzlMICZR8iKV3uK5vSzqOxMmJ9NdYFC\",\n\n MultipleLevelCounterApproverStep1: \"https://www.youtube.com/embed/videoseries?si=4iJBukxzSH2B9Eeb&list=PLugzlMICZR8jDUxSUQe8zCz189TW-w7Kb\",\n MultipleLevelCounterApproverStep2: \"https://www.youtube.com/embed/videoseries?si=lEKonxIQsNaeEanZ&list=PLugzlMICZR8hmpniRfjE-ogV-vZ-aTifX\",\n MultipleLevelCounterApproverStep3: \"https://www.youtube.com/embed/videoseries?si=DhdUgENXdoieTVwP&list=PLugzlMICZR8jdl7vp_mjk_V-OIoatdLNJ\",\n MultipleLevelCounterApproverStep4: \"https://www.youtube.com/embed/videoseries?si=7XdX-PuF39PT3D4T&list=PLugzlMICZR8jybTtRNLOuC9phsdz74z6h\",\n MultipleLevelCounterApproverStep5: \"https://www.youtube.com/embed/videoseries?si=5lbPB5OnvMo0SkH0&list=PLugzlMICZR8jN1HDIz7YF0Hh9ECQCvU7X\",\n MultipleLevelCounterApproverStep6: \"https://www.youtube.com/embed/videoseries?si=kZQ6QNiL5t31JnS2&list=PLugzlMICZR8h2XkOYotKMJar6vw4f0hnA\",\n MultipleLevelCounterApproverStep7: \"https://www.youtube.com/embed/videoseries?si=YTCjm8VkI742TSgf&list=PLugzlMICZR8jcI4sFP9KuHI4iXkMUQErA\",\n QuickBooksStep7 : \"https://www.youtube.com/embed/videoseries?si=wCuYW431BWhB2bwq&list=PLugzlMICZR8iQpcdtbTSFBYaHCPCk5iYv\",\n\n FxRateStep1: \"https://www.youtube.com/embed/videoseries?si=XgiCC_o6VkoMV2Y9&list=PLugzlMICZR8j3Pl10Vl1MT0QZ35KklDMI\",\n FxRateStep2: \"https://www.youtube.com/embed/videoseries?si=DGgLckbzJwAjxqpl&list=PLugzlMICZR8gCFfF7txnmLhW-q0M7VXjt\",\n FxRateStep3: \"https://www.youtube.com/embed/videoseries?si=LjSG9tyHBwu7hFnw&list=PLugzlMICZR8jQy9ooCNHwHLwoHqWwtrn- \",\n CarbonFootprintStep2: \"https://www.youtube.com/embed/videoseries?si=hhH_Qdik6Tk_Y2uX&list=PLugzlMICZR8hWCYoo_58hh9sVJhAp-Ety\",\n CarbonFootprintStep3: \"https://www.youtube.com/embed/videoseries?si=bNIta61WKp9QW5LV&list=PLugzlMICZR8jwKq5kaeMw-JP19Z69Q0Wl\",\n CarbonFootprintStep4: \"https://www.youtube.com/embed/videoseries?si=DcTAy8nIP19HN_xU&list=PLugzlMICZR8h2FJaYhZ6un1e6514s6nPl\",\n CarbonFootprintStep5: \"https://www.youtube.com/embed/videoseries?si=Cy1t4pZXzIpfEI5b&list=PLugzlMICZR8hilX8vklgUt_YyfV0Q4XDB\",\n\n AutoDeleteOldAndUnclaimedExpensesStep1: \"https://www.youtube.com/embed/videoseries?si=IfFzg8Hqkrf56uUt&list=PLugzlMICZR8jXWXMzGsxpnEjCfqH2UmvZ\",\n AutoDeleteOldAndUnclaimedExpensesStep2: \"https://www.youtube.com/embed/videoseries?si=tZqq5RhukkpyC3qE&list=PLugzlMICZR8jEIR-6uaZjTmuL0bGKKQDM\",\n\n};\n\nexport const websiteURl = \"https://www.expenseondemand.com/\";\nexport const UTCDateTime = {\n getUTCDate(date) {\n var now_utc = Date.UTC(\n date.getUTCFullYear() < 0 ? date.getUTCFullYear() * -1 : date.getUTCFullYear(),\n date.getUTCMonth() < 0 ? date.getUTCMonth() * -1 : date.getUTCMonth(),\n date.getUTCDate() < 0 ? date.getUTCDate() * -1 : date.getUTCDate(),\n 0,\n 0,\n 0\n );\n\n return now_utc;\n },\n getUTCTimeStamp(date:Date) {\n let dateNow = new Date();\n let incomingDate = date;\n let now_utc = 0;\n if(dateNow.getDate() == incomingDate.getDate())\n {\n now_utc = Date.UTC(\n dateNow.getUTCFullYear(),\n dateNow.getUTCMonth(),\n dateNow.getUTCDate(),\n dateNow.getUTCHours(),\n dateNow.getUTCMinutes(),\n dateNow.getUTCSeconds(),\n dateNow.getUTCMilliseconds()\n );\n }\n else\n {\n let incomingDate1 = date.setHours(dateNow.getHours());\n incomingDate1 = date.setMinutes(dateNow.getMinutes());\n incomingDate1 = date.setSeconds(dateNow.getSeconds());\n let newDate = new Date(incomingDate1)\n now_utc = Date.UTC(\n newDate.getUTCFullYear(),\n newDate.getUTCMonth(),\n newDate.getUTCDate(),\n newDate.getUTCHours(),\n newDate.getUTCMinutes(),\n newDate.getUTCSeconds(),\n newDate.getUTCMilliseconds()\n );\n }\n \n\n return now_utc;\n }\n};\nexport const ConvertNonAsciiToAscii = {\n removeAccents(input) {\n if(input)\n {\n const pattern = /[\\u00e0-\\u00ff\\u0100-\\u017fàáâãäåæÀÁÂÃÄÅÆçÇèéêëÈÉÊËìíîïÌÍÎÏðÐñÑòóôõöøÒÓÔÕÖØùúûüÙÚÛÜýÝ]/g;\n const replacements = {\n \"à\": \"a\", \"á\": \"a\", \"â\": \"a\", \"ã\": \"a\", \"ä\": \"a\", \"å\": \"a\", \"æ\": \"ae\", \n \"À\": \"A\", \"Á\": \"A\", \"Â\": \"A\", \"Ã\": \"A\", \"Ä\": \"A\", \"Å\": \"A\", \"Æ\": \"AE\",\n \"ç\": \"c\", \"Ç\": \"C\", \n \"è\": \"e\", \"é\": \"e\", \"ê\": \"e\", \"ë\": \"e\", \n \"È\": \"E\", \"É\": \"E\", \"Ê\": \"E\", \"Ë\": \"E\",\n \"ì\": \"i\", \"í\": \"i\", \"î\": \"i\", \"ï\": \"i\", \n \"Ì\": \"I\", \"Í\": \"I\", \"Î\": \"I\", \"Ï\": \"I\",\n \"ð\": \"d\", \"Ð\": \"D\",\n \"ñ\": \"n\", \"Ñ\": \"N\",\n \"ò\": \"o\", \"ó\": \"o\", \"ô\": \"o\", \"õ\": \"o\", \"ö\": \"o\", \"ø\": \"o\",\n \"Ò\": \"O\", \"Ó\": \"O\", \"Ô\": \"O\", \"Õ\": \"O\", \"Ö\": \"O\", \"Ø\": \"O\",\n \"ù\": \"u\", \"ú\": \"u\", \"û\": \"u\", \"ü\": \"u\", \n \"Ù\": \"U\", \"Ú\": \"U\", \"Û\": \"U\", \"Ü\": \"U\",\n \"ý\": \"y\", \"Ý\": \"Y\"\n };\n \n return input.replace(pattern, match => replacements[match] || match);\n }\n else\n {\n return input;\n }\n \n }\n}\n\nexport const CityConstant = [\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 1, name: \"Vilnius\" },\n { id: 2, name: \"Kaunas\" },\n { id: 3, name: \"Pavilnys\", disabled: true },\n { id: 4, name: \"Pabradė\" },\n { id: 5, name: \"Klaipėda\" },\n];\n","
\n
\n
\n
\n
\n

{{ panelHeading}}

\n
\n
\n \n\n \n\n \n
\n
\n
\n
\n

{{ 'add_container_info_note' | translate }}

\n
\n \n
\n
\n
\n\n\n","import { OnInit, Component, ViewChild, Output, EventEmitter, Input, OnChanges,ChangeDetectorRef } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { Router } from \"@angular/router\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { environment } from \"src/environments/environment\";\nimport { NgOption } from \"@ng-select/ng-select\";\nimport { ApiRequest, IApiresponse,LogObjectActionTemplateEnum } from \"src/app/_models\";\nimport { ContainerFormModel,ContainerRequest,AddContainerInputModel,AddContainerOutputModel,\n ContainerResponse,SaveContainerResponse} from \"src/app/_models/container/container\";\nimport {ContainerService} from \"src/app/_services/container/container.service\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { FormlyFieldConfig } from \"@ngx-formly/core\";\nimport { DynamicFormComponent } from \"src/app/shared/forms/dynamic-form/dynamic-form.component\";\nimport { DynamicFormService } from \"src/app/shared/forms/dynamic-form/dynamic-form.service\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { LoggingPanelModel } from \"src/app/_models/common/LoggingPanelModel\";\nimport { LoggingPanelService } from \"src/app/_services/logging-panel/logging-panel.service\";\n\n@Component({\n selector: \"add-container-panel\",\n templateUrl: \"./add-container-panel.component.html\"\n})\n\nexport class AddContainerPanelComponent implements OnInit {\n\n @ViewChild(DynamicFormComponent) containerForm: DynamicFormComponent;\n\n @Input()\n inputData: AddContainerInputModel;\n \n @Output() closePanelEvent = new EventEmitter();\n @Output() submitPanelEvent = new EventEmitter();\n\n claimsSubscription: Subscription;\n userActionEventSubscription: Subscription;\n claims: Claims;\n panelHeading: string;\n disableSaveButton: boolean = false;\n\n containerFormModel: ContainerFormModel;\n containerFormFields: FormlyFieldConfig[] = [];\n containerDetails: ContainerResponse;\n\n constructor(\n private router: Router,\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private containerService: ContainerService,\n private cdr: ChangeDetectorRef,\n private alertService: AlertService,\n private toastr: ToastrService,\n private dynamicFormService: DynamicFormService,\n private loggingPanelService: LoggingPanelService,\n ) {\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n\n this.fnObserveUnsavedChangesAlerts();\n }\n\n ngOnInit(): void {\n\n if (this.inputData) {\n this.fnSetPanelHeading();\n\n if (!this.inputData.isEditMode) {\n this.fnInitializeForm();\n }\n\n this.fnGetContainerById();\n }\n }\n\n fnSetPanelHeading() {\n if (this.inputData) {\n this.panelHeading = this.inputData.isEditMode\n ? this.translate.instant('text_edit_container')\n : this.translate.instant('contaner_create_new_report');\n }\n }\n\n canDeactivate() {\n return !this.containerForm.form.dirty;\n }\n\n fnObserveUnsavedChangesAlerts() {\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n fnInitializeForm() {\n\n if (!this.inputData?.isEditMode) {\n this.fnGenerateContainerFormModel();\n }\n\n let fields: FormlyFieldConfig[] = [];\n\n fields.push({\n fieldGroupClassName: 'block row mt-2',\n fieldGroup: [\n {\n key: 'name',\n type: 'text-input',\n className: 'col-xl-12 col-lg-12 col-md-12 col-sm-12 padding-left-3',\n templateOptions: {\n label: this.translate.instant('text_report_name'),\n placeholder: '',\n required: true,\n omitSpecialChar: false,\n maxLength: 30,\n customErrors: [],\n maxLengthCount: 30,\n change: (field, $event) => {}\n },\n validators: {\n validation: ['whitespace']\n }\n },\n {\n key: 'description',\n type: 'text-input',\n className: 'col-xl-12 col-lg-12 col-md-12 col-sm-12 padding-left-3',\n templateOptions: {\n label: this.translate.instant('text_description'),\n placeholder: '',\n required: false,\n omitSpecialChar: false,\n maxLength: 30,\n maxLengthCount: 30,\n change: (field, $event) => { }\n },\n validators: {}\n }\n ]\n });\n this.containerFormFields = fields;\n \n setTimeout(() => {\n this.cdr.detectChanges();\n }, 100);\n\n \n }\n\n fnGenerateContainerFormModel() {\n this.containerFormModel = new ContainerFormModel()\n this.containerFormModel.containerId = 0;\n this.containerFormModel.name = \"\";\n this.containerFormModel.description = \"\";\n\n //mark form as pristine\n this.fnMarkFormAsPristine();\n }\n\n fnMarkFormAsPristine() {\n if (this.containerForm && this.containerForm.form) {\n this.containerForm.form.markAsPristine();\n }\n }\n\n fnMarkFormAsDirty() {\n if (this.containerForm && this.containerForm.form) {\n this.containerForm.form.markAsDirty();\n }\n }\n\n fnSubmitContainer() {\n this.dynamicFormService.onFormSubmitted(true);\n this.disableSaveButton = true;\n\n if (this.containerForm.form.invalid) {\n this.disableSaveButton = false;\n return;\n }\n\n if (!this.inputData.isEditMode) {\n this.fnAddContainer();\n } else {\n this.fnUpdateContainer();\n }\n }\n\n fnAddContainer() {\n let request = new ApiRequest(\"AddContainer\", environment.applicationVersion, environment.requestId);\n\n let container = new ContainerRequest();\n container.name = this.containerFormModel.name;\n container.description = this.containerFormModel.description;\n container.userId = this.inputData.claimantId;\n container.orgId = this.claims.OrgId;\n container.createdBy = this.claims.UserId;\n container.updatedBy = this.claims.UserId;\n container.userName = this.claims.FinanceManager;\n request.requestInfo = container;\n\n localStorage.setItem(\"addContainerDateTime\" + this.claims.OrgId, JSON.stringify(new Date().toUTCString()));\n\n this.containerService.AddContainer(request)\n .subscribe((response: IApiresponse) => {\n if (response && response.statusCode == 0) {\n this.toastr.success(this.translate.instant(\"success\"));\n this.fnEmitSubmitEvent(response.responseInfo.containerId);\n }\n else {\n this.toastr.error(this.translate.instant(\"failed\"));\n }\n this.disableSaveButton = false;\n });\n }\n fnEmitSubmitEvent(containerId) {\n let outputModel = new AddContainerOutputModel();\n outputModel.containerId = containerId;\n outputModel.containerName = this.containerFormModel.name;\n outputModel.isEdited = this.inputData.isEditMode;\n this.submitPanelEvent.emit(outputModel);\n }\n\n fnShowContainerLoggingPanel() {\n const model = new LoggingPanelModel(\n this.claims.OrgId.toString(),\n LogObjectActionTemplateEnum.SetupContainer.toString(),\n this.inputData.containerId.toString()\n );\n this.loggingPanelService.onShowLogPanel(model);\n }\n\n fnGetContainerById() {\n if (!this.inputData.isEditMode) {\n return;\n }\n this.containerService.GetContainerById(this.inputData.containerId)\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.containerDetails = response.responseInfo;\n this.containerFormModel = new ContainerFormModel();\n this.containerFormModel.containerId = this.containerDetails.containerId;\n this.containerFormModel.name = this.containerDetails.name;\n this.containerFormModel.description = this.containerDetails.description;\n }\n this.fnInitializeForm();\n });\n }\n\n fnUpdateContainer() {\n\n let request = new ApiRequest(\"UpdateContainer\", environment.applicationVersion, environment.requestId);\n\n let container = new ContainerRequest();\n container.containerId = this.inputData.containerId;\n container.orgId = this.claims.OrgId;\n container.name = this.containerFormModel.name;\n container.description = this.containerFormModel.description;\n container.updatedBy = this.claims.UserId;\n container.userName = this.claims.FinanceManager;\n request.requestInfo = container;\n\n localStorage.setItem(\"addContainerDateTime\" + this.claims.OrgId, JSON.stringify(new Date().toUTCString()));\n\n this.containerService.UpdateContainer(request)\n .subscribe((response: IApiresponse) => {\n if (response && response.statusCode == 0) {\n this.toastr.success(this.translate.instant(\"success\"));\n this.fnEmitSubmitEvent(response.responseInfo.containerId);\n }\n else {\n this.toastr.error(this.translate.instant(\"failed\"));\n }\n this.disableSaveButton = false;\n });\n }\n\n\n \n}\n","
\n
\n
\n
\n
\n

{{'label_alert' | translate}}

\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
{{\"Policy_alert_msg1\"| translate }}
\n
{{\"Policy_alert_msg2\"| translate }}
\n
\n
\n
\n
\n
{{\"submission_time_limit_voilation_expenses\"| translate }}
\n
\n \n \n \n
\n
\n \n
\n
\n
\n\n","import { OnInit, Component, ViewChild, Output, EventEmitter, Input, OnChanges, ChangeDetectorRef } from \"@angular/core\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ColDef } from \"ag-grid-community\";\nimport { CountByStatus, GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { Subscription } from \"rxjs\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Router } from \"@angular/router\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { environment } from \"src/environments/environment\";\nimport {ContianerPolicyInputModel} from \"src/app/_models/container/container\";\nimport {ContainerService} from \"src/app/_services/container/container.service\";\nimport { PolicyViolationInputModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\n\n@Component({\n selector: \"container-policy-panel\",\n templateUrl: \"./container-policy-panel.component.html\"\n})\n\nexport class ContianerPolicyPanelComponent implements OnInit {\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n\n @Input()\n inputData: ContianerPolicyInputModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() submitPanelEvent = new EventEmitter();\n\n claims: Claims;\n claimsSubscription: Subscription;\n userActionEventSubscription: Subscription;\n hasFormChanges: boolean = false;\n disableSaveButton: boolean = true;\n \n defaultSortColumn: string = 'categoryName';\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n gridData = [];\n\n showPolicyViolationPanel: boolean = false;\n policyViolationInputModel: PolicyViolationInputModel;\n isReceiptNumberSettingsEnabled:boolean=false;\n\n selectedExpenseId: number = 0;\n\n constructor(\n private router: Router,\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private containerService: ContainerService,\n private alertService: AlertService,\n private toastr: ToastrService,\n ) {\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n\n this.fnObserveUnsavedChangesAlerts();\n }\n\n ngOnInit(): void {\n this.fnInitialiseGrid();\n this.fnGetPolcyList();\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n canDeactivate() {\n return !this.hasFormChanges;\n }\n\n fnObserveUnsavedChangesAlerts() {\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n\n fnGetPolcyList(){\n if(this.inputData?.expenseStatusInfo){\n this.gridData = this.inputData.expenseStatusInfo;\n this.gridData = this.gridData.map(item=>{\n item.chevron = this.translate.instant('text_view_details');\n item.daysViolated = item?.policyViolation?.policyViolation?.expenseTimeLimit?.expenseTimeLimit;\n return item;\n })\n this.fnGridFilterChanged();\n }\n }\n\n fnInitialiseGrid() {\n\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n\n }\n\n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('text_category'),\n field: 'categoryName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100\n },\n {\n headerName: this.translate.instant('expense_date'),\n field: 'expenseDate',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n cellRenderer: 'dateRenderer'\n },\n {\n headerName: this.translate.instant('amount'),\n field: 'amount',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 100,\n headerClass: 'text-right',\n cellClass: 'text-right',\n cellRenderer: 'amountRenderer',\n },\n {\n headerName: this.translate.instant(\"receipt\"),\n field: 'hasReceipt',\n suppressMenu: true,\n sortable: false,\n cellRenderer: 'receiptsIconRenderer',\n },\n {\n headerName: this.translate.instant('text_supplier'),\n field: 'supplier',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n cellClass: 'grid-text-center'\n },\n {\n headerName: this.translate.instant('text_days_violated'),\n field: 'daysViolated',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 50,\n cellClass: 'grid-text-center',\n headerClass: 'color-red',\n cellRenderer: \"dayPolicyRenderer\"\n },\n {\n headerName: this.translate.instant(\"justification_notes\"),\n field: \"justificationNotes\",\n resizable: true,\n sortable: false,\n suppressMenu: true,\n minWidth: 300,\n width: 300,\n cellRenderer: \"gridTextBoxRenderer\",\n headerComponentParams: {\n maxLength: 30,\n placeHolder: this.translate.instant(\"please_enter\"),\n isShowValidationOnInit: true,\n },\n cellRendererParams: {\n onInput: this.fnOnJustificationNoteChange.bind(this),\n },\n },\n {\n headerName: \"\",\n field: 'chevron',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 150,\n width: 150,\n cellRenderer: 'formattedTextRenderer',\n headerComponentParams: {\n class: 'd-inline-block text-logo-blue cursor-pointer text-underline lH-12'\n }\n },\n ]\n }\n\n fnGetGridConfigItems() {\n this.gridConfigItems = new GridConfig(\n true,\n true,\n this.defaultSortColumn,\n 'expenseId',\n 0,\n false,\n [],\n true,\n true,\n true,\n null,\n this.defaultSortColumn,\n 40,\n this.translate.instant('no_data_availabe'),\n null,\n null,\n false, \n false,\n '',\n '',\n false\n );\n }\n\n fnGridFilterChanged() {\n\n this.fnGetGridConfigItems();\n this.fnCreateColumnDefs();\n\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n\n fnOnGridCellClick(params) {\n switch (params.column.colId) {\n case 'chevron': \n this.fnShowPolicyViolationPanel(params.data);\n break;\n }\n } \n\n fnOnJustificationNoteChange(selectedData) {\n if (selectedData) {\n this.hasFormChanges = true; \n this.fnDisableSaveButton();\n }\n } \n\n fnCheckValidation() {\n let isValid = true;\n\n this.gridData.forEach(item => { \n if(!item.justificationNotes || !(item.justificationNotes.trim())){\n isValid = false;\n }\n });\n return isValid;\n }\n\n fnDisableSaveButton() {\n this.disableSaveButton = false;\n\n if (!this.fnCheckValidation()) {\n this.disableSaveButton = true;\n return;\n }\n }\n\n fnOnSave(){\n this.submitPanelEvent.emit(this.gridData);\n }\n\n fnShowPolicyViolationPanel(model){\n this.policyViolationInputModel = new PolicyViolationInputModel(\n model.expenseId,\n model.expenseCategoryName,\n model.baseCategoryId,\n model.justificationNotes?.trim(),\n false,\n ''\n );\n this.policyViolationInputModel.policyViolationDetails = model.policyViolation;\n this.showPolicyViolationPanel = true;\n this.selectedExpenseId = model.expenseId;\n }\n \n fnClosePolicyViolationPanel(justificationNotes) {\n this.policyViolationInputModel = null;\n this.showPolicyViolationPanel = false;\n\n if (justificationNotes?.trim()) {\n this.gridData.map(item=>{\n \n if(item.expenseId == this.selectedExpenseId){\n item.justificationNotes = justificationNotes ? justificationNotes.trim() : '';\n }\n return item;\n\n });\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n this.fnDisableSaveButton();\n }, 100);\n }\n\n this.selectedExpenseId = 0;\n }\n\n}","
\n
\n
\n
\n\n
\n
\n

{{this.panelHeading}}

\n
\n
\n \n \n \n
\n
\n
\n \n
\n
\n
\n
\n\n\n\n","import { OnInit, Component, ViewChild, Output, EventEmitter, Input, OnChanges } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { Router } from \"@angular/router\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { environment } from \"src/environments/environment\";\nimport { NgOption } from \"@ng-select/ng-select\";\nimport { ApiRequest, GradeStatusEnum, IApiresponse, LogObjectActionTemplateEnum } from \"src/app/_models\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { FormlyFieldConfig } from \"@ngx-formly/core\";\nimport { DynamicFormComponent } from \"src/app/shared/forms/dynamic-form/dynamic-form.component\";\nimport { DynamicFormService } from \"src/app/shared/forms/dynamic-form/dynamic-form.service\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport { GetField } from \"src/app/shared/forms/form-functions/form-functions\";\nimport { IErrorInfo } from \"src/app/_models/common/error-info\";\nimport { LoggingPanelModel } from \"src/app/_models/common/LoggingPanelModel\";\nimport { LoggingPanelService } from \"src/app/_services/logging-panel/logging-panel.service\";\nimport { AddGradePanelInputModel,AddGradePanelOutputModel,GradeFormModel,IRequestGrade,RequestGrade,\n IResponseGrade,IRequestGradeBulkDeactivate,RequestGradeBulkDeactivate} from \"src/app/_models/grade/grade\";\nimport { GradeService } from \"src/app/_services\";\n\n@Component({\n selector: \"add-grade-panel\",\n templateUrl: \"./add-grade-panel.component.html\"\n})\n\nexport class AddGradePanelComponent extends BaseComponent implements OnInit {\n @ViewChild(DynamicFormComponent) gradeForm: DynamicFormComponent;\n\n @Input(\"inputModel\")\n @Input() inputModel: AddGradePanelInputModel;\n @Output() closePanelEvent = new EventEmitter();\n @Output() submitEvent = new EventEmitter();\n\n currentUserSubscription: Subscription;\n userActionEventSubscription: Subscription;\n claimsSubscription: Subscription;\n claims: Claims;\n\n gradeFormModel: GradeFormModel;\n gradeFormFields: FormlyFieldConfig[] = [];\n\n panelHeading: string;\n disableSaveButton: boolean = false;\n gradeDetails: IResponseGrade;\n\n showDeactivateConfirmationAlert: boolean = false;\n deactivateConfirmationAlertModel: AlertPanelModel;\n\n constructor(\n private router: Router,\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private alertService: AlertService,\n private toastr: ToastrService,\n private dynamicFormService: DynamicFormService,\n private loggingPanelService: LoggingPanelService,\n private gradeService: GradeService,\n\n ) {\n super();\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n this.fnObserveUnsavedChangesAlerts();\n }\n\n ngOnInit(): void {\n if (this.inputModel) {\n\n this.fnSetPanelHeading();\n\n if (!this.inputModel.isEditMode && !this.inputModel.isCopy) {\n this.fnInitializeForm();\n } \n this.fnGetGradeDetails();\n }\n }\n\n canDeactivate(): boolean {\n return !this.gradeForm.form.dirty;\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n fnObserveUnsavedChangesAlerts() {\n var currentContext = this;\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n\n fnSetPanelHeading() {\n if (this.inputModel) {\n this.panelHeading = this.inputModel.isEditMode\n ? this.translate.instant('grade_edit')\n : (this.inputModel.isCopy ? this.translate.instant('grade_copy') : this.translate.instant('grade_new'))\n }\n }\n\n fnInitializeForm() {\n\n if (!this.inputModel.isEditMode && !this.inputModel.isCopy) {\n this.fnGenerateGradeFormModel();\n }\n\n let fields: FormlyFieldConfig[] = [];\n\n if (this.inputModel.isEditMode) {\n\n fields.push({\n fieldGroup: [\n {\n key: 'gradeToggle',\n type: 'formly-toggle-input',\n templateOptions: {\n labelActive: this.translate.instant(\"label_activate\"),\n labelDeactive: this.translate.instant(\"label_deactivate\"),\n change: (field, $event) => {\n\n this.gradeFormModel.gradeStatus = !this.gradeFormModel.gradeToggle\n ? GradeStatusEnum.Active\n : GradeStatusEnum.Inactive\n }\n }\n }\n ]\n });\n }\n\n fields.push({\n fieldGroupClassName: 'block row mt-2',\n fieldGroup: [\n {\n key: 'gradeName',\n type: 'text-input',\n className: 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-left-0',\n templateOptions: {\n label: this.translate.instant('grade_name'),\n placeholder: '',\n required: true,\n maxLength: 50,\n maxLengthCount: true\n }\n },\n {\n key: 'gradeDescription',\n type: 'text-input',\n className: 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-right-0',\n templateOptions: {\n label: this.translate.instant('grade_description'),\n placeholder: '',\n required: true,\n maxLength: 100,\n maxLengthCount: true\n }\n }\n ]\n });\n\n this.gradeFormFields = fields;\n }\n\n fnGenerateGradeFormModel() {\n this.gradeFormModel = new GradeFormModel();\n this.gradeFormModel.gradeToggle = true;\n this.gradeFormModel.gradeId = 0;\n this.gradeFormModel.gradeName = '';\n this.gradeFormModel.gradeDescription = '';\n \n this.gradeFormModel.gradeStatus = GradeStatusEnum.Active;\n\n //mark form as pristine\n this.fnMarkFormAsPristine();\n }\n\n fnMarkFormAsPristine() {\n if (this.gradeForm && this.gradeForm.form) {\n this.gradeForm.form.markAsPristine();\n }\n }\n\n fnMarkFormAsDirty() {\n if (this.gradeForm && this.gradeForm.form) {\n this.gradeForm.form.markAsDirty();\n }\n }\n\n fnSubmitGrade() {\n this.dynamicFormService.onFormSubmitted(true);\n this.disableSaveButton = true;\n\n if (this.gradeForm.form.invalid) {\n this.disableSaveButton = false;\n return;\n }\n\n if (!this.inputModel.isEditMode) {\n this.fnAddGrade();\n } else {\n\n if (this.gradeDetails.gradeStatus == GradeStatusEnum.Active && this.gradeFormModel.gradeToggle == false) {\n this.fnShowDeactivateConfirmationAlert();\n } else {\n this.fnUpdateGrade();\n }\n }\n }\n\n fnGetGradeDetails() {\n if (!this.inputModel.isEditMode && !this.inputModel.isCopy) {\n return;\n }\n this.gradeService.GetGradeDetailsById(this.inputModel.gradeId)\n .subscribe((response: IApiresponse) => {\n\n if (response.responseInfo != null) {\n\n this.gradeDetails = response.responseInfo;\n\n this.gradeFormModel = new GradeFormModel();\n\n if(this.inputModel.isCopy){\n\n this.gradeFormModel.gradeToggle = this.gradeDetails.gradeStatus == GradeStatusEnum.Active ? true : false;\n this.gradeFormModel.gradeId = 0;\n this.gradeFormModel.gradeName = `${this.translate.instant(\"copy_of\")} ${this.gradeDetails.gradeName}`;\n this.gradeFormModel.gradeDescription = `${this.translate.instant(\"copy_of\")} ${this.gradeDetails.gradeDescription}`;\n this.gradeFormModel.gradeStatus = this.gradeDetails.gradeStatus; \n\n }else{\n\n this.gradeFormModel.gradeToggle = this.gradeDetails.gradeStatus == GradeStatusEnum.Active ? true : false;\n this.gradeFormModel.gradeId = this.gradeDetails.gradeId;\n this.gradeFormModel.gradeName = this.gradeDetails.gradeName;\n this.gradeFormModel.gradeDescription = this.gradeDetails.gradeDescription;\n this.gradeFormModel.gradeStatus = this.gradeDetails.gradeStatus;\n this.gradeFormModel.isDefault = this.gradeDetails.isDefault;\n this.gradeFormModel.isAnyEmployeeAssigned = this.gradeDetails.isAnyEmployeeAssigned;\n } \n }\n this.fnInitializeForm();\n });\n }\n\n fnAddGrade() {\n\n let request = new ApiRequest(\"CreateGrade\", environment.applicationVersion, environment.requestId);\n\n let grade = new RequestGrade(\n this.claims.OrgId,\n this.gradeFormModel.gradeName,\n this.gradeFormModel.gradeDescription,\n this.gradeFormModel.gradeStatus,\n false,\n this.claims.UserId,\n this.claims.FinanceManager\n );\n\n request.requestInfo = grade;\n localStorage.setItem(\"gradeUpdatedDateTime\" + this.claims.OrgId, JSON.stringify(new Date().toUTCString()));\n\n this.gradeService.CreateGrade(request)\n .subscribe((response: IApiresponse) => {\n if (response && response.errorInfo && response.errorInfo.length > 0) {\n let lstErrInfo = response.errorInfo;\n this.fnShowServerErrors(lstErrInfo);\n }\n else {\n this.toastr.success(this.translate.instant(\"success\"));\n this.fnEmitSubmitEvent();\n }\n this.disableSaveButton = false;\n });\n }\n\n fnUpdateGrade() {\n\n let request = new ApiRequest(\"CreateGrade\", environment.applicationVersion, environment.requestId);\n\n let grade = new RequestGrade(\n this.claims.OrgId,\n this.gradeFormModel.gradeName,\n this.gradeFormModel.gradeDescription,\n this.gradeFormModel.gradeStatus,\n this.gradeDetails.isDefault,\n this.claims.UserId,\n this.claims.FinanceManager\n );\n\n grade.gradeId = this.gradeDetails.gradeId;\n grade.createdDate = this.gradeDetails.createdDate;\n grade.createdBy = this.gradeDetails.createdBy;\n grade.modifiedBy = this.claims.UserId;\n grade.modifiedDate = new Date();\n\n request.requestInfo = grade;\n localStorage.setItem(\"gradeUpdatedDateTime\" + this.claims.OrgId, JSON.stringify(new Date().toUTCString()));\n\n this.gradeService.UpdateGrade(request)\n .subscribe((response: IApiresponse) => {\n if (response && response.errorInfo && response.errorInfo.length > 0) {\n let lstErrInfo = response.errorInfo;\n this.fnShowServerErrors(lstErrInfo);\n }\n else {\n this.toastr.success(this.translate.instant(\"success\"));\n this.fnEmitSubmitEvent();\n }\n this.disableSaveButton = false;\n });\n }\n\n fnShowServerErrors(lstErrInfo: IErrorInfo[] = []) {\n\n if (lstErrInfo && lstErrInfo.length > 0) {\n let nameErrors = [];\n\n lstErrInfo.forEach(element => {\n switch (element.errorCode) {\n case \"GRD01\":\n nameErrors.push(this.translate.instant(\"name_exist\"));\n break;\n default:\n break;\n }\n });\n\n let nameField = GetField('gradeName', this.gradeFormFields);\n if (nameField) {\n nameField.templateOptions.customErrors = nameErrors;\n }\n }\n }\n\n fnEmitSubmitEvent() {\n let response = new AddGradePanelOutputModel(\n this.gradeFormModel.gradeStatus\n );\n this.submitEvent.emit(response);\n }\n\n fnShowGradeLoggingPanel(gradeId: number) {\n const model = new LoggingPanelModel(\n this.claims.OrgId.toString(),\n LogObjectActionTemplateEnum.Grade.toString(),\n gradeId.toString()\n );\n this.loggingPanelService.onShowLogPanel(model);\n }\n\n fnShowDeactivateConfirmationAlert() {\n this.deactivateConfirmationAlertModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [this.gradeDetails.isAnyEmployeeAssigned\n ? this.translate.instant(\"grade_deactivate_confirm_msg3\")\n : this.translate.instant(\"grade_deactivate_confirm_msg2\")],\n this.translate.instant(\"cancel\"),\n this.translate.instant(\"label_confirm\"),\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n this.showDeactivateConfirmationAlert = true;\n }\n\n fnDeactivateAlertPanelReceiver(returnValue) {\n if (returnValue) {\n this.fnBulkDeactiveGrade();\n }\n this.disableSaveButton = false;\n this.deactivateConfirmationAlertModel = null;\n this.showDeactivateConfirmationAlert = false;\n }\n\n fnBulkDeactiveGrade() {\n\n this.disableSaveButton = true;\n\n let request = new ApiRequest(\"BulkDeactiveGrade\",environment.applicationVersion, environment.requestId);\n\n const gradeIds = [this.inputModel.gradeId];\n\n request.requestInfo = new RequestGradeBulkDeactivate(\n gradeIds,\n this.claims.UserId,\n this.claims.FinanceManager\n );\n\n localStorage.setItem(\"gradeUpdatedDateTime\" + this.claims.OrgId, JSON.stringify(new Date().toUTCString()));\n\n this.gradeService.BulkDeactiveGrade(request)\n .subscribe((response: IApiresponse) => {\n if (response.statusCode == 200) {\n this.toastr.success(this.translate.instant(\"success\"));\n this.fnEmitSubmitEvent();\n }\n else {\n this.toastr.success(this.translate.instant(\"error\"));\n }\n this.disableSaveButton = false;\n });\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ColDef } from 'ag-grid-community';\nimport { GridConfig } from '../../_models/common/grid/grid-config';\nimport { AppGridComponent } from '../../shared/grid/grid-component/grid.component';\n\n@Component({\n selector: 'app-claimant-details-component',\n templateUrl: './claimant-details-component.component.html' \n})\nexport class ClaimantDetailsComponentComponent implements OnInit {\n\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n gridFilterStatus: number = 0;\n @Input() lstClaimants: any;\n @Input() panelHeader: string;\n @Output() callbackEvent = new EventEmitter();\n constructor(\n private translate: TranslateService,\n private router: Router\n ) { }\n\n ngOnInit(): void {\n this.fnGridConfig();\n }\n\n fnGridConfig(){\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('cost_center_name'),\n field: 'employeeName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n\n },\n {\n headerName: this.translate.instant('label_email'),\n field: 'employeeEmail',\n resizable: true,\n sortable: true,\n suppressMenu: true, \n minWidth: 100 \n }\n ];\n\n this.gridConfigItems = new GridConfig(\n false,\n false,\n \"employeeName\",\n \"employeeId\",\n 0,\n false,\n [],\n true,\n true,\n false,\n null,\n 'asc',\n 40, 'no_data_availabe', null, null,\n false, false,\n '',\n '',\n true\n );\n\n setTimeout(() => {\n this.gridComponent.initializeGrid(false);\n }, 200);\n\n}\n\nonClosePanel(){\n this.callbackEvent.emit(false);\n}\n\n}\n","
\n
\n
\n
\n
\n

{{ panelHeader }}

\n
\n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { ApiRequest } from \"src/app/_models/common/request-response/api-request\";\nimport { GradeService } from \"src/app/_services\";\nimport { LoggingPanelModel } from \"../../../_models/common/LoggingPanelModel\";\nimport { LogObjectActionTemplateEnum } from \"../../../_models\";\nimport { ClaimsService } from \"../../../_services/common/claims.service\";\nimport { LoggingPanelService } from \"../../../_services/logging-panel/logging-panel.service\";\nimport { Claims } from \"../../../_models/common/claims\";\nimport { Subscription } from \"rxjs\";\nimport { CountByStatus, GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { ColDef } from \"ag-grid-community\";\nimport { NgOption } from \"@ng-select/ng-select\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\n\n@Component({\n selector: \"grade-assign-category-panel\",\n templateUrl: \"./grade-assign-category-panel.component.html\"\n})\nexport class GradeAssignCategoryPanelComponent extends BaseComponent implements OnInit, OnDestroy, OnChanges {\n\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n\n @Output() closePanel = new EventEmitter();\n @Input() selectedGrade: any = {};\n @Input() categoriesList: any = [];\n\n alertSubscription: Subscription;\n claimsubscription: Subscription;\n claims: Claims;\n panelHeading: string;\n hasFormChanges: boolean = false;\n\n defaultSortColumn = 'categoryName';\n gridData: any[] = [];\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n gridFilterStatus: number = 0;\n gridFilterItems: NgOption[] = [\n { id: 0, name: this.translate.instant(\"all\") },\n { id: 1, name: this.translate.instant(\"assigned_category_grade\") },\n { id: 2, name: this.translate.instant(\"unassigned_category_grade\") }\n ];\n\n currentEditingGrade: any;\n showCategoryAssignmentPanel: boolean;\n disableSave: boolean = true;\n isSaved: boolean = false;\n showNoCategorySelected: boolean = false;\n changedCategoryList: any[] = [];\n\n constructor(\n private gradeService: GradeService,\n private alertService: AlertService,\n private toastr: ToastrService,\n private claimsService: ClaimsService,\n private loggingPanelService: LoggingPanelService,\n private translate: TranslateService\n ) {\n super();\n this.claimsubscription = this.claimsService.currentClaims.subscribe(claims => {\n this.claims = claims;\n });\n var currentContext = this;\n this.alertSubscription = this.alertService.getUserActionEvent().subscribe((action) => {\n if (action) {\n currentContext.hasFormChanges = false;\n currentContext.fnClosePanel();\n }\n });\n }\n\n ngOnInit(): void {\n this.fnInitialiseGrid();\n }\n\n ngOnDestroy() {\n this.claimsubscription.unsubscribe();\n this.alertSubscription.unsubscribe();\n }\n\n ngOnChanges(changes) {\n if (this.selectedGrade) {\n this.panelHeading = this.selectedGrade.gradeName + ' ' + this.translate.instant('assign_unassign_categories_to_grade');\n\n for(let i =0;i -1) {\n this.categoriesList[i].selected = true;\n }\n else {\n this.categoriesList[i].selected = false;\n }\n }\n\n this.fnGridFilterChanged(this.gridFilterStatus);\n\n }\n else {\n this.panelHeading = '';\n this.gridData = [];\n }\n this.disableSave = true;\n }\n\n canDeactivate() {\n return !this.hasFormChanges;\n }\n\n fnShowConfigureshowLoggingAlertPanel() {\n const model = new LoggingPanelModel(\n this.claims.OrgId.toString(),\n LogObjectActionTemplateEnum.AssignGradetoCategory.toString(),\n this.selectedGrade.gradeId\n );\n this.loggingPanelService.onShowLogPanel(model);\n }\n\n fnInitialiseGrid() {\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n }\n\n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('cc_dashboard_label_category_name'),\n field: 'categoryName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n }\n ];\n }\n\n fnGetGridConfigItems() {\n\n let filterClass = \"d-inline-block cursor-pointer text-underline lH-12 \";\n\n let totalCategoryCount = this.categoriesList.length;\n let assignedCount = this.categoriesList.filter(r => r.selected).length;\n let unassignedCount = this.categoriesList.filter(r => !r.selected).length;\n\n let countByStatusArray = [];\n\n countByStatusArray.push(new CountByStatus(\"d-block\", this.translate.instant('total_categories'), totalCategoryCount, false, 0));\n\n countByStatusArray.push(new CountByStatus(filterClass + \"inactive-state padding-right-10 padding-left-10\",\n this.translate.instant('all'), totalCategoryCount, true, 0));\n countByStatusArray.push(new CountByStatus(filterClass + \"active-state padding-right-10 padding-left-10 border-left-2px\",\n this.translate.instant('assigned_category_grade'), assignedCount, true, 1));\n countByStatusArray.push(new CountByStatus(filterClass + \"not-invited-state padding-left-10 border-left-2px\",\n this.translate.instant('unassigned_category_grade'), unassignedCount, true, 2));\n\n this.gridConfigItems = new GridConfig(\n false,\n true,\n this.defaultSortColumn,\n \"categoryId\",\n this.gridFilterStatus,\n true,\n countByStatusArray,\n true,\n true,\n false,\n null,\n 'asc',\n 40,\n 'no_data_availabe',\n null,\n null,\n false, false,\n '',\n '',\n true\n );\n }\n\n fnOnGridCellClick(params) {\n switch (params.column.colId) {\n case 'selected':\n if (this.changedCategoryList.find(c => c.categoryId == params.data.categoryId)) {\n this.changedCategoryList = this.changedCategoryList.filter(c => c.categoryId != params.data.categoryId);\n }\n else {\n this.changedCategoryList.push(params.data);\n }\n if(this.changedCategoryList.length > 0) {\n this.disableSave = false;\n this.hasFormChanges = true;\n }\n else {\n this.disableSave = true;\n this.hasFormChanges = false;\n }\n break;\n }\n }\n\n fnGridFilterChanged(status) {\n this.gridData = [];\n this.gridFilterStatus = status;\n switch (status) {\n case 0:\n this.gridData = this.categoriesList;\n break;\n case 1:\n this.gridData = this.categoriesList.filter(e => e.selected);\n break;\n case 2:\n this.gridData = this.categoriesList.filter(e => !e.selected);\n break;\n }\n this.fnGetGridConfigItems();\n\n if(this.gridComponent) {\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n }\n\n saveAssignedGradeToCategoriesByGrade() {\n this.disableSave = true;\n\n if (this.categoriesList.filter(x => x.selected).length == 0) {\n this.showNoCategorySelected = true;\n return;\n }\n\n if (this.changedCategoryList.length == 0) {\n return;\n }\n\n const categoriesToGradeByGrade = [];\n for (let i = 0;i(\n \"SoloSaveOrgAssignCategoryToGradesByGrade\",\n 1.0,\n \"111\"\n );\n getCategpriesToGradeByGradeSaveRequest.requestInfo = categoriesToGradeByGrade;\n\n this.gradeService.saveCategpriesToGradeByGrade(getCategpriesToGradeByGradeSaveRequest).subscribe((data) => {\n this.toastr.success(this.translate.instant(\"success\"));\n this.isSaved = true;\n this.hasFormChanges = false;\n this.changedCategoryList = [];\n this.fnClosePanel();\n });\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanel.emit(this.isSaved);\n this.isSaved = false;\n this.disableSave = true;\n this.changedCategoryList = [];\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n closeNoCategorySelected() {\n this.showNoCategorySelected = false;\n }\n\n}\n","
\n
\n
\n
\n
\n

{{ panelHeading }}

\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n
\n

{{ \"label_alert\" | translate }}

\n
\n
\n \n
\n
\n
\n
\n \n {{ \"no_category_selected_grade\" | translate }}\n
\n
\n
\n
","
\n
\n
\n
\n
\n

{{ 'label_Step' | translate}} 4 - {{ \"expense_category_wizard_step4_desc\" | translate }}

\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n\n\n\n\n\n\n","import { OnInit, Component, ViewChild, Output, EventEmitter, Input, OnChanges,OnDestroy } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { GradeService } from \"src/app/_services\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { LoggingPanelModel } from \"../../../_models/common/LoggingPanelModel\";\nimport { ApiRequest, IApiresponse, LogObjectActionTemplateEnum, GradeStatusEnum } from \"../../../_models\";\nimport { ClaimsService } from \"../../../_services/common/claims.service\";\nimport { LoggingPanelService } from \"../../../_services/logging-panel/logging-panel.service\";\nimport { Claims } from \"../../../_models/common/claims\";\nimport { Subscription } from \"rxjs\";\nimport { CountByStatus, GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { ColDef } from \"ag-grid-community\";\nimport { NgOption } from \"@ng-select/ng-select\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport {IRequestGradeListForAssignEmployee, IResponseGradeListForAssignEmployee, RequestGradeListForAssignEmployee,\n AssignCategoriesToGradeListPanelInputModel,AddGradePanelInputModel,AddGradePanelOutputModel} from \"src/app/_models/grade/grade\";\nimport { first } from \"rxjs/operators\";\nimport { environment } from \"src/environments/environment\";\n\n@Component({\n selector: \"grade-assign-category-list-panel\",\n templateUrl: \"./grade-assign-category-list-panel.component.html\"\n})\nexport class GradeAssignCategoryListPanelComponent implements OnInit, OnDestroy {\n\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n \n @Input() inputModel: AssignCategoriesToGradeListPanelInputModel;\n @Output() closePanelEvent = new EventEmitter();\n\n claimsSubscription: Subscription;\n claims: Claims;\n videoLink = HowDoIVideoLinks.AssignCategoryToGrade;\n panelHeading:string=\"\";\n\n statusValue: number;\n showClaimantPanel: boolean;\n lstClaimants: any[] = [];\n gradeList: any[] = [];\n defaultSortColumn = 'updatedOn';\n gridData: any[] = [];\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n gridFilterStatus: number = 0;\n gridFilterItems: NgOption[] = [];\n panelHeader: string;\n editedGradeId: number = 0;\n currentEditingGrade: any;\n showCategoryAssignmentPanel: boolean;\n expenseCategories: any[] = [];\n\n showAddGradePanel: boolean = false;\n addGradePanelInputModel: AddGradePanelInputModel;\n\n constructor(\n private router: Router,\n private gradeService: GradeService,\n private toastr: ToastrService,\n private claimsService: ClaimsService,\n private loggingPanelService: LoggingPanelService,\n private translate: TranslateService\n ) {\n this.claimsSubscription = this.claimsService.currentClaims.subscribe(claims => {\n this.claims = claims;\n });\n }\n\n ngOnInit(): void {\n this.panelHeading = this.inputModel.title;\n this.fnGetCategoriesToGrades();\n this.fnInitialiseGrid();\n this.fnGetGradeListForAssignEmployee();\n }\n\n ngOnDestroy() {\n this.claimsSubscription.unsubscribe();\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n\n fnShowConfigureshowLoggingAlertPanel(gradeId) {\n const model = new LoggingPanelModel(\n this.claims.OrgId.toString(),\n LogObjectActionTemplateEnum.AssignGradetoCategory.toString(),\n gradeId\n );\n this.loggingPanelService.onShowLogPanel(model);\n }\n\n fnInitialiseGrid() {\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n }\n\n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('grade_name'),\n field: 'gradeName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n },\n {\n headerName: this.translate.instant('no_of_claimants'),\n field: 'assignedEmployeeCount',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 200,\n width: 200,\n cellRenderer: 'formattedTextRenderer',\n headerClass: 'text-center',\n cellClass: 'text-center',\n headerComponentParams: {\n class: 'd-inline-block text-logo-blue cursor-pointer text-underline lH-12 text-right'\n },\n \n },\n {\n headerName: this.translate.instant('assign_categories'),\n field: 'assignedCategories',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n headerClass: 'text-center',\n cellClass: 'text-center',\n },\n {\n headerName: this.translate.instant('label_log_history'),\n field: 'log',\n cellRenderer: 'actionRenderer',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 50,\n headerClass: 'text-center',\n cellClass: 'text-center',\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-file-search',\n buttonTooltip: this.translate.instant('label_log'),\n buttonAlignmentClass: 'text-center position-relative'\n }\n ]\n },\n {\n headerName: \"\",\n valueGetter: 'data.gradeId',\n cellRenderer: 'actionRenderer',\n field: 'userActionField',\n suppressMovable: true,\n suppressMenu: true,\n sortable: false,\n minWidth: 100,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-edit color-green',\n buttonTooltip: this.translate.instant('label_edit'),\n userAction: 1\n }\n ]\n }\n ];\n }\n\n fnGetGridConfigItems() {\n\n let totalGradeCount = this.gridData.length;\n\n let countByStatusArray = [];\n countByStatusArray.push(new CountByStatus(\"d-block\", this.translate.instant('grade_count'), totalGradeCount, false, 0));\n\n this.gridConfigItems = new GridConfig(\n false,\n false,\n this.defaultSortColumn,\n \"gradeId\",\n this.gridFilterStatus,\n true,\n countByStatusArray,\n true,\n true,\n false,\n null,\n 'desc',\n 40,\n 'no_data_availabe',\n null,\n null,\n false, false,\n '',\n '',\n false\n );\n }\n\n fnGetCategoriesToGrades() {\n this.gradeService.getCategpriesToGrade().subscribe((data) => {\n this.gridData = data.responseInfo.grades.filter(g => g.gradeStatus == GradeStatusEnum.Active);\n this.expenseCategories = data.responseInfo.categories;\n\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n\n this.fnHighlightRows();\n });\n }\n\n fnHighlightRows() {\n if (this.editedGradeId) {\n this.gridData = this.gridData.map(\n (item) => {\n if (item.gradeId == this.editedGradeId) {\n item.isRowHighlighted = true;\n }\n return item;\n });\n this.editedGradeId = 0;\n\n setTimeout(() => {\n this.fnUnsetGridRowHighlighted();\n }, 3000);\n }\n }\n\n fnUnsetGridRowHighlighted() {\n this.gridData = this.gridData.map((item) => {\n item.isRowHighlighted = false;\n return item;\n });\n\n this.gridComponent.unsetRowHighlighted(this.gridData);\n }\n\n fnOnGridCellClick(params) {\n switch (params.column.colId) {\n case 'selected':\n if (params.data.selected) {\n this.currentEditingGrade = params.data;\n this.showCategoryAssignmentPanel = true;\n }\n else {\n this.currentEditingGrade = null;\n }\n break;\n case 'assignedEmployeeCount':\n this.lstClaimants = [];\n var selectedItem = this.gradeList.filter(d => d.gradeId == params.data.gradeId);\n this.showClaimantPanel = true;\n this.lstClaimants = selectedItem;\n this.panelHeader = this.translate.instant('list_of_claimants_assigned_to').replace('{0}', params.data.gradeName + ': ' + params.data.assignedEmployeeCount);\n break;\n break;\n case 'log':\n this.fnShowConfigureshowLoggingAlertPanel(params.data.gradeId.toString());\n break;\n case 'userActionField':\n this.currentEditingGrade = params.data;\n this.gridComponent.checkItems([params.data.gradeId]);\n this.showCategoryAssignmentPanel = true;\n break;\n }\n }\n\n fnGetGradeListForAssignEmployee() {\n let gradeRequest = new ApiRequest(\"SoloGetGradeListForAssignEmployee\",environment.applicationVersion, environment.requestId);\n let gradeRequestInfo = new RequestGradeListForAssignEmployee(\n this.claims.OrgId,\n this.statusValue\n );\n\n gradeRequest.requestInfo = gradeRequestInfo;\n\n this.gradeService.GetGradeListForAssignEmployee(gradeRequest)\n .subscribe(\n (response: any) => {\n if (response.responseInfo != null) {\n this.gradeList = response.responseInfo.lstEmployee;\n }\n }\n );\n }\n\n fnPanelReceiver() {\n this.showClaimantPanel = false;\n }\n\n fnCloseAssignCategoryPanel(isSaved) {\n if (isSaved) {\n this.editedGradeId = this.currentEditingGrade.gradeId;\n this.currentEditingGrade = null;\n this.fnGetCategoriesToGrades();\n }\n this.gridComponent.uncheckAll();\n this.showCategoryAssignmentPanel = false;\n }\n\nfnShowAddGradePanel(gradeId: number, isEdit: boolean = false,isCopy:boolean= false) {\n this.addGradePanelInputModel = new AddGradePanelInputModel(gradeId, isEdit,isCopy);\n this.showAddGradePanel = true;\n }\n\nfnCloseAddGradePanel(isClose: boolean) {\n if (isClose) {\n this.addGradePanelInputModel = null;\n this.gridComponent.uncheckAll();\n this.showAddGradePanel = false;\n }\n}\n\nfnSubmitAddGradePanel(response: AddGradePanelOutputModel) {\n if (response) {\n this.addGradePanelInputModel = null; \n this.showAddGradePanel = false;\n this.fnGetCategoriesToGrades();\n }\n}\n\n}\n","
\n
\n
\n
\n
\n

{{ 'label_Step' | translate}} 1 - {{ \"grade_wizard_text1\" | translate }}

\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

{{ 'bulk_actions_selected' | translate }} {{selectedItemsList.length}}

\n
\n
\n \n
\n
\n
\n
\n
    \n
  • \n \n {{ 'grade_deactivate' | translate }}\n
  • \n
  • \n \n {{ 'grade_activate' | translate }}\n
  • \n
\n
\n
\n
\n\n
\n\n\n\n\n\n\n\n","import { Component, EventEmitter, OnDestroy, OnInit, Output, ViewChild } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { AuthenticationService, GradeService } from \"../../_services\";\nimport { ToastrService } from \"ngx-toastr\";\nimport {\n ApiRequest,\n IApiresponse,\n GradeStatusEnum,\n FunctionPackageEnum,\n LogObjectActionTemplateEnum,\n} from \"../../_models\";\nimport { Observable, Subscription } from \"rxjs\";\nimport { Userresponsedto } from \"../../_models/user/userresponsedto\";\nimport { Claims } from \"../../_models/common/claims\";\nimport { ClaimsService } from \"../../_services/common/claims.service\";\nimport {\n IResponseGrade,\n IResponseGradeList,\n IRequestGradeBulkDeactivate,\n RequestGradeBulkDeactivate,\n IRequestGradeListAll,\n RequestGradeListAll,\n RequestGrade,\n IRequestGrade,\n} from \"src/app/_models/grade/grade\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { BaseComponent } from \"../../shared/base/base-component\";\nimport { AlertService } from \"../../alert-panel/alert.service\";\nimport { OrganisationSettingService } from \"src/app/_services/organisation-setting/organisation-setting.service\";\nimport { MarketingPopup } from \"src/app/_models/common/marketing-popup\";\nimport { LoggingPanelModel } from \"../../_models/common/LoggingPanelModel\";\nimport { LoggingPanelService } from \"../../_services/logging-panel/logging-panel.service\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ColDef } from \"ag-grid-community\";\nimport { CountByStatus, GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { NgOption } from \"@ng-select/ng-select\";\nimport { ActionPanelConfig, ActionPanelOutput } from \"src/app/_models/common/form/form\";\nimport { ActionPanelComponent } from \"src/app/shared/panels/action-panel/action-panel.component\";\nimport { FormlyFieldConfig } from \"@ngx-formly/core\";\nimport { GetField } from \"src/app/shared/forms/form-functions/form-functions\";\nimport { IRequestGradeListForAssignEmployee, \n IResponseGradeListForAssignEmployee, \n RequestGradeListForAssignEmployee,\n AssignCategoriesToGradeListPanelInputModel } from \"../../_models/grade/grade\";\nimport { first } from \"rxjs/operators\";\n\n@Component({\n selector: 'grade-panel',\n templateUrl: \"./grade.component.html\",\n styleUrls: [\"./grade.component.scss\"],\n})\nexport class GradeComponent extends BaseComponent implements OnInit, OnDestroy {\n\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n @ViewChild(ActionPanelComponent) actionPanel: ActionPanelComponent;\n howDoIVideoLinks = HowDoIVideoLinks;\n hasFormChanges: boolean;\n videoLink: string = HowDoIVideoLinks.SetupGrades;\n lstClaimants: any[] = [];\n alertSubscription: Subscription;\n currentUserSubscription: Subscription;\n claimsubscription: Subscription;\n currentUser: Userresponsedto;\n claims: Claims;\n showClaimantPanel: boolean;\n assigncategoriestogradePopupModel: MarketingPopup;\n isAssigncategoriestogradeSubscribed: boolean;\n showAssignCategorieToGradePopup: boolean;\n panelHeader: string;\n gradeAllList: IResponseGrade[] = [];\n selectedItemsList: IResponseGrade[] = [];\n gradeList: any[] = [];\n defaultSortColumn = 'gradeStatus';\n gridData: any[] = [];\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n gridFilterStatus: number = GradeStatusEnum.Active;\n gridFilterItems: NgOption[] = [\n { id: GradeStatusEnum.Active, name: \"Active\" },\n { id: GradeStatusEnum.Inactive, name: \"Inactive\" }\n ];\n\n actionPanelConfig: ActionPanelConfig = null;\n actionPanelModel: any = null;\n hideActionButtons: boolean = false;\n disableDeactiveButton: boolean = false;\n bulkActionDiv: boolean = false;\n alertPanelModelForBulk: AlertPanelModel = new AlertPanelModel(false, \"\", [\"\"], \"\", \"\", true, this.translate.instant(\"please_review_or_confirm\"));\n statusValue: number;\n\n showAssignCategoriesToGradeListPanel: boolean = false;\n assignCategoriesToGradeListPanelInputModel: AssignCategoriesToGradeListPanelInputModel;\n\n constructor(\n private router: Router,\n private toastr: ToastrService,\n private authenticationService: AuthenticationService,\n private gradeService: GradeService,\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private alertService: AlertService,\n private organisationSettingService: OrganisationSettingService,\n private loggingPanelService: LoggingPanelService\n ) {\n super();\n this.claimsubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n this.currentUserSubscription = this.authenticationService.currentUser.subscribe(\n (user) => {\n this.currentUser = user;\n }\n );\n var currentContext = this;\n this.alertSubscription = this.alertService.getUserActionEvent().subscribe((action) => {\n if (action) {\n currentContext.hasFormChanges = false;\n currentContext.onClosePanel();\n }\n });\n\n }\n\n ngOnInit(): void {\n this.statusValue = GradeStatusEnum.Active;\n this.showClaimantPanel = false;\n this.hasFormChanges = false;\n this.getAllGradeForOrg();\n this.fnInitialiseGrid();\n this.checkAssigncategoriestogradeSubscribed();\n this.getGradeListForAssignEmployee();\n if (localStorage.getItem(\"addFromMileageRate\")) {\n this.fnShowSaveGradePanel('add', null);\n localStorage.removeItem(\"addFromMileageRate\")\n }\n\n this.assigncategoriestogradePopupModel = new MarketingPopup(\n this.translate.instant(\"assign_categories_to_grade\"),\n this.translate.instant(\"assign_categories_to_grade\"),\n this.translate.instant(\"assign_category_grade_description\"),\n null,\n \"../../assets/svg-icons/GradesToCatoories.png\",\n \"../../assets/images/GradesToCatoories.png\",\n \"\",\n FunctionPackageEnum.assigncategoriestograde,\n this.translate.instant(\"assign_categories_to_grade\"),\n \"assigncategoriestograde\",\n 0,\n 0\n );\n }\n\n ngOnDestroy() {\n this.alertSubscription.unsubscribe();\n this.claimsubscription.unsubscribe();\n this.currentUserSubscription.unsubscribe();\n }\n\n canDeactivate(): boolean {\n return !this.hasFormChanges;\n }\n\n fnInitialiseGrid() {\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n }\n\n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('grade_name'),\n field: 'gradeName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n },\n {\n headerName: this.translate.instant('grade_description'),\n field: 'gradeDescription',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n },\n {\n headerName: this.translate.instant('grade_status'),\n field: 'gradeStatus',\n resizable: true,\n suppressMenu: true,\n cellRenderer: 'fieldValueRenderer',\n minWidth: 100,\n sortable: false,\n headerComponentParams: [\n { class: 'color-green font-weight-bold', value: GradeStatusEnum.Active, text: this.translate.instant(\"label_active\") },\n { class: 'font-weight-bold', value: GradeStatusEnum.Inactive, text: this.translate.instant(\"label_inactive\") }\n ]\n },\n {\n headerName: this.translate.instant('no_of_claimants'),\n field: 'assignedEmployeeCount',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 200,\n width: 200,\n cellClass: 'text-center',\n headerClass: 'text-center',\n cellRenderer: 'formattedTextRenderer',\n headerComponentParams: {\n class: 'd-inline-block text-logo-blue cursor-pointer text-underline lH-12'\n }\n },\n {\n headerName: this.translate.instant('label_log_history'),\n field: 'log',\n cellRenderer: 'actionRenderer',\n resizable: true,\n suppressMenu: true,\n minWidth: 50,\n headerClass: 'text-center',\n cellClass: 'text-center',\n sortable: false,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-file-search',\n buttonTooltip: this.translate.instant('label_log'),\n buttonAlignmentClass: 'text-center position-relative'\n }\n ]\n },\n {\n headerName: \"\",\n valueGetter: 'data.gradeId',\n cellRenderer: 'actionRenderer',\n field: 'userActionField',\n suppressMovable: true,\n suppressMenu: true,\n sortable: false,\n minWidth: 100,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-edit color-green',\n buttonTooltip: this.translate.instant('label_edit'),\n userAction: 1\n },\n {\n buttonClass: 'fas fa-copy text-logo-blue',\n buttonTooltip: this.translate.instant('copy'),\n userAction: 2\n }\n ]\n }\n ];\n }\n\n fnGetGridConfigItems() {\n\n let filterClass = \"d-inline-block cursor-pointer text-underline lH-12 \";\n let totalGradeCount = this.gradeAllList.length;\n let activeGradeCount = this.gradeAllList.filter(g => g.gradeStatus == GradeStatusEnum.Active).length;\n let inactiveGradeCount = this.gradeAllList.filter(g => g.gradeStatus == GradeStatusEnum.Inactive).length;\n\n let countByStatusArray = [];\n\n countByStatusArray.push(new CountByStatus(\"d-block\", this.translate.instant('grade_count'), totalGradeCount, false, 0));\n\n countByStatusArray.push(new CountByStatus(filterClass + \"color-green padding-right-10 padding-left-10\",\n this.translate.instant('label_active'), activeGradeCount, true, GradeStatusEnum.Active));\n countByStatusArray.push(new CountByStatus(filterClass + \"color-grey padding-left-10 border-left-2px\",\n this.translate.instant('label_inactive'), inactiveGradeCount, true, GradeStatusEnum.Inactive));\n\n this.gridConfigItems = new GridConfig(\n false,\n false,\n this.defaultSortColumn,\n \"gradeId\",\n this.gridFilterStatus,\n true,\n countByStatusArray,\n true,\n true,\n true,\n null,\n 'asc',\n 40,\n 'no_data_availabe',\n null,\n null,\n false, false,\n '',\n '',\n false\n );\n }\n\n getAllGradeForOrg() {\n let gradeRequest = new ApiRequest(\n \"SoloGetAllGradeByOrgId\",\n 1.0,\n \"111\"\n );\n let gradeRequestInfo = new RequestGradeListAll(this.claims.OrgId);\n gradeRequest.requestInfo = gradeRequestInfo;\n this.gradeService\n .GetAllGradeByOrgId(gradeRequest)\n .subscribe((response: IApiresponse) => {\n this.gradeAllList = [];\n if (response.responseInfo != null) {\n this.gradeAllList = response.responseInfo.gradeList;\n }\n this.fnGridFilterChanged(this.gridFilterStatus);\n });\n }\n\n fnGridFilterChanged(status) {\n this.gridData = [];\n this.gridFilterStatus = status;\n\n switch (status) {\n case 0:\n this.gridData = this.gradeAllList;\n break;\n default:\n this.gridData = this.gradeAllList.filter(g => g.gradeStatus == status);\n break;\n }\n\n this.fnHighlightRows();\n this.fnGetGridConfigItems();\n\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n isGradePanelOpen:boolean = true;\n \n fnHighlightRows() {\n let updatedDateTimeFromLocalStorage = localStorage.getItem(\"gradeUpdatedDateTime\" + this.claims.OrgId);\n\n if (updatedDateTimeFromLocalStorage) {\n let lastUpdateDateTime = new Date(updatedDateTimeFromLocalStorage);\n this.gridData = this.gridData.map(\n (item) => {\n let updateOnDate = new Date(item.updatedOn);\n if (updateOnDate > lastUpdateDateTime) {\n item.isRowHighlighted = true;\n }\n return item;\n });\n localStorage.removeItem(\"gradeUpdatedDateTime\" + this.claims.OrgId);\n\n setTimeout(() => {\n this.fnUnsetGridRowHighlighted();\n }, 3000);\n }\n }\n\n fnUnsetGridRowHighlighted() {\n this.gridData = this.gridData.map((item) => {\n item.isRowHighlighted = false;\n return item;\n });\n\n this.gridComponent.unsetRowHighlighted(this.gridData);\n }\n\n fnOnGridCheckAll(params) {\n if (params) {\n this.selectedItemsList = this.gridData;\n this.selectedItemsList = this.selectedItemsList.slice();\n this.fnShowBulkEditGradePanel();\n }\n else {\n this.selectedItemsList = [];\n this.onClosePanel();\n }\n }\n\n fnOnGridCellClick(params) {\n switch (params.column.colId) {\n case 'selected':\n if (params.data.selected) {\n this.selectedItemsList.push(params.data);\n }\n else {\n this.selectedItemsList = this.selectedItemsList.filter(e => e.gradeId != params.data.gradeId);\n }\n if (this.selectedItemsList.length == 1) {\n this.bulkActionDiv = false;\n this.fnShowSaveGradePanel('edit', this.selectedItemsList[0]);\n }\n else if (this.selectedItemsList.length > 1) {\n this.fnShowBulkEditGradePanel();\n }\n else {\n this.onClosePanel();\n }\n break;\n case 'log':\n this.fnShowConfigureshowLoggingAlertPanel(params.data.gradeId.toString());\n break;\n case 'assignedEmployeeCount':\n this.lstClaimants = [];\n var selectedItem = this.gradeList.filter(d => d.gradeId == params.data.gradeId);\n this.showClaimantPanel = true;\n this.lstClaimants = selectedItem;\n this.panelHeader = this.translate.instant('list_of_claimants_assigned_to').replace('{0}', params.data.gradeName + ' : ' + params.data.assignedEmployeeCount);\n break;\n case 'userActionField':\n switch (params.data.userAction) {\n case 1:\n if (!this.selectedItemsList.find(e => e.gradeId != params.data.gradeId)) {\n this.selectedItemsList = [params.data];\n this.gridComponent.checkItems([params.data.gradeId]);\n this.fnShowSaveGradePanel('edit', params.data);\n }\n break;\n case 2:\n this.fnShowSaveGradePanel('copy', params.data);\n break;\n }\n break;\n }\n this.selectedItemsList = this.selectedItemsList.slice();\n }\n\n fnShowConfigureshowLoggingAlertPanel(FilterID: string = \"0\") {\n const model = new LoggingPanelModel(\n this.claims.OrgId.toString(),\n LogObjectActionTemplateEnum.Grade.toString(),\n FilterID\n );\n this.loggingPanelService.onShowLogPanel(model);\n }\n\n getGradeListForAssignEmployee() {\n\n let gradeRequest = new ApiRequest(\n \"SoloGetGradeListForAssignEmployee\",\n 1.0,\n \"111\"\n );\n let gradeRequestInfo = new RequestGradeListForAssignEmployee(\n this.claims.OrgId,\n this.statusValue\n );\n\n gradeRequest.requestInfo = gradeRequestInfo;\n\n this.gradeService\n .GetGradeListForAssignEmployee(gradeRequest)\n .pipe(first())\n .subscribe(\n (response: any) => {\n if (response.responseInfo != null) {\n this.lstClaimants = [];\n this.gradeList = response.responseInfo.lstEmployee;\n }\n }\n );\n }\n\n fnPanelReceiver() {\n this.showClaimantPanel = false;\n }\n\n fnShowSaveGradePanel(action, rowData) {\n\n this.actionPanelConfig = null;\n let panelKey = '';\n let headerTitle = '';\n\n let actionButtonConfig = [\n {\n buttonClass: 'btn eod-btn-primary mr-2',\n buttonTooltip: 'label_save',\n key: 'save',\n\n disableWhenNotDirty: true\n \n }\n ];\n\n switch (action) {\n case 'add':\n panelKey = \"AddGradePanel\";\n headerTitle = \"grade_new\";\n this.actionPanelModel = {};\n break;\n case 'edit':\n panelKey = \"EditGradePanel\";\n headerTitle = \"grade_edit\";\n actionButtonConfig.splice(0, 0, {\n buttonClass: 'btn eod-btn-outline-warning mr-2',\n buttonTooltip: 'label_log',\n key: 'log',\n disableWhenNotDirty: false\n });\n this.actionPanelModel = {\n gradeName: rowData.gradeName,\n gradeDescription: rowData.gradeDescription,\n gradeStatus: rowData.gradeStatus == GradeStatusEnum.Active ? true : false\n };\n break;\n case 'copy':\n panelKey = \"CopyGradePanel\";\n headerTitle = \"grade_copy\";\n this.actionPanelModel = {\n gradeName: this.translate.instant(\"copy_of\") + rowData.gradeName,\n gradeDescription: this.translate.instant(\"copy_of\") + rowData.gradeDescription,\n gradeStatus: rowData.gradeStatus == GradeStatusEnum.Active ? true : false\n };\n break;\n }\n\n this.actionPanelConfig = {\n panelKey: panelKey,\n headerTitle: headerTitle,\n isMultipleSelected: false,\n selectedItemCount: 0,\n formData: this.initializeGradeForm(action),\n buttonConfig: actionButtonConfig,\n disableButtonsOnInvalid: false,\n subtitle: '',\n isOverlay: false\n };\n }\n\n initializeGradeForm(action) {\n let fields: FormlyFieldConfig[] = [];\n\n if (action == 'edit') {\n fields.push({\n fieldGroup: [\n {\n key: 'gradeStatus',\n type: 'formly-toggle-input',\n templateOptions: {\n options: [{\n mainClass: \"custom-control custom-switch text-left position-relative top--14px margin-left-15 margin-top-10\"\n }],\n labelActive: this.translate.instant(\"label_activate\"),\n labelDeactive: this.translate.instant(\"label_deactivate\"),\n change: (field, $event) => {\n this.hasFormChanges = true;\n }\n },\n expressionProperties: {\n }\n }\n ]\n });\n }\n\n fields.push({\n fieldGroupClassName: 'block row mt-2',\n fieldGroup: [\n {\n key: 'gradeName',\n type: 'text-input',\n className: 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-left-0',\n templateOptions: {\n label: this.translate.instant('grade_name'),\n placeholder: '',\n required: true,\n maxLength: 50,\n maxLengthCount: true,\n change: (field, $event) => {\n this.hasFormChanges = true;\n }\n }\n },\n {\n key: 'gradeDescription',\n type: 'text-input',\n className: 'col-xl-6 col-lg-6 col-md-6 col-sm-6 padding-right-0',\n templateOptions: {\n label: this.translate.instant('grade_description'),\n placeholder: '',\n required: true,\n maxLength: 100,\n maxLengthCount: true,\n change: (field, $event) => {\n this.hasFormChanges = true;\n }\n }\n }\n ]\n });\n\n return fields;\n }\n\n fnShowBulkEditGradePanel() {\n this.hasFormChanges = false;\n this.actionPanelConfig = null;\n this.actionPanelModel = null;\n\n this.bulkActionDiv = true;\n this.disableDeactiveButton = false;\n }\n\n bulkDeactivateGradeConfirm() {\n if (this.gridFilterStatus == GradeStatusEnum.Active) {\n this.fnUnassignEmployees(this.selectedItemsList);\n }\n else {\n this.alertPanelReceiverForBulk(true);\n }\n }\n\n alertPanelReceiverForBulk(returnValue) {\n if (returnValue) {\n this.bulkDeactiveGrade();\n }\n this.alertPanelModelForBulk = new AlertPanelModel(false, \"\", [\"\"], \"\", \"\", true, this.translate.instant(\"please_review_or_confirm\"));\n if (this.actionPanel.dynamicForm)\n this.actionPanel.dynamicForm.form.markAsDirty();\n }\n\n bulkDeactiveGrade() {\n\n this.disableDeactiveButton = true;\n \n let gradeBulkDeactiveRequest = new ApiRequest(\n \"SoloBulkDeactiveGrade\",\n 1.0,\n \"111\"\n );\n\n const gradeIds = this.selectedItemsList.map(i => i.gradeId);\n gradeBulkDeactiveRequest.requestInfo = new RequestGradeBulkDeactivate(\n gradeIds,\n this.claims.UserId,\n this.claims.FinanceManager\n );\n\n let request: Observable>;\n if (this.gridFilterStatus == GradeStatusEnum.Active) {\n request = this.gradeService.BulkDeactiveGrade(gradeBulkDeactiveRequest);\n this.gridFilterStatus = GradeStatusEnum.Inactive;\n }\n else {\n request = this.gradeService.BulkReactiveGrade(gradeBulkDeactiveRequest);\n this.gridFilterStatus = GradeStatusEnum.Active;\n }\n\n localStorage.setItem(\"gradeUpdatedDateTime\" + this.claims.OrgId, JSON.stringify(new Date().toUTCString()));\n\n request.subscribe((response: IApiresponse) => {\n if (response.statusCode == 200) {\n this.toastr.success(this.translate.instant(\"success\"));\n this.hasFormChanges = false;\n this.onClosePanel();\n this.getAllGradeForOrg();\n }\n this.disableDeactiveButton = false;\n });\n }\n\n onActionPanelSubmit(result: ActionPanelOutput) {\n switch (result.buttonKey) {\n case 'close':\n this.onClosePanel();\n break;\n case 'log':\n const gradeId = this.selectedItemsList[0].gradeId;\n this.fnShowConfigureshowLoggingAlertPanel(gradeId.toString());\n break;\n case 'save':\n this.fnSaveGrade(result, this.selectedItemsList);\n }\n }\n\n fnUnassignEmployees(selectedItemsList: any) {\n var isEmpAssigned = false;\n if (selectedItemsList.length > 0) {\n for (let i = 0; i < selectedItemsList.length; i++) {\n if (selectedItemsList[i].isAnyEmployeeAssigned == true) {\n isEmpAssigned = true;\n }\n }\n }\n\n this.alertPanelModelForBulk = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [isEmpAssigned\n ? this.translate.instant(\"grade_deactivate_confirm_msg3\")\n : this.translate.instant(\"grade_deactivate_confirm_msg2\")],\n this.translate.instant(\"cancel\"),\n this.translate.instant(\"label_confirm\"),\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n\n //return isEmpAssigned ? true : false;\n return true;\n }\n\n fnSaveGrade(result: ActionPanelOutput, selectedItemList: any) {\n var selectedGrade = this.selectedItemsList.length > 0 ? this.selectedItemsList[0] : null;\n let isValid = this.validateGrade(result.formModel.gradeName, selectedGrade ? selectedGrade.gradeId : 0);\n\n if (!isValid) {\n return;\n }\n else if ((result.formModel.gradeStatus == false && !this.fnUnassignEmployees(selectedItemList))\n || result.formModel.gradeStatus == true\n || typeof (result.formModel.gradeStatus) == 'undefined') {\n let gradeRequest = new ApiRequest(\n \"SoloCreateGrade\",\n 1.0,\n \"111\"\n );\n gradeRequest.requestInfo = new RequestGrade(\n this.claims.OrgId,\n result.formModel.gradeName,\n result.formModel.gradeDescription,\n GradeStatusEnum.Active,\n false,\n this.claims.UserId,\n this.claims.FinanceManager\n );\n\n let request: Observable>;\n if (selectedGrade) {\n gradeRequest.requestInfo.gradeId = selectedGrade.gradeId;\n gradeRequest.requestInfo.createdDate = selectedGrade.createdDate;\n gradeRequest.requestInfo.createdBy = selectedGrade.createdBy;\n gradeRequest.requestInfo.isDefault = selectedGrade.isDefault;\n gradeRequest.requestInfo.modifiedBy = this.claims.UserId;\n gradeRequest.requestInfo.modifiedDate = new Date();\n if (result.formModel.gradeStatus) {\n gradeRequest.requestInfo.gradeStatus = GradeStatusEnum.Active;\n }\n else {\n gradeRequest.requestInfo.gradeStatus = GradeStatusEnum.Inactive;\n }\n\n request = this.gradeService.UpdateGrade(gradeRequest);\n }\n else {\n request = this.gradeService.CreateGrade(gradeRequest);\n }\n\n localStorage.setItem(\"gradeUpdatedDateTime\" + this.claims.OrgId, JSON.stringify(new Date().toUTCString()));\n\n request.subscribe((response: IApiresponse) => {\n if (response.statusCode == 200) {\n this.toastr.success(this.translate.instant(\"success\"));\n this.hasFormChanges = false;\n this.onClosePanel();\n this.getAllGradeForOrg();\n } else {\n this.toastr.error(response.message);\n }\n });\n }\n else {\n this.actionPanel.disableButtonsOnInvalid = false;\n return;\n }\n }\n\n validateGrade(gradeName, gradeId) {\n let isValid: boolean = true;\n let gradeErrors = [];\n var existingGrade = this.gradeAllList.find((it) => it.gradeName.trim().toLowerCase() == gradeName.trim().toLowerCase()\n && it.gradeId != gradeId);\n if (existingGrade) {\n isValid = false;\n gradeErrors.push(this.translate.instant('name_exist'));\n }\n\n let employeeEmailField = GetField('gradeName', this.actionPanelConfig.formData);\n if (employeeEmailField) {\n employeeEmailField.templateOptions.customErrors = gradeErrors;\n }\n\n return isValid;\n }\n\n onClosePanel() {\n if (this.canDeactivate()) {\n this.hasFormChanges = false;\n this.actionPanelConfig = null;\n this.actionPanelModel = null;\n this.bulkActionDiv = false;\n this.disableDeactiveButton = false;\n this.selectedItemsList = [];\n this.gridComponent.uncheckAll();\n } else {\n this.alertService.onFormClosed();\n }\n }\n\n checkAssigncategoriestogradeSubscribed() {\n this.organisationSettingService\n .getSubscribedFunctionsForOrganisation(this.claims.OrgId)\n .subscribe((subsData) => {\n var assigncategoriestograde = subsData.responseInfo.find(\n (x) => x.functionID == FunctionPackageEnum.assigncategoriestograde\n );\n if (assigncategoriestograde) {\n this.isAssigncategoriestogradeSubscribed = true;\n } else {\n this.isAssigncategoriestogradeSubscribed = false;\n }\n });\n }\n\n gotoAssigncategoriestograde() {\n if (this.isAssigncategoriestogradeSubscribed) {\n this.fnShowAssignCategoriesToGradeListPanel();\n } else {\n this.showAssignCategorieToGradePopup = true;\n }\n }\n\n closeAssigncategoriestogradePopup() {\n this.showAssignCategorieToGradePopup = false;\n }\n\n goToImportGrade() {\n this.router.navigate([\"orgsetting/gradeimport\"]);\n }\n\n goToSetting() {\n if (\n localStorage.getItem(\"isRedirectFromMySubscriptionSettingPage\") == \"1\"\n ) {\n this.router.navigate([\"mysubscription\"]);\n } else {\n this.router.navigate([\"settings\"]);\n }\n }\n\n fnShowAssignCategoriesToGradeListPanel() {\n this.assignCategoriesToGradeListPanelInputModel = new AssignCategoriesToGradeListPanelInputModel(\n this.translate.instant(\"assign_categories_to_grade\") \n );\n this.showAssignCategoriesToGradeListPanel = true;\n }\n \n fnCloseAssignCategoriesToGradeListPanel(){\n this.showAssignCategoriesToGradeListPanel = false;\n this.assignCategoriesToGradeListPanelInputModel = null;\n }\n @Output() closePanelEvent = new EventEmitter();\n closePanel()\n{\n this.isGradePanelOpen = false;\n this.closePanelEvent.emit(true);\n \n}\n\n}\n","
\n
\n
\n
\n

{{ panelHeading }}

\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n {{ 'no_of_claimants' | translate }}: {{assignedEmployeeCount}}\n \n \n
\n
\n
\n \n \n \n
\n
\n {{ anyTextForDisplay }}\n
\n
\n
\n
\n
\n
\n
\n {{ selectedItemsText }}:\n
\n\n \n \n \n \n
\n
\n
\n
\n
\n
","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, ViewChild } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ColDef } from 'ag-grid-community';\nimport { ToastrService } from 'ngx-toastr';\nimport { Subscription } from 'rxjs';\nimport { first } from 'rxjs/operators';\nimport { AlertService } from '../../alert-panel/alert.service';\nimport { BaseComponent } from '../../shared/base/base-component';\nimport { AppGridComponent } from '../../shared/grid/grid-component/grid.component';\nimport { ApiRequest, CCActionsEnum, GradeStatusEnum, IApiresponse } from '../../_models';\nimport { Claims } from '../../_models/common/claims';\nimport { GridConfig } from '../../_models/common/grid/grid-config';\nimport { GradeMappedEmployeeList, IGradeMappedEmployeeList, IRequestGradeListAll, IResponseGradeList, RequestGradeListAll } from '../../_models/grade/grade';\nimport { GradeService, ManageempService } from '../../_services';\nimport { ClaimsService } from '../../_services/common/claims.service';\nimport { LoggingPanelService } from '../../_services/logging-panel/logging-panel.service';\n\n@Component({\n selector: 'app-assign-grade-panel',\n templateUrl: './assign-grade-panel.component.html'\n})\nexport class AssignGradePanelComponent extends BaseComponent implements OnInit, OnChanges {\n\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n\n @Output() uncheckEvent = new EventEmitter();\n @Output() closePanel = new EventEmitter(); \n\n @Input() selectedItems: any[] = []; \n @Input() panelHeading: string;\n isBulkOperation = false;\n rowKey: string;\n userActionEventSubscription: Subscription;\n claimsSubscription: Subscription;\n claims: Claims;\n currentUser: any;\n columnDefinitions: ColDef[];\n defaultSortColumn;\n gridConfigItems: GridConfig;\n gridColumnDefs: ColDef[];\n gridData: any;\n\n allApproversList: any = [];\n gradeAllList: any = [];\n assignedGradeId: number = null; \n selectedGradeId:number = 0;\n hasFormChanges: boolean = false;\n disableAssign: boolean = true;\n disableSave: boolean = true; \n isSaved: boolean = false;\n\n panelItemType: number = 0;\n showApproverStatusPanel: boolean = false;\n employeesList: any[] = [];\n selectedItemsText: string;\n anyTextForDisplay: string = '';\n selectedGradeStatus :number=0;\n selectedGradeName:string;\n assignedEmployeeCount:number=0;\n localOrganisationId: any;\n \n constructor(\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private toastr: ToastrService,\n private alertService: AlertService,\n private manageEmpService: ManageempService,\n private gradeService: GradeService,\n private loggingPanelService: LoggingPanelService\n ) { \n super();\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n this.localOrganisationId = this.claims.OrgId;\n });\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.resetFields();\n this.closePanel.emit(false);\n }\n });\n }\n\n ngOnInit(): void {\n this.gridData = JSON.parse(JSON.stringify(this.selectedItems));\n this.fnInitialiseEmployeesGrid();\n this.getAllGradeForOrg();\n }\n\n getAllGradeForOrg() {\n let gradeRequest = new ApiRequest(\n \"SoloGetAllGradeByOrgId\",\n 1.0,\n \"111\"\n );\n let gradeRequestInfo = new RequestGradeListAll(this.claims.OrgId);\n gradeRequest.requestInfo = gradeRequestInfo;\n this.gradeService\n .GetAllGradeByOrgId(gradeRequest)\n .subscribe((response: IApiresponse) => {\n this.gradeAllList = [];\n if (response.responseInfo != null) {\n this.gradeAllList = response.responseInfo.gradeList.filter(it=>it.gradeStatus == GradeStatusEnum.Active);\n } \n });\n }\n\n fnCreateColumnDefs() {\n this.columnDefinitions = [\n {\n headerName: this.translate.instant('claimant_name'),\n field: 'employeeName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n \n },\n {\n headerName: this.translate.instant('claimant_email'),\n field: 'employeeEmail',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n \n },\n {\n headerName: this.translate.instant('policy_grade_name'),\n field: 'gradeName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n \n },\n {\n headerName: this.translate.instant('label_status'),\n field: 'gradeStatus',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n cellRenderer: 'fieldValueRenderer',\n minWidth: 100,\n headerComponentParams: [\n { class: 'active-color font-weight-bold', value: GradeStatusEnum.Active, text: this.translate.instant(\"label_active\") }\n ]\n \n },\n {\n headerName: \"\",\n cellRenderer: 'actionRenderer',\n field: 'userActionField',\n suppressMovable: true,\n suppressMenu: true,\n sortable: false,\n minWidth: 100,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-edit color-green',\n buttonTooltip: this.translate.instant('label_edit'),\n userAction: CCActionsEnum.Edit\n }\n \n ]\n }\n ];\n }\n\n ngOnDestroy() {\n this.claimsSubscription.unsubscribe();\n this.userActionEventSubscription.unsubscribe();\n }\n\n ngOnChanges(changes) {\n this.gridData = JSON.parse(JSON.stringify(this.selectedItems));\n \n if (this.gridComponent) {\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n\n let key = '', selectedItemKey = '';\n key = 'assign_grade_selected_claimant';\n selectedItemKey = 'label_selected_grade';\n \n this.selectedItemsText = this.translate.instant(selectedItemKey);\n\n if (this.selectedItems && this.selectedItems.length > 1) {\n this.panelHeading = `${this.translate.instant('labl_bulk_action')}: ${this.translate.instant('label_selected')} ${this.selectedItems.length}`;\n this.anyTextForDisplay = '';\n }\n else {\n this.panelHeading = this.translate.instant(key);\n }\n } \n\n canDeactivate() {\n return !this.hasFormChanges;\n }\n\n fnGridInit() {\n this.rowKey = \"employeeId\" ;\n if (this.columnDefinitions && this.columnDefinitions.length > 0) {\n this.gridColumnDefs = JSON.parse(JSON.stringify(this.columnDefinitions));\n\n this.gridColumnDefs = this.gridColumnDefs.filter(c => c.field != \"selected\");\n\n this.gridColumnDefs.splice(this.gridColumnDefs.length - 1, 1,\n {\n headerName: \"\",\n valueGetter: 'data.' + this.rowKey,\n cellRenderer: 'actionRenderer',\n field: 'userActionField',\n suppressMovable: true,\n suppressMenu: true,\n sortable: false,\n minWidth: 100,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-minus-circle color-red',\n buttonTooltip: this.translate.instant('remove_text'),\n userAction: 1\n }\n ]\n });\n\n this.defaultSortColumn = this.gridColumnDefs[0].field;\n }\n\n\n this.gridConfigItems = new GridConfig(\n true,\n true,\n this.defaultSortColumn,\n this.rowKey,\n 0,\n false,\n [],\n true,\n true,\n false,\n null,\n 'asc',\n 40,\n 'no_data_availabe',\n null,\n null,\n false, false,\n '',\n '',\n false\n );\n }\n\n fnInitialiseEmployeesGrid() {\n this.fnCreateColumnDefs();\n this.fnGridInit();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n } \n\n onGradeChange() { \n if (this.assignedGradeId) {\n this.disableAssign = false;\n this.selectedGradeId = this.assignedGradeId;\n const selectedGrade = this.gradeAllList.find(a => a.gradeId == this.selectedGradeId);\n if (selectedGrade) { \n this.selectedGradeName = selectedGrade.gradeName;\n this.selectedGradeStatus = selectedGrade.gradeStatus;\n this.assignedEmployeeCount = parseInt(selectedGrade.assignedEmployeeCount); \n }\n else {\n this.selectedGradeName = '';\n this.selectedGradeStatus = 0;\n this.assignedEmployeeCount = 0; \n }\n } \n }\n\n fnOnGridCellClick(params) {\n if (params.column.colId === 'userActionField') {\n if(params.data.userAction == 1) {\n this.uncheckEvent.emit(params.data); \n }\n } \n } \n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.resetFields();\n this.closePanel.emit(this.isSaved);\n this.isSaved = false;\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n assignGrade() {\n if (this.selectedGradeId) { \n this.disableSave = false;\n this.disableAssign = true;\n this.hasFormChanges = true; \n this.assignGradeToClaimants();\n if (this.gridComponent) {\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n } \n this.resetSelectedGrade(); \n } \n }\n\n assignGradeToClaimants() {\n this.gridData.forEach((item) => {\n item.gradeId = this.selectedGradeId;\n item.gradeName = this.selectedGradeName;\n item.gradeStatus = this.selectedGradeStatus;\n }); \n }\n\n fnGetGradeName(gradeId:number){\n let grade = \"\";\n if(this.gradeAllList && gradeId){\n let gradeDetails = this.gradeAllList.find(c=>c.gradeId == gradeId);\n if(gradeDetails){\n grade = gradeDetails.costCentreName;\n }\n }\n return grade;\n }\n\n \n\n assignGradeToEmployee() {\n let gradeRequest = new ApiRequest(\n \"SoloAssignDeassignGradeToEmployee\",\n 1.0,\n \"111\"\n );\n \n var employeesIds: number[] = [];\n \n this.gridData.forEach(item => {\n employeesIds.push(item.employeeId);\n });\n \n let gradeMappedEmployeeListModel = new GradeMappedEmployeeList(\n this.selectedGradeId,\n this.localOrganisationId,\n employeesIds\n );\n \n gradeRequest.requestInfo = gradeMappedEmployeeListModel;\n if(employeesIds.length>10)\n {\n this.gradeService\n .AssignDeassignGradeToEmployeeBackground(gradeRequest)\n .pipe(first())\n .subscribe((response: any) => {\n if (response.statusCode == 200) {\n this.toastr.info(this.translate.instant(\"JobSubmittedToaster\")); \n this.isBulkOperation = false;\n this.hasFormChanges=false;\n this.closePanel.emit(true);\n }\n });\n }\n else\n {\n this.gradeService\n .AssignDeassignGradeToEmployee(gradeRequest)\n .pipe(first())\n .subscribe((response: any) => {\n if (response.statusCode == 200) {\n this.toastr.success(this.translate.instant(\"success\"));\n this.getAllGradeForOrg(); \n this.isBulkOperation = false;\n this.hasFormChanges=false;\n this.closePanel.emit(true);\n }\n });\n }\n } \n \n\n saveAssignments() {\n this.disableAssign = true;\n this.disableSave = true;\n this.toastr.info(this.translate.instant(\"request_processing_info\")); \n } \n\n resetFields() { \n this.resetSelectedGrade(); \n this.hasFormChanges = false;\n this.disableAssign = true;\n this.disableSave = true; \n } \n\n \n resetSelectedGrade() {\n this.selectedGradeName=null;\n this.selectedGradeStatus=null;\n this.assignedEmployeeCount = 0; \n this.assignedGradeId = null;\n } \n\n\n}\n\n\n","
\n
\n
\n
\n
\n

{{ 'label_Step' | translate}} 3 - {{ \"grade_wizard_text3\" | translate }}

\n

{{ \"grade_wizard_text3\" | translate }}

\n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n\n\n\n\n\n","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport {\n AuthenticationService,\n GradeService\n} from \"../../_services\";\nimport { first, takeUntil } from \"rxjs/operators\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { ApiRequest } from \"../../_models\";\nimport { Subject, Subscription } from \"rxjs\";\nimport { Userresponsedto } from \"../../_models/user/userresponsedto\";\nimport { ClaimantGradeEnum, CustomerActionEnum, GradeStatusEnum, LogObjectActionTemplateEnum } from \"../../_models/enum/solo-enum\";\nimport { Claims } from \"../../_models/common/claims\";\nimport { ClaimsService } from \"../../_services/common/claims.service\";\nimport { DatePipe } from \"@angular/common\";\nimport {\n IRequestGradeListForAssignEmployee,\n RequestGradeListForAssignEmployee,\n GradeMappedEmployeeList,\n IGradeMappedEmployeeList,\n AddGradePanelInputModel,\n AddGradePanelOutputModel\n} from \"src/app/_models/grade/grade\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { LoggingPanelModel } from \"../../_models/common/LoggingPanelModel\";\nimport { LoggingPanelService } from \"../../_services/logging-panel/logging-panel.service\";\nimport { AppGridComponent } from \"../../shared/grid/grid-component/grid.component\";\nimport { ColDef } from \"ag-grid-community\";\nimport { CountByStatus, GridConfig } from \"../../_models/common/grid/grid-config\";\nimport { NgOption } from \"@ng-select/ng-select\";\nimport { BaseComponent } from \"../../shared/base/base-component\";\nimport { AssignGradePanelComponent } from \"../assign-grade-panel/assign-grade-panel.component\";\n@Component({\n selector: 'grade-assign-employee',\n templateUrl: \"./grade-assign-employee.component.html\",\n styleUrls: [\"./grade-assign-employee.component.scss\"]\n})\nexport class GradeAssignEmployeeComponent extends BaseComponent implements OnInit{\n @Output() closePanelEvent = new EventEmitter();\n @Input() isFromExternal: boolean;\n currentUserSubscription: Subscription;\n currentUser: Userresponsedto;\n localOrganisationId: any;\n localUserId: any;\n localUserName: string;\n localLoginId: string;\n claims: Claims;\n param: any;\n videoLink = HowDoIVideoLinks.AssignGradetoClaimants;\n gradeList: any[] = [];\n assignedGradeEmployeeList: any[] = [];\n unAssignedGradeEmployeeList: any[] = [];\n totalGradeCount: number;\n totalEmployeesCount: number;\n totalUnAssignedGradeEmployeeCount: number;\n selectedGradeName: string;\n selectedGradeId: number;\n masterSelectedUnassigned: any;\n checkedListUnassigned = [];\n addSelected: any;\n checkedItem: any;\n disableAssigned = false;\n disableUnassigned = false;\n checkedList = [];\n approveeList = [];\n masterSelected: any;\n statusText: string;\n statusValue: number;\n filterSelected: boolean;\n disableDragButton = false;\n searchText: string;\n searchAssignedEmpText: string;\n searchUnAssignedEmpText: string;\n disableGradeList = false;\n howDoIVideoLinks = HowDoIVideoLinks;\n @ViewChild(AssignGradePanelComponent) assignPanelComponenet: AssignGradePanelComponent;\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n gridCostCentreList: any[] = [];\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n gridFilterStatus: number = ClaimantGradeEnum.All;\n gridFilterItems: NgOption[] = [\n { id: ClaimantGradeEnum.All, name: this.translate.instant(\"all\") },\n { id: ClaimantGradeEnum.WithGrade, name: this.translate.instant(\"with_grade\") },\n { id: ClaimantGradeEnum.WithoutGrade, name: this.translate.instant(\"without_grade\") }\n ];\n selectedClaimantList: any[] = [];\n sortColumn: string = 'employeeName';\n showAssignCCPanel: boolean = false;\n panelHeading: string;\n public destroyed = new Subject();\n constructor(\n private router: Router,\n private toastr: ToastrService,\n private authenticationService: AuthenticationService,\n private gradeService: GradeService,\n public datepipe: DatePipe,\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private loggingPanelService: LoggingPanelService\n ) {\n super();\n this.claimsService.currentClaims.subscribe(claims => {\n this.claims = claims;\n this.localUserId = this.claims.UserId;\n this.localLoginId = this.claims.LoginId;\n this.localOrganisationId = this.claims.OrgId;\n this.localUserName = this.claims.FinanceManager;\n });\n this.currentUserSubscription = this.authenticationService.currentUser.subscribe(\n user => {\n this.currentUser = user;\n }\n );\n }\n\n ngOnInit(): void {\n this.statusText = GradeStatusEnum[GradeStatusEnum.Active];\n this.statusValue = GradeStatusEnum.Active;\n\n if (localStorage.getItem(\"gradeIdFromMileageRate\")) {\n this.selectedGradeId = Number(localStorage.getItem(\"gradeIdFromMileageRate\"));\n localStorage.removeItem(\"gradeIdFromMileageRate\");\n }\n this.getGradeListForAssignEmployee();\n this.masterSelectedUnassigned = false;\n this.addSelected = true;\n this.checkedItem = false;\n this.masterSelected = false;\n this.filterSelected = false;\n this.fnInitialiseGradeGrid();\n // this.router.events.pipe(\n // takeUntil(this.destroyed)\n // ).subscribe(() => {\n // this.getGradeListForAssignEmployee();\n // });\n }\n\n fnShowConfigureshowLoggingAlertPanel(FilterID: string = \"0\") {\n const model = new LoggingPanelModel(\n this.claims.OrgId.toString(),\n LogObjectActionTemplateEnum.AssignGradetoClaimants.toString(),\n FilterID\n );\n this.loggingPanelService.onShowLogPanel(model);\n }\n\n goToGrade() {\n this.router.navigate([\"orgsetting/grade\"]);\n }\n\n fnInitialiseGradeGrid() {\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n }\n\n canDeactivate(): boolean {\n return !this.assignPanelComponenet || !this.assignPanelComponenet.hasFormChanges;\n }\n\n ngOnDestroy() {\n this.currentUserSubscription.unsubscribe();\n }\n\n fnGetGridConfigItems() {\n\n let totalGradeCount = this.gradeList.length;\n let activeGradeCount = this.gradeList.filter(item => Number(item.gradeId) > 0).length;\n let inactiveGradeCount = this.gradeList.filter(item => Number(item.gradeId) == 0).length;\n\n let countByStatusArray = [];\n\n countByStatusArray.push(new CountByStatus(\"d-block\", this.translate.instant('total_claimants'), totalGradeCount, false, 0));\n countByStatusArray.push(new CountByStatus(\"d-inline-block inactive-state cursor-pointer padding-right-10 text-underline lH-12\", this.translate.instant('all'), totalGradeCount, true, 0));\n countByStatusArray.push(new CountByStatus(\"d-inline-block active-state cursor-pointer padding-right-10 padding-left-10 text-underline lH-12 border-left-2px\", this.translate.instant('with_grade'), activeGradeCount, true, ClaimantGradeEnum.WithGrade));\n countByStatusArray.push(new CountByStatus(\"d-inline-block color-red cursor-pointer text-underline lH-12 padding-left-10 border-left-2px\", this.translate.instant('without_grade'), inactiveGradeCount, true, ClaimantGradeEnum.WithoutGrade));\n this.gridConfigItems = new GridConfig(\n false,\n false,\n this.sortColumn,\n \"employeeId\",\n this.gridFilterStatus,\n true,\n countByStatusArray,\n true,\n true,\n true,\n null,\n 'desc',\n 40,\n 'no_data_availabe',\n null,\n null,\n false, false,\n '',\n '',\n false\n );\n }\n\n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('claimant_name'),\n field: 'employeeName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n\n },\n {\n headerName: this.translate.instant('claimant_email'),\n field: 'employeeEmail',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n\n },\n {\n headerName: this.translate.instant('policy_grade_name'),\n field: 'gradeName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n\n },\n {\n headerName: this.translate.instant('label_status'),\n field: 'gradeStatus',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n cellRenderer: 'fieldValueRenderer',\n minWidth: 100,\n headerComponentParams: [\n { class: 'active-color font-weight-bold', value: GradeStatusEnum.Active, text: this.translate.instant(\"label_active\") }\n ]\n\n },\n {\n headerName: this.translate.instant('label_log_history'),\n field: 'log',\n cellRenderer: 'actionRenderer',\n resizable: true,\n suppressMenu: true,\n minWidth: 50,\n headerClass: 'text-center',\n cellClass: 'text-center',\n sortable: false,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-file-search',\n buttonTooltip: this.translate.instant('label_log'),\n buttonAlignmentClass: 'text-center position-relative'\n }\n ]\n },\n {\n headerName: \"\",\n cellRenderer: 'actionRenderer',\n field: 'userActionField',\n suppressMovable: true,\n suppressMenu: true,\n sortable: false,\n minWidth: 100,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-edit color-green',\n buttonTooltip: this.translate.instant('label_edit'),\n userAction: CustomerActionEnum.Edit\n }\n\n ]\n }\n ];\n }\n\n fnOnGridCellClick(params) {\n switch (params.column.colId) {\n case 'selected':\n if (params.data.selected) {\n this.selectedClaimantList.push(params.data);\n }\n else if (!params.data.selected) {\n this.selectedClaimantList = this.selectedClaimantList.filter(e => e.employeeId != params.data.employeeId);\n }\n this.showAssignCCPanel = true;\n this.panelHeading = this.selectedClaimantList.length == 1 ? this.translate.instant('assign_grade_selected_claimant') :\n this.translate.instant('label_bulk_action') + ' (' + this.translate.instant('label_selected') + ': ' + this.selectedClaimantList.length + ')'\n\n break;\n case 'userActionField':\n if (!this.selectedClaimantList.find(e => e.employeeId != params.data.employeeId)) {\n this.selectedClaimantList = [params.data];\n this.gridComponent.checkItems([params.data.employeeId]);\n this.showAssignCCPanel = true;\n this.panelHeading = this.translate.instant('assign_grade_selected_claimant');\n }\n break;\n case 'log':\n this.fnShowConfigureshowLoggingAlertPanel(params.data.employeeId.toString());\n break;\n }\n this.selectedClaimantList = this.selectedClaimantList.slice();\n }\n\n closeAssignPanel(isSaved) {\n this.selectedClaimantList = [];\n this.gridComponent.uncheckAll();\n if (isSaved) {\n this.getGradeListForAssignEmployee();\n }\n }\n\n uncheckEvent(data) {\n this.selectedClaimantList = this.selectedClaimantList.filter(e => e.employeeId != data.employeeId);\n this.gridComponent.uncheckItems([data.employeeId]);\n }\n\n fnOnGridCheckAll(isChecked) {\n // \n this.getCheckedItemList();\n }\n\n fnGridFilterChanged(filterStatus: number) {\n this.gridFilterStatus = filterStatus;\n if (filterStatus == ClaimantGradeEnum.WithGrade)\n this.gridCostCentreList = this.gradeList.filter(item => Number(item.gradeId) > 0);\n else if (filterStatus == ClaimantGradeEnum.WithoutGrade)\n this.gridCostCentreList = this.gradeList.filter(item => Number(item.gradeId) == 0);\n else\n this.gridCostCentreList = this.gradeList;\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n\n getGradeListForAssignEmployee() {\n let gradeRequest = new ApiRequest(\n \"SoloGetGradeListForAssignEmployee\",\n 1.0,\n \"111\"\n );\n let gradeRequestInfo = new RequestGradeListForAssignEmployee(\n this.localOrganisationId,\n this.statusValue\n );\n\n gradeRequest.requestInfo = gradeRequestInfo;\n\n this.gradeService\n .GetGradeListForAssignEmployee(gradeRequest)\n .pipe(first())\n .subscribe(\n (response: any) => {\n if (response.responseInfo != null) {\n this.gradeList = response.responseInfo.lstEmployee;\n this.fnGridFilterChanged(this.gridFilterStatus);\n }\n }\n );\n }\n\n getAssignedGradeEmployeeList(item: any) {\n this.selectedGradeName = \"to \" + item.gradeName;\n this.selectedGradeId = item.gradeId;\n this.assignedGradeEmployeeList = item.assignedGradeEmployeeLists;\n if (this.assignedGradeEmployeeList.length == 0) {\n this.addSelected = false;\n }\n this.masterSelected = false;\n this.checkUncheckAll();\n }\n\n assignGradeToEmployee() {\n let gradeRequest = new ApiRequest(\n \"SoloAssignDeassignGradeToEmployee\",\n 1.0,\n \"111\"\n );\n\n var employeesIds: number[] = [];\n\n this.checkedListUnassigned.forEach(item => {\n employeesIds.push(item.employeeId);\n });\n\n let gradeMappedEmployeeListModel = new GradeMappedEmployeeList(\n this.selectedGradeId,\n this.localOrganisationId,\n employeesIds\n );\n\n gradeRequest.requestInfo = gradeMappedEmployeeListModel;\n\n this.gradeService\n .AssignDeassignGradeToEmployeeBackground(gradeRequest)\n .pipe(first())\n .subscribe((response: any) => {\n if (response.statusCode == 200) {\n this.toastr.info(this.translate.instant(\"JobSubmittedToaster\"));\n this.masterSelected = false;\n this.masterSelectedUnassigned = false;\n this.searchUnAssignedEmpText = this.searchAssignedEmpText = \"\";\n this.getGradeListForAssignEmployee();\n }\n });\n }\n\n removeGradeFromEmployee() {\n let gradeRequest = new ApiRequest(\n \"SoloAssignDeassignGradeToEmployee\",\n 1.0,\n \"111\"\n );\n\n var employeesIds: number[] = [];\n\n this.checkedList.forEach(item => {\n employeesIds.push(item.employeeId);\n });\n\n let gradeMappedEmployeeListModel = new GradeMappedEmployeeList(\n null,\n this.localOrganisationId,\n employeesIds\n );\n gradeRequest.requestInfo = gradeMappedEmployeeListModel;\n\n this.gradeService\n .AssignDeassignGradeToEmployeeBackground(gradeRequest)\n .pipe(first())\n .subscribe((response: any) => {\nif (response.statusCode == 200) {\n this.toastr.info(this.translate.instant(\"JobSubmittedToaster\"));\n this.masterSelected = false;\n this.masterSelectedUnassigned = false;\n this.searchUnAssignedEmpText = this.searchAssignedEmpText = \"\";\n this.getGradeListForAssignEmployee();\n }\n });\n }\n\n isAllSelectedUnassigned() {\n this.masterSelectedUnassigned = this.unAssignedGradeEmployeeList.every(\n function (item: any) {\n return item.CheckBoxCheck == true;\n }\n );\n this.getCheckedItemListUnassigned();\n }\n\n checkUncheckAllUnassigned() {\n for (var i = 0; i < this.unAssignedGradeEmployeeList.length; i++) {\n if (this.searchUnAssignedEmpText) {\n if (this.unAssignedGradeEmployeeList[i].employeeName.toUpperCase().includes(this.searchUnAssignedEmpText.toUpperCase())) {\n this.unAssignedGradeEmployeeList[i].CheckBoxCheck = this.masterSelectedUnassigned;\n }\n } else {\n this.unAssignedGradeEmployeeList[i].CheckBoxCheck = this.masterSelectedUnassigned;\n }\n }\n this.getCheckedItemListUnassigned();\n }\n\n getCheckedItemListUnassigned() {\n \n this.checkedListUnassigned = [];\n for (var i = 0; i < this.unAssignedGradeEmployeeList.length; i++) {\n if (this.unAssignedGradeEmployeeList[i].CheckBoxCheck) {\n this.checkedListUnassigned.push(this.unAssignedGradeEmployeeList[i]);\n this.addSelected = false;\n this.checkedItem = true;\n }\n }\nif (this.checkedListUnassigned.length > 0) {\n this.checkedItem = true;\n this.disableDragButton = false;\n this.disableAssigned = true;\n this.disableUnassigned = false;\n } else {\n this.checkedItem = false;\n this.disableDragButton = true;\n this.disableAssigned = false;\n this.disableUnassigned = false;\n }\n }\n\n checkUncheckAll() {\n for (var i = 0; i < this.assignedGradeEmployeeList.length; i++) {\n if (this.searchAssignedEmpText) {\n if (this.assignedGradeEmployeeList[i].employeeName.toUpperCase().includes(this.searchAssignedEmpText.toUpperCase())) {\n this.assignedGradeEmployeeList[i].CheckBoxCheck = this.masterSelected;\n }\n } else {\n this.assignedGradeEmployeeList[i].CheckBoxCheck = this.masterSelected;\n }\n\n }\n this.getCheckedItemList();\n }\n\n getCheckedItemList() {\n this.checkedList = [];\n for (var i = 0; i < this.gradeList.length; i++) {\n if (this.gradeList[i].selected) {\n this.checkedList.push(this.gradeList[i]);\n }\n }\n\n if (this.checkedList.length > 0) {\n this.showAssignCCPanel = true;\n this.panelHeading = this.checkedList.length == 1 ? this.translate.instant('assign_grade_selected_claimant') :\n this.translate.instant('label_bulk_action') + ' (' + this.translate.instant('label_selected') + ': ' + this.checkedList.length + ')'\n this.selectedClaimantList = this.checkedList;\n } else {\n this.showAssignCCPanel = false;\n }\n }\n\n isAllSelected() {\n \n this.masterSelected = this.assignedGradeEmployeeList.every(function (\n item: any\n ) {\n return item.CheckBoxCheck == true;\n });\n this.getCheckedItemList();\n }\n\n statusChange(selectedStatus: string, statusValue: number) {\n \n this.statusText = selectedStatus;\n this.statusValue = statusValue;\n this.filterSelected = false;\n this.getGradeListForAssignEmployee();\n }\n\n goToSetting() {\n if (localStorage.getItem(\"isRedirectFromMySubscriptionSettingPage\") == \"1\") {\n this.router.navigate([\"mysubscription\"]);\n } else {\n this.router.navigate([\"settings\"]);\n }\n }\n\n fnUnassignedLiOnClick(claimantId: number) {\n \n var selectedUnAssignedClaimant = this.unAssignedGradeEmployeeList.find(d => d.employeeId == claimantId);\n selectedUnAssignedClaimant.CheckBoxCheck = !selectedUnAssignedClaimant.CheckBoxCheck;\n\n this.isAllSelectedUnassigned();\n }\n\n fnAssignedLiOnClick(claimantId: number) {\n \n var selectedAssignedClaimant = this.assignedGradeEmployeeList.find(d => d.employeeId == claimantId);\n selectedAssignedClaimant.CheckBoxCheck = !selectedAssignedClaimant.CheckBoxCheck;\n\n this.isAllSelected();\n }\n showAddGradePanel: boolean = false;\n addGradePanelInputModel: AddGradePanelInputModel;\n fnShowAddGradePanel(gradeId: number, isEdit: boolean = false,isCopy:boolean= false) {\n this.addGradePanelInputModel = new AddGradePanelInputModel(gradeId, isEdit,isCopy);\n this.showAddGradePanel = true;\n }\n\nfnCloseAddGradePanel(isClose: boolean) {\n if (isClose) {\n this.addGradePanelInputModel = null;\n this.gridComponent.uncheckAll();\n this.showAddGradePanel = false;\n }\n}\n\nfnSubmitAddGradePanel(response: AddGradePanelOutputModel) {\n if (response) {\n this.addGradePanelInputModel = null; \n this.showAddGradePanel = false;\n this.getGradeListForAssignEmployee();\n }\n}\n\nfnClosePanel()\n{\n this.closePanelEvent.emit(true);\n}\n}\n","\n\nexport class DashboardExpenseStatusSummary {\n amount: number;\n status: number;\n count: number;\n claimants: number;\n}\n","export class ApprovalSummary {\n pendingExpensesWithFM: number = 0;\n pendingExpensesWithApprover: number = 0;\n pendingAdvancesWithApprover: number = 0;\n pendingCountExpensesWithFM: number = 0;\n pendingAmountExpensesWithFM: number = 0;\n pendingCountFinanceApproval: number = 0;\n pendingCountFinancePayment: number = 0;\n approverNotAssigned: number = 0;\n approverNotAssignedExpenseAmount: number = 0;\n vehicleApprovalCount: number = 0;\n approverNotInvited: number = 0;\n approverNotInvitedTotalExpenseAmount: number = 0;\n pendingPreApprovalsWithApprover: number = 0;\n dismissedExpensesCount: number = 0;\n totalCountOfItemForApproval: number = 0;\n pendingCountNRFinanceApproval: number = 0;\n pendingCountFCFinanceApproval: number = 0;\n pendingDutyofCareApprovalCount: number = 0;\n nrCountForFM: number = 0;\n fcCountForApprover: number = 0;\n pendingCountAdvanceApproval: number = 0;\n pendingCountAdvanceFinanceApproval: number = 0;\n pendingCountAdvancePay: number = 0;\n pendingCountInvoiceApproval: number = 0;\n pendingCountInvoiceFinanceApproval: number = 0;\n pendingCountInvoicePay: number = 0;\n pendingKYCApprovalCount:number=0;\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { ClaimsService } from 'src/app/_services/common/claims.service';\nimport { IApiresponse } from 'src/app/_models';\nimport { ClaimsHeaderService } from 'src/app/shared/claimsHeader/claims-header.service';\n\nimport { Claims } from 'src/app/_models/common/claims';\nimport { environment } from '../../../environments/environment';\nimport { IRecommendation, IOrgRecommendation, IExpenseRecommendationDetail } from 'src/app/_models/recommendation/recommendation';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class RecommendationService {\n claims: Claims;\n constructor(private http: HttpClient, private claimsHeaderService: ClaimsHeaderService\n , private claimsService: ClaimsService) {\n this.claimsService.currentClaims.subscribe(claims => this.claims = claims);\n }\n\n getAllRecommendation() {\n\n return this.http.get>(\n `${environment.catalogApiUrl}GetAllRecommendations`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n getOrgRecommendation(orgId, recommId) {\n\n let params = new HttpParams();\n params = params.append(\"orgId\", orgId);\n\n return this.http.get>(\n `${environment.catalogApiUrl}GetOrgRecommendation/${recommId}`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader(), params: params }\n );\n }\n\n getExpenseRecommendation(orgRecommId, monthDuration) {\n\n let params = new HttpParams();\n params = params.append(\"orgRecommId\", orgRecommId);\n params = params.append(\"monthDuration\", monthDuration);\n\n return this.http.get>(\n `${environment.expenseApiUrl}GetExpenseRecomm`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader(), params: params }\n );\n }\n\n SnoozeOrgRecommendation(orgRecommId) {\n\n return this.http.get>(\n `${environment.catalogApiUrl}SnoozeOrgRecommendation/${orgRecommId}`,\n { headers: this.claimsHeaderService.createLoginAuthorizationHeader() }\n );\n }\n\n}\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Optional, Inject, NgModule } from '@angular/core';\n\nconst GoogleTagManagerConfigService = new InjectionToken('google-tag-manager-config');\n// adapted from https://github.com/auth0/auth0-angular#dynamic-configuration\nclass GoogleTagManagerConfiguration {\n constructor(googleTagManagerConfig) {\n this._googleTagManagerConfig = {\n id: null,\n gtm_auth: '',\n gtm_preview: '',\n };\n if (googleTagManagerConfig) {\n this.set(googleTagManagerConfig);\n }\n }\n set(googleTagManagerConfig) {\n this._googleTagManagerConfig = googleTagManagerConfig;\n }\n get() {\n return this._googleTagManagerConfig;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.5\", ngImport: i0, type: GoogleTagManagerConfiguration, deps: [{ token: GoogleTagManagerConfigService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.5\", ngImport: i0, type: GoogleTagManagerConfiguration, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.5\", ngImport: i0, type: GoogleTagManagerConfiguration, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [GoogleTagManagerConfigService]\n }] }] });\n\nclass GoogleTagManagerService {\n constructor(googleTagManagerConfiguration, googleTagManagerId, googleTagManagerMode = \"noisy\", googleTagManagerAuth, googleTagManagerPreview, googleTagManagerResourcePath, googleTagManagerCSPNonce) {\n this.googleTagManagerConfiguration = googleTagManagerConfiguration;\n this.googleTagManagerId = googleTagManagerId;\n this.googleTagManagerMode = googleTagManagerMode;\n this.googleTagManagerAuth = googleTagManagerAuth;\n this.googleTagManagerPreview = googleTagManagerPreview;\n this.googleTagManagerResourcePath = googleTagManagerResourcePath;\n this.googleTagManagerCSPNonce = googleTagManagerCSPNonce;\n this.isLoaded = false;\n this.browserGlobals = {\n windowRef() {\n return window;\n },\n documentRef() {\n return document;\n },\n };\n this.config = this.googleTagManagerConfiguration?.get();\n if (this.config == null) {\n this.config = { id: null };\n }\n this.config = {\n ...this.config,\n id: googleTagManagerId || this.config.id,\n gtm_auth: googleTagManagerAuth || this.config.gtm_auth,\n gtm_preview: googleTagManagerPreview || this.config.gtm_preview,\n gtm_resource_path: googleTagManagerResourcePath || this.config.gtm_resource_path,\n };\n if (this.config.id == null) {\n return;\n }\n }\n checkForId() {\n if (this.googleTagManagerMode !== \"silent\" && !this.config.id) {\n throw new Error('Google tag manager ID not provided.');\n }\n else if (!this.config.id) {\n return false;\n }\n return true;\n }\n getDataLayer() {\n this.checkForId();\n const window = this.browserGlobals.windowRef();\n window.dataLayer = window.dataLayer || [];\n return window.dataLayer;\n }\n pushOnDataLayer(obj) {\n this.checkForId();\n const dataLayer = this.getDataLayer();\n dataLayer.push(obj);\n }\n addGtmToDom() {\n return new Promise((resolve, reject) => {\n if (this.isLoaded) {\n return resolve(this.isLoaded);\n }\n else if (!this.checkForId()) {\n return resolve(false);\n }\n const doc = this.browserGlobals.documentRef();\n this.pushOnDataLayer({\n 'gtm.start': new Date().getTime(),\n event: 'gtm.js',\n });\n const gtmScript = doc.createElement('script');\n gtmScript.id = 'GTMscript';\n gtmScript.async = true;\n gtmScript.src = this.applyGtmQueryParams(this.config.gtm_resource_path\n ? this.config.gtm_resource_path\n : 'https://www.googletagmanager.com/gtm.js');\n gtmScript.addEventListener('load', () => {\n return resolve((this.isLoaded = true));\n });\n gtmScript.addEventListener('error', () => {\n return reject(false);\n });\n if (this.googleTagManagerCSPNonce) {\n gtmScript.setAttribute('nonce', this.googleTagManagerCSPNonce);\n }\n doc.head.insertBefore(gtmScript, doc.head.firstChild);\n });\n }\n pushTag(item) {\n return new Promise((resolve, reject) => {\n if (!this.checkForId()) {\n return resolve();\n }\n if (!this.isLoaded) {\n this.addGtmToDom()\n .then(() => {\n this.pushOnDataLayer(item);\n return resolve();\n })\n .catch(() => reject());\n }\n else {\n this.pushOnDataLayer(item);\n return resolve();\n }\n });\n }\n applyGtmQueryParams(url) {\n if (url.indexOf('?') === -1) {\n url += '?';\n }\n return (url +\n Object.keys(this.config)\n .filter((k) => this.config[k])\n .map((k) => `${k}=${this.config[k]}`)\n .join('&'));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.5\", ngImport: i0, type: GoogleTagManagerService, deps: [{ token: GoogleTagManagerConfiguration, optional: true }, { token: 'googleTagManagerId', optional: true }, { token: 'googleTagManagerMode', optional: true }, { token: 'googleTagManagerAuth', optional: true }, { token: 'googleTagManagerPreview', optional: true }, { token: 'googleTagManagerResourcePath', optional: true }, { token: 'googleTagManagerCSPNonce', optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"17.0.5\", ngImport: i0, type: GoogleTagManagerService, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.5\", ngImport: i0, type: GoogleTagManagerService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: GoogleTagManagerConfiguration, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [GoogleTagManagerConfiguration]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['googleTagManagerId']\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['googleTagManagerMode']\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['googleTagManagerAuth']\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['googleTagManagerPreview']\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['googleTagManagerResourcePath']\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: ['googleTagManagerCSPNonce']\n }] }] });\n\nclass GoogleTagManagerModule {\n static forRoot(config) {\n return {\n ngModule: GoogleTagManagerModule,\n providers: [{ provide: GoogleTagManagerConfigService, useValue: config }],\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"17.0.5\", ngImport: i0, type: GoogleTagManagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"17.0.5\", ngImport: i0, type: GoogleTagManagerModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"17.0.5\", ngImport: i0, type: GoogleTagManagerModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"17.0.5\", ngImport: i0, type: GoogleTagManagerModule, decorators: [{\n type: NgModule\n }] });\n\n/*\n * Public API Surface of angular-google-tag-manager\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { GoogleTagManagerConfigService, GoogleTagManagerConfiguration, GoogleTagManagerModule, GoogleTagManagerService };\n","
\n\n
\n
\n
\n
\n

\n {{ \"payment_failed\" | translate }}\n

\n

\n {{ \"reminder_credit_card_abount_to_expire\" | translate }}\n

\n
\n
\n
\n
\n
\n
    \n
  • \n

    \n \n {{\n \"payment_failed_google_mapping_service\" | translate\n }}\n\n
    \n {{\n \"please_click_on_payment_button\"\n | translate\n }}\n

    \n
  • \n
\n
\n
\n \n {{ \"label_payment\" | translate }}\n \n
\n
\n
\n\n
\n
\n
\n
    \n
  • \n

    \n \n {{\n \"Automatic Transaction download has failed\" | translate\n }}\n\n
    \n {{\n \"please_click_on_payment_button\"\n | translate\n }}\n

    \n
  • \n
\n
\n
\n \n {{ \"label_payment\" | translate }}\n \n
\n
\n
\n\n
\n
\n
\n
    \n
  • \n

    \n \n {{\n \"payment_failed_for_subscription\" | translate\n }}\n\n
    \n {{\n \"please_click_on_payment_button\"\n | translate\n }}\n

    \n
  • \n
\n
\n
\n \n {{ \"label_payment\" | translate }}\n \n
\n
\n
\n\n
\n
\n
\n
    \n
  • \n

    \n \n {{\"cc_expire_note_1\" |translate}}\n {{\"cc_expire_note_2\" |translate}} {{ cardExpiryDays }} {{\"cc_expire_note_3\" |translate}}\n\n
    \n {{\n \"please_click_on_update_card\"\n | translate\n }}\n

    \n
  • \n
\n
\n
\n \n {{ \"update_card\" | translate }}\n \n\n \n
\n
\n
\n
\n
\n","import {\n Component,\n OnInit,\n ElementRef,\n Output,\n EventEmitter,\n} from \"@angular/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { DateFormatPipe } from \"src/app/_helpers/pipe.module\";\nimport { IApiRequest, ApiRequest } from \"src/app/_models\";\nimport { first } from \"rxjs/operators\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { OrganisationSubscriptionInvoiceService } from \"src/app/_services/billing-pricing/Organisation-Subscription-Invoice.service\";\nimport { FunctionDetail } from \"src/app/_models/billing-pricing/FunctionDetail\";\nimport { OrgSubscriptionFunctionService } from \"src/app/_services/billing-pricing/Org-Subscription-Function.service\";\nimport { environment } from \"src/environments/environment\";\nimport {\n StripeInstantPaymentSessionRequest,\n IStripeInstantPaymentSessionRequest,\n StripeInstantPaymentInvoiceItem,\n StripeSessionRequest,\n IStripeSessionRequest,\n} from \"src/app/_models/stripe/stripe\";\ndeclare var Stripe: any;\nimport { SaveOrderCartDetailsService } from \"src/app/_services/cart-order/SaveOrder-Cart-Details.service\";\nimport { StripeService } from \"src/app/_services/stripe/stripe.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Location } from \"@angular/common\";\nimport { parse } from \"url\";\nimport {\n UpdateOrganisationSubscriptionInvoiceStatusRequest,\n IUpdateOrganisationSubscriptionInvoiceStatusRequest,\n OrgSubscription,\n} from \"src/app/_models/common/OrgSubscription\";\nimport { GoogleMappingService } from \"src/app/_services/google-mapping/google-mapping.service\";\nimport {\n IUpdateOrganisationGooglePackagePaymentDetailStatusRequest,\n UpdateOrganisationGooglePackagePaymentDetailStatusRequest,\n} from \"src/app/_models/google-mapping/google-mapping\";\nimport { Guid } from \"guid-typescript\";\nimport { PaymentMethodService } from \"src/app/_services/billing-pricing/Payment-Method.service\";\nimport { PaymentMethodList } from \"src/app/_models/billing-pricing/PaymentMethodList\";\n\n@Component({\n selector: \"stripe-invoice-failed-details-panel\",\n templateUrl: \"./stripe-invoice-failed-details-panel.component.html\",\n})\nexport class StripeInvoiceFailedDetailsPanelComponent implements OnInit {\n @Output() closePanelEvent = new EventEmitter();\n\n param: any;\n claims: Claims;\n orgGoogleInvoiceFailedRecord: any;\n orgTransactionDownloadInvoiceFailedRecord: any;\n orgSubscriptionInvoiceFailedRecord: any;\n paymentCurrency: string;\n customerId: string = \"\";\n stripeSessionId: any;\n stripeSessionIdFromUrl: string;\n submitted: boolean = false;\n\n constructor(\n private claimsService: ClaimsService,\n private toastr: ToastrService,\n private router: Router,\n private route: ActivatedRoute,\n private organisationSubscriptionInvoiceService: OrganisationSubscriptionInvoiceService,\n private orgSubscriptionFunctionService: OrgSubscriptionFunctionService,\n private saveOrderCartDetailsService: SaveOrderCartDetailsService,\n private stripeService: StripeService,\n private elRef: ElementRef,\n private translate: TranslateService,\n private location: Location,\n private googleMappingService: GoogleMappingService,\n private paymentMethodService: PaymentMethodService,\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {\n if (this.route.snapshot.queryParams[\"sessionId\"]) {\n this.stripeSessionIdFromUrl =\n this.route.snapshot.queryParams[\"sessionId\"];\n\n this.fnResetUrl();\n this.fnGetStripeCustomerDetailsFromSessionId();\n }\n this.fnGetOrganisationInvoiceFailedRecords();\n this.fnGetOrganisationPaymentCurrency();\n this.fnGetStripeCustomerDetails();\n this.fnLoadStripe();\n this.getPaymentType();\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n\n fnGetOrganisationInvoiceFailedRecords() {\n this.organisationSubscriptionInvoiceService\n .GetOrganisationInvoiceFailedRecords(this.claims.OrgId)\n .subscribe(\n (data) => {\n if (data.statusCode == 0) {\n \n this.orgGoogleInvoiceFailedRecord =\n data.responseInfo.orgGoogleInvoiceFailedRecord;\n\n this.orgTransactionDownloadInvoiceFailedRecord =\n data.responseInfo.orgTransactionDownloadInvoiceFailedResponse;\n\n this.orgSubscriptionInvoiceFailedRecord =\n data.responseInfo.orgSubscriptionInvoiceFailedRecord;\n\n this.showCardExpiryNotification = false;\n\n if (data.responseInfo.orgStripeCustomerDetailsResponse.cardExpirationMonthYear.length == 7)\n {\n var cardExpirationMonth = data.responseInfo.orgStripeCustomerDetailsResponse.cardExpirationMonthYear.split(\"/\")[0];\n var cardExpirationYear = data.responseInfo.orgStripeCustomerDetailsResponse.cardExpirationMonthYear.split(\"/\")[1];\n var lastDateOfMonth = new Date(Number(cardExpirationYear), Number(cardExpirationMonth), 0);\n let diffTime = (lastDateOfMonth.getTime() - (new Date()).getTime());\n let differenceInDays = (Math.round(diffTime / (1000 * 3600 * 24))) +1;\n this.cardExpiryDays = differenceInDays;\n \n if (differenceInDays == 90 || differenceInDays == 60 || differenceInDays == 45 || differenceInDays == 30 || differenceInDays == 15 || differenceInDays <= 7)\n {\n this.showCardExpiryNotification = true;\n }\n }\n\n\n if (\n !this.orgGoogleInvoiceFailedRecord &&\n !this.orgSubscriptionInvoiceFailedRecord &&\n !this.showCardExpiryNotification &&\n !this.orgTransactionDownloadInvoiceFailedRecord\n ) {\n this.claims.isStripPaymentFailed = false;\n this.claimsService.updateClaims(this.claims);\n }\n }\n },\n (error) => {\n this.toastr.error(error);\n }\n );\n }\n\n fnGetOrganisationPaymentCurrency() {\n let request = new ApiRequest(\n \"SoloGetOrganisationPaymentCurrency\",\n environment.applicationVersion,\n environment.requestId\n );\n request.requestInfo = new FunctionDetail(\n 0,\n this.claims.CurrentOrganisationCurrencyId != null\n ? this.claims.CurrentOrganisationCurrencyId\n : Number(this.claims.SelectedCurrency)\n );\n this.orgSubscriptionFunctionService\n .getOrganisationPaymentCurrency(request)\n .subscribe((data) => {\n if (data.statusCode == 0) {\n this.paymentCurrency = data.responseInfo.currencyName;\n }\n });\n }\n\n fnLoadStripe() {\n var stripeImport = document.createElement(\"script\");\n stripeImport.type = \"text/javascript\";\n stripeImport.src = \"https://js.stripe.com/v3/\";\n this.elRef.nativeElement.appendChild(stripeImport);\n }\n\n fnResetUrl() {\n let myUrl = parse(window.location.href);\n\n if (!(!myUrl || null) && !(!myUrl.pathname || null)) {\n let urlPath = myUrl.pathname;\n this.location.go(urlPath);\n } else {\n this.location.go(\"/\");\n }\n }\n\n fnGetStripeCustomerDetails() {\n this.saveOrderCartDetailsService\n .GetStripeCustomerDetailsByOrgId(this.claims.OrgId)\n .subscribe((response) => {\n if (response.statusCode == 0 && response.responseInfo) {\n this.customerId = response.responseInfo.paymentCustomerId;\n }\n });\n }\n\n fnShowStripeCheckoutWindow() {\n var stripe = Stripe(environment.StripePublicKey);\n stripe\n .redirectToCheckout({\n sessionId: this.stripeSessionId,\n })\n .then(function (result) {\n this.toastr.error(result.error.message);\n });\n }\n\n fnPaySubscription() {\n this.submitted = true;\n this.fnCreateSubscriptionPayObject();\n }\n\n fnCreateSubscriptionPayObject() {\n localStorage.setItem(\n \"orgSubscriptionInvoiceFailedRecord\",\n JSON.stringify(this.orgSubscriptionInvoiceFailedRecord)\n );\n this.fnLoadStripeSessionForSubscriptionInstantPayment();\n }\n\n fnLoadStripeSessionForSubscriptionInstantPayment() {\n let userEmail =\n this.claims.EmailId && this.claims.EmailId != \"\"\n ? this.claims.EmailId\n : this.claims.LoginId;\n let invoiceItem = new StripeInstantPaymentInvoiceItem();\n invoiceItem.Name = \"Subscription Pay\";\n\n invoiceItem.Amount =\n this.orgSubscriptionInvoiceFailedRecord.invoiceAmount * 100;\n invoiceItem.Currency = this.paymentCurrency.toLowerCase();\n invoiceItem.Quantity = 1;\n\n let invoiceItemList = [];\n invoiceItemList.push(invoiceItem);\n\n let sessionRequestData = new StripeInstantPaymentSessionRequest(\n environment.AppUrl+'ManageSubscription',\n this.customerId,\n userEmail,\n this.claims.CurrentOrganisationCurrencyCode,\n invoiceItemList\n );\n let sessionRequest = new ApiRequest(\n \"CreateStripeSessionForInstantPayment\",\n environment.applicationVersion,\n environment.requestId\n );\n\n sessionRequest.requestInfo = sessionRequestData;\n\n //Set Stripe Type\n localStorage.setItem(\"StripeSessionType\", JSON.stringify(3));\n\n if (invoiceItem.Amount > 0) {\n this.stripeService\n .CreateStripeSessionForInstantPayment(sessionRequest)\n .subscribe(\n (sessionData) => {\n if (sessionData.statusCode == 0 && sessionData.responseInfo) {\n this.stripeSessionId = sessionData.responseInfo;\n this.fnShowStripeCheckoutWindow();\n }\n },\n (error) => {\n this.submitted = false;\n }\n );\n }\n }\n\n fnPayGooglePackage() {\n this.submitted = true;\n this.fnCreateGooglePackagePayObject();\n }\n\n fnCreateGooglePackagePayObject() {\n localStorage.setItem(\n \"orgGoogleInvoiceFailedRecord\",\n JSON.stringify(this.orgGoogleInvoiceFailedRecord)\n );\n this.fnLoadStripeSessionForGooglePackageInstantPayment();\n }\n\n fnLoadStripeSessionForGooglePackageInstantPayment() {\n let userEmail =\n this.claims.EmailId && this.claims.EmailId != \"\"\n ? this.claims.EmailId\n : this.claims.LoginId;\n let invoiceItem = new StripeInstantPaymentInvoiceItem();\n invoiceItem.Name = \"Google Package Pay\";\n\n invoiceItem.Amount = this.orgGoogleInvoiceFailedRecord.amountPaid * 100;\n invoiceItem.Currency = this.paymentCurrency.toLowerCase();\n invoiceItem.Quantity = this.orgGoogleInvoiceFailedRecord.unitsPurchased;\n\n let invoiceItemList = [];\n invoiceItemList.push(invoiceItem);\n\n let sessionRequestData = new StripeInstantPaymentSessionRequest(\n environment.AppUrl+'ManageSubscription',\n this.customerId,\n userEmail,\n this.claims.CurrentOrganisationCurrencyCode,\n invoiceItemList\n );\n let sessionRequest = new ApiRequest(\n \"CreateStripeSessionForInstantPayment\",\n environment.applicationVersion,\n environment.requestId\n );\n\n sessionRequest.requestInfo = sessionRequestData;\n\n //Set Stripe Type\n localStorage.setItem(\"StripeSessionType\", JSON.stringify(4));\n\n if (invoiceItem.Amount > 0) {\n this.stripeService\n .CreateStripeSessionForInstantPayment(sessionRequest)\n .subscribe(\n (sessionData) => {\n if (sessionData.statusCode == 0 && sessionData.responseInfo) {\n this.stripeSessionId = sessionData.responseInfo;\n this.fnShowStripeCheckoutWindow();\n }\n },\n (error) => {\n this.submitted = false;\n }\n );\n }\n }\n\n fnGetStripeCustomerDetailsFromSessionId() {\n this.stripeService\n .GetStripeCustomerDetailsForInstantPaymentCaptured(\n this.stripeSessionIdFromUrl\n )\n .subscribe(\n (registerCardData) => {\n if (\n registerCardData.statusCode == 0 &&\n registerCardData.responseInfo\n ) {\n this.customerId = registerCardData.responseInfo.customerId;\n let stripSessionType = localStorage.getItem(\"StripeSessionType\");\n localStorage.removeItem(\"StripeSessionType\");\n if (parseInt(stripSessionType) == 1) {\n this.fnUpdateOrganisationSubscriptionInvoiceStatus();\n } else if (parseInt(stripSessionType) == 2) {\n this.fnUpdateOrganisationGooglePackagePaymentDetailStatus();\n }\n } else {\n this.toastr.error(this.translate.instant(\"failed\"));\n }\n },\n (error) => {\n alert(error);\n }\n );\n }\n\n fnUpdateOrganisationSubscriptionInvoiceStatus() {\n let subscriptionDetails = JSON.parse(\n localStorage.getItem(\"orgSubscriptionInvoiceFailedRecord\")\n );\n if (subscriptionDetails) {\n let request =\n new ApiRequest(\n \"SoloCreateStripeSessionForInstantPayment\",\n environment.applicationVersion,\n environment.requestId\n );\n let requestInfo =\n new UpdateOrganisationSubscriptionInvoiceStatusRequest();\n\n requestInfo.organisationSubscriptionInvoiceID =\n subscriptionDetails.organisationSubscriptionInvoiceID;\n requestInfo.status = 1;\n requestInfo.userId = this.claims.UserId;\n\n request.requestInfo = requestInfo;\n\n this.organisationSubscriptionInvoiceService\n .UpdateOrganisationSubscriptionInvoiceStatus(request)\n .subscribe(\n (data) => {\n if (data.statusCode == 200) {\n this.toastr.success(this.translate.instant(\"success\"));\n this.fnGetOrganisationInvoiceFailedRecords();\n localStorage.removeItem(\"orgSubscriptionInvoiceFailedRecord\");\n this.submitted = false;\n }\n },\n (error) => {\n this.toastr.error(error);\n }\n );\n }\n }\n\n fnUpdateOrganisationGooglePackagePaymentDetailStatus() {\n let googlePackageDetails = JSON.parse(\n localStorage.getItem(\"orgGoogleInvoiceFailedRecord\")\n );\n if (googlePackageDetails) {\n let request =\n new ApiRequest(\n \"UpdateOrganisationGooglePackagePaymentDetailStatus\",\n environment.applicationVersion,\n environment.requestId\n );\n let requestInfo =\n new UpdateOrganisationGooglePackagePaymentDetailStatusRequest();\n\n requestInfo.organisationGooglePackagePaymentDetailId =\n googlePackageDetails.organisationGooglePackagePaymentDetailId;\n requestInfo.status = 1;\n requestInfo.userId = this.claims.UserId;\n\n request.requestInfo = requestInfo;\n\n this.googleMappingService\n .UpdateOrganisationGooglePackagePaymentDetailStatus(request)\n .subscribe(\n (data) => {\n if (data.statusCode == 200) {\n this.toastr.success(this.translate.instant(\"success\"));\n this.fnGetOrganisationInvoiceFailedRecords();\n localStorage.removeItem(\"orgGoogleInvoiceFailedRecord\");\n this.submitted = false;\n }\n },\n (error) => {\n this.toastr.error(error);\n }\n );\n }\n }\n\n goToCardUpdate() {\n this.loadStripeSessionForExistingCustomer();\n }\n\n showCardExpiryNotification = false;\n userEmailId = \"\";\n loginId = \"\";\n\n // Stripe Change Card - Start\n loadStripeSessionForExistingCustomer() {\n this.loginId = this.claims.LoginId;\n this.userEmailId = this.claims.EmailId;\n\n var userEmail =\n this.userEmailId && this.userEmailId != \"\"\n ? this.userEmailId\n : this.loginId;\n\n let sessionRequestData = new StripeSessionRequest(\n environment.AppUrl+'ManageSubscription',\n userEmail,\n this.claims.CurrentOrganisationCurrencyCode\n );\n let sessionRequest = new ApiRequest(\n \"SoloCreateStripeSessionForExistingCustomer\",\n 1.0,\n \"111\"\n );\n\n sessionRequest.requestInfo = sessionRequestData;\n\n this.stripeService\n .CreateStripeSessionForExistingCustomer(sessionRequest)\n .pipe(first())\n .subscribe(\n (sessionData) => {\n if (sessionData.statusCode == 0 && sessionData.responseInfo) {\n this.stripeSessionId = sessionData.responseInfo;\n this.showStripeCheckoutWindow();\n }\n },\n (error) => {}\n );\n }\n\n showStripeCheckoutWindow() {\n var stripe = Stripe(environment.StripePublicKey);\n\n stripe\n .redirectToCheckout({\n sessionId: this.stripeSessionId,\n })\n .then(function (result) {\n this.toastr.error(result.error.message);\n });\n }\n\n paymentTypeResponse: PaymentMethodList[] = [];\n OrgPaymentTypeRequest: IApiRequest;\n UniqueId:Guid;\n cardExpiryDays = 0;\n\n getPaymentType() {\n\n this.UniqueId = Guid.create();\n this.OrgPaymentTypeRequest = new ApiRequest(\n \"SoloOrganisationPaymentMethod\",\n 0,\n this.UniqueId.toString()\n );\n this.OrgPaymentTypeRequest.requestInfo = new OrgSubscription(\n this.claims.OrgId\n );\n this.paymentMethodService\n .getPaymentTypeList(this.OrgPaymentTypeRequest)\n .pipe(first())\n .subscribe(\n (data) => {\n if (data.statusCode == 0) {\n this.paymentTypeResponse = data.responseInfo;\n } else {\n this.toastr.error(data.errorInfo[0].message);\n }\n },\n (error) => {\n this.toastr.error(error);\n }\n );\n }\n\n\n fnPayAutomaticTransactionDownload(){\n this.submitted = true;\n this.fnCreateTransactionDownloadPackagePayObject();\n }\n\n \n fnCreateTransactionDownloadPackagePayObject() {\n localStorage.setItem(\n \"orgTransactionDownloadInvoiceFailedRecord\",\n JSON.stringify(this.orgTransactionDownloadInvoiceFailedRecord)\n );\n this.fnLoadStripeSessionForTransactionDownloadInstantPayment();\n }\n\n fnLoadStripeSessionForTransactionDownloadInstantPayment() {\n let userEmail =\n this.claims.EmailId && this.claims.EmailId != \"\"\n ? this.claims.EmailId\n : this.claims.LoginId;\n let invoiceItem = new StripeInstantPaymentInvoiceItem();\n invoiceItem.Name = \"Automatic Transaction download\";\n\n invoiceItem.Amount = this.orgTransactionDownloadInvoiceFailedRecord.amountPaid * 100;\n invoiceItem.Currency = this.paymentCurrency.toLowerCase();\n invoiceItem.Quantity = this.orgTransactionDownloadInvoiceFailedRecord.unitsPurchased;\n\n let invoiceItemList = [];\n invoiceItemList.push(invoiceItem);\n\n let sessionRequestData = new StripeInstantPaymentSessionRequest(\n environment.AppUrl+'ManageSubscription',\n this.customerId,\n userEmail,\n this.claims.CurrentOrganisationCurrencyCode,\n invoiceItemList\n );\n let sessionRequest = new ApiRequest(\n \"CreateStripeSessionForInstantPayment\",\n environment.applicationVersion,\n environment.requestId\n );\n\n sessionRequest.requestInfo = sessionRequestData;\n\n //Set Stripe Type\n localStorage.setItem(\"StripeSessionType\", JSON.stringify(4));\n\n if (invoiceItem.Amount > 0) {\n this.stripeService\n .CreateStripeSessionForInstantPayment(sessionRequest)\n .subscribe(\n (sessionData) => {\n if (sessionData.statusCode == 0 && sessionData.responseInfo) {\n this.stripeSessionId = sessionData.responseInfo;\n this.fnShowStripeCheckoutWindow();\n }\n },\n (error) => {\n this.submitted = false;\n }\n );\n }\n }\n\n onUpdateLater(){\n \n this.showCardExpiryNotification = false;\n this.claims.isStripPaymentFailed = false; \n this.closePanelEvent.emit(true);\n }\n}\n\n","import { Component, OnInit,Output,EventEmitter } from \"@angular/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { OrgBasicFunctionSubscriptionService } from \"src/app/_services/billing-pricing/Org-BasicFunction-Subscription.service\";\nimport { DateFormatPipe } from \"src/app/_helpers/pipe.module\";\nimport { IApiRequest,ApiRequest } from \"src/app/_models\";\nimport { first } from \"rxjs/operators\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { OrgSubscription } from \"src/app/_models/common/OrgSubscription\";\nimport { PaymentCustomerAndIntentIdResponse } from \"src/app/_models/stripe/PaymentCustomerAndIntentIdResponse\";\nimport { SaveOrderCartDetailsService } from \"src/app/_services/cart-order/SaveOrder-Cart-Details.service\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { environment } from \"src/environments/environment\";\n\n\n@Component({\n selector: \"basic-function-explore-alert-panel\",\n templateUrl: \"./basic-function-explore-alert-panel.component.html\"\n})\nexport class BasicFunctionExploreAlertPanelComponent implements OnInit {\n\n @Output() closePanelEvent = new EventEmitter();\n\n claims: Claims;\n\n basicFunctionTrialDays: number;\n explorationDays: number;\n basicFunctionTrialStartDate: number;\n basicFunctionTrialEndDate: number;\n\n constructor(\n private claimsService: ClaimsService,\n private toastr: ToastrService,\n private router: Router,\n private route: ActivatedRoute,\n private orgBasicFunctionSubscriptionService: OrgBasicFunctionSubscriptionService,\n private saveOrderCartDetailsService: SaveOrderCartDetailsService,\n private authenticationService: AuthenticationService,\n public datePipe: DateFormatPipe,\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {\n this.fnGetOrgBasicFunctionSubscriptionTrialDetails();\n }\n \n fnGetOrgBasicFunctionSubscriptionTrialDetails() {\n this.orgBasicFunctionSubscriptionService\n .GetOrgBasicFunctionSubscriptionTrialDetails(this.claims.OrgId)\n .subscribe((res: any) => {\n if (res.responseInfo != null) {\n\n this.basicFunctionTrialDays = res.responseInfo.basicFunctionTrialDays;\n this.explorationDays = res.responseInfo.explorationDays;\n this.basicFunctionTrialStartDate = res.responseInfo.basicFunctionTrialStartDate;\n this.basicFunctionTrialEndDate = res.responseInfo.basicFunctionTrialEndDate;\n\n }\n });\n }\n\n fnSubscribeNow(){\n this.closePanelEvent.emit(false);\n }\n \n fnClose() {\n this.closePanelEvent.emit(true);\n }\n}\n","
\n
\n
\n
\n
\n
\n

{{ \"label_alert\" | translate }}

\n
\n
\n
\n
    \n
  • \n {{ \"essential_pack_explore_note1\" | translate }}\n
  • \n
\n
    \n
  • \n \n {{ \"essential_pack_explore_note2\" | translate }} {{this.basicFunctionTrialDays}} {{\"essential_pack_explore_note2_1\" |translate}}\n \"\"\n
  • \n
\n
    \n
  • \n {{ \"essential_pack_explore_note3\" | translate }}\n
  • \n
  • \n {{ \"essential_pack_explore_note4\" | translate }} {{this.explorationDays}} days {{\"essential_pack_explore_note4_1\" | translate }}\n
  • \n \n
  • \n {{ \"essential_pack_explore_note6\" | translate }}\n
  • \n
\n
\n
\n
\n {{ \"trial_end_alert_subtitle\" | translate }}\n
\n
\n {{ \"trial_end_alert_subnote1\" | translate }} {{ this.datePipe.transform(basicFunctionTrialStartDate) }}\n
\n
\n {{ \"trial_end_alert_subnote2\" | translate }} {{ this.datePipe.transform(basicFunctionTrialEndDate) }} {{ \"trial_end_alert_subnote3\" | translate }}\n
\n
\n
\n \n \n\n \n
\n
\n
\n
\n","
\n
\n
\n
\n
\n

{{headerText}}

\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n\n
0\">\n
\n \n \n
\n
\n {{ item.name }}\n
\n
\n
\n {{ 'all' | translate}}\n
\n
1\n \" class=\"ng-value\">\n (+{{ items.length - 1 }})\n
\n
\n \n \n {{ 'all' | translate}}\n \n \n \n {{ item.name }}\n \n
\n
\n
\n\n
0?'col-lg-3':'col-lg-6'\">\n\n \n \n
\n\n\n
\n {{\"claimant_count\"| translate:param}}: {{claimantCount}} {{\"expenses_count\"| translate:param}}: {{expenseCount}}\n
\n\n
\n\n
\n
\n \n \n
\n\n\n\n
\n\n
\n
\n\n
\n
","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ColDef } from \"ag-grid-community\";\nimport { first } from \"rxjs/operators\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ApiRequest, BaseCategoryTypeEnum, ExpenseStatusEnum, IApiresponse } from \"src/app/_models\";\nimport { GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { IPresetExport, PresetExport } from \"src/app/_models/Dashboard/preset-export\";\nimport { OrgEntertainmentCategoryView } from \"src/app/_models/manage-category/org-entertainment-category-view\";\nimport { IWorkflowRequest, WorkflowRequest } from \"src/app/_models/Workflow/workflow-request\";\nimport { ExportToCSVService } from \"src/app/_services/common/export-to-csv.service\";\nimport { WorkflowService } from \"src/app/_services/common/workflow.service\";\nimport { environment } from \"src/environments/environment\";\n\n@Component({\n selector: \"preset-export\",\n templateUrl: \"preset-export.component.html\",\n styleUrls: [\"./preset-export.component.scss\"],\n})\nexport class PresetExportComponent implements OnInit {\n @Output() closePanel = new EventEmitter();\n @Input() selectedPresetExportStatus: number;\n @Input() isCounterApproverPurchased:boolean;\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n param: any;\n columnDefs: ColDef[];\n gridFilterItems = [];\n gridConfigItems: GridConfig;\n\n presetexportData: IPresetExport[] = [];\n gridData: IPresetExport[] = [];\n\n selectedFilterBy = 0;\n filterByList: any[];\n\n filterList: any[];\n headerText: string;\n \n constructor(private workflowService: WorkflowService,\n private exportToCSVService: ExportToCSVService,\n private translate: TranslateService) {\n\n }\n ngOnInit() {\n this.initialiseGrid();\n this.setHeaderText();\n this.bindFilterBy();\n\n this.getDashboardPresetData(this.selectedPresetExportStatus);\n }\n\n setHeaderText() {\n this.headerText = (this.selectedPresetExportStatus == ExpenseStatusEnum.PendingWithApprover\n ? this.translate.instant('label_pending_with_approver')\n : (this.selectedPresetExportStatus == ExpenseStatusEnum.Approved ? \" \" + this.translate.instant('pending_finance_approval') : \" \" + this.translate.instant('panding_passed')));\n }\n\n initialiseGrid() {\n this.createColumnDefs();\n this.getGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 1000);\n }\n\n getGridConfigItems() {\n\n this.gridConfigItems = new GridConfig(\n true,\n true,\n \"claimantName\",\n \"expenseId\",\n 0,\n false,\n [],\n true,\n true,\n false,\n null,\n 'asc',\n 40,\n this.translate.instant('no_data_availabe'),\n null,\n null,\n false, false,\n '',\n '',\n false\n );\n }\n\n createColumnDefs() {\n this.columnDefs = [\n {\n headerName: this.translate.instant('claimant_name'),\n field: 'claimantName',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 100,\n headerClass: 'text-left',\n cellClass: 'text-left',\n },\n {\n headerName: this.translate.instant('ExpenseCategory'),\n field: 'orgExpenseCategory',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 100,\n headerClass: 'text-left',\n cellClass: 'text-left',\n },\n {\n headerName: this.translate.instant('Cost Centre'),\n field: 'costCentreName',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 100,\n headerClass: 'text-left',\n cellClass: 'text-left',\n hide: !(this.selectedPresetExportStatus == ExpenseStatusEnum.PendingWithApprover || this.selectedPresetExportStatus == ExpenseStatusEnum.Approved)\n },\n {\n headerName: this.translate.instant('expense_date'),\n field: 'expenseDate',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n cellRenderer: 'dateRenderer'\n },\n {\n headerName: this.translate.instant('amount'),\n field: 'amount',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 100,\n headerClass: 'text-right',\n cellClass: 'text-right',\n cellRenderer: 'amountRenderer',\n },\n {\n headerName: this.translate.instant('approver_name'),\n field: 'approverName',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 100,\n headerClass: 'text-left',\n cellClass: 'text-left',\n 'cellStyle': params => {\n if (params?.data?.approverName == 'Auto Approved') {\n return { color: 'red' };\n }\n }\n }];\n\n if (this.selectedPresetExportStatus == ExpenseStatusEnum.PendingWithApprover) {\n if(this.isCounterApproverPurchased)\n {\n this.columnDefs.push({\n headerName: this.translate.instant('approval_role'),\n field: 'approverRole',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n headerClass: 'text-left',\n cellClass: 'text-left'\n });\n }\n this.columnDefs.push({\n headerName: this.translate.instant('submitted_on'),\n field: 'submittedOn',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n cellRenderer: 'dateRenderer'\n });\n this.columnDefs.push({\n headerName: this.translate.instant('receipt'),\n field: 'receipt',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 100,\n headerClass: 'text-left',\n cellClass: 'text-left',\n });\n this.columnDefs.push({\n headerName: this.translate.instant('policy_violated'),\n field: 'policyVoilation',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 100,\n headerClass: 'text-left',\n cellClass: 'text-left',\n });\n }\n\n if (this.selectedPresetExportStatus == ExpenseStatusEnum.Approved) {\n this.columnDefs.push({\n headerName: this.translate.instant('audittrail_approval_date'),\n field: 'approvalDate',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n cellRenderer: 'dateRenderer'\n });\n this.columnDefs.push({\n headerName: this.translate.instant('finance_approver_name'),\n field: 'financeApproverName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n headerClass: 'text-left',\n cellClass: 'text-left',\n });\n this.columnDefs.push({\n headerName: this.translate.instant('receipt'),\n field: 'receipt',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 100,\n headerClass: 'text-left',\n cellClass: 'text-left',\n });\n this.columnDefs.push({\n headerName: this.translate.instant('tax_rate'),\n field: 'taxRatevalue',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 280,\n headerClass: 'text-left',\n cellClass: 'text-left',\n });\n this.columnDefs.push({\n headerName: this.translate.instant('tax_amount'),\n field: 'taxRateAmount',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 330,\n headerClass: 'text-left',\n cellClass: 'text-left',\n });\n this.columnDefs.push({\n headerName: this.translate.instant('policy_violated'),\n field: 'policyVoilation',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 100,\n headerClass: 'text-left',\n cellClass: 'text-left',\n });\n }\n if (this.selectedPresetExportStatus == ExpenseStatusEnum.ApprovedForPayment) {\n this.columnDefs.push({\n headerName: this.translate.instant('audittrail_approval_date'),\n field: 'approvalDate',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n cellRenderer: 'dateRenderer'\n });\n this.columnDefs.push({\n headerName: this.translate.instant('finance_approver_name'),\n field: 'financeApproverName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n headerClass: 'text-left',\n cellClass: 'text-left',\n });\n this.columnDefs.push({\n headerName: 'FM Approval Date',\n field: 'financeApprovalDate',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n cellRenderer: 'dateRenderer'\n });\n this.columnDefs.push({\n headerName: this.translate.instant('receipt'),\n field: 'receipt',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 100,\n headerClass: 'text-left',\n cellClass: 'text-left',\n });\n this.columnDefs.push({\n headerName: this.translate.instant('tax_rate'),\n field: 'taxRatevalue',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 280,\n headerClass: 'text-left',\n cellClass: 'text-left',\n });\n this.columnDefs.push({\n headerName: this.translate.instant('tax_amount'),\n field: 'taxRateAmount',\n suppressMenu: true,\n sortable: true,\n resizable: true,\n minWidth: 330,\n headerClass: 'text-left',\n cellClass: 'text-left',\n });\n\n }\n }\n getDashboardPresetData(currentStatus) {\n\n let request = new ApiRequest(\n \"GetDashboardPresetData\",\n environment.applicationVersion,\n environment.requestId\n );\n let expenseIds: number[] = [];\n expenseIds.push(1);\n let requestInfo = new WorkflowRequest(expenseIds);\n requestInfo.currentStatus = currentStatus;\n request.requestInfo = requestInfo;\n this.workflowService\n .SoloGetDashboardPresetData(request)\n .subscribe((res: IApiresponse) => {\n if (res.statusCode == 0) {\n this.presetexportData = res.responseInfo;\n this.presetexportData = this.presetexportData.map(item => {\n if (this.selectedPresetExportStatus != ExpenseStatusEnum.PendingWithApprover) {\n if (item.baseCategoryId == BaseCategoryTypeEnum.Entertainment) {\n item.taxRateAmount = this.fnSetEntRowInGrid(item, 'amount');\n item.taxRatevalue = this.fnSetEntRowInGrid(item, 'value');\n }\n else {\n if (item.taxRateAmount == 0 || item.taxRateAmount) {\n item.taxRateAmount = Number(item.taxRateAmount).toFixed(2);\n }\n if (item.taxRateMasterId == 0 || item.taxRateMasterId) {\n item.taxRatevalue = item.taxRatevalue + \"%\";\n }\n }\n\n }\n return item;\n });\n this.gridData = this.presetexportData;\n\n this.bindFilterList();\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 1000);\n this.filterGridData();\n }\n });\n }\n\n bindFilterList() {\n this.filterList = [];\n\n for (var i = 0; i < this.presetexportData.length; i++) {\n if (this.selectedFilterBy == 1) {\n if (this.filterList.filter(x => x.id == this.presetexportData[i].orgExpenseCategoryId).length == 0) {\n this.filterList.push({\n id: this.presetexportData[i].orgExpenseCategoryId,\n name: this.presetexportData[i].orgExpenseCategory,\n });\n }\n this.filterList.sort((a, b) =>\n a.name > b.name ? 1 : -1\n );\n for (\n let index = 0;\n index < this.filterList.length;\n index++\n ) {\n this.filterList[index].groupByField = \"All\";\n }\n }\n else if (this.selectedFilterBy == 2) {\n if (this.filterList.filter(x => x.id == this.presetexportData[i].claimantId).length == 0) {\n this.filterList.push({\n id: this.presetexportData[i].claimantId,\n name: this.presetexportData[i].claimantName,\n });\n }\n this.filterList.sort((a, b) =>\n a.name > b.name ? 1 : -1\n );\n\n for (\n let index = 0;\n index < this.filterList.length;\n index++\n ) {\n this.filterList[index].groupByField = \"All\";\n }\n }\n\n this.selectedFilterValues = [];\n\n for (let index = 0; index < this.filterList.length; index++) {\n this.selectedFilterValues.push(\n this.filterList[index].id\n );\n }\n\n this.expenseCount = this.gridData.length;\n this.claimantCount = this.gridData.map(a => a.claimantId).filter((v, i, a) => a.indexOf(v) === i).length;\n }\n }\n\n\n selectedFilterValues: any[];\n onFilterSelectionChange(item) {\n \n\n this.selectedFilterValues = [];\n\n for (let index = 0; index < item.length; index++) {\n this.selectedFilterValues.push(\n item[index].id\n );\n }\n\n this.checkToEnableViewButton();\n }\n\n\n\n bindFilterBy() {\n this.filterByList = [];\n this.filterByList.push({\n filterById: Number(0),\n filterByName: \"All\",\n });\n this.filterByList.push({\n filterById: Number(1),\n filterByName: \"Expense Category\",\n });\n this.filterByList.push({\n filterById: 2,\n filterByName: this.translate.instant('claimant_name'),\n });\n }\n\n onFilterByChange(item) {\n \n this.selectedFilterBy = item.filterById;\n this.bindFilterList();\n this.setPlaceHolder();\n this.checkToEnableViewButton();\n }\n\n selectedFilterByPlaceHolder: string;\n setPlaceHolder() {\n if (this.selectedFilterBy == 1) {\n this.selectedFilterByPlaceHolder = \"Expense Category:\";\n }\n else if (this.selectedFilterBy == 2) {\n this.selectedFilterByPlaceHolder = this.translate.instant('claimant_name') + \":\";\n\n }\n }\n\n filterGridData() {\n if (this.selectedFilterBy == 0) {\n this.gridData = this.presetexportData;\n }\n else if (this.selectedFilterBy == 1) {\n this.gridData = this.presetexportData.filter(el => {\n return this.selectedFilterValues.find(element => {\n return element === el.orgExpenseCategoryId;\n });\n });\n }\n else if (this.selectedFilterBy == 2) {\n this.gridData = this.presetexportData.filter(el => {\n return this.selectedFilterValues.find(element => {\n return element === el.claimantId;\n });\n });\n }\n\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 1000);\n\n this.expenseCount = this.gridData.length;\n this.claimantCount = this.gridData.map(a => a.claimantId).filter((v, i, a) => a.indexOf(v) === i).length;\n\n this.enableViewButton = false;\n }\n\n ClosePanel() {\n this.closePanel.emit(false)\n }\n\n onOpen() {\n setTimeout(() => {\n const scrollContainer = document.querySelector(\n \".ng-dropdown-panel-items\"\n );\n if (scrollContainer) {\n scrollContainer.scrollTop = 0;\n }\n }, 0);\n }\n resetFilters() {\n this.selectedFilterBy = 0;\n this.filterGridData();\n }\n enableViewButton: boolean = false;\n checkToEnableViewButton() {\n if (this.selectedFilterBy == 0 || this.selectedFilterValues.length > 0) {\n this.enableViewButton = true;\n } else {\n this.enableViewButton = false;\n }\n }\n\n claimantCount: number = 0;\n expenseCount: number = 0;\n\n downloadCSV() {\n var headerText = this.gridComponent.columnDefs.map(x => x.headerName);\n var headerProperties = this.gridComponent.columnDefs.map(x => x.field);\n this.exportToCSVService.downloadFile(this.gridData, headerText, headerProperties, \"Preset Export\")\n }\n fnSetEntRowInGrid(item: IPresetExport, columnName) {\n if (!item)\n return '';\n\n let rowText = \"\";\n if (item.employeeTaxRateAmount != 0) {\n item.employeeTaxRateAmount =\n item.employeeTaxRateAmount != \"\" && item.employeeTaxRateAmount != null\n ? item.employeeTaxRateAmount\n : null;\n }\n if (item.guestTaxRateAmount != 0) {\n item.guestTaxRateAmount =\n item.guestTaxRateAmount != \"\" && item.guestTaxRateAmount != null\n ? item.guestTaxRateAmount\n : null;\n }\n\n if (item.isTipsEnabled) {\n if (item.tipsTaxRateAmount != 0) {\n item.tipsTaxRateAmount =\n item.tipsTaxRateAmount != \"\" && item.tipsTaxRateAmount != null\n ? item.tipsTaxRateAmount\n : null;\n }\n\n }\n else { item.tipsTaxRateAmount = null; }\n\n if (columnName == 'amount') {\n if (\n item.employeeTaxRateAmount != null &&\n item.guestTaxRateAmount != null &&\n item.tipsTaxRateAmount != null\n ) {\n let empAmount = Number(item.employeeTaxRateAmount).toFixed(2);\n let guestAmount = Number(item.guestTaxRateAmount).toFixed(2);\n let tipsAmount = Number(item.tipsTaxRateAmount).toFixed(2);\n rowText =\n this.translate.instant(\"manageCat_emp\") + \": \" + empAmount + \" | \" +\n this.translate.instant(\"manageCat_guests\") + \": \" + guestAmount + \" | \" +\n this.translate.instant(\"manageCat_tips\") + \": \" + tipsAmount;\n } else if (\n item.employeeTaxRateAmount == null &&\n item.guestTaxRateAmount != null &&\n item.tipsTaxRateAmount != null\n ) {\n let guestAmount = Number(item.guestTaxRateAmount).toFixed(2);\n let tipsAmount = Number(item.tipsTaxRateAmount).toFixed(2);\n rowText =\n this.translate.instant(\"manageCat_guests\") + \": \" + guestAmount + \" | \" +\n this.translate.instant(\"manageCat_tips\") + \": \" + tipsAmount;\n } else if (\n item.employeeTaxRateAmount == null &&\n item.guestTaxRateAmount == null &&\n item.tipsTaxRateAmount != null\n ) {\n let tipsAmount = Number(item.tipsTaxRateAmount).toFixed(2);\n rowText =\n this.translate.instant(\"manageCat_tips\") + \": \" + tipsAmount;\n } else if (\n item.employeeTaxRateAmount == null &&\n item.guestTaxRateAmount != null &&\n item.tipsTaxRateAmount == null\n ) {\n let guestAmount = Number(item.guestTaxRateAmount).toFixed(2);\n rowText =\n this.translate.instant(\"manageCat_guests\") + \": \" + guestAmount;\n } else if (\n item.employeeTaxRateAmount != null &&\n item.guestTaxRateAmount == null &&\n item.tipsTaxRateAmount != null\n ) {\n let empAmount = Number(item.employeeTaxRateAmount).toFixed(2);\n let tipsAmount = Number(item.tipsTaxRateAmount).toFixed(2);\n rowText =\n this.translate.instant(\"manageCat_emp\") + \": \" + empAmount + \" | \" +\n this.translate.instant(\"manageCat_tips\") + \": \" + tipsAmount;\n } else if (\n item.employeeTaxRateAmount != null &&\n item.guestTaxRateAmount == null &&\n item.tipsTaxRateAmount == null\n ) {\n let empAmount = Number(item.employeeTaxRateAmount).toFixed(2);\n rowText =\n this.translate.instant(\"manageCat_emp\") + \": \" + empAmount + \" | \" +\n \"\";\n } else if (\n item.employeeTaxRateAmount != null &&\n item.guestTaxRateAmount != null &&\n item.tipsTaxRateAmount == null\n ) {\n let empAmount = Number(item.employeeTaxRateAmount).toFixed(2);\n let guestAmount = Number(item.guestTaxRateAmount).toFixed(2);\n rowText =\n this.translate.instant(\"manageCat_emp\") + \": \" + empAmount + \" | \" +\n this.translate.instant(\"manageCat_guests\") + \": \" + guestAmount;\n }\n } else {\n if (item.employeeTaxRateValue != 0) {\n item.employeeTaxRateValue =\n item.employeeTaxRateValue != null && item.employeeTaxRateValue != 0\n ? item.employeeTaxRateValue\n : null;\n }\n if (item.guestTaxRateValue != 0) {\n item.guestTaxRateValue =\n item.guestTaxRateValue != null && item.guestTaxRateValue != 0\n ? item.guestTaxRateValue\n : null;\n }\n if (item.isTipsEnabled) {\n if (item.tipsTaxRateValue != 0) {\n item.tipsTaxRateValue =\n item.tipsTaxRateValue != null && item.tipsTaxRateValue != 0\n ? item.tipsTaxRateValue\n : null;\n }\n }\n else { item.tipsTaxRateValue = null; }\n if (\n item.employeeTaxRateValue != null &&\n item.guestTaxRateValue != null &&\n item.tipsTaxRateValue != null\n ) {\n rowText =\n this.translate.instant(\"manageCat_emp\") + \": \" + item.employeeTaxRateValue + \"% | \" +\n this.translate.instant(\"manageCat_guests\") + \": \" + item.guestTaxRateValue + \"% | \" +\n this.translate.instant(\"manageCat_tips\") + \": \" + item.tipsTaxRateValue + \"%\";\n } else if (\n item.employeeTaxRateValue == null &&\n item.guestTaxRateValue != null &&\n item.tipsTaxRateValue != null\n ) {\n rowText =\n this.translate.instant(\"manageCat_guests\") + \": \" + item.guestTaxRateValue + \"% | \" +\n this.translate.instant(\"manageCat_tips\") + \": \" + item.tipsTaxRateValue + \"%\";\n } else if (\n item.employeeTaxRateValue == null &&\n item.guestTaxRateValue == null &&\n item.tipsTaxRateValue != null\n ) {\n rowText =\n this.translate.instant(\"manageCat_tips\") + \": \" + item.tipsTaxRateValue + \"%\";\n } else if (\n item.employeeTaxRateValue == null &&\n item.tipsTaxRateValue == null &&\n item.guestTaxRateValue != null\n ) {\n rowText =\n this.translate.instant(\"manageCat_guests\") + \": \" + item.guestTaxRateValue + \"%\";\n } else if (\n item.guestTaxRateValue == null &&\n item.employeeTaxRateValue != null &&\n item.tipsTaxRateValue != null\n ) {\n rowText =\n this.translate.instant(\"manageCat_emp\") + \": \" + item.employeeTaxRateValue + \"% | \" +\n this.translate.instant(\"manageCat_tips\") + \": \" + item.tipsTaxRateValue + \"%\";\n } else if (\n item.guestTaxRateValue == null &&\n item.employeeTaxRateValue != null &&\n item.tipsTaxRateValue == null\n ) {\n rowText =\n this.translate.instant(\"manageCat_emp\") + \": \" + item.employeeTaxRateValue + \"%\";\n } else if (\n item.guestTaxRateValue != null &&\n item.employeeTaxRateValue != null &&\n item.tipsTaxRateValue == null\n ) {\n rowText =\n this.translate.instant(\"manageCat_emp\") + \": \" + item.employeeTaxRateValue + \"% | \" +\n this.translate.instant(\"manageCat_guests\") + \": \" + item.guestTaxRateValue + \"%\";\n }\n }\n return rowText;\n }\n\n}\n\n","
\n
\n
\n
\n
\n

{{ \"item_for_approval_as_an_approver\" | translate }}

\n
\n
\n \n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n\n\n\n\n 0\"\n (closePanel)=\"closeAssignPanel($event)\" [columnDefinitions]=\"assignApproversGridColumnDefs\" [itemType]=\"2\">\n","import { OnInit, Component, ViewChild, Output, EventEmitter, Input, OnChanges } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ColDef } from \"ag-grid-community\";\nimport { GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { Router } from \"@angular/router\";\nimport { NrFcLogicsService } from \"src/app/_services/NrFc/nr-fc-logics.service\";\nimport { EmployeeStatusEnum } from \"src/app/_models/common/manage-emp-enum.enum\";\n\n@Component({\n selector: 'app-approval-items',\n templateUrl: './approval-items-panel.component.html',\n styleUrls: ['./approval-items-panel.component.scss']\n})\nexport class ApprovalItemsPanelComponent implements OnInit {\n\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n\n @Output() closePanel = new EventEmitter();\n @Input() fmAsApproverSummary: any = [];\n @Input() fmAsApproverData: any;\n\n userActionEventSubscription: Subscription;\n claimsSubscription: Subscription;\n claims: Claims;\n currentUser: any;\n\n defaultSortColumn = 'amount';\n gridData: any[] = [];\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n showApproverStatusPanel: boolean = false;\n employeesList: any[] = [];\n approverListCostCentre: string;\n approverListCostCentreCode: string;\n approverListCostCentreId: number;\n panelItemType: number;\n\n selectedCostCentres: any[] = [];\n assignApproversGridColumnDefs: any;\n\n constructor(\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private alertService: AlertService,\n private router: Router,\n private rrFcLogicsService: NrFcLogicsService,\n ) {\n\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanel.emit(false);\n }\n });\n\n }\n\n ngOnInit(): void {\n if (this.fmAsApproverSummary) {\n this.mapGridData();\n this.fnInitialiseEmployeesGrid();\n }\n\n }\n\n ngOnDestroy() {\n this.claimsSubscription.unsubscribe();\n this.userActionEventSubscription.unsubscribe();\n }\n\n mapGridData() {\n let mapData = this.fmAsApproverSummary\n this.fmAsApproverSummary = [];\n for (let index = 0; index < mapData.length; index++) {\n let gridDataItem = {\n id: index + 1,\n amount: mapData[index]['amount'].toFixed(2),\n count: mapData[index]['count'],\n costCentreName: mapData[index]['costCentreName'],\n costCentreId: mapData[index]['costCentreId'],\n reason: this.mapReason(mapData[index]['status'], mapData[index]['costCentreId']),\n status: mapData[index]['status'],\n };\n this.fmAsApproverSummary.push(gridDataItem);\n }\n }\n\n mapReason(status, costCentreId) {\n let reason = '';\n if (this.claims.ApprovalRuleSetting == 1) {\n switch (status) {\n case 0:\n reason = this.translate.instant('approver_not_assigned')\n break;\n case 4:\n reason = this.translate.instant('approve_expenses')\n break;\n default:\n reason = this.translate.instant('approver_not_joined_pending')\n break;\n }\n }\n else {\n const costCentre = this.fmAsApproverData.costCentresList.find(c => c.costCentreId == costCentreId);\n if (costCentre == undefined && status == 4) {\n reason = this.translate.instant('approve_expenses')\n }\n else {\n if (costCentre.approversList && costCentre.approversList.length > 0) {\n if (status == 1 && costCentre.approversList.length == 1\n && costCentre.approversList[0].status == EmployeeStatusEnum.Active\n && costCentre.approversList[0].employeeID != this.claims.UserId) {\n reason = this.translate.instant('approver_not_assigned');\n }\n else if (status == 4) {\n reason = this.translate.instant('approve_expenses')\n }\n else {\n reason = this.translate.instant('approver_not_joined_pending')\n }\n }\n else {\n reason = this.translate.instant('approver_not_assigned')\n }\n }\n\n }\n\n return reason;\n }\n\n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('expense_count'),\n field: 'count',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 75,\n headerClass: 'text-right',\n cellClass: 'text-right',\n },\n {\n headerName: this.translate.instant('text_amount'),\n field: 'amount',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 75,\n headerClass: 'text-right',\n cellClass: 'text-right',\n },\n {\n headerName: this.translate.instant('text_cost_centre'),\n field: 'costCentreName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 200,\n hide: this.claims.ApprovalRuleSetting == 1\n },\n {\n headerName: this.translate.instant('reason_action'),\n field: 'reason',\n resizable: true,\n sortable: false,\n suppressMenu: true,\n cellRenderer: 'approverRenderer',\n minWidth: 310\n }\n ];\n\n this.assignApproversGridColumnDefs = [\n {\n headerName: this.translate.instant('cost_centre_name'),\n field: 'costCentreName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 200\n },\n {\n headerName: this.translate.instant('NumberofClaimants'),\n field: 'claimantCount',\n headerClass: 'text-right',\n cellClass: 'text-right',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n cellRenderer: 'formattedTextRenderer',\n minWidth: 200,\n headerComponentParams: {\n class: 'd-inline-block text-logo-blue cursor-pointer text-underline lH-12'\n }\n },\n {\n headerName: this.translate.instant('deputy_approver_name'),\n field: 'approvers',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n cellRenderer: 'approverRenderer',\n minWidth: 200\n },\n {\n headerName: \"\",\n valueGetter: 'data.costCentreId',\n cellRenderer: 'actionRenderer',\n field: 'userActionField',\n suppressMovable: true,\n suppressMenu: true,\n sortable: false,\n minWidth: 100,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-edit color-green',\n buttonTooltip: this.translate.instant('label_edit'),\n userAction: 1\n }\n ]\n }\n ];\n }\n\n fnGetGridConfigItems() {\n\n let countByStatusArray = [];\n\n this.gridConfigItems = new GridConfig(\n true,\n true,\n this.defaultSortColumn,\n \"id\",\n 0,\n false,\n countByStatusArray,\n true,\n true,\n false,\n null,\n 'asc',\n 40,\n 'no_data_availabe',\n null,\n null,\n false, false,\n '',\n '',\n false\n );\n }\n\n fnInitialiseEmployeesGrid() {\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n }\n\n fnOnGridCellClick(params) {\n if (params.column.colId === 'reason') {\n if (params.data.status != 4) {\n if (this.claims.ApprovalRuleSetting == 1) {\n this.openEmployeeListPanel(params.data);\n }\n else {\n this.openCostCentrePanel(params.data)\n }\n }\n else {\n this.fnRedirectToApprovalArea();\n }\n }\n }\n fnRedirectToApprovalArea() {\n if (this.claims.pendingExpenseCountApprover > 0) {\n this.router.navigate([\"approver/appclaimant/1\"]);\n }\n else if (this.claims.pendingCountNRApprover > 0) {\n this.router.navigate([\"approver/appnrreceipts\"]);\n }\n else if (this.claims.pendingCountFCApprover > 0) {\n this.router.navigate([\"approver/appfcreceipts\"]);\n }\n else if (this.claims.pendingCountPreApproval > 0) {\n this.router.navigate([\"approver/papproval\"]);\n }\n else if (this.claims.pendingAdvancesForApproval > 0) {\n this.router.navigate([\"approver/advanceclaimantlist\"]);\n }\n else if (this.claims.pendingCountInvoiceApproval > 0) {\n this.router.navigate([\"approver/appclaimant/2\"]);\n }\n }\n\n openEmployeeListPanel(paramsData) {\n if (paramsData.status == 0) {\n this.router.navigate([\"/orgsetting/manageemployee\"], {\n queryParams: { step: \"4\" },\n });\n }\n else {\n this.panelItemType = 1;\n this.showApproverStatusPanel = true;\n this.employeesList = this.fmAsApproverData.approversList;\n this.approverListCostCentre = '';\n this.approverListCostCentreCode ='';\n this.approverListCostCentreId = 0;\n }\n }\n\n openCostCentrePanel(paramsData) {\n const costCentre = this.fmAsApproverData.costCentresList.find(c => c.costCentreId == paramsData.costCentreId);\n if (costCentre.approversList && costCentre.approversList.length > 1) {\n this.panelItemType = 2;\n this.showApproverStatusPanel = true;\n this.employeesList = costCentre.approversList;\n this.approverListCostCentre = paramsData.costCentreName;\n this.approverListCostCentreCode = costCentre.costCentreCode1;\n this.approverListCostCentreId = paramsData.costCentreId;\n }\n else {\n this.selectedCostCentres = [costCentre];\n }\n }\n\n closeAssignPanel(isSaved) {\n const costCentre = this.fmAsApproverData.costCentresList;\n this.selectedCostCentres = [];\n // this.gridComponent.uncheckAll();\n // if (isSaved) {\n // this.fnGetAllEmployeesList();\n // }\n }\n\n fnClosePanel() {\n this.closePanel.emit(false);\n // if (this.canDeactivate()) {\n // if (this.removedApprovers.length > 0) {\n // this.onRemoveApprover.emit(this.removedApprovers);\n // }\n // else {\n // this.closePanel.emit(this.isSaved);\n // }\n // this.resetFields();\n // }\n // else {\n // this.alertService.onFormClosed();\n // }\n }\n\n\n}\n","export class SetupPayStepRequest {\n isPayStepEnabled: boolean;\n organisationId: number;\n financeManager: string;\n userId: number;\n\n }","
\n
\n
\n
\n
\n

{{ \"enable_this_step\" | translate }}

\n

{{ \"disable_this_step\" | translate }}

\n
\n
\n \n \n \n
\n
\n
\n \n \n\n
\n \n {{ \"setup_pay_step_note1_1\" | translate }}\n {{ \"setup_pay_step_note1_2\" | translate }}\n {{\"setup_pay_step_note1_3\" | translate }}\n
\n
\n \n {{ \"setup_pay_step_note2\" | translate }}\n
\n
\n \n {{ \"setup_pay_step_note3_1\" | translate }}\n {{ \"setup_pay_step_note3_2\" | translate }}\n {{ \"setup_pay_step_note3_3\" | translate }}\n
\n
\n \n {{ \"setup_pay_step_note4_1\" | translate }}\n {{ \"setup_pay_step_note4_2\" | translate }}\n {{ \"setup_pay_step_note4_3\" | translate }}\n {{ \"setup_pay_step_note4_4\" | translate }}\n
\n
\n
\n
\n
{{\"expense_flow\" | translate}}
\n
\n
\n
\n\n
0 || financePayPendingCount > 0\">\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n

{{\"incomplete_claims\" | translate}}

\n
\n
\n
\n
{{ this.incompleteExpenses.claimants}}
\n

{{ \"claimants\" | translate }}

\n
\n
\n
{{ this.incompleteExpenses.count }}
\n

{{\"item_count\" | translate}}

\n
\n
\n
\n
\n \n
\n
\n
\n
\n

{{ \"pending_with_approver\" | translate }}

\n
\n
\n
\n
{{ this.pendingExpensesWithApprover.claimants }}
\n

{{ \"claimants\" | translate }}

\n
\n
\n
{{ this.pendingExpensesWithApprover.count }}
\n

{{\"item_count\" | translate }}

\n
\n
\n
\n
\n \n
\n
\n
\n
\n

{{\"pending_finance_approval\" | translate}}

\n
\n
\n
\n
{{this.pendingExpensewithFA.claimants}}
\n

{{ \"claimants\" | translate }}

\n
\n
\n
{{ this.pendingExpensewithFA.count }}
\n

{{\"item_count\" | translate}}

\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n

{{ \"pending_passed_for_payment\" | translate }}

\n
\n \n
\n
\n
{{this.pendingPassedForPayment.claimants}}
\n

{{ \"claimants\" | translate }}

\n
\n
\n
{{ this.pendingPassedForPayment.count }}
\n

{{\"item_count\" | translate }}

\n
\n
\n
\n
\n \n \n {{\"label_enabled\" | translate }}\n \n \n {{\"label_disabled\" | translate }}\n \n \n
\n
\n
\n \n
\n
\n

{{\"passed_for_payment\" | translate }}

\n
\n
\n
\n
{{this.passedForPayment.claimants}}
\n

{{ \"claimants\" | translate }}

\n
\n
\n
{{ this.passedForPayment.count }}
\n

{{\"item_count\" | translate}}

\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n\n\n
\n
\n
\n
\n
\n
\n

{{ \"label_alert\" | translate }}

\n
\n
\n
\n
\n \n
{{ \"pending_items_alert_note1\" | translate }}
\n
\n
\n \n
{{ \"pending_items_alert_note2\" | translate }}
\n
\n
\n \n
{{ \"pending_items_alert_note3\" | translate }}
\n
\n
\n
\n
\n
\n
{{ \"label_expenses\" | translate }}
\n
\n
\n
\n
{{pendingCountFinancePayment}}
\n

{{ \"item_count\" | translate }}

\n
\n
\n
\n
\n
\n
\n
\n
\n
{{ \"label_advances\" | translate }}
\n
\n
\n
\n
{{pendingCountAdvancePay}}
\n

{{ \"item_count\" | translate }}

\n
\n
\n
\n
\n
\n
\n
\n
\n
{{ \"label_invoices\" | translate }}
\n
\n
\n
\n
{{pendingCountInvoicePay}}
\n

{{ \"item_count\" | translate }}

\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Location } from \"@angular/common\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { ApiRequest, IApiresponse } from \"src/app/_models\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { environment } from \"src/environments/environment\";\nimport { SetupPayStepRequest } from \"src/app/_models/Dashboard/pay-step\";\nimport {DashboardService} from \"src/app/_services/common/dashboard.service\";\nimport { DashboardExpenseStatusSummary } from \"src/app/_models/Dashboard/dashboard-expense-status-summary\";\nimport { DasboardExpenseStatusEnum, LogObjectActionTemplateEnum} from \"src/app/_models/enum/solo-enum\";\nimport { FormlyFieldConfig } from \"@ngx-formly/core\";\nimport { DynamicFormComponent } from \"src/app/shared/forms/dynamic-form/dynamic-form.component\";\nimport { DynamicFormService } from \"src/app/shared/forms/dynamic-form/dynamic-form.service\";\nimport { GetField } from \"src/app/shared/forms/form-functions/form-functions\";\nimport { LoggingPanelModel } from \"src/app/_models/common/LoggingPanelModel\";\nimport { LoggingPanelService } from \"src/app/_services/logging-panel/logging-panel.service\";\n\n@Component({\n selector: \"setup-pay-step-panel\",\n templateUrl: \"./setup-pay-step-panel.component.html\"\n})\n\nexport class SetupPayStepPanelComponent extends BaseComponent implements OnInit {\n @ViewChild(DynamicFormComponent) setupPayStepForm: DynamicFormComponent;\n @Input() data: any;\n @Output() closePanelEvent = new EventEmitter();\n @Output() submitEvent = new EventEmitter();\n\n claims: Claims;\n disableSaveButton: boolean = false;\n isOverlayRequired: boolean= true;\n showPendingItemsAlert: boolean= false;\n\n setupPayStepFormModel: SetupPayStepRequest;\n setupPayStepFormFields: FormlyFieldConfig[] = [];\n\n incompleteExpenses: DashboardExpenseStatusSummary;\n pendingExpensesWithApprover: DashboardExpenseStatusSummary;\n pendingExpensewithFA: DashboardExpenseStatusSummary;\n passedForPayment: DashboardExpenseStatusSummary;\n pendingPassedForPayment: DashboardExpenseStatusSummary;\n\n pendingCountFinancePayment: number = 0;\n pendingCountAdvancePay: number = 0;\n pendingCountInvoicePay: number = 0;\n\n financeApprovalPendingCount: number = 0;\n financePayPendingCount: number = 0;\n\n isPayStepEnabled: boolean = false;\n\n constructor(\n private toastr: ToastrService,\n private claimsService: ClaimsService,\n private router: Router,\n private location: Location,\n private translate: TranslateService,\n private alertService: AlertService,\n private dynamicFormService: DynamicFormService,\n private dashboardService: DashboardService,\n private loggingPanelService: LoggingPanelService\n ) {\n super();\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n this.isPayStepEnabled = this.claims.IsPayStepEnabled;\n });\n\n this.observeUnsavedChangesAlerts();\n }\n\n ngOnInit() {\n this.fnGetOrgExpenseDetails();\n this.fnInitializeForm();\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n canDeactivate(): boolean {\n return !this.setupPayStepForm.form.dirty;\n }\n\n observeUnsavedChangesAlerts() {\n var currentContext = this;\n let userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n\n fnInitializeForm() {\n\n let fields: FormlyFieldConfig[] = [];\n\n this.setupPayStepFormModel = new SetupPayStepRequest();\n this.setupPayStepFormModel.isPayStepEnabled = this.claims.IsPayStepEnabled;\n\n fields.push({\n fieldGroupClassName: 'row border-bottom',\n fieldGroup: [\n {\n key: 'isPayStepEnabled',\n type: 'formly-left-text-with-toggle',\n className: 'margin-bottom-10',\n templateOptions: {\n label: this.translate.instant(\"setup_pay_step_subtitle\"),\n enableBigToggle: true\n }\n }\n ]\n });\n\n this.setupPayStepFormFields = fields;\n }\n\n fnGetOrgExpenseDetails(){\n\n let dashboardExpenseStatusSummary = this.data.dashboardExpenseStatusSummary;\n let approvalSummary = this.data.approvalSummary;\n\n if (dashboardExpenseStatusSummary != null && dashboardExpenseStatusSummary.length != 0) \n {\n this.incompleteExpenses = dashboardExpenseStatusSummary.find((x) => x.status == DasboardExpenseStatusEnum.Incomplete);\n this.pendingExpensesWithApprover = dashboardExpenseStatusSummary.find((x) => x.status == DasboardExpenseStatusEnum.PendingWithApprover);\n this.pendingExpensewithFA = dashboardExpenseStatusSummary.find((x) =>x.status == DasboardExpenseStatusEnum.PendingFinanceApproval);\n this.passedForPayment = dashboardExpenseStatusSummary.find((x) => x.status == DasboardExpenseStatusEnum.PassedForPayment);\n this.pendingPassedForPayment = dashboardExpenseStatusSummary.find((x) =>x.status == DasboardExpenseStatusEnum.PendingPassforPayment);\n }\n\n if(approvalSummary){\n this.pendingCountFinancePayment = approvalSummary.pendingCountFinancePayment;\n this.pendingCountAdvancePay = approvalSummary.pendingCountAdvancePay;\n this.pendingCountInvoicePay = approvalSummary.pendingCountInvoicePay;\n\n this.financeApprovalPendingCount =\n approvalSummary.pendingCountFinanceApproval +\n approvalSummary.pendingCountNRFinanceApproval +\n approvalSummary.pendingCountFCFinanceApproval +\n approvalSummary.pendingCountAdvanceFinanceApproval +\n approvalSummary.pendingCountInvoiceFinanceApproval;\n \n this.financePayPendingCount =\n approvalSummary.pendingCountFinancePayment +\n approvalSummary.pendingCountAdvancePay +\n approvalSummary.pendingCountInvoicePay;\n }\n }\n \n fnSubmitConfiguration(){\n let financePayPendingCount = this.pendingCountFinancePayment + this.pendingCountAdvancePay + this.pendingCountInvoicePay;\n \n if(!this.setupPayStepFormModel.isPayStepEnabled && financePayPendingCount > 0){\n this.showPendingItemsAlert = true;\n }\n else{\n this.fnSetupPayStep();\n }\n }\n\n fnSetupPayStep() {\n\n this.disableSaveButton = true;\n\n let request = new ApiRequest(\"SetupPayStep\", environment.applicationVersion, environment.requestId);\n\n let requestInfo = new SetupPayStepRequest();\n requestInfo.isPayStepEnabled = this.setupPayStepFormModel.isPayStepEnabled;\n requestInfo.organisationId = this.claims.OrgId;\n requestInfo.financeManager = this.claims.FinanceManager;\n requestInfo.userId = this.claims.UserId;\n\n request.requestInfo = requestInfo;\n\n this.dashboardService.SetupPayStep(request)\n .subscribe((response: IApiresponse) => {\n if (response && response.responseInfo) {\n this.submitEvent.emit(true);\n }\n this.disableSaveButton = false;\n this.claims.IsPayStepEnabled = this.setupPayStepFormModel.isPayStepEnabled;\n this.claimsService.updateClaims(this.claims);\n });\n }\n\n fnShowPendingItemsAlert(){\n this.isOverlayRequired = true;\n }\n\n fnPendingItemsAlertReceived(returnValue) {\n if(returnValue){\n this.showPendingItemsAlert = false;\n this.fnSetupPayStep();\n }\n else{\n this.showPendingItemsAlert = false;\n }\n \n }\n\n fnShowLoggingPanel() {\n const model = new LoggingPanelModel(\n this.claims.OrgId.toString(),\n LogObjectActionTemplateEnum.SetupPayStep.toString(),\n \"0\"\n );\n this.loggingPanelService.onShowLogPanel(model);\n }\n\n}\n","export class OrganisationFeedback {\n constructor(public userName: string, public email: string, public feedbackType: number, public feedbackText: string, public response: boolean, public responseText: string) {\n\n }\n}","
\n
\n
\n
\n
\n
\n
\n {{ 'hello' | translate}} {{ userName }}!\n {{ (isOnboardingFeedback ? 'your_onboarding_is_complete' : 'trial_feedback') | translate }}\n
\n
\n
\n
\n
\n
\n
\n
\n {{ 'onboarding_feedback' | translate}}\n
\n\n
\n
\n
\n \n
\n
\n \n\n \n
\n
\n\n
\n {{\"onboarding_feedback_response_select\" | translate}}\n
\n
\n
\n
\n
\n
\n
\n
\n {{ 'need_help_along' | translate}}
\n {{\"virtual_assistant_help\" | translate}}\n
\n\n \n \"\"\n\n \n
\n
\n \n
\n\n
\n
\n
\n
\n
\n
\n
\n {{ 'trial_feedback_question' | translate }}\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n {{ 'pricing_label_booknow' | translate}}\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output } from \"@angular/core\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { OrgFeedbackTypes } from \"src/app/_models/enum/solo-enum\";\nimport { Subscription } from \"rxjs\";\nimport { OrganisationSettingService } from \"src/app/_services/organisation-setting/organisation-setting.service\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { OrganisationFeedback } from \"src/app/_models/feedback/feedback\";\n\n@Component({\n selector: \"feedback-panel\",\n templateUrl: \"./feedback-panel.component.html\",\n styleUrls: [\"./feedback-panel.component.scss\"]\n})\nexport class FeedbackPanelComponent implements OnInit, OnDestroy, OnChanges {\n\n @Input()\n type: number;\n\n @Output()\n closePanel = new EventEmitter();\n\n claims: Claims;\n claimSubscription: Subscription;\n userName: string;\n userEmail: string;\n\n isOnboardingFeedback: boolean = false;\n isTrialFeedback: boolean = false;\n\n isYesChecked: boolean = false;\n isNoChecked: boolean = false;\n\n feedbackTypeText: string = \"\";\n onboardingFeedbackText: string = \"\";\n showCalendly = false;\n\n\n constructor(\n private translate: TranslateService,\n private toastr: ToastrService,\n private claimsService: ClaimsService,\n private organisationSettingService: OrganisationSettingService,\n\n ) {\n this.claimSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n if (claims && claims.UserId) {\n this.userName = this.claims.FinanceManager.trimEnd();\n this.userEmail = this.claims.LoginId;\n }\n });\n }\n\n ngOnInit() {\n this.initializePanel();\n }\n\n ngOnDestroy() {\n this.claimSubscription.unsubscribe();\n }\n\n ngOnChanges() {\n\n }\n\n initializePanel() {\n if (this.type == OrgFeedbackTypes.OnboardingFeedback || this.type == OrgFeedbackTypes.TrialFeedback) {\n this.organisationSettingService.isFeedbackSubmitted(this.type).subscribe(result => {\n if (!result) {\n if (this.type == OrgFeedbackTypes.OnboardingFeedback) {\n this.isOnboardingFeedback = true;\n }\n else if (this.type == OrgFeedbackTypes.TrialFeedback) {\n this.isTrialFeedback = true;\n }\n }\n else {\n this.closeFeedbackPanel();\n }\n });\n }\n }\n\n onOptionChange(status) {\n this.isYesChecked = status;\n this.isNoChecked = !status;\n\n if (this.isOnboardingFeedback && this.isNoChecked) {\n this.showCalendly = true;\n }\n }\n\n onSubmitFeedback() {\n\n if (!this.isNoChecked && !this.isYesChecked) {\n this.toastr.error(this.translate.instant('feedback_selectoption'));\n return;\n }\n\n if (this.type == OrgFeedbackTypes.OnboardingFeedback) {\n this.feedbackTypeText = this.isYesChecked ? this.translate.instant(\"onboarding_feedback_yes\") : this.translate.instant(\"onboarding_feedback_no\");\n\n \n\n }\n else if (this.type == OrgFeedbackTypes.TrialFeedback) {\n this.feedbackTypeText = this.isYesChecked ? this.translate.instant(\"trial_feedback_yes\") : this.translate.instant(\"trial_feedback_no\");\n }\n\n const model = new OrganisationFeedback(this.userName, this.userEmail, this.type, this.feedbackTypeText, this.isYesChecked, this.onboardingFeedbackText)\n this.organisationSettingService.SubmitOrgFeedback(model).subscribe(result => {\n if (result) {\n if (this.isYesChecked) {\n this.toastr.success(this.translate.instant(\"feedback_submitsuccess\"))\n }\n this.closeFeedbackPanel();\n }\n else {\n this.toastr.error(this.translate.instant(\"feedback_submiterror\"));\n }\n });\n\n }\n\n closeFeedbackPanel() {\n this.closePanel.emit();\n }\n\n}\n","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n\n
\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

{{\"incomplete_claims\" | translate: param}}

\n \n
\n
\n
\n
{{this.incompleteExpenses.claimants}}
\n

{{ \"claimants\" | translate: param }}

\n
\n
\n
{{ this.incompleteExpenses.count }}
\n

{{ \"item_count\" | translate: param}}

\n
\n
\n
\n
\n
\n
\n
\n
\n

{{\"pending_with_approver\" | translate: param}}

\n \n
\n
\n
\n
{{this.pendingExpensesWithApprover.claimants}}
\n

{{ \"claimants\" | translate: param }}

\n
\n \n
\n
{{ this.pendingExpensesWithApprover.count }}
\n

{{\"item_count\" | translate: param}}

\n
\n
\n
\n
\n
\n

{{\"pending_with_approver\" | translate: param}}

\n \n
\n\n
\n
\n
{{this.pendingExpensesWithApprover.claimants}}
\n

{{ \"claimants\" | translate: param }}

\n
\n \n
\n
{{ this.pendingExpensesWithApprover.count }}
\n

{{\"item_count\" | translate: param}}

\n
\n
\n
\n
\n \n
{{'after_approval' | translate:param}}
\n
\n
\n
\n
\n
\n

{{ \"pending_finance_approval\" | translate: param }}

\n \n
\n
\n
\n
{{ this.pendingExpensewithFA.claimants }}
\n

{{ \"claimants\" | translate: param }}

\n
\n \n
\n
{{ this.pendingExpensewithFA.count }}
\n

{{ \"item_count\" | translate: param }}

\n
\n
\n
\n
\n
\n
\n
\n
\n

{{ \"pending_passed_for_payment\" | translate: param }}

\n \n
\n
\n \n
\n\n
\n
\n
{{this.pendingPassedForPayment.claimants}}
\n

{{ \"claimants\" | translate: param }}

\n
\n \n
\n
{{ this.pendingPassedForPayment.count }}
\n

{{ \"item_count\" | translate: param }}

\n
\n
\n
\n
\n
\n
\n
\n
\n

{{ \"passed_for_payment\" | translate: param }}

\n \n
\n\n
\n
\n
{{ this.passedForPayment.claimants }}
\n

{{ \"claimants\" | translate: param }}

\n
\n \n
\n
{{ this.passedForPayment.count }}
\n

{{ \"item_count\" | translate: param }}

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
{{\"manageCat_emp\" | translate: param }}
\n
\n
\n

\n
\n {{\"label_pending\" | translate: param}}\n {{\"label_notinvited\" | translate: param}}\n {{\"label_active\" | translate: param}}\n
\n
\n
\n
\n
\n
\n
\n
{{\"mileage_analysis\" | translate: param }}
\n
\n
\n

\n \n

\n
\n {{ \"manual_mileage\" | translate: param}}\n {{ \"mileage_google\" | translate: param}}\n {{ \"mileage_gps\" | translate: param}}\n
\n
\n
\n

\n \"vehicle_summary\"\n\n

\n
\n
\n
\n
\n
\n
\n
{{ 'approval_rejection_trend' | translate}}
\n
\n
\n \"vehicle_summary\"\n\n
\n
\n

\n \n

\n
\n {{ \"approved_expenses\" | translate: param}}\n {{ \"rejected_expenses\" | translate: param}}\n
\n
\n
\n
\n
\n
\n
\n
\n \"vehicle_summary\"\n\n

{{ \"vehicle_type_summary\" | translate: param }}

\n
\n
\n
\n
\n \"setup_credit_card\"\n\n

{{ \"credit_card_dashboard\" | translate: param }}

\n
\n
\n
\n
\n \"advances-dashboard\"\n\n

{{ \"advances_dashboard\" | translate: param }}

\n
\n
\n
\n
\n \"mileage\"\n\n

{{ \"mileage_analysis\" | translate: param }}

\n
\n
\n
\n
\n \"expense_category_management\"\n\n

{{ \"top_10_spenders_categories\" | translate: param }}

\n
\n
\n
\n
\n \"liability_report\"\n\n

{{ \"liabilityReport_header\" | translate: param }}

\n
\n
\n
\n
\n \"audittrail\"\n\n

{{ \"audit_trial\" | translate: param }}

\n
\n
\n
\n
\n \"Non_Reimbursable_Fuel\"\n\n

{{ \"nr_dashboard\" | translate: param }}

\n
\n
\n
\n
\n \"Fuel\n

{{ \"fc_report\" | translate: param }}

\n
\n
\n
\n
\n \"Expense\n

{{ \"expense_policy_dashboard\" | translate: param }}

\n
\n
\n
\n
\n \"Carbon_Footprint\"\n\n

{{ 'carbon_footprint' | translate }}

\n
\n
\n
\n
\n \"advances\"\n\n

{{ 'label_Advance_dash' | translate }}

\n
\n
\n
\n
\n \"Vendors\"\n\n

{{ 'label_vendor_dashborad' | translate }}

\n
\n
\n
\n
\n \"leavemanagement\"\n\n

{{ 'leave_management' | translate }}

\n
\n
\n
\n
\n \"leavemanagement\"\n\n

{{ 'leave_management' | translate }}

\n
\n
\n
\n
\n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n \n \n\n
\n
\n
\n
\n
\n

{{ \"information\" | translate: param }}

\n
\n
\n
\n
\n \n {{ noOfApproversDoNotHaveDeputies }}\n {{ \"approvers_do_not_have_deputies\" | translate: param }}\n \n
\n
\n
\n
\n \n \n {{ \"please_assign_deputies_to_approver\" | translate: param }}\n \n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n

{{ \"information\" | translate: param }}

\n
\n
\n
\n
\n
\n \n {{ noOfEmployeeDoNotHaveGrade }}\n {{ \"employee_do_not_have_grade\" | translate: param }}\n \n
\n
\n
\n
\n \n {{ \"please_assign_rate_to_grade\" | translate: param }}\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

{{ 'information' | translate }}

\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n {{ 'note_assign_approvers_cc_urgent' | translate: param }}\n
\n
\n
\n \n \n
\n
\n
\n\n \n \n \n \n\n \n\n \n\n \n \n\n \n \n\n\n\n \n \n\n \n
\n
\n
\n
\n \"\"\n

{{'message_from_founder' | translate}}

\n

{{'dear'}} {{loggedInUserDisplayName}},

\n

{{'welcome_to_expense_on_demand'| translate}}\n

{{'message_from_founder_1' | translate}}\n

{{'message_from_founder_2' | translate}}\n

{{'message_from_founder_3' | translate}}\n

{{'message_from_founder_4' | translate}}\n

{{'message_from_founder_5' | translate}}\n

\n

{{'thank_you_for_choosing_eod' |translate}}

\n

{{'sincerely' | translate}}
{{'founder_name' | translate}}

\n
\n \n
\n
\n
\n\n\n\n \n \n\n \n \n\n \n \n \n ","import { AfterViewInit, Component, OnInit } from \"@angular/core\";\nimport {\n CostCentreService,\n DashboardService,\n ManageempService,\n} from \"../_services\";\nimport { first } from \"rxjs/operators\";\nimport { Chart } from \"chart.js\";\nimport {\n FunctionPackageEnum,\n DasboardExpenseStatusEnum,\n ExpenseStatusEnum,\n FMRoleType,\n FunctionPrivilege,\n Page,\n ApprovalRuleSetting,\n DashboardCountEnum,\n DOCStatusEnum,\n OrgFeedbackTypes,\n CcImportTemplateTypeEnum,\n UniversalImportTemplateEnum,\n} from \"../_models/enum/solo-enum\";\nimport { Claims } from \"../_models/common/claims\";\nimport { ClaimsService } from \"../_services/common/claims.service\";\nimport { Router } from \"@angular/router\";\nimport { OrgSubscriptionPurchaseFunctionList } from \"../_models/billing-pricing/IOrgSubscriptionPurchaseFunctionList\";\nimport {\n ApiRequest,\n GetAllEmployeesRequest,\n IApiRequest,\n IGetAllEmployeesRequest,\n CCPendingTransactionsFilterEnum,\n IApiresponse,\n} from \"../_models\";\nimport { OrgSubscription } from \"../_models/common/OrgSubscription\";\nimport { SoloCheckFuncPurchaseListRequest } from \"../_models/common/solo-check-func-purchase-list-request\";\nimport { OrgSubscriptionFunctionService } from \"../_services/billing-pricing/Org-Subscription-Function.service\";\nimport {\n ICartDetailsRequest,\n CartDetailsRequest,\n GetOrgDependentFunctionListRequest,\n IGetOrgDependentFunctionListRequest,\n GetCartDetailsRequest,\n IGetCartDetailsRequest,\n} from \"../_models/organisation-setting/organisation-setting\";\nimport { OrganisationSettingService } from \"../_services/organisation-setting/organisation-setting.service\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { RSAHelper } from \"../_helpers/RSAHelper\";\nimport { environment } from \"src/environments/environment\";\nimport { DashboardExpenseStatusSummary } from \"../_models/Dashboard/dashboard-expense-status-summary\";\nimport { ApprovalSummary } from \"../_models/Dashboard/approval-summary\";\nimport {\n IDashBoardAPI,\n DashBoardAPI,\n DashboardDataRequest,\n} from \"../_models/Dashboard/dashboardAPI\";\nimport { OrgSubscriptionFunctionList } from \"../_models/billing-pricing/OrgSubscriptionFunctionList\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { AlertPanelModel } from \"../_models/common/alertPanelModel\";\nimport { FunctionPrivilegeService } from \"../_services/secondary-fm/function-privilege.service\";\nimport { OrganisationFunctionService } from \"../_services/organisation-setting/organisation-function.service\";\nimport { NRFCConfigModel } from \"../_models/NrFc/nrfcconfig-model\";\nimport { MarketingPopup } from \"../_models/common/marketing-popup\";\nimport { NotificationService } from \"../_services/common/notification.service\";\nimport {\n Notification,\n NotificationActionModel,\n} from \"../_models/common/notification\";\nimport { Subscription } from \"rxjs\";\nimport { EmployeeStatusEnum } from \"../_models/common/manage-emp-enum.enum\";\nimport { PurchaseFuncListDetails } from \"../_models/billing-pricing/SoloCheckFuncPurchaseListResponse\";\nimport { RecommendationService } from \"src/app/_services/Recommendation/recommendation.service\";\nimport {\n IRecommendation,\n IOrgRecommendation,\n IExpenseRecommendationDetail,\n} from \"src/app/_models/recommendation/recommendation\";\nimport { WebPushSubscription } from \"../_models/web-notifications/push-subscription\";\nimport { OrgBasicFunctionSubscriptionService } from \"src/app/_services/billing-pricing/Org-BasicFunction-Subscription.service\";\nimport Swal from \"sweetalert2\";\nimport { GoogleTagManagerService } from \"angular-google-tag-manager\";\nimport { AccountingIntegrationService } from \"../_services/Accounting/accounting-integration.service\";\nimport { CreditCardService } from \"../_services/credit-card/credit-card.service\";\nimport {\n CardReviewUploadedTransactionsRequest,\n CCDashboardRequest,\n CcImportModel,\n ICardReviewUploadedTransactionsRequest,\n ICCDashboardRequest,\n ICCDashboardResponse,\n} from \"../_models/credit-card/credit-card\";\nimport { StorageData } from \"../_models/universal-importer/universal-importer\";\nimport { UniversalImporterService } from \"../_services/universal-importer/universal-importer.service\";\nimport { UTCDateTime } from \"../common/commonvariables\";\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\n\n@Component({\n templateUrl: \"home.component.html\",\n styleUrls: [\"./home.component.scss\"],\n})\nexport class HomeComponent implements OnInit, AfterViewInit {\n packagePath: string;\n OrganisationId: number;\n token: string;\n loginId: string;\n userId: string;\n PurchaseFunctionResponse_1: OrgSubscriptionPurchaseFunctionList;\n allPurchaseFunction: PurchaseFuncListDetails[];\n incompleteExpenses: DashboardExpenseStatusSummary;\n pendingExpensesWithApprover: DashboardExpenseStatusSummary;\n pendingExpensewithFA: DashboardExpenseStatusSummary;\n passedForPayment: DashboardExpenseStatusSummary;\n pendingPassedForPayment: DashboardExpenseStatusSummary;\n organisationCurrency: string;\n claims: Claims;\n twoStepApproval: boolean = false;\n mileageMarketingPopup: boolean;\n creditCardPopup: boolean;\n categoryMarketingPopup: boolean;\n showOrphanspopUp: boolean = false;\n openOrphansPopup: boolean = false;\n OrgPurchaseFunctionRequest: IApiRequest;\n saveCartDetailsRequest: IApiRequest;\n getOrgDependentFunctionListRequest: IApiRequest;\n FunctionPackageId: any;\n dependentFunction: any[];\n functionPackageName: any;\n twoStepApprovalPopup: boolean;\n liabilityReportPopup: boolean;\n disableCartMileage: boolean;\n disableCartCc: boolean;\n disableCartExpenseCategory: boolean;\n disableTwoStepApp: boolean;\n disableLiabilityReportApp: boolean;\n cartList: any;\n getCartDetailsRequest: IApiRequest;\n showGooglePackagePurchaseReminder: boolean;\n googlePackagePurchaseReminderThreshold: number;\n isMileagePurchased: boolean = false;\n isTwoStepPurchased: boolean = false;\n functionPackageEnum = FunctionPackageEnum;\n dashboardExpenseStatusSummary = [];\n approvalSummary: ApprovalSummary;\n dasboardExpenseStatusEnum = DasboardExpenseStatusEnum;\n dashBoardAPI: IDashBoardAPI;\n OrgTrialingFunctionRequest: IApiRequest;\n trialingFunctionResponse = [];\n\n isAccountingPurchased: boolean = false;\n param: string;\n isLiabilityReportPurchased: boolean = false;\n auditTrailPopup: boolean;\n advancesPopup: boolean;\n apAutomationPopup: boolean;\n cfpPopup: boolean;\n disableAuditTrailApp: boolean;\n isAuditTrailPurchased: boolean = false;\n isAdvancesPurchased: boolean = false;\n isAPAutomationPurchased: boolean = false;\n isCarbonFootprintPurchased: boolean = false;\n leaveManagementPopup: boolean;\n isLeaveManagementPurchased: boolean = false;\n\n expenseStatusEnum = ExpenseStatusEnum;\n alertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n isAlertDisplay: boolean = false;\n showLargeImagePopup: boolean;\n showLargImageForFunction: number;\n\n isPrimaryFM: boolean = false;\n isFinanceApprovalAccess: boolean = false;\n isPayAccess: boolean = false;\n isCardAccess: boolean = false;\n isBuildReportAccess: boolean = false;\n isAdvancedMileageAccess: boolean = false;\n isManageCategoryAccess: boolean = false;\n isLiabilityReportAccess: boolean = false;\n isAuditTrailAccess: boolean = false;\n isAdvancesAccess: boolean = false;\n isVendorAccess: boolean = false;\n showPendingDeputiesPopup: boolean = false;\n noOfApproversDoNotHaveDeputies: number;\n isApproversDeputyPurchased: boolean;\n\n showPendingEmployeeWithGradePopup: boolean = false;\n noOfEmployeeDoNotHaveGrade: number;\n isAssignMileageRateToGradePurchased: boolean;\n isAssignCategoryToGradePurchased: boolean;\n isDailyCapPurchased: boolean;\n isMonthlyCapPurchased: boolean;\n isYearlyCapPurchased: boolean;\n isAutoApprovalPurchased: boolean;\n isCounterApproverPurchased: boolean = false;\n isPerNightPurchased: boolean;\n isPerPersonPurchased: boolean;\n isDutyofCareAccess: boolean = false;\n isNRFCAccess: boolean = false;\n isApproverDeputyAccess: boolean = false;\n isLeaveManagementAccess: boolean = false;\n isManageEmployeesAccess: boolean = false;\n nrfcConfigModel: NRFCConfigModel = new NRFCConfigModel();\n creditCardMarketingPopupModel: any;\n manageCategoryMarketingPopupModel: any;\n mileageMarketingPopupModel: any;\n\n notificationActionModel: NotificationActionModel;\n notificationActionSubscription: Subscription;\n\n liabilityReportPopupModel: MarketingPopup;\n advancesMarketingPopupModel: MarketingPopup;\n cfpMarketingPopupModel: MarketingPopup;\n IsLeaveManagementAllowed: boolean;\n isUniversalImportAllowed: boolean;\n IsAPAutomationAllowed: boolean;\n\n approvalRuleSetting: number = 0;\n costCentresWithoutApproverCount: number = 0;\n costCentresWithoutApproversMessage: string = \"\";\n fmAsApproverSummary: any = [];\n isDataLoadComplete: boolean = false;\n fmAsApproverData: any;\n showComplianceStatement: boolean = false;\n financeApprovalPendingCount: number = 0;\n financePayPendingCount: number = 0;\n assignCategoryToGradePurchased: boolean = false;\n isMultipleCountryPackagePurchasedOrTrial: boolean = false;\n isDuplicateCheckerPurchased: boolean;\n allRecomm: IRecommendation[];\n orgRecomm: IOrgRecommendation[];\n showRecommendationPopup: boolean = true;\n expenseRecomm: IExpenseRecommendationDetail[];\n showStripPaymentFailedPanel: boolean = false;\n docStatus: number;\n showDutyofCarePopup: boolean;\n showDutyofCarePopupModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n\n loggedInUserDisplayName: string;\n\n actionableRecordForDashboard: any;\n showSetupSkipPayStepPanel: boolean = false;\n setupSetupSkipPayStepPanelInputmodel: any;\n isPayStepEnabled: boolean = false;\n isTwoStepApprovalTurnOn: boolean = false;\n showBasicFunctionExploreAlertPanel: boolean = false;\n\n constructor(\n private dashboard: DashboardService,\n private claimsService: ClaimsService,\n private orgSubscriptionFunctionService: OrgSubscriptionFunctionService,\n private router: Router,\n private organisationSettingService: OrganisationSettingService,\n private costCentreService: CostCentreService,\n private toastr: ToastrService,\n private translate: TranslateService,\n private functionPrivilegeService: FunctionPrivilegeService,\n private organisationFunctionService: OrganisationFunctionService,\n private notificationService: NotificationService,\n private manageEmpService: ManageempService,\n private recommService: RecommendationService,\n private orgBasicFunctionSubscriptionService: OrgBasicFunctionSubscriptionService,\n private gtmService: GoogleTagManagerService,\n private accountingIntegrationService: AccountingIntegrationService,\n private creditCardService: CreditCardService,\n private universalImporterService: UniversalImporterService,\n private ngxService: NgxUiLoaderService\n ) {\n document.body.className = \"color-dashboard\";\n this.claims = new Claims();\n this.nrfcConfigModel.claims = new Claims();\n this.claimsService.currentClaims.subscribe((claims) => {\n this.nrfcConfigModel.claims = claims;\n this.claims = claims;\n this.OrganisationId = this.claims.OrgId;\n this.loginId = this.claims.LoginId;\n this.userId = this.claims.UserId.toString();\n this.token = this.claims.Token;\n if (this.claims.CurrentOrganisationCurrency.indexOf(\"-\") > -1) {\n this.organisationCurrency =\n this.claims.CurrentOrganisationCurrencyCode.trim();\n } else {\n this.organisationCurrency =\n this.claims.CurrentOrganisationCurrency.trim();\n }\n this.showGooglePackagePurchaseReminder =\n this.claims.showGooglePackagePurchaseReminder;\n this.googlePackagePurchaseReminderThreshold =\n this.claims.googlePackagePurchaseReminderThreshold;\n this.IsLeaveManagementAllowed = this.claims.IsLeaveManagementAllowed;\n this.IsAPAutomationAllowed = this.claims.IsAPAutomationAllow;\n this.approvalRuleSetting = this.claims.ApprovalRuleSetting\n ? this.claims.ApprovalRuleSetting\n : 1;\n this.isUniversalImportAllowed = this.claims.isUniversalImportAllowed;\n this.docStatus = this.claims.docStatus;\n this.isMultipleCountryPackagePurchasedOrTrial =\n this.claims.IsMultipleCountryPackagePurchasedOrTrial;\n this.showStripPaymentFailedPanel = this.claims.isStripPaymentFailed;\n this.isPayStepEnabled = this.claims.IsPayStepEnabled;\n this.isTwoStepApprovalTurnOn = this.claims.TwoStepApproval;\n });\n\n this.dashBoardAPI = new DashBoardAPI();\n this.approvalSummary = new ApprovalSummary();\n this.incompleteExpenses = new DashboardExpenseStatusSummary();\n this.pendingExpensesWithApprover = new DashboardExpenseStatusSummary();\n this.pendingExpensewithFA = new DashboardExpenseStatusSummary();\n this.passedForPayment = new DashboardExpenseStatusSummary();\n this.pendingPassedForPayment = new DashboardExpenseStatusSummary();\n this.getOrgPurchaseFunctionList();\n this.fnGetCostCentresList();\n this.fnGetFmDashboardApproveRejectData();\n this.fnGetSoloActionableFMCountData();\n\n this.onNotificationAction(this.notificationService.getNotificationAction());\n this.notificationActionSubscription = this.notificationService\n .onNotificationAction()\n .subscribe((notification) => {\n this.onNotificationAction(notification);\n });\n\n if (this.claims.ManageCCOptions > 1) {\n this.runImportCCAtSpecificTimeOfDay();\n }\n }\n\n readonly VAPID_PUBLIC_KEY =\n \"BP8dsmafi6xfRWX3dZmpiMaXT0blFzlD7GOcqZV-ZJqeTbhlPEuI8Ge34DikR07BlJiFRJ59tVJWVkpyd8CbF1k\";\n webPushSubscription: WebPushSubscription;\n\n IsOnboardingCompleted = true;\n isTrialFeedbackPanelDisplayed: boolean = false;\n isOnboardingFeedbackPanelDisplayed: boolean = false;\n isFeedbackPanelActive: boolean = false;\n feedbackPanelType: number = 0;\n\n ngOnInit() {\n if (localStorage.getItem(\"registereduser\")) {\n let currentUser = JSON.parse(localStorage.getItem(\"registereduser\"));\n\n this.loggedInUserDisplayName = (\n currentUser.FirstName +\n \" \" +\n currentUser.LastName\n ).trim();\n }\n this.IsOnboardingCompleted = this.claims.IsOnboardingCompleted;\n\n this.isPrimaryFM = this.claims.FMRoleType == FMRoleType.AllPrivilege;\n if (this.isPrimaryFM) {\n this.isFinanceApprovalAccess = true;\n this.isPayAccess = true;\n this.isCardAccess = true;\n this.isBuildReportAccess = true;\n this.isAdvancedMileageAccess = true;\n this.isManageCategoryAccess = true;\n this.isLiabilityReportAccess = true;\n this.isAuditTrailAccess = true;\n this.isAdvancesAccess = true;\n this.isNRFCAccess = true;\n this.isDutyofCareAccess = true;\n this.isApproverDeputyAccess = true;\n this.isLeaveManagementAccess = true;\n this.isManageEmployeesAccess = true;\n this.isVendorAccess = true;\n this.getAllRecommendation();\n } else if (this.claims.FMRoleType === FMRoleType.LimitedPrivilege) {\n var functions = [\n FunctionPackageEnum.SetupCreditCard,\n FunctionPackageEnum.SetupAdvancedMileage,\n FunctionPackageEnum.ExpenseCategoryManagement,\n FunctionPackageEnum.LiabilityReport,\n FunctionPackageEnum.AuditTrail,\n FunctionPackageEnum.ConfigureApprovalRule,\n FunctionPackageEnum.Advances,\n FunctionPackageEnum.APAutomation,\n ];\n\n var functionprivileges = [\n FunctionPrivilege.FinanceApprover,\n FunctionPrivilege.PassforPayment,\n FunctionPrivilege.SetupCreditCard,\n FunctionPrivilege.TransferData,\n FunctionPrivilege.SetupAdvancedMileage,\n FunctionPrivilege.ExpenseCategoryManagement,\n FunctionPrivilege.LiabilityReport,\n FunctionPrivilege.AuditTrail,\n // FunctionPrivilege.NonReimbursableFuel,\n // FunctionPrivilege.DutyofCareApproval,\n FunctionPrivilege.ManageEmployees,\n FunctionPrivilege.Advances,\n FunctionPrivilege.ApAutomation,\n ];\n\n this.organisationFunctionService\n .checkFunctionsSubscribed(functions, this.claims.OrgId)\n .subscribe((subscription) => {\n this.functionPrivilegeService\n .checkPrivilegesAccess(functionprivileges, this.claims.UserId)\n .subscribe((access) => {\n this.isFinanceApprovalAccess =\n access.indexOf(FunctionPrivilege.FinanceApprover) > -1;\n this.isPayAccess =\n access.indexOf(FunctionPrivilege.PassforPayment) > -1;\n this.isCardAccess =\n subscription.indexOf(FunctionPackageEnum.SetupCreditCard) >\n -1 && access.indexOf(FunctionPrivilege.SetupCreditCard) > -1;\n this.isBuildReportAccess =\n access.indexOf(FunctionPrivilege.TransferData) > -1;\n this.isAdvancedMileageAccess =\n subscription.indexOf(FunctionPackageEnum.SetupAdvancedMileage) >\n -1 &&\n access.indexOf(FunctionPrivilege.SetupAdvancedMileage) > -1;\n this.isManageCategoryAccess =\n subscription.indexOf(\n FunctionPackageEnum.ExpenseCategoryManagement\n ) > -1 &&\n access.indexOf(FunctionPrivilege.ExpenseCategoryManagement) >\n -1;\n this.isLiabilityReportAccess =\n subscription.indexOf(FunctionPackageEnum.LiabilityReport) >\n -1 && access.indexOf(FunctionPrivilege.LiabilityReport) > -1;\n this.isAuditTrailAccess =\n subscription.indexOf(FunctionPackageEnum.AuditTrail) > -1 &&\n access.indexOf(FunctionPrivilege.AuditTrail) > -1;\n this.isNRFCAccess =\n subscription.indexOf(FunctionPackageEnum.SetupAdvancedMileage) >\n -1 &&\n access.indexOf(FunctionPrivilege.SetupAdvancedMileage) > -1;\n this.isDutyofCareAccess =\n subscription.indexOf(FunctionPackageEnum.DutyofCareApproval) >\n -1 &&\n access.indexOf(FunctionPrivilege.SetupAdvancedMileage) > -1;\n this.isApproverDeputyAccess =\n subscription.indexOf(\n FunctionPackageEnum.AssignDeputyToApprovers\n ) > -1 &&\n access.indexOf(FunctionPrivilege.AssignDeputyToApprovers) > -1;\n this.isLeaveManagementAccess =\n subscription.indexOf(FunctionPackageEnum.LeaveManagement) >\n -1 && access.indexOf(FunctionPrivilege.LeaveManagement) > -1;\n this.isManageEmployeesAccess =\n subscription.indexOf(\n FunctionPackageEnum.ConfigureApprovalRule\n ) > -1 &&\n access.indexOf(FunctionPrivilege.ManageEmployees) > -1;\n this.isAdvancesAccess =\n subscription.indexOf(FunctionPackageEnum.Advances) > -1 &&\n access.indexOf(FunctionPrivilege.Advances) > -1;\n this.isVendorAccess =\n subscription.indexOf(FunctionPackageEnum.APAutomation) > -1 &&\n access.indexOf(FunctionPrivilege.ApAutomation) > -1;\n });\n });\n }\n this.isMileagePurchased = false;\n this.twoStepApproval = false;\n this.showOrphanspopUp = false;\n this.openOrphansPopup = false;\n this.categoryMarketingPopup = false;\n this.creditCardPopup = false;\n this.mileageMarketingPopup = false;\n this.twoStepApprovalPopup = false;\n this.disableCartMileage = false;\n this.disableCartCc = false;\n this.disableCartExpenseCategory = false;\n this.disableTwoStepApp = false;\n this.liabilityReportPopup = false;\n this.auditTrailPopup = false;\n this.advancesPopup = false;\n this.apAutomationPopup = false;\n this.showDutyofCarePopup = false;\n this.getCartDetails();\n //this.checkForDOCStatus();\n this.getCostCentresWithoutApprovers();\n this.checkForPendingEmployeeWithGrade();\n this.fnGetOrgBasicFunctionSubscriptionTrialDetails();\n if (localStorage.getItem(\"istokenImpersonated\") == \"true\") {\n localStorage.setItem(\"istokenImpersonated\", \"false\");\n window.location.reload();\n }\n\n if (\n localStorage.getItem(\"showComplianceStatement\") == \"1\" &&\n this.claims.showCompliancePopup\n ) {\n this.claims.complianceStatement = this.claims.complianceStatement\n .split(\"

\")\n .join('

');\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.claims.complianceHeader,\n [this.claims.complianceStatement],\n \"\",\n this.translate.instant(\"change_pass_ok_click\"),\n false,\n \"\"\n );\n this.alertPanelModel.bodyClass = \"row bg-white margin-top-10\";\n this.alertPanelModel.hideInfoIcon = true;\n this.alertPanelModel.singleMessagetextClass =\n \"padding-LR-15 padding-top-15 padding-bottom-15 f-20\";\n localStorage.removeItem(\"showComplianceStatement\");\n }\n\n if (\n !this.claims.IsOnboardingCompleted &&\n !this.isFeedbackPanelActive &&\n !this.isOnboardingFeedbackPanelDisplayed &&\n this.claims.IsFinanceManager\n ) {\n this.isOnboardingFeedbackPanelDisplayed = true;\n this.feedbackPanelType = OrgFeedbackTypes.OnboardingFeedback;\n this.isFeedbackPanelActive = true;\n } else if (\n !this.isTrialFeedbackPanelDisplayed &&\n !this.isFeedbackPanelActive\n ) {\n this.getOrgBasicFunctionSubscriptionTrialDetails();\n }\n }\n\n basicFunctionRemainingTrialDays: number;\n getOrgBasicFunctionSubscriptionTrialDetails() {\n if (this.claims && this.claims.OrgId && this.claims.IsFinanceManager) {\n this.isTrialFeedbackPanelDisplayed = true;\n this.orgBasicFunctionSubscriptionService\n .GetOrgBasicFunctionSubscriptionTrialDetails(this.claims.OrgId)\n .subscribe((res: any) => {\n this.basicFunctionRemainingTrialDays =\n res.responseInfo.basicFunctionRemainingTrialDays;\n\n if (res.responseInfo) {\n if (\n !res.responseInfo.isBasicFunctionPurchased &&\n !this.isFeedbackPanelActive\n ) {\n const trialPastDays =\n res.responseInfo.basicFunctionTrialDays -\n res.responseInfo.basicFunctionRemainingTrialDays;\n if (trialPastDays >= environment.trialFeedbackDays) {\n this.feedbackPanelType = OrgFeedbackTypes.TrialFeedback;\n this.isFeedbackPanelActive = true;\n }\n }\n }\n });\n }\n }\n\n ngOnDestroy() {\n this.notificationActionSubscription.unsubscribe();\n document.body.className = \"\";\n }\n\n onNotificationAction(notification: Notification) {\n if (notification) {\n setTimeout(() => {\n this.notificationActionModel = notification.action;\n if (this.notificationActionModel.panel === \"ItemsForApproval\") {\n this.showOrphanspop(true);\n this.notificationService.notificationActionCompleted();\n }\n }, 500);\n }\n }\n\n fnShowDutyofCareRequirementPopup(status: number) {\n if (\n status == DOCStatusEnum.incomplete ||\n status == DOCStatusEnum.pleaseComplete ||\n status == DOCStatusEnum.pendingSubmission\n ) {\n this.showDutyofCarePopupModel = new AlertPanelModel(\n true,\n this.translate.instant(\"duty_of_care_compliance\"),\n [],\n this.translate.instant(\"label_cancel\"),\n this.translate.instant(\"label_confirm\"),\n true,\n this.translate.instant(\"duty_of_care_compliance_subtext\")\n );\n }\n this.showDutyofCarePopup = true;\n }\n\n fnDutyofCarePopupReceiver(returnValue) {\n this.showDutyofCarePopupModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n \"\"\n );\n this.showDutyofCarePopup = false;\n if (returnValue) {\n if (returnValue == 1) {\n let url = \"claimant/mymileagerate\";\n this.router.navigate([url], {\n queryParams: {\n step: \"3\",\n },\n });\n }\n }\n }\n\n fnGetFmDashboardApproveRejectData() {\n this.dashboard\n .getFmDashboardApproveRejectData(this.OrganisationId, this.token)\n .subscribe((res) => {\n this.dashBoardAPI = res.responseInfo;\n if (\n this.dashBoardAPI.approvedExpenses != \"0,0,0,0\" ||\n this.dashBoardAPI.rejectedExpenses != \"0,0,0,0\"\n ) {\n this.isCanvasbar2Display = true;\n var myChart = new Chart(\"canvas\", {\n type: \"line\",\n data: {\n labels: this.dashBoardAPI.monthsList,\n datasets: [\n {\n label: this.translate.instant(\"approved_expenses\"),\n data: this.dashBoardAPI.approvedExpenses,\n backgroundColor: \"rgb(41, 174, 73)\",\n fill: false,\n borderColor: \"rgb(41, 174, 73)\",\n borderWidth: \"1\",\n pointStyle: \"rectRot\",\n pointRadius: 5,\n },\n {\n label: this.translate.instant(\"rejected_expenses\"),\n data: this.dashBoardAPI.rejectedExpenses,\n backgroundColor: \"rgb(255, 0, 0)\",\n fill: false,\n borderColor: \"rgb(255, 0, 0)\",\n borderWidth: \"1\",\n pointStyle: \"rectRot\",\n pointRadius: 5,\n },\n ],\n },\n options: {\n legend: {\n display: false,\n },\n tooltips: {\n mode: \"nearest\",\n },\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n display: true,\n },\n ],\n yAxes: [\n {\n display: true,\n scaleLabel: {\n display: true,\n fontStyle: \"bold\",\n fontFamily: \"Open Sans\",\n labelString: this.translate.instant(\"expenses_count\"),\n },\n ticks: {\n beginAtZero: true,\n userCallback: function (label) {\n // when the floored value is the same as the value we have a whole number\n if (Math.floor(label) === label) {\n return label;\n }\n },\n autoSkip: true,\n maxTicksLimit: 5,\n },\n },\n ],\n },\n },\n });\n } else {\n this.isCanvasbar2Display = false;\n var myChart = new Chart(\"canvas\", {\n options: {\n title: {\n display: true,\n text: this.translate.instant(\"no_data_available_text\"),\n lineHeight: 20,\n //position: 'bottom'\n },\n },\n });\n }\n if (\n this.dashBoardAPI.pendingInvite != \"0,0,0,0\" ||\n this.dashBoardAPI.notInvited != \"0,0,0,0\" ||\n this.dashBoardAPI.activeEmp != \"0,0,0,0\"\n ) {\n var myChart1 = new Chart(\"canvasbar\", {\n type: \"bar\",\n data: {\n labels: this.dashBoardAPI.monthsList,\n datasets: [\n {\n label: this.translate.instant(\"label_pending\"),\n data: this.dashBoardAPI.pendingInvite,\n backgroundColor: \"rgb(253, 198, 21)\",\n fill: false,\n },\n {\n label: this.translate.instant(\"label_notinvited\"),\n data: this.dashBoardAPI.notInvited,\n backgroundColor: \"rgb(226, 11, 32)\",\n fill: false,\n },\n {\n label: this.translate.instant(\"label_active\"),\n data: this.dashBoardAPI.activeEmp,\n backgroundColor: \"rgb(41, 174, 73)\",\n fill: false,\n },\n ],\n },\n options: {\n legend: {\n display: false,\n },\n tooltips: {\n mode: \"x\",\n },\n scales: {\n xAxes: [\n {\n barPercentage: 0,\n gridLines: {\n display: false,\n },\n barThickness: 15,\n\n display: true,\n },\n ],\n yAxes: [\n {\n display: true,\n interval: 10,\n scaleLabel: {\n display: true,\n fontStyle: \"bold\",\n fontFamily: \"Open Sans\",\n labelString: this.translate.instant(\"emp_count\"),\n },\n\n ticks: {\n beginAtZero: true,\n\n userCallback: function (label) {\n // when the floored value is the same as the value we have a whole number\n if (Math.floor(label) === label) {\n return label;\n }\n },\n autoSkip: true,\n maxTicksLimit: 5,\n },\n },\n ],\n },\n },\n });\n } else {\n var myChart1 = new Chart(\"canvasbar\", {\n type: \"bar\",\n data: {\n labels: this.dashBoardAPI.monthsList,\n datasets: [\n {\n data: this.dashBoardAPI.pendingInvite,\n backgroundColor: \"rgb(255, 102, 0)\",\n fill: false,\n },\n {\n data: this.dashBoardAPI.notInvited,\n backgroundColor: \"rgb(9, 96, 148)\",\n fill: false,\n },\n {\n data: this.dashBoardAPI.activeEmp,\n backgroundColor: \"rgb(41, 174, 73)\",\n fill: false,\n },\n ],\n },\n options: {\n legend: {\n display: false,\n },\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n barThickness: 15,\n display: true,\n },\n ],\n yAxes: [\n {\n display: true,\n scaleLabel: {\n display: true,\n fontStyle: \"bold\",\n fontFamily: \"Open Sans\",\n labelString: this.translate.instant(\"emp_count\"),\n },\n ticks: {\n beginAtZero: true,\n suggestedMin: 1,\n stepSize: 100,\n suggestedMax: 500,\n },\n },\n ],\n },\n },\n });\n }\n if (\n this.dashBoardAPI.mileage != \"0,0,0,0\" ||\n this.dashBoardAPI.mileageGoogle != \"0,0,0,0\" ||\n this.dashBoardAPI.mileageGPS != \"0,0,0,0\"\n ) {\n this.isCanvasbar1Display = true;\n var myChart2 = new Chart(\"canvasbar1\", {\n type: \"bar\",\n data: {\n labels: this.dashBoardAPI.monthsList,\n datasets: [\n {\n label: this.translate.instant(\"manual_mileage\"),\n data: this.dashBoardAPI.mileage,\n backgroundColor: \"rgb(9, 96, 148)\",\n fill: false,\n },\n {\n label: this.translate.instant(\"mileage_google\"),\n data: this.dashBoardAPI.mileageGoogle,\n backgroundColor: \"rgb(41, 174, 73)\",\n fill: false,\n },\n {\n label: this.translate.instant(\"mileage_gps\"),\n data: this.dashBoardAPI.mileageGPS,\n backgroundColor: \"rgb(161, 34, 94)\",\n fill: false,\n },\n ],\n },\n options: {\n legend: {\n display: false,\n },\n tooltips: {\n mode: \"x\",\n },\n responsive: true,\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n display: true,\n barThickness: 15,\n },\n ],\n yAxes: [\n {\n display: true,\n interval: 10,\n scaleLabel: {\n display: true,\n fontStyle: \"bold\",\n fontFamily: \"Open Sans\",\n labelString: this.translate.instant(\"expenses_count\"),\n },\n ticks: {\n beginAtZero: true,\n userCallback: function (label) {\n // when the floored value is the same as the value we have a whole number\n if (Math.floor(label) === label) {\n return label;\n }\n },\n autoSkip: true,\n maxTicksLimit: 5,\n },\n },\n ],\n },\n },\n });\n } else {\n this.isCanvasbar1Display = false;\n var myChart2 = new Chart(\"canvasbar1\", {\n options: {\n title: {\n display: true,\n text: this.translate.instant(\"no_data_available_text\"),\n lineHeight: 20,\n //position: 'bottom'\n },\n },\n });\n }\n });\n }\n totalMilesOfOrg: number;\n isCanvasbar1Display: boolean;\n isCanvasbar2Display: boolean;\n fnGetSoloActionableFMCountData() {\n let request = new DashboardDataRequest();\n request.loginId = this.loginId;\n request.userId = Number(this.userId);\n request.orgId = this.OrganisationId;\n request.requestCountType = DashboardCountEnum.Dashboard_Count;\n this.dashboard\n .SoloGetActionableRecordForDashboard(request)\n .subscribe((fmcount) => {\n this.actionableRecordForDashboard = fmcount.responseInfo;\n this.totalMilesOfOrg = fmcount.responseInfo.totalMilesOfOrg;\n this.dashboardExpenseStatusSummary =\n fmcount.responseInfo.dashboardExpenseStatusSummary;\n this.fmAsApproverSummary = fmcount.responseInfo.fmAsApproverSummary;\n this.approvalSummary = fmcount.responseInfo.approvalSummary;\n\n this.claims.pendingAllForPayment =\n this.approvalSummary.pendingCountFinancePayment;\n this.claims.pendingForFinanceApproval =\n this.approvalSummary.pendingCountFinanceApproval;\n this.claims.pendingExpensesForPayment =\n this.approvalSummary.pendingCountFinancePayment;\n this.claims.pendingCountNRFinanceApproval =\n this.approvalSummary.pendingCountNRFinanceApproval;\n this.claims.pendingCountFCFinanceApproval =\n this.approvalSummary.pendingCountFCFinanceApproval;\n this.claims.pendingCountPreApproval =\n this.approvalSummary.pendingPreApprovalsWithApprover;\n this.claims.pendingCountNRApprover = this.approvalSummary.nrCountForFM;\n this.claims.pendingCountFCApprover =\n this.approvalSummary.fcCountForApprover;\n this.claims.pendingExpenseCountApprover =\n this.approvalSummary.pendingExpensesWithApprover;\n this.claims.pendingAdvanceForFinanceApproval =\n this.approvalSummary.pendingCountAdvanceFinanceApproval;\n this.claims.pendingAdvancesForPayment =\n this.approvalSummary.pendingCountAdvancePay;\n this.claims.pendingAdvancesForApproval =\n this.approvalSummary.pendingCountAdvanceApproval;\n this.claims.pendingCountInvoiceApproval =\n this.approvalSummary.pendingCountInvoiceApproval;\n this.claims.pendingCountInvoiceFinanceApproval =\n this.approvalSummary.pendingCountInvoiceFinanceApproval;\n this.claims.pendingCountInvoicePay =\n this.approvalSummary.pendingCountInvoicePay;\n this.claimsService.updateClaims(this.claims);\n //this.totalcount = this.pendingCountExpensesWithFM + this.approverNotAssigned + this.approverNotInvited;\n // getSoloActionableFMOrphansRecord End here\n\n this.financeApprovalPendingCount =\n this.approvalSummary.pendingCountFinanceApproval +\n this.approvalSummary.pendingCountNRFinanceApproval +\n this.approvalSummary.pendingCountFCFinanceApproval +\n this.approvalSummary.pendingCountAdvanceFinanceApproval +\n this.approvalSummary.pendingCountInvoiceFinanceApproval;\n\n this.financePayPendingCount =\n this.approvalSummary.pendingCountFinancePayment +\n this.approvalSummary.pendingCountAdvancePay +\n this.approvalSummary.pendingCountInvoicePay;\n\n if (\n this.dashboardExpenseStatusSummary != null &&\n this.dashboardExpenseStatusSummary.length != 0\n ) {\n this.incompleteExpenses = this.dashboardExpenseStatusSummary.find(\n (x) => x.status == this.dasboardExpenseStatusEnum.Incomplete\n );\n this.pendingExpensesWithApprover =\n this.dashboardExpenseStatusSummary.find(\n (x) =>\n x.status == this.dasboardExpenseStatusEnum.PendingWithApprover\n );\n this.pendingExpensewithFA = this.dashboardExpenseStatusSummary.find(\n (x) =>\n x.status == this.dasboardExpenseStatusEnum.PendingFinanceApproval\n );\n this.passedForPayment = this.dashboardExpenseStatusSummary.find(\n (x) => x.status == this.dasboardExpenseStatusEnum.PassedForPayment\n );\n this.pendingPassedForPayment =\n this.dashboardExpenseStatusSummary.find(\n (x) =>\n x.status == this.dasboardExpenseStatusEnum.PendingPassforPayment\n );\n }\n setTimeout(() => {\n let isBasicMileagePurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.BasicMileageRates\n );\n if (\n !isBasicMileagePurchased &&\n (this.claims.RateType == 1 || this.claims.RateType == 0)\n ) {\n this.fnOpenFreeMilesAlertPanel();\n }\n }, 300);\n });\n }\n\n liabilityToolTip: string = this.translate.instant(\n \"liabilityReport_requires_two_step\"\n );\n\n auditTrailToolTip: string = this.translate.instant(\n \"audittrail_requires_two_step\"\n );\n\n advancesToolTip: string = this.translate.instant(\n \"advances_requires_two_step\"\n );\n\n getOrgPurchaseFunctionList() {\n this.OrgPurchaseFunctionRequest =\n new ApiRequest(\n \"PurchaseFunctionList\",\n 0,\n environment.requestId\n );\n this.OrgPurchaseFunctionRequest.requestInfo =\n new SoloCheckFuncPurchaseListRequest(\n this.claims.OrgId,\n this.claims.UserId\n );\n this.orgSubscriptionFunctionService\n .getOrgSubscriptionPurchaseFunction(this.OrgPurchaseFunctionRequest)\n .pipe(first())\n .subscribe((data) => {\n if (data.statusCode == 0) {\n this.allPurchaseFunction =\n data.responseInfo?.orgPaidFunctionList[0]?.paidFunctions;\n if (this.allPurchaseFunction.length > 0) {\n this.claims.IsPackagePurchasedOrTrial = true;\n this.isMileagePurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.SetupAdvancedMileage\n );\n this.isTwoStepPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.TwoStepApproval\n );\n if (this.isTwoStepPurchased) {\n this.liabilityToolTip = \"\";\n this.auditTrailToolTip = \"\";\n this.advancesToolTip = \"\";\n } else if (!this.isTwoStepPurchased) {\n this.liabilityToolTip = this.translate.instant(\n \"liabilityReport_requires_two_step\"\n );\n this.auditTrailToolTip = this.translate.instant(\n \"audittrail_requires_two_step\"\n );\n this.advancesToolTip = this.translate.instant(\n \"advances_requires_two_step\"\n );\n }\n\n this.isLiabilityReportPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.LiabilityReport\n );\n this.isAuditTrailPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.AuditTrail\n );\n this.isAdvancesPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.Advances\n );\n this.isAPAutomationPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.APAutomation\n );\n this.isCarbonFootprintPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.CarbonFootprint\n );\n this.isLeaveManagementPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.LeaveManagement\n );\n this.isApproversDeputyPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.AssignDeputyToApprovers\n );\n if (this.isApproversDeputyPurchased) {\n this.checkForPendingDeputies();\n }\n this.isAssignMileageRateToGradePurchased =\n this.checkOrgFunctionPurchase(\n this.functionPackageEnum.SetupAdvancedMileage\n );\n this.isAssignCategoryToGradePurchased =\n this.checkOrgFunctionPurchase(\n this.functionPackageEnum.assigncategoriestograde\n );\n this.isDailyCapPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.ExpenseCappingDaily\n );\n this.isMonthlyCapPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.ExpenseCappingMonthly\n );\n this.isYearlyCapPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.ExpenseCappingYearly\n );\n this.isAutoApprovalPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.AutoApproval\n );\n this.isCounterApproverPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.CounterApprover\n );\n this.isPerPersonPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.PerPersonLimit\n );\n this.isPerNightPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.PerNightLimit\n );\n this.nrfcConfigModel.isNonReimbursableFuelPurchased =\n this.checkOrgFunctionPurchase(\n this.functionPackageEnum.NonReimbursableFuel\n );\n this.nrfcConfigModel.isFuelCardPurchased =\n this.checkOrgFunctionPurchase(this.functionPackageEnum.FuelCard);\n this.isDuplicateCheckerPurchased = this.checkOrgFunctionPurchase(\n this.functionPackageEnum.DuplicateChecker\n );\n this.claims = this.claimsService.SetFunctionPackageClaims(\n this.allPurchaseFunction,\n this.claims,\n Page.Home\n );\n\n this.claimsService.updateClaims(this.claims);\n }\n }\n });\n }\n\n checkOrgFunctionPurchase(funId: number) {\n let purchaseResult = this.allPurchaseFunction.find(\n (it) => it.functionId == funId\n );\n if (purchaseResult != undefined) {\n return true;\n }\n return false;\n }\n\n getCartDetails(): any {\n this.getCartDetailsRequest = new ApiRequest(\n \"SoloGetCartDetails\",\n 1,\n \"111\"\n );\n this.getCartDetailsRequest.requestInfo = new GetCartDetailsRequest(\n this.claims.UserId,\n this.OrganisationId\n );\n\n this.organisationSettingService\n .getCartDetailsList(this.getCartDetailsRequest)\n .pipe(first())\n .subscribe(\n (data) => {\n if (data.responseInfo != null) {\n this.claims.CartCount = data.responseInfo.listCartDetails.length;\n this.claimsService.updateClaims(this.claims);\n this.cartList = data.responseInfo.listCartDetails;\n this.disableCartMileage = this.isFunctionInCart(23);\n this.disableCartCc = this.isFunctionInCart(14);\n this.disableCartExpenseCategory = this.isFunctionInCart(17);\n this.disableTwoStepApp = this.isFunctionInCart(18);\n this.disableLiabilityReportApp = this.isFunctionInCart(\n this.functionPackageEnum.LiabilityReport\n );\n if (this.disableLiabilityReportApp) {\n this.liabilityToolTip = \"\";\n }\n\n this.disableAuditTrailApp = this.isFunctionInCart(\n this.functionPackageEnum.AuditTrail\n );\n if (this.disableAuditTrailApp) {\n this.auditTrailToolTip = \"\";\n }\n } else {\n this.toastr.error(data.errorInfo[0].message);\n }\n },\n (error) => {\n this.toastr.error(error);\n }\n );\n }\n\n getCostCentresWithoutApprovers() {\n if (\n this.approvalRuleSetting != ApprovalRuleSetting.Manual &&\n this.isManageEmployeesAccess\n ) {\n if (this.claims.showCostCentresWithoutApproverCount) {\n this.costCentreService\n .GetCostCentreCountWithoutApprovers()\n .subscribe((result) => {\n this.costCentresWithoutApproverCount = 0;\n this.costCentresWithoutApproversMessage = \"\";\n if (\n result &&\n result.responseInfo &&\n result.responseInfo.length > 0\n ) {\n this.costCentresWithoutApproverCount = result.responseInfo.length;\n if (\n this.claims.ApprovalRuleSetting ==\n ApprovalRuleSetting.AutomaticD ||\n this.claims.ApprovalRuleSetting ==\n ApprovalRuleSetting.AutomaticE\n ) {\n this.costCentresWithoutApproversMessage = this.translate\n .instant(\"note_cc_without_approvers\")\n .replace(\"{0}\", this.costCentresWithoutApproverCount);\n } else {\n this.costCentresWithoutApproversMessage = this.translate\n .instant(\"note_cc_without2_approvers\")\n .replace(\"{0}\", this.costCentresWithoutApproverCount);\n }\n }\n\n this.claims.showCostCentresWithoutApproverCount = false;\n this.claimsService.updateClaims(this.claims);\n });\n }\n }\n }\n\n goToAssignCostCentreApprovers() {\n this.closeCostCentreAlertPanel();\n this.router.navigate([\"/orgsetting/manageemployee\"], {\n queryParams: { step: \"5\" },\n });\n }\n\n closeCostCentreAlertPanel() {\n this.costCentresWithoutApproverCount = 0;\n }\n\n isFunctionInCart(functionPackageId) {\n return this.cartList.some(\n (item) => item.functionPackageId == functionPackageId\n );\n }\n\n fnAddToCart() {\n if (this.dependentFunction.length > 0) {\n this.fnSaveCartDetails();\n this.saveDependentFunction();\n } else {\n this.fnSaveCartDetails();\n }\n }\n fnSaveCartDetails() {\n let request = new ApiRequest(\n \"SaveCartDetails\",\n environment.applicationVersion,\n environment.requestId\n );\n request.requestInfo = new CartDetailsRequest(\n parseInt(this.userId),\n this.OrganisationId,\n false,\n this.FunctionPackageId,\n this.functionPackageName\n );\n this.organisationSettingService\n .SaveCartDetails(request)\n .pipe(first())\n .subscribe(\n (data) => {\n if (data.statusCode == 0) {\n this.claims.CartCount += 1;\n this.claimsService.updateClaims(this.claims);\n this.router.navigate([\"/shoppingcartlist\"]);\n } else {\n this.toastr.error(data.errorInfo[0].message);\n }\n },\n (error) => {\n this.toastr.error(error);\n }\n );\n }\n\n routerNavigate() {\n let isFree = \"false\";\n let packagePath = this.packagePath.toString();\n let functionPackageName = this.functionPackageName.toString();\n let functionPackageId = this.FunctionPackageId.toString();\n let functionStatus = \"0\";\n this.router.navigate([\"/addtocart\"], {\n queryParams: {\n isFree: this.EncryptParameters(isFree),\n packagePath: this.EncryptParameters(packagePath),\n functionPackageName: this.EncryptParameters(functionPackageName),\n functionPackageId: this.EncryptParameters(functionPackageId),\n functionStatus: this.EncryptParameters(functionStatus),\n },\n });\n }\n EncryptParameters(encryptValue) {\n let rsaHelper = new RSAHelper();\n let encrypt = rsaHelper.Encrypt(encryptValue);\n return encrypt;\n }\n\n getMySubscriptionSettings() {\n let functionDetails = [];\n this.organisationSettingService\n .GetOrganisationSettingList()\n .subscribe((data) => {\n if (data.statusCode == 0) {\n data.responseInfo.functionCategoryDetail.forEach((x) =>\n x.functionPackageDetail.forEach((y) => {\n functionDetails.push(y);\n })\n );\n this.getDependentFunction(this.FunctionPackageId, functionDetails);\n }\n });\n }\n\n getDependentFunction(FunctionPackageId: number, functionDetailss: any[]) {\n this.dependentFunction = [];\n this.getOrgDependentFunctionListRequest =\n new ApiRequest(\n \"SoloGetOrgDependentFunctionList\",\n 1,\n \"111\"\n );\n\n this.getOrgDependentFunctionListRequest.requestInfo =\n new GetOrgDependentFunctionListRequest(\n FunctionPackageId.toString(),\n this.OrganisationId\n );\n this.organisationSettingService\n .getOrgDependentFunctionList(this.getOrgDependentFunctionListRequest)\n .pipe(first())\n .subscribe(\n (data) => {\n if (data.responseInfo != null) {\n data.responseInfo.orgDependentFunctionList.forEach((x) => {\n if (x.functionID == this.FunctionPackageId) {\n functionDetailss.forEach((items) => {\n if (items.functionPackageId == x.dependentFunctionID) {\n this.dependentFunction.push({\n functionPackageId: items.functionPackageId,\n functionPackageName: items.functionPackageName,\n functionPackageDescripition:\n items.functionPackageDescripition,\n dependentFunctionAmount: \"\",\n });\n }\n });\n }\n });\n } else {\n }\n },\n (error) => {\n }\n );\n }\n\n private saveDependentFunction() {\n this.saveCartDetailsRequest = new ApiRequest(\n \"SaveCartDetails\",\n 1,\n \"1111\"\n );\n this.dependentFunction.forEach((depend) => {\n this.saveCartDetailsRequest.requestInfo = new CartDetailsRequest(\n this.claims.UserId,\n this.OrganisationId,\n false,\n depend.functionPackageId,\n depend.functionPackageName\n );\n this.organisationSettingService\n .SaveCartDetails(this.saveCartDetailsRequest)\n .pipe(first())\n .subscribe(\n (data) => {\n if (data.statusCode == 0) {\n this.claims.CartCount += 1;\n this.claimsService.updateClaims(this.claims);\n }\n },\n () => { }\n );\n });\n }\n\n purchaseMileageFunction() {\n this.router.navigate([\"/orgsetting/mileagewizard\"]);\n }\n\n showTwoStepPopup() {\n if (!this.isTwoStepApprovalTurnOn) {\n return;\n }\n\n if (this.isTwoStepPurchased) {\n this.twoStepApprovalPopup = false;\n } else {\n this.twoStepApprovalPopup = true;\n this.FunctionPackageId = this.functionPackageEnum.TwoStepApproval;\n this.functionPackageName = this.translate.instant(\n \"label_two_step_approval\"\n );\n this.packagePath = \"twostepapproval\";\n\n this.liabilityReportPopupModel = new MarketingPopup(\n this.translate.instant(\"two_Step_Approval\"),\n this.translate.instant(\"two_step_header_message\"),\n this.translate.instant(\"dashboard_message_4\"),\n this.translate.instant(\"liabilityReport_two_step_approval\"),\n \"../../assets/svg-icons/two_step_workflow_icon.svg\",\n \"../../assets/images/pay_page.png\",\n \"\",\n this.functionPackageEnum.TwoStepApproval,\n this.functionPackageName,\n this.packagePath,\n 0,\n 0\n );\n\n this.getMySubscriptionSettings();\n }\n this.mileageMarketingPopup = false;\n this.creditCardPopup = false;\n this.categoryMarketingPopup = false;\n }\n\n closeMarketingPopup() {\n this.mileageMarketingPopup = false;\n this.creditCardPopup = false;\n this.categoryMarketingPopup = false;\n this.twoStepApprovalPopup = false;\n this.liabilityReportPopup = false;\n this.auditTrailPopup = false;\n this.advancesPopup = false;\n this.apAutomationPopup = false;\n this.cfpPopup = false;\n }\n\n showLiabilityReport() {\n //this.router.navigate([\"liabilityreport/summary\"]);\n if (this.isLiabilityReportPurchased) {\n this.liabilityReportPopup = false;\n localStorage.setItem(\"isCameFromDashboardLiability\", \"1\");\n this.router.navigate([\"liabilityreport/summary\"]);\n } else {\n //document.body.style.overflow = 'hidden';\n this.liabilityReportPopup = true;\n this.FunctionPackageId = this.functionPackageEnum.LiabilityReport;\n this.functionPackageName = \"Liability Report\";\n this.packagePath = \"liabilityreport/summary\";\n this.liabilityReportPopupModel = new MarketingPopup(\n this.translate.instant(\"liabilityReport_header\"),\n this.translate.instant(\"liabilityReport_this_report_shows_as_on_today\"),\n this.translate.instant(\n \"liabilityReport_this_function_can_be_purchased\"\n ),\n this.translate.instant(\"liabilityReport_two_step_approval\"),\n \"../../assets/images/liability.png\",\n \"../../assets/images/liability-report-2.png\",\n this.liabilityToolTip,\n this.functionPackageEnum.LiabilityReport,\n this.translate.instant(\"liabilityReport_header\"),\n \"liabilityreport/summary\",\n this.functionPackageEnum.TwoStepApproval,\n this.functionPackageEnum.TwoStepApproval\n );\n this.getMySubscriptionSettings();\n }\n this.mileageMarketingPopup = false;\n this.creditCardPopup = false;\n this.categoryMarketingPopup = false;\n }\n\n showLeaveManagementDashboard() {\n if (this.isLeaveManagementPurchased) {\n this.leaveManagementPopup = false;\n this.router.navigate([\"leavemanagement/dashboard\"]);\n } else {\n //document.body.style.overflow = 'hidden';\n this.leaveManagementPopup = true;\n this.FunctionPackageId = this.functionPackageEnum.LeaveManagement;\n this.functionPackageName = this.translate.instant(\"leave_management\");\n this.packagePath = \"leavemanagement/dashboard\";\n this.liabilityReportPopupModel = new MarketingPopup(\n this.translate.instant(\"leave_management\"),\n this.translate.instant(\"leave_management_header\"),\n this.translate.instant(\"leave_management_marketing\"),\n \"\",\n \"../../assets/images/Leave-management.png\",\n \"../../assets/images/leave_management_marketing.png\",\n \"\",\n this.functionPackageEnum.LeaveManagement,\n this.translate.instant(\"leave_management\"),\n \"leavemanagement/dashboard\",\n 0,\n 0\n );\n this.getMySubscriptionSettings();\n }\n this.mileageMarketingPopup = false;\n this.creditCardPopup = false;\n this.categoryMarketingPopup = false;\n }\n\n showCarbonFootprint() {\n if (this.isCarbonFootprintPurchased) {\n this.cfpPopup = false;\n this.router.navigate([\"dashboard/carbonFootprint\"]);\n } else {\n this.cfpPopup = true;\n this.FunctionPackageId = this.functionPackageEnum.CarbonFootprint;\n this.functionPackageName = this.translate.instant(\"carbon_footprint\");\n this.packagePath = \"carbonFPrint\";\n\n this.cfpMarketingPopupModel = new MarketingPopup(\n this.translate.instant(\"carbon_footprint\"),\n this.translate.instant(\"carbon_footprint_marketing_text\"),\n \"\",\n \"\",\n \"../../assets/svg-icons/Carbonfootprint.svg\",\n \"../../assets/images/CFP.png\",\n \"\",\n this.functionPackageEnum.CarbonFootprint,\n this.translate.instant(\"carbon_footprint\"),\n \"carbonFPrint\",\n 0,\n 0,\n this.translate.instant(\"carbon_footprint_function_header\"),\n [\n this.translate.instant(\"carbon_footprint_function_description_part1\"),\n this.translate.instant(\"carbon_footprint_function_description_part2\"),\n this.translate.instant(\"carbon_footprint_function_description_part3\"),\n ]\n );\n\n this.getMySubscriptionSettings();\n }\n this.mileageMarketingPopup = false;\n this.creditCardPopup = false;\n this.categoryMarketingPopup = false;\n }\n\n showAdvances() {\n if (this.isAdvancesPurchased) {\n this.advancesPopup = false;\n this.router.navigate([\"dashboard/advances\"]);\n } else {\n this.advancesPopup = true;\n this.FunctionPackageId = this.functionPackageEnum.Advances;\n this.functionPackageName = \"Advances\";\n this.packagePath = \"advances\";\n\n this.advancesMarketingPopupModel = new MarketingPopup(\n this.translate.instant(\"label_Advance\"),\n this.translate.instant(\"advance_marketing_text\"),\n this.translate.instant(\n \"liabilityReport_this_function_can_be_purchased\"\n ),\n this.translate.instant(\"liabilityReport_two_step_approval\"),\n \"../../assets/svg-icons/Advance-Marketing.svg\",\n \"../../assets/images/advances.png\",\n this.advancesToolTip,\n this.functionPackageEnum.Advances,\n this.translate.instant(\"audittrail_header\"),\n \"advances\",\n this.functionPackageEnum.TwoStepApproval,\n this.functionPackageEnum.TwoStepApproval\n );\n\n this.getMySubscriptionSettings();\n }\n this.mileageMarketingPopup = false;\n this.creditCardPopup = false;\n this.categoryMarketingPopup = false;\n }\n marketingPopupPanel: MarketingPopup;\n showAPAutomation() {\n if (this.isAPAutomationPurchased) {\n this.apAutomationPopup = false;\n this.router.navigate([\"/dashboard/vendors\"]);\n } else {\n this.apAutomationPopup = true;\n this.FunctionPackageId = this.functionPackageEnum.APAutomation;\n this.marketingPopupPanel = new MarketingPopup(\n this.translate.instant(\"label_ap_automation\"),\n this.translate.instant(\"label_ap_automation_text\"),\n this.translate.instant(\n \"liabilityReport_this_function_can_be_purchased\"\n ),\n this.translate.instant(\"liabilityReport_two_step_approval\"),\n \"../../assets/svg-icons/vendors_marketing.svg\",\n \"../../assets/images/vendor_example.png\",\n this.translate.instant(\"ap_automation_dependency_msg\"),\n FunctionPackageEnum.APAutomation,\n this.translate.instant(\"label_ap_automation\"),\n \"vendorSetup\",\n FunctionPackageEnum.TwoStepApproval,\n FunctionPackageEnum.TwoStepApproval\n );\n\n this.getMySubscriptionSettings();\n }\n this.mileageMarketingPopup = false;\n this.creditCardPopup = false;\n this.categoryMarketingPopup = false;\n }\n\n showAuditTrail() {\n if (this.isAuditTrailPurchased) {\n this.auditTrailPopup = false;\n this.router.navigate([\"audittrail\"]);\n } else {\n this.auditTrailPopup = true;\n this.FunctionPackageId = this.functionPackageEnum.AuditTrail;\n this.functionPackageName = \"Audit Trail\";\n this.packagePath = \"audittrail\";\n\n this.liabilityReportPopupModel = new MarketingPopup(\n this.translate.instant(\"audittrail_header\"),\n this.translate.instant(\"audittrail_query_and_expense\"),\n this.translate.instant(\n \"liabilityReport_this_function_can_be_purchased\"\n ),\n this.translate.instant(\"liabilityReport_two_step_approval\"),\n \"../../assets/svg-icons/audit_trail.svg\",\n \"../../assets/images/audit-trail.png\",\n this.auditTrailToolTip,\n this.functionPackageEnum.AuditTrail,\n this.translate.instant(\"audittrail_header\"),\n \"liabilityreport/summary\",\n this.functionPackageEnum.TwoStepApproval,\n this.functionPackageEnum.TwoStepApproval\n );\n\n this.getMySubscriptionSettings();\n }\n this.mileageMarketingPopup = false;\n this.creditCardPopup = false;\n this.categoryMarketingPopup = false;\n }\n\n closeLiabilityReport() {\n this.liabilityReportPopup = false;\n //document.body.style.overflow = 'auto';\n }\n closeAPAutomation() {\n this.apAutomationPopup = false;\n //document.body.style.overflow = 'auto';\n }\n closeAuditTrail() {\n this.auditTrailPopup = false;\n }\n\n closeLeaveManagement() {\n this.leaveManagementPopup = false;\n }\n\n changeUrl(path) {\n this.router.navigate([\"\" + path + \"\"]);\n }\n\n showOrphanspop(value) {\n this.openOrphansPopup = value;\n if (this.isDataLoadComplete) {\n this.showOrphanspopUp = value;\n }\n }\n\n closeOrphansPopup() {\n this.showOrphanspopUp = false;\n this.openOrphansPopup = false;\n }\n\n assignEmployee() {\n this.router.navigate([\"/orgsetting/manageemployee\"], {\n queryParams: { step: \"4\" },\n });\n }\n\n fnExportClick() {\n this.router.navigate([\"/export/expenseexport\"]);\n }\n\n showLiabilityReportPopup: boolean;\n showLiabilityReportPopupEvent() {\n this.showLiabilityReportPopup = true;\n }\n\n closeLiabilityReportPopupEvent() {\n this.showLiabilityReportPopup = false;\n }\n\n showAuditTrailPopupEvent(functionId) {\n this.showLargeImagePopup = true;\n switch (functionId) {\n case this.functionPackageEnum.TwoStepApproval:\n this.showLargImageForFunction =\n this.functionPackageEnum.TwoStepApproval;\n break;\n case this.functionPackageEnum.AuditTrail:\n this.showLargImageForFunction = this.functionPackageEnum.AuditTrail;\n break;\n }\n }\n\n closePopupEvent() {\n this.showLargeImagePopup = false;\n\n this.showLargImageForFunction = 0;\n }\n\n showPresetExportPanel: boolean = false;\n selectedPresetExportStatus: number;\n fnGetDashboardPresetData(currentStatus, count) {\n if (count == 0) {\n this.confirmDeactive();\n } else {\n this.selectedPresetExportStatus = currentStatus;\n this.showPresetExportPanel = true;\n }\n }\n\n closePresetExportPanel() {\n this.showPresetExportPanel = false;\n }\n milesOfOrg: any;\n displayAlertPanelModelForMiles: boolean;\n fnOpenFreeMilesAlertPanel() {\n let milesOfOrg = 0;\n if (Number(this.totalMilesOfOrg) >= 4000) {\n milesOfOrg = 4000;\n } else if (Number(this.totalMilesOfOrg) >= 3500) {\n milesOfOrg = 3500;\n } else if (Number(this.totalMilesOfOrg) >= 3000) {\n milesOfOrg = 3000;\n } else if (Number(this.totalMilesOfOrg) >= 2500) {\n milesOfOrg = 2500;\n } else if (Number(this.totalMilesOfOrg) >= 2000) {\n milesOfOrg = 2000;\n } else if (Number(this.totalMilesOfOrg) >= 1500) {\n milesOfOrg = 1500;\n } else if (Number(this.totalMilesOfOrg) >= 1000) {\n milesOfOrg = 1000;\n } else if (Number(this.totalMilesOfOrg) >= 500) {\n milesOfOrg = 500;\n }\n if (milesOfOrg && this.claims.RateType) {\n if (this.claims.displayAlertPanelModelForMiles == undefined) {\n this.claims.displayAlertPanelModelForMiles = true;\n this.claimsService.updateClaims(this.claims);\n }\n if (this.claims.displayAlertPanelModelForMiles) {\n this.displayAlertPanelModelForMiles = true;\n this.milesOfOrg = milesOfOrg;\n }\n } else if (!this.claims.RateType) {\n milesOfOrg = 4000;\n if (this.claims.displayAlertPanelModelForMiles == undefined) {\n this.claims.displayAlertPanelModelForMiles = true;\n this.claimsService.updateClaims(this.claims);\n }\n if (this.claims.displayAlertPanelModelForMiles) {\n this.displayAlertPanelModelForMiles = true;\n this.milesOfOrg = milesOfOrg;\n }\n }\n }\n\n alertPanelReceiver(event) {\n this.isAlertDisplay = false;\n this.alertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n }\n\n alertPanelReceiverForMiles(returnValue) {\n this.claims.displayAlertPanelModelForMiles = false;\n this.claimsService.updateClaims(this.claims);\n this.displayAlertPanelModelForMiles = false;\n // this.alertPanelModel = new AlertPanelModel(\n // false,\n // \"\",\n // [\"\"],\n // \"\",\n // \"\",\n // true,\n // this.translate.instant(\"please_review_or_confirm\")\n // );\n if (returnValue) {\n let url = \"orgsetting/mileagewizard\";\n this.router.navigate([url], {\n queryParams: {\n step: \"1\",\n },\n });\n }\n }\n\n confirmDeactive() {\n this.isAlertDisplay = true;\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [this.translate.instant(\"no_data_to_view\")],\n \"\",\n this.translate.instant(\"oK_text\"),\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n }\n\n fnDisplayMarketingPopUp(FunctionId) {\n switch (FunctionId) {\n case this.functionPackageEnum.NonReimbursableFuel:\n if (!this.nrfcConfigModel.isNonReimbursableFuelPurchased) {\n this.nrfcConfigModel.secondaryFMPopupModel = new MarketingPopup(\n this.translate.instant(\"non_reimbursable_fuel\"),\n this.translate.instant(\"markettingpopup_nr_text2\"),\n this.translate.instant(\"markettingpopup_nr_text3\"),\n null,\n \"../../assets/svg-icons/NR_Fuel.svg\",\n \"../../assets/images/nr_fc_example.png\",\n this.translate.instant(\"non_reimbursable_dependency_msg\"),\n FunctionPackageEnum.NonReimbursableFuel,\n this.translate.instant(\"non_reimbursable_fuel\"),\n \"nrfc\",\n FunctionPackageEnum.SetupAdvancedMileage,\n FunctionPackageEnum.SetupTaxRate\n );\n this.nrfcConfigModel.isMarketingPopUpDisplay = true;\n } else {\n this.router.navigate([\"dashboard/nrDashboard\"]);\n }\n break;\n case this.functionPackageEnum.FuelCard:\n if (!this.nrfcConfigModel.isFuelCardPurchased) {\n this.nrfcConfigModel.secondaryFMPopupModel = new MarketingPopup(\n this.translate.instant(\"fuel_card\"),\n this.translate.instant(\"markettingpopup_fc_text2\"),\n this.translate.instant(\"markettingpopup_fc_text3\"),\n null,\n \"../../assets/svg-icons/Fuel_card.svg\",\n \"../../assets/images/nr_fc_example.png\",\n this.translate.instant(\"fuel_card_dependency_msg\"),\n FunctionPackageEnum.FuelCard,\n this.translate.instant(\"fuel_card\"),\n \"nrfc\",\n FunctionPackageEnum.SetupAdvancedMileage,\n 0\n );\n this.nrfcConfigModel.isMarketingPopUpDisplay = true;\n } else {\n this.router.navigate([\"orgsetting/fcdashboard\"]);\n }\n break;\n default:\n break;\n }\n }\n\n fnpolicyDashboardNavigation() {\n this.router.navigate([\"dashboard/policydashboarddetails\"]);\n }\n closeSecondaryFMPopup() {\n this.nrfcConfigModel.isMarketingPopUpDisplay = false;\n }\n\n checkForPendingDeputies() {\n if (!this.isApproverDeputyAccess) return;\n\n this.dashboard.getPendingDeputiesCount().subscribe((res) => {\n if (res.responseInfo > 0) {\n if (this.claims.ShowPendingDeputyPanel == undefined) {\n this.claims.ShowPendingDeputyPanel = true;\n this.claimsService.updateClaims(this.claims);\n }\n if (this.claims.ShowPendingDeputyPanel) {\n this.noOfApproversDoNotHaveDeputies = res.responseInfo;\n this.showPendingDeputiesPopup = true;\n }\n } else {\n this.showPendingDeputiesPopup = false;\n }\n });\n }\n\n closePendingDeputiesPopup() {\n this.claims.ShowPendingDeputyPanel = false;\n this.claimsService.updateClaims(this.claims);\n this.showPendingDeputiesPopup = false;\n }\n\n navigateToDeputiesToApprover() {\n this.claims.ShowPendingDeputyPanel = false;\n this.claimsService.updateClaims(this.claims);\n this.router.navigate([\"outofoffice/approversdeputy\"]);\n }\n\n // checkForDOCStatus()\n // {\n // if(this.claims.isDocRequired)\n // {\n // this.fnShowDutyofCareRequirementPopup(this.claims.docStatus);\n // }\n // }\n\n checkForPendingEmployeeWithGrade() {\n this.dashboard.getPendingEmployeeWithGradeCount().subscribe((res) => {\n if (res.responseInfo > 0) {\n if (\n this.isDailyCapPurchased ||\n this.isMonthlyCapPurchased ||\n this.isYearlyCapPurchased ||\n this.isAutoApprovalPurchased ||\n this.isPerNightPurchased ||\n this.isPerPersonPurchased ||\n this.isAssignCategoryToGradePurchased\n ) {\n if (this.claims.ShowPendingEmployeeWithGradePanel == undefined) {\n this.claims.ShowPendingEmployeeWithGradePanel = true;\n this.claimsService.updateClaims(this.claims);\n }\n if (this.claims.ShowPendingEmployeeWithGradePanel) {\n this.noOfEmployeeDoNotHaveGrade = res.responseInfo;\n this.showPendingEmployeeWithGradePopup = true;\n }\n } else {\n this.showPendingEmployeeWithGradePopup = false;\n }\n } else {\n this.showPendingEmployeeWithGradePopup = false;\n }\n });\n }\n\n closePendingEmployeeWithGrade() {\n this.claims.ShowPendingEmployeeWithGradePanel = false;\n this.claimsService.updateClaims(this.claims);\n this.showPendingEmployeeWithGradePopup = false;\n }\n showAssignClaimantToGradePopup: boolean;\n navigateToAssignGradesToClaimant() {\n this.claims.ShowPendingEmployeeWithGradePanel = false;\n this.claimsService.updateClaims(this.claims);\n this.showAssignClaimantToGradePopup = true;\n }\n closeAssignClaimanttogradePopup() {\n\n this.showAssignClaimantToGradePopup = false;\n this.claims.ShowPendingEmployeeWithGradePanel = false;\n this.claimsService.updateClaims(this.claims);\n this.showPendingEmployeeWithGradePopup = false;\n }\n\n showCreditCardMarketingPopup() {\n\n if (!this.claims.IsCreditCardPackageSubscribed) {\n let request = new ApiRequest(\"GetCCDashboard\", environment.applicationVersion, environment.requestId);\n let requestInfo = new CCDashboardRequest(this.claims.OrgId);\n request.requestInfo = requestInfo;\n this.ngxService.start();\n this.creditCardService.GetCCDashboard(request)\n .subscribe((response: IApiresponse) => {\n this.ngxService.stop();\n if (response?.responseInfo) {\n if (response.responseInfo.pendingTransactionDetails?.transactionCount > 0) {\n this.router.navigate([\"dashboard/carddashboard\"]);\n }\n else {\n this.creditCardPopup = true;\n this.creditCardMarketingPopupModel = new MarketingPopup(\n this.translate.instant(\"dashboard_credit_card_setup\"),\n this.translate.instant(\"credit_card_marketing_title\"),\n this.translate.instant(\"credit_card_marketing_description\"),\n null,\n \"../../assets/svg-icons/CreditCardMarketing.svg\",\n \"../../assets/images/CreditCardMarketingZoomImage.png\",\n \"\",\n FunctionPackageEnum.SetupCreditCard,\n this.translate.instant(\"dashboard_credit_card_setup\"),\n \"orgsetting/ccsetup\",\n 0,\n 0\n );\n }\n\n }\n });\n }\n\n if (this.claims.IsCreditCardPackageSubscribed) {\n this.creditCardPopup == false;\n this.router.navigate([\"dashboard/carddashboard\"]);\n } \n this.categoryMarketingPopup = false;\n this.mileageMarketingPopup = false;\n }\n\n showManageCategoryMarketingPopup() {\n if (this.claims.IsExpenseCategoryPackagePurchasedOrTrial) {\n this.categoryMarketingPopup == false;\n this.router.navigate([\"dashboard/topspendors\"]);\n } else {\n this.categoryMarketingPopup = true;\n var descriptionList = this.translate\n .instant(\"expense_category_descriptionList\")\n ?.split(\",\");\n this.manageCategoryMarketingPopupModel = new MarketingPopup(\n this.translate.instant(\"expense_Category_Management\"),\n this.translate.instant(\"expense_category_popup_text\"),\n \"\",\n null,\n \"../../assets/images/ExpenseCategoryManagementMarketing.png\",\n \"../../assets/images/CategoriesMarketingZoomImage.png\",\n \"\",\n FunctionPackageEnum.ExpenseCategoryManagement,\n this.translate.instant(\"expense_Category_Management\"),\n \"orgsetting/categorySetup\",\n 0,\n 0,\n this.translate.instant(\"expense_category_descriptionListHeader\"),\n descriptionList,\n this.translate.instant(\"expense_category_descriptionListFooter\")\n );\n }\n this.mileageMarketingPopup = false;\n this.creditCardPopup = false;\n }\n\n showMileageMarketingPopup(value: number) {\n if (this.isMileagePurchased) {\n this.mileageMarketingPopup = false;\n if (value == 1) this.router.navigate([\"dashboard/vehicleSummary\"]);\n else if (value == 2) this.router.navigate([\"dashboard/mileageanalysis\"]);\n } else {\n this.mileageMarketingPopup = true;\n var zoomImage = \"\";\n if (value == 1)\n zoomImage = \"../../assets/images/MileageMarketingZoomImage2.png\";\n else zoomImage = \"../../assets/images/MileageMarketingZoomImage1.png\";\n this.mileageMarketingPopupModel = new MarketingPopup(\n this.translate.instant(\"setup_advanced_mileage\"),\n this.translate.instant(\"mileage_marketing_title\"),\n this.translate.instant(\"mileage_marketing_description\"),\n null,\n \"../../assets/svg-icons/MileageRatesMarketing.svg\",\n zoomImage,\n \"\",\n FunctionPackageEnum.SetupAdvancedMileage,\n this.translate.instant(\"setup_advanced_mileage\"),\n \"orgsetting/mileagewizard\",\n 0,\n 0\n );\n }\n\n this.creditCardPopup = false;\n this.categoryMarketingPopup = false;\n }\n\n fnGetCostCentresList() {\n let request = new ApiRequest(\n \"GetAllEmployees\",\n environment.applicationVersion,\n environment.requestId\n );\n let requestInfo = new GetAllEmployeesRequest(this.claims.OrgId);\n request.requestInfo = requestInfo;\n\n this.manageEmpService\n .GetAllCostCentresAndEmployees(request, false)\n .subscribe((response: any) => {\n if (response && response.costCentreList && response.employeesList) {\n const costCentresList: any = response.costCentreList;\n\n const approversList = response.employeesList.filter(\n (e) =>\n (parseInt(e.employeeRole) == 2 ||\n parseInt(e.employeeRole) == 3) &&\n (e.status == EmployeeStatusEnum.NotInvited ||\n e.status == EmployeeStatusEnum.Pending)\n );\n\n this.fmAsApproverData = {\n costCentresList: costCentresList,\n approversList: approversList,\n approvalRuleSetting: this.approvalRuleSetting,\n };\n\n this.isDataLoadComplete = true;\n if (this.openOrphansPopup) {\n setTimeout(() => {\n this.showOrphanspopUp = true;\n }, 100);\n }\n }\n });\n }\n\n // Recommendation Section\n\n showRecommendationPanel: boolean = false;\n currentRecommModel: IRecommendation;\n SnoozedRecomm: IRecommendation[];\n\n getAllRecommendation() {\n if (this.claims.showRecommendationPopup == undefined) {\n this.claims.showRecommendationPopup = true;\n this.claimsService.updateClaims(this.claims);\n }\n if (this.claims.showRecommendationPopup) {\n this.recommService.getAllRecommendation().subscribe((res) => {\n this.allRecomm = res.responseInfo;\n\n if (!this.currentRecommModel) this.applicableRecommendation();\n });\n }\n }\n\n applicableRecommendation() {\n if (this.allRecomm) {\n this.allRecomm.forEach((x) => {\n this.currentRecommModel = x;\n this.getOrgRecommendation(x);\n });\n }\n }\n\n getOrgRecommendation(currentRecomm: IRecommendation) {\n this.recommService\n .getOrgRecommendation(this.claims.OrgId, currentRecomm.recommendationId)\n .subscribe((res) => {\n this.orgRecomm = res.responseInfo;\n if (this.orgRecomm.length > 0) {\n this.showRecommendationPanel = true;\n } else {\n this.claims.showRecommendationPopup = false;\n this.claimsService.updateClaims(this.claims);\n localStorage.setItem(\"showRecommendationPopup\", \"false\");\n }\n });\n }\n\n fnCloseStripPaymentFailedPanel(isClose: boolean) {\n if (isClose) {\n this.showStripPaymentFailedPanel = false;\n this.claimsService.updateClaims(this.claims);\n }\n }\n goProducts() {\n this.router.navigate([\"/orgsetting/mileagewizard\"], {\n queryParams: { step: \"4\", assignVehicle: \"1\" },\n });\n }\n fnFuelCardComingSoonAlert() {\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"alert_info\"),\n [this.translate.instant(\"this_feature_is_coming_soon\")],\n \"\",\n this.translate.instant(\"uk_mileage_btn_ok\"),\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n }\n\n fnShowCardDashboard() {\n localStorage.setItem(\n \"ShowPendingCCPanel\",\n CCPendingTransactionsFilterEnum.Dismissed.toString()\n );\n this.router.navigate([\"dashboard/carddashboard\"]);\n }\n fnActionBackGroundClass() {\n if (\n (this.isDataLoadComplete &&\n this.fmAsApproverSummary &&\n this.fmAsApproverSummary.length > 0) ||\n (this.isFinanceApprovalAccess && this.financeApprovalPendingCount) ||\n (this.isPayAccess && this.financePayPendingCount) ||\n (this.isCardAccess && this.approvalSummary.dismissedExpensesCount > 0) ||\n (this.isAdvancedMileageAccess &&\n this.isMileagePurchased &&\n this.approvalSummary.vehicleApprovalCount > 0) ||\n (this.isDutyofCareAccess &&\n this.approvalSummary.pendingDutyofCareApprovalCount > 0) ||\n (this.isVendorAccess && this.approvalSummary.pendingKYCApprovalCount > 0)\n ) {\n return \"items-for-approval\";\n }\n }\n\n ngAfterViewInit(): void { }\n\n onCloseFoundersNote() {\n if (environment.AppUrl.includes(\"apps.expenseondemand.com\")) {\n const gtmTag = {\n event: \"OnboardingCompleted Event\",\n data:\n \"User \" +\n this.claims.LoginId +\n \" has completed the onboarding process.\",\n };\n this.gtmService.pushTag(gtmTag);\n }\n\n this.claims.IsOnboardingCompleted = true;\n this.claims.IsGetStartedPopup = true;\n this.claimsService.updateClaims(this.claims);\n this.IsOnboardingCompleted = true;\n this.fnShowGetStartedPopup();\n }\n\n fnShowSetupSkipPayStepPanel() {\n this.setupSetupSkipPayStepPanelInputmodel =\n this.actionableRecordForDashboard;\n this.showSetupSkipPayStepPanel = true;\n }\n\n fnCloseSetupSkipPayStepPanel() {\n this.showSetupSkipPayStepPanel = false;\n this.setupSetupSkipPayStepPanelInputmodel = null;\n }\n\n fnSubmitSetupSkipPayStepPanel() {\n this.showSetupSkipPayStepPanel = false;\n this.setupSetupSkipPayStepPanelInputmodel = null;\n this.fnGetSoloActionableFMCountData();\n }\n\n basicFunctionTrialDays: number;\n fnGetOrgBasicFunctionSubscriptionTrialDetails() {\n this.orgBasicFunctionSubscriptionService\n .GetOrgBasicFunctionSubscriptionTrialDetails(this.claims.OrgId)\n .subscribe((res: any) => {\n if (res.responseInfo != null) {\n this.basicFunctionTrialDays = res.responseInfo.basicFunctionTrialDays;\n }\n });\n }\n\n fnShowGetStartedPopup() {\n if (this.claims.IsGetStartedPopup) {\n const confirmationModel = Swal.mixin({\n customClass: {\n confirmButton: \"btn eod-btn-success height-38px \",\n cancelButton: \"btn eod-btn-outline-primary height-38px mr-2\",\n },\n buttonsStyling: false,\n });\n\n let footerNote = `

\n ${this.translate.instant(\"start_trial_footer_note1\")} \n ${this.basicFunctionTrialDays}${this.translate.instant(\n \"start_trial_footer_note2\"\n )}

`;\n\n confirmationModel\n .fire({\n //title: this.translate.instant(\"explore_app_title\"),\n //imageUrl: 'assets/svg-icons/get-started-popup.svg',\n //imageWidth: '14em',\n html: `\n
\n \n
Explore the app or set it up on your own.
\n
`,\n width: 600,\n heightAuto: true,\n padding: \"1em 0em\",\n showCancelButton: true,\n allowOutsideClick: false,\n confirmButtonText: this.translate.instant(\"get_started\"),\n cancelButtonText: this.translate.instant(\"label_explore\"),\n reverseButtons: true,\n footer: footerNote,\n })\n .then((result) => {\n if (result.value && this.claims.BandId > 0) {\n this.router.navigate([\"/essential-pack\"]);\n } else {\n localStorage.setItem(\"fromExploreAppEssentialPack\", \"1\");\n this.fnShowBasicFunctionExploreAlertPanel();\n }\n this.claims.IsGetStartedPopup = false;\n this.claimsService.updateClaims(this.claims);\n });\n }\n }\n\n fnShowBasicFunctionExploreAlertPanel() {\n this.showBasicFunctionExploreAlertPanel = true;\n }\n\n fnCloseBasicFunctionExploreAlertPanel(isClose: boolean) {\n this.showBasicFunctionExploreAlertPanel = false;\n if (isClose) {\n this.router.navigate([\"/settings\"]);\n } else {\n this.router.navigate([\"/essential-pack\"]);\n }\n }\n\n onCloseFeedbackPanel() {\n this.isFeedbackPanelActive = false;\n this.feedbackPanelType = 0;\n\n if (!this.claims.IsOnboardingCompleted) {\n this.claims.IsOnboardingCompleted = true;\n this.claimsService.updateClaims(this.claims);\n document.getElementById(\"openModalButton\").click();\n }\n }\n\n runImportCCAtSpecificTimeOfDay() {\n window.setInterval(function () {\n var date = new Date();\n if (date.getHours() === 5 && date.getMinutes() === 0) {\n this.importStatementNow();\n }\n }, 60000);\n }\n\n storageData: StorageData = new StorageData();\n reviewImportsResponse: any = {};\n\n importStatementNow() {\n this.accountingIntegrationService\n .GetXeroBankTransactionsToImportCompanyId(this.claims.OrgId)\n .subscribe((res: IApiresponse) => {\n this.creditCardService\n .GetCardImportTemplateDetail(this.claims.OrgId, 90)\n .subscribe((response) => {\n if (response.statusCode == 0 && response.responseInfo) {\n let ccImportModel = new CcImportModel();\n\n let ccTemplate = response.responseInfo;\n\n //Handling for 1st time import\n if (ccTemplate.importTemplateType) {\n ccImportModel.isTemplateModified = false;\n } else {\n ccTemplate.importTemplateType =\n CcImportTemplateTypeEnum.MultipleUser;\n ccImportModel.isTemplateModified = true;\n }\n\n ccTemplate.expenseDateCol = 1;\n ccTemplate.cardNumberCol = 2;\n ccTemplate.amountCol = 3;\n ccTemplate.currencyCol = 4;\n ccTemplate.exchangeRateCol = 5;\n ccTemplate.localCurrencyAmountCol = 6;\n ccTemplate.supplierCol = 7;\n ccTemplate.notes1Col = 9;\n ccTemplate.notes2Col = 10;\n ccTemplate.referenceNumberCol = 13;\n\n ccImportModel.templateDetails = ccTemplate;\n this.storageData.cardImportTemplateHeaderConfiguration = {\n ...ccImportModel,\n };\n this.storageData.cardImportTemplateHeaderConfiguration.statementDate =\n new Date();\n this.storageData.cardImportTemplateHeaderConfiguration.cardOrganisationId = 90;\n this.universalImporterService.fnSaveDataToLocalStorage(\n this.storageData\n );\n this.storageData.importTemplatFileName = \"Card Transactions\";\n this.storageData.importedTemplateData = res.responseInfo;\n this.storageData.templateData = res.responseInfo;\n this.storageData.gridData = res.responseInfo;\n this.storageData.gridData = this.storageData.gridData.map(\n (element, index) => {\n element.uniqueRowId = index + 1;\n return element;\n }\n );\n\n this.storageData.importTemplateExtension = \"csv\";\n this.storageData.importStep = 3;\n localStorage.setItem(\"isCreditCardImportFromXero\", \"1\");\n localStorage.setItem(\n \"isCameFromCreditCardImport\" + this.claims.OrgId,\n \"1\"\n );\n this.storageData.importTemplate =\n UniversalImportTemplateEnum.ImportCreditCardStatement;\n this.universalImporterService.fnSaveDataToLocalStorage(\n this.storageData\n );\n\n var reviewUploadedCardStatementRequestData =\n new CardReviewUploadedTransactionsRequest(\n this.claims.OrgId,\n this.storageData.cardImportTemplateHeaderConfiguration?.templateDetails,\n this.storageData.gridData\n );\n let reviewUploadedCardStatementRequest =\n new ApiRequest(\n \"ReviewUploadedCardStatement\",\n 1.0,\n \"111\"\n );\n\n reviewUploadedCardStatementRequest.requestInfo =\n reviewUploadedCardStatementRequestData;\n\n this.creditCardService\n .ReviewUploadedCardStatementNew(\n reviewUploadedCardStatementRequest\n )\n .subscribe((response: IApiresponse) => {\n this.reviewImportsResponse = response.responseInfo;\n\n for (\n let index = 0;\n index <\n this.reviewImportsResponse.processedImportDataList.length;\n index++\n ) {\n this.reviewImportsResponse.processedImportDataList[\n index\n ].amount =\n this.reviewImportsResponse.processedImportDataList[\n index\n ].localCurrencyAmount;\n }\n\n this.reviewImportsResponse.statementDate = new Date(\n UTCDateTime.getUTCDate(\n new Date(\n this.storageData?.cardImportTemplateHeaderConfiguration?.statementDate\n )\n )\n ).toISOString();\n this.reviewImportsResponse.organisationId = this.claims.OrgId;\n this.reviewImportsResponse.importedBy = -1; // this.claims.UserId;\n this.reviewImportsResponse.fmName =\n this.claims.FinanceManager;\n this.reviewImportsResponse.cardOrganisationId =\n this.storageData.cardImportTemplateHeaderConfiguration.cardOrganisationId;\n let saveReviewedImportsRequest = new ApiRequest(\n \"SoloSaveReviewedImports\",\n 1.0,\n \"111\"\n );\n\n saveReviewedImportsRequest.requestInfo =\n this.reviewImportsResponse;\n\n this.creditCardService\n .BulkCreditCardExpensesImport(saveReviewedImportsRequest)\n .subscribe((jobId) => {\n if (jobId) {\n localStorage.removeItem(\"isCreditCardImportFromXero\");\n }\n });\n });\n }\n });\n });\n }\n}\n","
\n
\n
\n
\n
\n

{{ \"special_cat_wizard_text45\" | translate }}

\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n","import { Component, EventEmitter, Output, OnInit, Input } from '@angular/core';\nimport { OrgSubCategoryMapping } from 'src/app/_models/manage-category/manage-category-list-response';\nimport { PolicyViolationInputModel } from 'src/app/_models/claimant-on-web/claimant-on-web';\nimport { PolicyViolation } from 'src/app/_models/twostepapproval/claimant-expense-detail';\n\n@Component({\n selector: 'app-multiple-tab-policy-violation-screen',\n templateUrl: './multiple-tab-policy-violation-screen.component.html'\n})\nexport class MultipleTabPolicyViolationScreenComponent implements OnInit{\n\n @Input() expenseModelInfo : any;\n @Output() closePanelEvent = new EventEmitter();\n @Input() panelData:PolicyViolationInputModel;\n @Input() orgSubCategoryMappings:OrgSubCategoryMapping[];\n @Input() selectedSubCategoryItem :OrgSubCategoryMapping;\n @Input() PolicyOnMainCategory :PolicyViolation;\n @Input() isSidePanel:boolean;\n @Input() isReceiptNumberSettingsEnabled:boolean;\n justificationNotesOnMainCategory:string;\n selectedPolicySubCategoryItem: PolicyViolation; //PolicyViolation\n isShowPolicyViolationPanel: boolean = false;\n isSaveHide : boolean = false;\n isDisableSave: boolean = true;\n specialCategoryName:string;\n isPolicyOnMainCategory:boolean;\n constructor(){\n }\n\n ngOnInit(){\n this.specialCategoryName = this.panelData.expenseCategoryName;\n for (let index = 0; index < this.orgSubCategoryMappings.length; index++) {\n this.orgSubCategoryMappings[index].sequence = index + 1;\n }\n if(this.panelData != undefined && this.panelData != null)\n {\n this.isSaveHide = this.panelData.disableJustificationNotes;\n }\n if(this.PolicyOnMainCategory)\n {\n this.isPolicyOnMainCategory = true;\n this.selectedPolicySubCategoryItem = this.PolicyOnMainCategory;\n this.panelData.justificationNotes = this.expenseModelInfo.justificationNotes;\n }\n else if(this.orgSubCategoryMappings && this.orgSubCategoryMappings.length > 0)\n {\n this.panelData.expenseCategoryName = this.orgSubCategoryMappings[0].expenseCategoryName;\n this.panelData.justificationNotes = this.orgSubCategoryMappings[0].justificationNotes;\n this.selectedSubCategoryItem = this.orgSubCategoryMappings[0];\n this.selectedPolicySubCategoryItem = this.orgSubCategoryMappings[0].policyViolation;\n }\n else if(this.expenseModelInfo.potentialFraud)\n {\n this.isPolicyOnMainCategory = true;\n this.selectedPolicySubCategoryItem = this.PolicyOnMainCategory;\n this.panelData.justificationNotes = this.expenseModelInfo.justificationNotes;\n }\n \n this.isShowPolicyViolationPanel = true;\n }\n\nfnClosePanel()\n{\n this.closePanelEvent.emit(false);\n}\nischangeJustifactionNotes(event)\n{\n this.isDisableSave = false;\n if(this.isPolicyOnMainCategory)\n {\n this.justificationNotesOnMainCategory = event;\n }\n}\nfnSaveJustification()\n{\n if(this.isPolicyOnMainCategory)\n {\n this.expenseModelInfo.justificationNotes = this.justificationNotesOnMainCategory;\n if(this.orgSubCategoryMappings && this.orgSubCategoryMappings.length > 0)\n {\n this.isShowPolicyViolationPanel = false;\n this.isPolicyOnMainCategory = false;\n setTimeout(() => {\n this.panelData.expenseCategoryName = this.orgSubCategoryMappings[0].expenseCategoryName;\n this.panelData.justificationNotes = this.orgSubCategoryMappings[0].justificationNotes;\n this.selectedSubCategoryItem = this.orgSubCategoryMappings[0];\n this.selectedPolicySubCategoryItem = this.orgSubCategoryMappings[0].policyViolation;\n this.isShowPolicyViolationPanel = true;\n }, 100);\n }\n else\n {\n this.closePanelEvent.emit(this.expenseModelInfo);\n }\n }\n else\n {\n let selectedCategory = this.orgSubCategoryMappings\n .find(a=>a.orgExpenseCategoryId == this.selectedSubCategoryItem.orgExpenseCategoryId);\n if(selectedCategory)\n {\n selectedCategory.justificationNotes = this.panelData.justificationNotes;\n }\n if(this.orgSubCategoryMappings.length > 1 && selectedCategory.sequence < this.orgSubCategoryMappings.length)\n {\n this.selectedSubCategoryItem = this.orgSubCategoryMappings[selectedCategory.sequence];\n this.fnUpdateSubcategoryPolicyViolation(this.selectedSubCategoryItem)\n }\n else\n {\n if(this.justificationNotesOnMainCategory)\n {\n this.panelData.justificationNotes = this.justificationNotesOnMainCategory;\n }\n this.closePanelEvent.emit(this.expenseModelInfo);\n }\n }\n \n\n \n}\nfnPolicyOnMainCategory(){\n this.isPolicyOnMainCategory = true;\n this.isShowPolicyViolationPanel = false;\n setTimeout(() => {\n this.selectedPolicySubCategoryItem = this.PolicyOnMainCategory;\n if(this.panelData && this.panelData.disableJustificationNotes)\n {\n this.panelData.justificationNotes = this.expenseModelInfo.justificationNotes;\n }\n else\n {\n if(this.justificationNotesOnMainCategory)\n {\n this.panelData.justificationNotes = this.justificationNotesOnMainCategory;\n }\n else\n {\n this.panelData.justificationNotes = this.expenseModelInfo.justificationNotes;\n }\n \n }\n \n this.isShowPolicyViolationPanel = true;\n this.selectedSubCategoryItem = null;\n }, 100);\n \n}\nfnUpdateSubcategoryPolicyViolation(selectedsubcategoryitem){\n this.isPolicyOnMainCategory = false;\n this.isShowPolicyViolationPanel = false;\n setTimeout(() => {\n this.selectedPolicySubCategoryItem = selectedsubcategoryitem.policyViolation;\n this.selectedSubCategoryItem = selectedsubcategoryitem;\n this.panelData.expenseCategoryName = selectedsubcategoryitem.expenseCategoryName;\n this.panelData.justificationNotes = selectedsubcategoryitem.justificationNotes;\n this.isShowPolicyViolationPanel = true;\n }, 100);\n \n}\n}\n","
\n
\n
\n
\n

{{ panelHeading }}

\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n {{ 'label_email' | translate }}: {{selectedApproverEmail}}\n \n {{ 'label_cost_centre' | translate }}:\n {{formateCostCentreName()}} \n \n
\n
\n {{ 'label_approver_status' | translate }}: \n {{ selectedApproverStatus }}\n \n
\n
\n
\n \n \n \n
\n
\n {{ anyTextForDisplay }}\n
\n
\n
\n
\n
\n
\n
\n {{ selectedItemsText }}:\n
\n\n \n \n \n \n
\n
\n
\n
\n
\n
\n\n\n\n","import { OnInit, Component, ViewChild, Output, EventEmitter, Input, OnChanges } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ColDef } from \"ag-grid-community\";\nimport { GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { EmployeeStatusEnum } from \"src/app/_models/common/manage-emp-enum.enum\";\nimport { AddUpdateBulkEmployeeRequestDto, AddUpdateEmployeeRequestDto, ApiRequest, GetAllEmployeesRequest, IGetAllEmployeesRequest, LogObjectActionTemplateEnum } from \"src/app/_models\";\nimport { environment } from \"src/environments/environment\";\nimport { CostCentreService, ManageempService } from \"src/app/_services\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { LoggingPanelModel } from \"../../../_models/common/LoggingPanelModel\";\nimport { LoggingPanelService } from \"../../../_services/logging-panel/logging-panel.service\";\nimport { AssignCostCentreApprover, SaveCostCentreApproverRequest } from \"src/app/_models/costCentre/costCentre\";\nimport { first } from \"rxjs/operators\";\n\nenum ItemType {\n Claimants = 1,\n CostCentre = 2\n}\n\n@Component({\n selector: \"assign-approver-panel\",\n templateUrl: \"./assign-approver-panel.component.html\"\n})\nexport class AssignApproverPanelComponent extends BaseComponent implements OnInit, OnChanges {\n\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n\n @Output() uncheckEvent = new EventEmitter();\n @Output() closePanel = new EventEmitter();\n\n @Input() selectedItems: any[] = [];\n @Input() columnDefinitions: ColDef[];\n @Input() itemType: number;\n\n rowKey: string;\n userActionEventSubscription: Subscription;\n claimsSubscription: Subscription;\n claims: Claims;\n currentUser: any;\n\n defaultSortColumn;\n gridConfigItems: GridConfig;\n gridColumnDefs: ColDef[];\n gridData: any;\n\n allApproversList: any = [];\n approversList: any = [];\n assignedApproverId: number = null;\n selectedApproverId: number = 0;\n selectedApproverName: string = '';\n selectedApproverEmail: string = '';\n selectedApproverCostCentre: string = '';\n selectedApproverCostCentreCode: string = '';\n selectedApproverStatus: string = '';\n selectedApproverStatusId: number = 0;\n newApproverIds: number[] = [];\n ccDisplaySetting: number = 0;\n hasFormChanges: boolean = false;\n disableAssign: boolean = true;\n disableSave: boolean = true;\n panelHeading: string = '';\n isSaved: boolean = false;\n panelItemType: number = 0;\n showApproverStatusPanel: boolean = false;\n employeesList: any[] = [];\n approverListCostCentre: string;\n approverListCostCentreCode: string;\n approverListCostCentreId: number;\n selectedItemsText: string;\n anyTextForDisplay: string = '';\n constructor(\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private toastr: ToastrService,\n private alertService: AlertService,\n private manageEmpService: ManageempService,\n private costCentreService: CostCentreService,\n private loggingPanelService: LoggingPanelService\n ) {\n super();\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n\n this.resetFields();\n this.closePanel.emit(false);\n }\n });\n this.getCustomerCCInfo();\n\n }\n\n ngOnInit(): void {\n this.gridData = JSON.parse(JSON.stringify(this.selectedItems));\n this.fnInitialiseEmployeesGrid();\n this.fnGetAllEmployeesList();\n }\n\n ngOnDestroy() {\n this.claimsSubscription.unsubscribe();\n this.userActionEventSubscription.unsubscribe();\n }\n\n fnShowConfigureshowLoggingAlertPanel() {\n\n const logTypeEnum = this.itemType == ItemType.Claimants ?\n LogObjectActionTemplateEnum.Approver1stLevel :\n LogObjectActionTemplateEnum.AssignApproverToCostCentres;\n\n const model = new LoggingPanelModel(\n this.claims.OrgId.toString(),\n logTypeEnum.toString(),\n this.gridData[0][this.rowKey]\n );\n\n this.loggingPanelService.onShowLogPanel(model);\n }\n\n ngOnChanges(changes) {\n this.gridData = JSON.parse(JSON.stringify(this.selectedItems));\n this.newApproverIds = [];\n this.filterApproversList();\n this.resetSelectedApprover();\n\n if (this.gridComponent) {\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n\n let key = '', selectedItemKey = '';\n if (this.itemType == ItemType.Claimants) {\n key = 'label_selected_claimants';\n selectedItemKey = 'label_selected_claimants';\n }\n else if (this.itemType == ItemType.CostCentre) {\n key = 'label_assign_approver_costcentre';\n selectedItemKey = 'label_selected_cost_centres';\n }\n\n this.selectedItemsText = this.translate.instant(selectedItemKey);\n\n if (this.selectedItems && this.selectedItems.length > 1) {\n // this.panelHeading = `${this.translate.instant('label_bulk')} - ${this.translate.instant(key)} ${this.selectedItems.length}`;\n this.panelHeading = `${this.translate.instant('labl_bulk_action')}: ${this.translate.instant('label_selected')} ${this.selectedItems.length}`;\n this.anyTextForDisplay = '';\n }\n else {\n if (this.itemType == ItemType.CostCentre && this.selectedItems[0].approversList.length == 1) {\n this.anyTextForDisplay = this.translate.instant('appoint_2nd_approver');\n }\n this.panelHeading = this.translate.instant(key);\n }\n }\n\n canDeactivate() {\n return !this.hasFormChanges;\n }\n\n fnGridInit() {\n this.rowKey = this.itemType == ItemType.Claimants ? \"employeeID\" : \"costCentreId\";\n\n if (this.columnDefinitions && this.columnDefinitions.length > 0) {\n this.gridColumnDefs = JSON.parse(JSON.stringify(this.columnDefinitions));\n\n this.gridColumnDefs = this.gridColumnDefs.filter(c => c.field != \"selected\");\n\n this.gridColumnDefs.splice(this.gridColumnDefs.length - 1, 1,\n {\n headerName: \"\",\n valueGetter: 'data.' + this.rowKey,\n cellRenderer: 'actionRenderer',\n field: 'userActionField',\n suppressMovable: true,\n suppressMenu: true,\n sortable: false,\n minWidth: 100,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-minus-circle color-red',\n buttonTooltip: this.translate.instant('remove_text'),\n userAction: 1\n }\n ]\n });\n\n this.defaultSortColumn = this.gridColumnDefs[0].field;\n }\n\n\n this.gridConfigItems = new GridConfig(\n true,\n true,\n this.defaultSortColumn,\n this.rowKey,\n 0,\n false,\n [],\n true,\n true,\n false,\n null,\n 'asc',\n 40,\n 'no_data_availabe',\n null,\n null,\n false, false,\n '',\n '',\n false\n );\n }\n\n fnInitialiseEmployeesGrid() {\n this.fnGridInit();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n }\n\n fnGetAllEmployeesList() {\n let request = new ApiRequest(\"GetAllEmployees\", environment.applicationVersion, environment.requestId);\n let requestInfo = new GetAllEmployeesRequest(this.claims.OrgId);\n request.requestInfo = requestInfo;\n this.manageEmpService.GetAllApprovers(request).subscribe(response => {\n this.allApproversList = response;\n this.filterApproversList();\n });\n }\n\n filterApproversList() {\n if (this.itemType == ItemType.Claimants) {\n this.approversList = this.allApproversList.filter(a => this.selectedItems.filter(i => i.employeeID == a.employeeID).length == 0 && Number(a.status) != 2);\n }\n else {\n this.approversList = this.allApproversList.filter(a => Number(a.status) != 2);\n }\n }\n\n onApproverChange() {\n if (this.assignedApproverId) {\n this.disableAssign = false;\n this.selectedApproverId = this.assignedApproverId;\n const selectedApprover = this.approversList.find(a => a.employeeID == this.selectedApproverId);\n if (selectedApprover) {\n this.selectedApproverName = selectedApprover.displayName;\n this.selectedApproverEmail = selectedApprover.email;\n this.selectedApproverCostCentre = selectedApprover.costCentreName;\n this.selectedApproverCostCentreCode = selectedApprover.costCentreCode1;\n this.selectedApproverStatusId = parseInt(selectedApprover.status);\n if (this.selectedApproverStatusId == EmployeeStatusEnum.NotInvited) {\n this.selectedApproverStatus = this.translate.instant('label_approver_notinvited');\n }\n else if (this.selectedApproverStatusId == EmployeeStatusEnum.Pending) {\n this.selectedApproverStatus = this.translate.instant('label_approver_notjoined');\n }\n else {\n this.selectedApproverStatus = '';\n }\n }\n else {\n this.selectedApproverName = '';\n this.selectedApproverEmail = '';\n this.selectedApproverCostCentre = '';\n this.selectedApproverCostCentreCode = '';\n }\n }\n else {\n this.resetFields();\n }\n }\n\n fnOnGridCellClick(params) {\n if (params.column.colId === 'userActionField') {\n switch (params.data.userAction) {\n case 1:\n this.uncheckEvent.emit(params.data);\n break;\n }\n }\n else if (params.column.colId === 'approvers') {\n this.openEmployeeListPanel(params.data, 2);\n }\n else if (params.column.colId === 'claimantCount') {\n this.openEmployeeListPanel(params.data, 3);\n }\n }\n\n openEmployeeListPanel(costCentre, itemType) {\n this.panelItemType = itemType;\n this.showApproverStatusPanel = true;\n this.employeesList = [];\n if (itemType == 2) {\n this.employeesList = costCentre.approversList;\n }\n else if (itemType == 3) {\n this.employeesList = costCentre.claimantsList;\n }\n this.approverListCostCentre = costCentre.costCentreName;\n this.approverListCostCentreCode = costCentre.costCentreCode1;\n this.approverListCostCentreId = costCentre.costCentreId;\n }\n\n closeEmployeeStatusPanel(isSaved) {\n this.showApproverStatusPanel = false;\n this.employeesList = [];\n this.approverListCostCentre = '';\n this.approverListCostCentreCode = '';\n this.approverListCostCentreId = 0;\n this.isSaved = isSaved;\n }\n\n onRemoveApprover(removedApproverIds) {\n const costCentre = this.gridData.find(r => r.costCentreId == this.approverListCostCentreId);\n if (costCentre) {\n costCentre.approverIds = costCentre.approverIds.filter(a => removedApproverIds.indexOf(a) == -1);\n costCentre.approversList = costCentre.approversList.filter(a => removedApproverIds.indexOf(a.employeeID) == -1);\n costCentre.approverCount -= removedApproverIds.length;\n costCentre.assignedApproverCount -= removedApproverIds.length;\n if (costCentre.approverCount <= 0) {\n costCentre.approvers = this.translate.instant('no_approver');\n }\n else if (costCentre.approverCount == 1) {\n costCentre.approvers = costCentre.approversList[0].displayName;\n }\n else {\n costCentre.approvers = `${costCentre.approversList[0].displayName} (+${costCentre.approverCount - 1})`;\n }\n }\n if (this.gridComponent) {\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n this.closeEmployeeStatusPanel(true);\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.resetFields();\n this.closePanel.emit(this.isSaved);\n this.isSaved = false;\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n assignApprovers() {\n if (this.selectedApproverId) {\n if (this.newApproverIds.indexOf(this.selectedApproverId) == -1 || this.itemType != ItemType.CostCentre) {\n this.newApproverIds.push(this.selectedApproverId);\n this.disableSave = false;\n this.disableAssign = true;\n this.hasFormChanges = true;\n\n if (this.itemType == ItemType.Claimants) {\n this.assignApproverToClaimants();\n }\n else if (this.itemType == ItemType.CostCentre) {\n this.assignApproverToCostCentres();\n }\n\n if (this.gridComponent) {\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n }\n else {\n this.toastr.info(this.translate.instant('approver_already_assigned'));\n }\n }\n else {\n this.disableAssign = false;\n this.disableSave = true;\n }\n }\n\n assignApproverToClaimants() {\n this.gridData.forEach((item) => {\n item.approverId = this.selectedApproverId;\n item.approverName = this.selectedApproverName;\n item.approverStatus = this.selectedApproverStatusId;\n });\n }\n\n assignApproverToCostCentres() {\n this.gridData.forEach((costCentre) => {\n if (!costCentre.approverIds.find(a => a == this.selectedApproverId)) {\n costCentre.approverIds.push(this.selectedApproverId);\n costCentre.approversList.push(this.approversList.find(a => a.employeeID == this.selectedApproverId));\n costCentre.approverCount++;\n costCentre.assignedApproverCount++;\n if (costCentre.approverCount <= 0) {\n costCentre.approvers = this.translate.instant('no_approver');\n }\n else if (costCentre.approverCount == 1) {\n costCentre.approvers = costCentre.approversList[0].displayName;\n }\n else {\n costCentre.approvers = `${costCentre.approversList[0].displayName} (+${costCentre.approverCount - 1})`;\n }\n\n if (!costCentre.newApproverIds) {\n costCentre.newApproverIds = [this.selectedApproverId];\n }\n else {\n if (costCentre.newApproverIds.indexOf(this.selectedApproverId) < 0) {\n costCentre.newApproverIds.push(this.selectedApproverId);\n }\n }\n }\n });\n this.resetSelectedApprover();\n }\n\n saveAssignments() {\n this.disableAssign = true;\n this.disableSave = true;\n this.toastr.info(this.translate.instant(\"request_processing_info\"));\n\n if (this.itemType == ItemType.Claimants) {\n this.saveEmployees();\n }\n else if (this.itemType == ItemType.CostCentre) {\n this.saveCostCentres();\n }\n }\n\n saveCostCentres() {\n\n const infoToast = this.toastr.info(this.translate.instant('request_processing_info'));\n\n let requestInfo: AssignCostCentreApprover[] = [];\n\n this.gridData.forEach((costCentre) => {\n if (costCentre.newApproverIds && costCentre.newApproverIds.length > 0) {\n costCentre.newApproverIds.forEach((approverId) => {\n const approver = costCentre.approversList.find(a => a.employeeID == approverId);\n requestInfo.push(new AssignCostCentreApprover(costCentre.costCentreId, costCentre.costCentreName, costCentre.costCentreCode1,\n approverId, approver.displayName, 1));\n });\n }\n });\n\n const saveRequest = new SaveCostCentreApproverRequest(this.claims.FinanceManager, requestInfo);\n this.costCentreService.saveCostCentreApproverAssignment(saveRequest).subscribe(response => {\n if (response && response.responseInfo) {\n this.toastr.remove(infoToast.toastId);\n this.toastr.success(this.translate.instant(\"success\"));\n this.hasFormChanges = false;\n this.isSaved = true;\n this.fnClosePanel();\n }\n });\n\n }\n\n getCustomerCCInfo() {\n this.costCentreService.GetCustomerCCInfo()\n .pipe(first())\n .subscribe(\n data => {\n if (data.statusCode == 0) {\n this.ccDisplaySetting = data.responseInfo.ccDisplaySetting;\n }\n });\n\n }\n\n saveEmployees() {\n\n let requestInfo = new AddUpdateBulkEmployeeRequestDto(this.claims.EmailId, this.claims.FinanceManager,\n this.claims.UserId, [], false);\n this.gridData.forEach((item) => {\n requestInfo.employees.push(new AddUpdateEmployeeRequestDto(\n item.employeeID, item.employeeCode, item.employeeCode2, item.employeeCode3, item.employeeCode4,\n item.firstName, item.lastName, item.email, Number(status), false,\n Number(item.employeeRole), Number(item.vehicleTypeId), item.vehicleStatus, item.vehicleSubTypeId,\n item.rateType, item.orgVehicleTypeMapId, item.derivedName, this.selectedApproverId, '',\n item.costCentreId, item.costCentreName, item.costCentreCode1, item.costCentreRuleId, 0, null, null));\n });\n\n this.manageEmpService.BulkAddUpdateEmployee(requestInfo).subscribe(data => {\n if (data) {\n if (data.responseInfo) {\n this.toastr.success(this.translate.instant(\"success\"));\n } else {\n this.toastr.success(this.translate.instant(\"JobSubmittedToaster\"));\n }\n this.hasFormChanges = false;\n this.isSaved = true;\n this.fnClosePanel();\n }\n });\n }\n\n resetFields() {\n this.resetSelectedApprover();\n this.hasFormChanges = false;\n this.disableAssign = true;\n this.disableSave = true;\n this.newApproverIds = [];\n }\n\n resetSelectedApprover() {\n this.selectedApproverEmail = '';\n this.selectedApproverCostCentre = '';\n this.selectedApproverCostCentreCode = '';\n this.selectedApproverStatus = '';\n this.selectedApproverStatusId = 0;\n this.selectedApproverId = 0;\n this.assignedApproverId = null;\n }\n\n formateCostCentreName() {\n if (this.selectedApproverCostCentre && this.selectedApproverCostCentreCode) {\n if (this.ccDisplaySetting == 1) {\n return this.selectedApproverCostCentre + ' / ' + this.selectedApproverCostCentreCode;\n }\n else if (this.ccDisplaySetting == 2) {\n return this.selectedApproverCostCentreCode + ' / ' + this.selectedApproverCostCentre;\n }\n else if (this.ccDisplaySetting == 3) {\n return this.selectedApproverCostCentreCode + ' - ' + this.selectedApproverCostCentre;\n }\n else if (this.ccDisplaySetting == 4) {\n return this.selectedApproverCostCentre + ' - ' + this.selectedApproverCostCentreCode;\n }\n else if (this.ccDisplaySetting == 5) {\n return this.selectedApproverCostCentreCode;\n }\n else if (this.ccDisplaySetting == 6) {\n return this.selectedApproverCostCentre;\n }\n else\n return this.selectedApproverCostCentre + ' - ' + this.selectedApproverCostCentreCode;\n }\n }\n}\n\n\n","import { OnInit, Component, ViewChild, Output, EventEmitter, Input, OnChanges } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { AddUpdateEmployeeRequestDto, AddUpdateBulkEmployeeRequestDto } from \"src/app/_models/manage-emp/manage-emp\";\nimport { ManageempService } from \"src/app/_services/manage-emp/manage-emp.service\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ColDef } from \"ag-grid-community\";\nimport { CountByStatus, GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { NgOption } from \"@ng-select/ng-select\";\nimport { EmployeeStatusEnum } from \"src/app/_models/common/manage-emp-enum.enum\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { AssignCostCentreApprover, SaveCostCentreApproverRequest } from \"src/app/_models/costCentre/costCentre\";\nimport { CostCentreService } from \"src/app/_services\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { first } from \"rxjs/operators\";\n\nenum ItemType {\n Approvers = 1,\n ApproversForCC = 2,\n ClaimantsForCC = 3,\n ApproversForExpense = 4\n}\n\n@Component({\n selector: \"employee-status-panel\",\n templateUrl: \"./employee-status-panel.component.html\"\n})\nexport class EmployeeStatusPanelComponent extends BaseComponent implements OnInit, OnChanges {\n\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n\n @Output() closePanel = new EventEmitter();\n @Output() onRemoveApprover = new EventEmitter();\n @Input() employeesList: any = [];\n @Input() itemType: number;\n @Input() costCentre: string;\n @Input() costCentreCode: string;\n @Input() costCentreId: number;\n\n userActionEventSubscription: Subscription;\n claimsSubscription: Subscription;\n claims: Claims;\n currentUser: any;\n videoLink = HowDoIVideoLinks.SetupOrganisation;\n\n defaultSortColumn = 'displayName';\n gridData: any[] = [];\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n gridFilterStatus: number = 0;\n gridFilterItems: NgOption[] = [];\n\n successResponseMsg: string[] = [this.translate.instant('success'), this.translate.instant('invite_sent_success'), this.translate.instant('invite_resent_success')];\n inviteButtonText: string = '';\n inviteButtonClass: string = 'fal fa-envelope color-white';\n panelHeading: string;\n isSaved: boolean = false;\n showCostCentreListPanel: boolean = false;\n selectedApproverData: any = null;\n\n removedApprovers: any[] = [];\n hasFormChanges: boolean = false;\n hideSave: boolean = false;\n disableSave: boolean = true;\n ccDisplaySetting:number=0;\n constructor(\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private manageEmpService: ManageempService,\n private costCentreService: CostCentreService,\n private alertService: AlertService,\n private toastr: ToastrService\n ) {\n super();\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.resetFields();\n this.closePanel.emit(false);\n }\n });\n this.getCustomerCCInfo();\n }\n\n ngOnInit(): void {\n this.fnInitialiseEmployeesGrid();\n }\n\n getCustomerCCInfo() {\n this.costCentreService.GetCustomerCCInfo()\n .pipe(first())\n .subscribe(\n data => {\n if(data.statusCode==0)\n { \n this.ccDisplaySetting = data.responseInfo.ccDisplaySetting; \n }\n }); \n \n }\n\n getPanelHeading(ccDisplaySetting, panelHeading, costCentreName, costCentreCode)\n {\n if (ccDisplaySetting==1) {\n return panelHeading.replace('{0}', costCentreName+' / '+ costCentreCode); \n } \n else if (ccDisplaySetting==2) \n { \n return panelHeading.replace('{0}', costCentreCode+' / '+costCentreName); \n } \n else if (ccDisplaySetting==3) \n { \n return panelHeading.replace('{0}', costCentreCode+' - '+costCentreName); \n }\n else if (ccDisplaySetting==4) {\n return panelHeading.replace('{0}', costCentreName +' - '+costCentreCode); \n }\n else if (ccDisplaySetting==5) {\n return panelHeading.replace('{0}', costCentreCode); \n }\n else if (ccDisplaySetting==6) {\n return panelHeading.replace('{0}', costCentreName); \n }\n else\n return panelHeading.replace('{0}', costCentreName +' - '+costCentreCode); \n }\n\n ngOnDestroy() {\n this.claimsSubscription.unsubscribe();\n this.userActionEventSubscription.unsubscribe();\n }\n\n canDeactivate() {\n return !this.hasFormChanges;\n }\n\n ngOnChanges(changes) {\n if (this.itemType == ItemType.Approvers) {\n this.panelHeading = this.translate.instant('label_approver_status');\n }\n else if (this.itemType == ItemType.ApproversForCC) {\n this.panelHeading = this.getPanelHeading(this.ccDisplaySetting,this.translate.instant('label_approver_details'),this.costCentre,this.costCentreCode); \n }\n else if (this.itemType == ItemType.ClaimantsForCC) {\n this.panelHeading = this.getPanelHeading(this.ccDisplaySetting,this.translate.instant('label_claimant_details'),this.costCentre,this.costCentreCode)\n }\n else if (this.itemType == ItemType.ApproversForExpense) {\n this.panelHeading = this.translate.instant('approver_details');\n }\n\n if (this.itemType == ItemType.Approvers) {\n this.gridFilterItems = [\n { id: EmployeeStatusEnum.Pending, name: this.translate.instant(\"label_pending\") },\n { id: EmployeeStatusEnum.NotInvited, name: this.translate.instant(\"label_notinvited\") }\n ];\n }\n else {\n this.gridFilterItems = [\n { id: 0, name: this.translate.instant(\"all\") },\n { id: EmployeeStatusEnum.Pending, name: this.translate.instant(\"label_pending\") },\n { id: EmployeeStatusEnum.NotInvited, name: this.translate.instant(\"label_notinvited\") }\n ];\n }\n\n this.gridFilterStatus = this.gridFilterItems[0].id;\n\n this.updateGridColumnDefs();\n\n this.hideSave = this.itemType != ItemType.ApproversForCC;\n this.disableSave = true;\n }\n\n updateGridColumnDefs() {\n if (this.gridComponent) {\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n this.gridComponent.updateGridColumnDefinitions(this.gridColumnDefs);\n this.fnGridFilterChanged(this.gridFilterStatus);\n }\n }\n\n fnCreateColumnDefs() {\n if (this.itemType == ItemType.ApproversForCC) {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('deputy_approver_name'),\n field: 'displayName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n },\n {\n headerName: this.translate.instant('approving_for'),\n field: 'costCentresData',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n cellRenderer: 'formattedTextRenderer',\n headerComponentParams: {\n class: 'd-inline-block text-logo-blue cursor-pointer text-underline lH-12'\n }\n },\n {\n headerName: this.translate.instant('label_email'),\n field: 'email',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n },\n {\n headerName: this.translate.instant('text_cost_centre'),\n field: 'costCentreName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100\n },\n\n {\n headerName: this.translate.instant('cost_centre_code'),\n field: 'costCentreCode1',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100\n },\n\n {\n headerName: this.translate.instant('status_text'),\n field: 'status',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n cellRenderer: 'fieldValueRenderer',\n minWidth: 100,\n headerComponentParams: [\n { class: 'active-color font-weight-bold', value: EmployeeStatusEnum.Active, text: this.translate.instant(\"label_active\") },\n { class: 'pending-color font-weight-bold', value: EmployeeStatusEnum.Pending, text: this.translate.instant(\"label_pending\") },\n { class: 'not-invited-color font-weight-bold', value: EmployeeStatusEnum.NotInvited, text: this.translate.instant(\"label_notinvited\") },\n { class: 'inactive-color font-weight-bold', value: EmployeeStatusEnum.Inactive, text: this.translate.instant(\"label_inactive\") },\n ]\n },\n {\n headerName: \"\",\n valueGetter: 'data.employeeID',\n cellRenderer: 'actionRenderer',\n field: 'userActionField',\n suppressMovable: true,\n suppressMenu: true,\n sortable: false,\n minWidth: 10,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-envelope',\n buttonTooltip: this.translate.instant('label_resend_invite'),\n userAction: 1,\n hideProperty: 'hideResendInvite'\n },\n {\n buttonClass: 'fas fa-envelope',\n buttonTooltip: this.translate.instant('label_invite'),\n userAction: 1,\n hideProperty: 'hideSendInvite'\n },\n {\n buttonClass: 'fas fa-trash-alt color-red',\n buttonTooltip: this.translate.instant('remove_approver_cc'),\n userAction: 2\n }\n ]\n }\n ];\n }\n else if (this.itemType == ItemType.Approvers || this.itemType == ItemType.ApproversForExpense) {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('deputy_approver_name'),\n field: 'displayName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n },\n {\n headerName: this.translate.instant('label_email'),\n field: 'email',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n },\n {\n headerName: this.translate.instant('text_cost_centre'),\n field: 'costCentreName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100\n },\n {\n headerName: this.translate.instant('cost_centre_code'),\n field: 'costCentreCode1',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100\n },\n {\n headerName: this.translate.instant('status_text'),\n field: 'status',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n cellRenderer: 'fieldValueRenderer',\n minWidth: 100,\n headerComponentParams: [\n { class: 'active-color font-weight-bold', value: EmployeeStatusEnum.Active, text: this.translate.instant(\"label_active\") },\n { class: 'pending-color font-weight-bold', value: EmployeeStatusEnum.Pending, text: this.translate.instant(\"label_pending\") },\n { class: 'not-invited-color font-weight-bold', value: EmployeeStatusEnum.NotInvited, text: this.translate.instant(\"label_notinvited\") },\n { class: 'inactive-color font-weight-bold', value: EmployeeStatusEnum.Inactive, text: this.translate.instant(\"label_inactive\") },\n ]\n },\n {\n headerName: \"\",\n valueGetter: 'data.employeeID',\n cellRenderer: 'actionRenderer',\n field: 'userActionField',\n suppressMovable: true,\n suppressMenu: true,\n sortable: false,\n minWidth: 10,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-envelope',\n buttonTooltip: this.translate.instant('label_resend_invite'),\n userAction: 1,\n hideProperty: 'hideResendInvite'\n },\n {\n buttonClass: 'fas fa-envelope',\n buttonTooltip: this.translate.instant('label_invite'),\n userAction: 1,\n hideProperty: 'hideSendInvite'\n }\n ]\n }\n ];\n }\n else if (this.itemType == ItemType.ClaimantsForCC) {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('claimant_name'),\n field: 'displayName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n },\n {\n headerName: this.translate.instant('label_email'),\n field: 'email',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100,\n },\n {\n headerName: this.translate.instant('text_cost_centre'),\n field: 'costCentreName',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100\n },\n {\n headerName: this.translate.instant('cost_centre_code'),\n field: 'costCentreCode1',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n minWidth: 100\n },\n {\n headerName: this.translate.instant('status_text'),\n field: 'status',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n cellRenderer: 'fieldValueRenderer',\n minWidth: 100,\n headerComponentParams: [\n { class: 'active-color font-weight-bold', value: EmployeeStatusEnum.Active, text: this.translate.instant(\"label_active\") },\n { class: 'pending-color font-weight-bold', value: EmployeeStatusEnum.Pending, text: this.translate.instant(\"label_pending\") },\n { class: 'not-invited-color font-weight-bold', value: EmployeeStatusEnum.NotInvited, text: this.translate.instant(\"label_notinvited\") },\n { class: 'inactive-color font-weight-bold', value: EmployeeStatusEnum.Inactive, text: this.translate.instant(\"label_inactive\") },\n ]\n },\n {\n headerName: \"\",\n valueGetter: 'data.employeeID',\n cellRenderer: 'actionRenderer',\n field: 'userActionField',\n suppressMovable: true,\n suppressMenu: true,\n sortable: false,\n minWidth: 10,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-envelope',\n buttonTooltip: this.translate.instant('label_resend_invite'),\n userAction: 1,\n hideProperty: 'hideResendInvite'\n },\n {\n buttonClass: 'fas fa-envelope',\n buttonTooltip: this.translate.instant('label_invite'),\n userAction: 1,\n hideProperty: 'hideSendInvite'\n }\n ]\n }\n ];\n }\n }\n\n fnGetGridConfigItems() {\n\n let filterClass = \"d-inline-block cursor-pointer text-underline lH-12 \";\n let totalEmployeeCount = this.employeesList.length;\n let pendingEmployeeCount = this.employeesList.filter(item => Number(item.status) == EmployeeStatusEnum.Pending).length;\n let notInvitedEmployeeCount = this.employeesList.filter(item => Number(item.status) == EmployeeStatusEnum.NotInvited).length;\n\n let countByStatusArray = [];\n\n const empCountKey = this.itemType == ItemType.ClaimantsForCC ? 'total_claimants' : 'total_approvers';\n countByStatusArray.push(new CountByStatus(\"d-block\", this.translate.instant(empCountKey), totalEmployeeCount, false, 0));\n\n if (this.itemType != ItemType.Approvers) {\n countByStatusArray.push(new CountByStatus(filterClass + \"inactive-state padding-right-10 padding-left-10 border-right-2px\",\n this.translate.instant('all'), totalEmployeeCount, true, 0));\n }\n\n countByStatusArray.push(new CountByStatus(filterClass + \"pending-state padding-right-10 padding-left-10\",\n this.translate.instant('label_pending'), pendingEmployeeCount, true, EmployeeStatusEnum.Pending));\n countByStatusArray.push(new CountByStatus(filterClass + \"not-invited-state padding-left-10 border-left-2px\",\n this.translate.instant('label_notinvited'), notInvitedEmployeeCount, true, EmployeeStatusEnum.NotInvited));\n\n const noDataMessage = this.itemType == ItemType.ApproversForCC ? 'no_approvers_assigned' : 'no_data_availabe';\n\n this.gridConfigItems = new GridConfig(\n false,\n true,\n this.defaultSortColumn,\n \"employeeID\",\n this.gridFilterStatus,\n false,\n countByStatusArray,\n true,\n true,\n false,\n null,\n 'asc',\n 40,\n noDataMessage,\n null,\n null,\n false, false,\n '',\n '',\n false\n );\n }\n\n fnInitialiseEmployeesGrid() {\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n }\n\n fnOnGridCellClick(params) {\n if (params.column.colId === 'userActionField') {\n switch (params.data.userAction) {\n case 1:\n this.sendInvitation([params.data]);\n break;\n case 2:\n this.removeApproverFromCC(params.data);\n break;\n }\n }\n else if (params.column.colId === 'costCentresData') {\n if (this.itemType == ItemType.ApproversForCC) {\n this.showCostCentreListPanel = true;\n this.selectedApproverData = params.data;\n }\n }\n }\n\n fnGridFilterChanged(status) {\n this.gridData = [];\n this.gridFilterStatus = status;\n switch (status) {\n case 0:\n this.gridData = this.employeesList;\n this.inviteButtonText = '';\n this.inviteButtonClass = '';\n break;\n case EmployeeStatusEnum.NotInvited:\n this.gridData = this.employeesList.filter(e => e.status == EmployeeStatusEnum.NotInvited);\n this.inviteButtonText = this.translate.instant('label_send_invite_to_notinvited');\n this.inviteButtonClass = 'fal fa-envelope color-white';\n break;\n case EmployeeStatusEnum.Pending:\n this.gridData = this.employeesList.filter(e => e.status == EmployeeStatusEnum.Pending);\n this.inviteButtonText = this.translate.instant('label_resend_invite_to_pending');\n this.inviteButtonClass = 'fal fa-envelope color-white';\n break;\n }\n\n if (this.inviteButtonText) {\n this.inviteButtonText += ' (' + this.gridData.length + ')';\n }\n\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n if (this.removedApprovers.length > 0) {\n const removedApproverIds = this.removedApprovers.map(a => a.employeeID);\n this.onRemoveApprover.emit(removedApproverIds);\n }\n else {\n this.closePanel.emit(this.isSaved);\n }\n this.resetFields();\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n removeApproverFromCC(data) {\n this.hasFormChanges = true;\n this.disableSave = false;\n if (!this.removedApprovers.find(a => a.employeeID == data.employeeID)) {\n this.removedApprovers.push({\n employeeID: data.employeeID,\n displayName: data.displayName\n });\n this.employeesList = this.employeesList.filter(e => e.employeeID != data.employeeID);\n this.fnGridFilterChanged(this.gridFilterStatus);\n }\n }\n\n resetFields() {\n this.hasFormChanges = false;\n this.removedApprovers = [];\n this.isSaved = false;\n this.disableSave = true;\n }\n\n saveApproverAssignment() {\n\n this.disableSave = true;\n const infoToast = this.toastr.info(this.translate.instant('request_processing_info'));\n\n let requestInfo: AssignCostCentreApprover[] = [];\n this.removedApprovers.forEach(approver => {\n requestInfo.push(new AssignCostCentreApprover(this.costCentreId, this.costCentre,this.costCentreCode, approver.employeeID, approver.displayName, 2));\n });\n\n const saveRequest = new SaveCostCentreApproverRequest(this.claims.FinanceManager, requestInfo);\n this.costCentreService.saveCostCentreApproverAssignment(saveRequest).subscribe(response => {\n if (response && response.responseInfo) {\n this.hasFormChanges = false;\n this.isSaved = true;\n this.toastr.remove(infoToast.toastId);\n this.toastr.success(this.translate.instant(\"success\"));\n }\n });\n }\n\n resendInviteAll() {\n const filteredUsers = this.employeesList.filter(e => e.status == this.gridFilterStatus);\n this.sendInvitation(filteredUsers);\n }\n\n sendInvitation(employees) {\n if (employees && employees.length > 0) {\n this.toastr.info(this.translate.instant(\"request_processing_info\"));\n let requestInfo = new AddUpdateBulkEmployeeRequestDto(this.claims.EmailId, this.claims.FinanceManager, this.claims.UserId, [], false);\n employees.forEach(employee => {\n requestInfo.employees.push(new AddUpdateEmployeeRequestDto(\n employee.employeeID,\n employee.employeeCode,\n employee.employeeCode2,\n employee.employeeCode3,\n employee.employeeCode4,\n employee.firstName,\n employee.lastName,\n employee.email,\n EmployeeStatusEnum.Pending,\n true,\n Number(employee.employeeRole),\n Number(employee.vehicleTypeId),\n employee.vehicleStatus,\n employee.vehicleSubTypeId,\n employee.rateType,\n employee.orgVehicleTypeMapId,\n employee.derivedName,\n employee.approverId,\n '',\n employee.costCentreId,\n employee.costCentreName,\n employee.costCentreCode1,\n employee.costCentreRuleId,\n 0,\n null,\n null\n ));\n });\n localStorage.setItem(\"employeeUpdatedDateTime\" + this.claims.OrgId, JSON.stringify(new Date().toUTCString()));\n this.manageEmpService.BulkAddUpdateEmployee(requestInfo).subscribe((data) => {\n if (data) {\n if (data.responseInfo) {\n this.toastr.success(this.translate.instant(\"success\"));\n } else {\n this.fnClosePanel();\n this.toastr.success(this.translate.instant(\"JobSubmittedToaster\"));\n }\n this.isSaved = true;\n }\n });\n }\n }\n\n closeCostCentreListPanel(isSaved) {\n this.showCostCentreListPanel = false;\n if (isSaved) {\n this.isSaved = true;\n if (this.selectedApproverData) {\n if (!this.selectedApproverData.costCentresForApprover.find(c => c.costCentreId == this.costCentreId)) {\n this.employeesList = this.employeesList.filter(r => r.employeeID != this.selectedApproverData.employeeID);\n this.selectedApproverData = null;\n this.fnGridFilterChanged(this.gridFilterStatus);\n }\n }\n }\n }\n\n}\n","
\n
\n
\n
\n
\n

{{ panelHeading }}

\n
\n
\n \n \n \n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n\n","var t=function(){return t=Object.assign||function(t){for(var i,n=1,s=arguments.length;na.endVal;a.frameVal=n?a.endVal:a.frameVal,a.frameVal=Number(a.frameVal.toFixed(a.options.decimalPlaces)),a.printValue(a.frameVal),i1?a.options.decimal+r[1]:\"\",a.options.useGrouping){e=\"\";for(var l=3,h=0,u=0,p=n.length;uwindow.scrollY&&t.paused?(t.paused=!1,setTimeout((function(){return t.start()}),t.options.scrollSpyDelay),t.options.scrollSpyOnce&&(t.once=!0)):(window.scrollY>a||s>i)&&!t.paused&&t.reset()}},i.prototype.determineDirectionAndSmartEasing=function(){var t=this.finalEndVal?this.finalEndVal:this.endVal;this.countDown=this.startVal>t;var i=t-this.startVal;if(Math.abs(i)>this.options.smartEasingThreshold&&this.options.useEasing){this.finalEndVal=t;var n=this.countDown?1:-1;this.endVal=t+n*this.options.smartEasingAmount,this.duration=this.duration/2}else this.endVal=t,this.finalEndVal=null;null!==this.finalEndVal?this.useEasing=!1:this.useEasing=this.options.useEasing},i.prototype.start=function(t){this.error||(t&&(this.options.onCompleteCallback=t),this.duration>0?(this.determineDirectionAndSmartEasing(),this.paused=!1,this.rAF=requestAnimationFrame(this.count)):this.printValue(this.endVal))},i.prototype.pauseResume=function(){this.paused?(this.startTime=null,this.duration=this.remaining,this.startVal=this.frameVal,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count)):cancelAnimationFrame(this.rAF),this.paused=!this.paused},i.prototype.reset=function(){cancelAnimationFrame(this.rAF),this.paused=!0,this.resetDuration(),this.startVal=this.validateValue(this.options.startVal),this.frameVal=this.startVal,this.printValue(this.startVal)},i.prototype.update=function(t){cancelAnimationFrame(this.rAF),this.startTime=null,this.endVal=this.validateValue(t),this.endVal!==this.frameVal&&(this.startVal=this.frameVal,null==this.finalEndVal&&this.resetDuration(),this.finalEndVal=null,this.determineDirectionAndSmartEasing(),this.rAF=requestAnimationFrame(this.count))},i.prototype.printValue=function(t){var i;if(this.el){var n=this.formattingFn(t);if(null===(i=this.options.plugin)||void 0===i?void 0:i.render)this.options.plugin.render(this.el,n);else if(\"INPUT\"===this.el.tagName)this.el.value=n;else\"text\"===this.el.tagName||\"tspan\"===this.el.tagName?this.el.textContent=n:this.el.innerHTML=n}},i.prototype.ensureNumber=function(t){return\"number\"==typeof t&&!isNaN(t)},i.prototype.validateValue=function(t){var i=Number(t);return this.ensureNumber(i)?i:(this.error=\"[CountUp] invalid start or end value: \".concat(t),null)},i.prototype.resetDuration=function(){this.startTime=null,this.duration=1e3*Number(this.options.duration),this.remaining=this.duration},i}();export{i as CountUp};\n","import * as i0 from '@angular/core';\nimport { EventEmitter, PLATFORM_ID, Directive, Inject, Input, Output, HostListener, NgModule } from '@angular/core';\nimport { CountUp } from 'countup.js';\nimport { isPlatformBrowser } from '@angular/common';\n\nclass CountUpDirective {\n constructor(el, zone, platformId) {\n this.el = el;\n this.zone = zone;\n this.platformId = platformId;\n this.options = {};\n this.reanimateOnClick = true;\n // eslint-disable-next-line @angular-eslint/no-output-native\n this.complete = new EventEmitter();\n }\n // Re-animate if preference is set.\n onClick() {\n if (this.reanimateOnClick) {\n this.animate();\n }\n }\n ngOnChanges(changes) {\n // don't animate server-side (universal)\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n const { options, endVal } = changes;\n if (endVal?.currentValue !== undefined) {\n if (this.countUp !== undefined) {\n this.zone.runOutsideAngular(() => {\n this.countUp.update(this.endVal);\n });\n }\n else {\n this.initAndRun();\n }\n }\n else if (options?.currentValue !== undefined) {\n this.initAndRun();\n }\n }\n animate() {\n this.zone.runOutsideAngular(() => {\n this.countUp.reset();\n this.countUp.start(() => {\n this.zone.run(() => {\n this.complete.emit();\n });\n });\n });\n }\n initAndRun() {\n this.zone.runOutsideAngular(() => {\n this.countUp = new CountUp(this.el.nativeElement, this.endVal, this.options);\n if (!this.options.enableScrollSpy) {\n this.animate();\n }\n });\n }\n}\nCountUpDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.2\", ngImport: i0, type: CountUpDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive });\nCountUpDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"12.0.0\", version: \"13.2.2\", type: CountUpDirective, selector: \"[countUp]\", inputs: { endVal: [\"countUp\", \"endVal\"], options: \"options\", reanimateOnClick: \"reanimateOnClick\" }, outputs: { complete: \"complete\" }, host: { listeners: { \"click\": \"onClick()\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.2\", ngImport: i0, type: CountUpDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[countUp]'\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, propDecorators: { endVal: [{\n type: Input,\n args: ['countUp']\n }], options: [{\n type: Input\n }], reanimateOnClick: [{\n type: Input\n }], complete: [{\n type: Output\n }], onClick: [{\n type: HostListener,\n args: ['click']\n }] } });\n\nclass CountUpModule {\n}\nCountUpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.2.2\", ngImport: i0, type: CountUpModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCountUpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.2.2\", ngImport: i0, type: CountUpModule, declarations: [CountUpDirective], exports: [CountUpDirective] });\nCountUpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.2.2\", ngImport: i0, type: CountUpModule, imports: [[]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.2.2\", ngImport: i0, type: CountUpModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [],\n declarations: [CountUpDirective],\n exports: [CountUpDirective]\n }]\n }] });\n\n/*\n * Public API Surface of count-up\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CountUpDirective, CountUpModule };\n","import * as i0 from '@angular/core';\nimport { ElementRef, PLATFORM_ID, Injectable, Inject, Directive, Input, NgModule } from '@angular/core';\nimport { isPlatformBrowser, DOCUMENT } from '@angular/common';\nimport { ReplaySubject, throwError } from 'rxjs';\n\n/** Default values for Component Input */\nconst DEFAULTS = {\n target: null,\n action: 'click',\n duration: 650,\n easing: 'easeInOutQuad',\n offset: 0,\n offsetMap: new Map()\n};\n/** Easing Colleciton */\nconst EASING = {\n easeInQuad: (time) => {\n return time * time;\n },\n easeOutQuad: (time) => {\n return time * (2 - time);\n },\n easeInOutQuad: (time) => {\n return time < 0.5 ? 2 * time * time : -1 + (4 - 2 * time) * time;\n },\n easeInCubic: (time) => {\n return time * time * time;\n },\n easeOutCubic: (time) => {\n return (--time) * time * time + 1;\n },\n easeInOutCubic: (time) => {\n return time < 0.5 ? 4 * time * time * time : (time - 1) * (2 * time - 2) * (2 * time - 2) + 1;\n },\n easeInQuart: (time) => {\n return time * time * time * time;\n },\n easeOutQuart: (time) => {\n return 1 - (--time) * time * time * time;\n },\n easeInOutQuart: (time) => {\n return time < 0.5 ? 8 * time * time * time * time : 1 - 8 * (--time) * time * time * time;\n },\n easeInQuint: (time) => {\n return time * time * time * time * time;\n },\n easeOutQuint: (time) => {\n return 1 + (--time) * time * time * time * time;\n },\n easeInOutQuint: (time) => {\n return time < 0.5 ? 16 * time * time * time * time * time : 1 + 16 * (--time) * time * time * time * time;\n },\n easeOutElastic: (time) => {\n return Math.pow(2, -10 * time) * Math.sin((time - 1 / 4) * (2 * Math.PI) / 1) + 1;\n }\n};\n/**\n * Set of allowed events as triggers\n * for the Animation to start.\n */\nconst EVENTS = [\n 'click',\n 'mouseenter',\n 'mouseover',\n 'mousedown',\n 'mouseup',\n 'dblclick',\n 'contextmenu',\n 'wheel',\n 'mouseleave',\n 'mouseout'\n];\n/**\n * Strip hash (#) from value.\n *\n * @param value \t\t\t\tThe given string value\n * @returns \t\t\t\t\tThe stripped string value\n */\nfunction stripHash(value) {\n return value.substring(0, 1) === '#' ? value.substring(1) : value;\n}\n/**\n * Test if a given value is a string.\n *\n * @param value \t\t\t\t\tThe given value\n * @returns \t\t\t\t\t\tWhether the given value is a string\n */\nfunction isString(value) {\n return typeof value === 'string' || value instanceof String;\n}\n/**\n * Test if a given Element is the Window.\n *\n * @param container \t\t\t\tThe given Element\n * @returns \t\t\t\t\t\tWhether the given Element is Window\n */\nfunction isWindow(container) {\n return container === window;\n}\n/**\n * Test if a given value is of type ElementRef.\n *\n * @param value \t\t\t\t\tThe given value\n * @returns Whether the given value is a number\n */\nfunction isElementRef(value) {\n return value instanceof ElementRef;\n}\n/**\n * Whether or not the given value is a Native Element.\n *\n * @param value The given value\n * @returns Whether or not the value is a Native Element\n */\nfunction isNativeElement(value) {\n return value instanceof HTMLElement;\n}\n/**\n * Test if a given value is type number.\n *\n * @param value \t\t\t\t\tThe given value\n * @returns \t\t\t\t\t\tWhether the given value is a number\n */\nfunction isNumber(value) {\n return !isNaN(parseFloat(value)) && isFinite(value);\n}\n\n/** Scroll To Animation */\nclass ScrollToAnimation {\n /**\n * Class Constructor.\n *\n * @param container The Container\n * @param listenerTarget The Element that listens for DOM Events\n * @param isWindow Whether or not the listener is the Window\n * @param to Position to scroll to\n * @param options Additional options for scrolling\n * @param isBrowser Whether or not execution runs in the browser\n * (as opposed to the server)\n */\n constructor(container, listenerTarget, isWindow, to, options, isBrowser) {\n this.container = container;\n this.listenerTarget = listenerTarget;\n this.isWindow = isWindow;\n this.to = to;\n this.options = options;\n this.isBrowser = isBrowser;\n /** Recursively loop over the Scroll Animation */\n this.loop = () => {\n this.timeLapsed += this.tick;\n this.percentage = (this.timeLapsed / this.options.duration);\n this.percentage = (this.percentage > 1) ? 1 : this.percentage;\n // Position Update\n this.position = this.startPosition +\n ((this.startPosition - this.to <= 0 ? 1 : -1) *\n this.distance *\n EASING[this.options.easing](this.percentage));\n if (this.lastPosition !== null && this.position === this.lastPosition) {\n this.stop();\n }\n else {\n this.source$.next(this.position);\n this.isWindow\n ? this.listenerTarget.scrollTo(0, Math.floor(this.position))\n : this.container.scrollTop = Math.floor(this.position);\n this.lastPosition = this.position;\n }\n };\n this.tick = 16;\n this.interval = null;\n this.lastPosition = null;\n this.timeLapsed = 0;\n this.windowScrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;\n if (!this.container) {\n this.startPosition = this.windowScrollTop;\n }\n else {\n this.startPosition = this.isWindow ? this.windowScrollTop : this.container.scrollTop;\n }\n // Correction for Starting Position of nested HTML Elements\n if (this.container && !this.isWindow) {\n this.to = this.to - this.container.getBoundingClientRect().top + this.startPosition;\n }\n // Set Distance\n const directionalDistance = this.startPosition - this.to;\n this.distance = this.container ? Math.abs(this.startPosition - this.to) : this.to;\n this.mappedOffset = this.options.offset;\n // Set offset from Offset Map\n if (this.isBrowser) {\n this.options\n .offsetMap\n .forEach((value, key) => this.mappedOffset = window.innerWidth > key ? value : this.mappedOffset);\n }\n this.distance += this.mappedOffset * (directionalDistance <= 0 ? 1 : -1);\n this.source$ = new ReplaySubject();\n }\n /**\n * Start the new Scroll Animation.\n *\n * @returns Observable containing a number\n */\n start() {\n clearInterval(this.interval);\n this.interval = setInterval(this.loop, this.tick);\n return this.source$.asObservable();\n }\n /**\n * Stop the current Scroll Animation Loop.\n *\n * @param force Force to stop the Animation Loop\n * @returns Void\n */\n stop() {\n clearInterval(this.interval);\n this.interval = null;\n this.source$.complete();\n }\n}\n\n/**\n * The Scroll To Service handles starting, interrupting\n * and ending the actual Scroll Animation. It provides\n * some utilities to find the proper HTML Element on a\n * given page to setup Event Listeners and calculate\n * distances for the Animation.\n */\nclass ScrollToService {\n /**\n * Construct and setup required paratemeters.\n *\n * @param document A Reference to the Document\n * @param platformId Angular Platform ID\n */\n constructor(document, platformId) {\n this.document = document;\n this.platformId = platformId;\n this.interruptiveEvents = ['mousewheel', 'DOMMouseScroll', 'touchstart'];\n }\n /**\n * Target an Element to scroll to. Notice that the `TimeOut` decorator\n * ensures the executing to take place in the next Angular lifecycle.\n * This allows for scrolling to elements that are e.g. initially hidden\n * by means of `*ngIf`, but ought to be scrolled to eventually.\n *\n * @todo type 'any' in Observable should become custom type like 'ScrollToEvent' (base class), see issue comment:\n * - https://github.com/nicky-lenaers/ngx-scroll-to/issues/10#issuecomment-317198481\n *\n * @param options Configuration Object\n * @returns Observable\n */\n scrollTo(options) {\n if (!isPlatformBrowser(this.platformId)) {\n return new ReplaySubject().asObservable();\n }\n return this.start(options);\n }\n /**\n * Start a new Animation.\n *\n * @todo Emit proper events from subscription\n *\n * @param options Configuration Object\n * @returns Observable\n */\n start(options) {\n // Merge config with default values\n const mergedConfigOptions = {\n ...DEFAULTS,\n ...options\n };\n if (this.animation) {\n this.animation.stop();\n }\n const targetNode = this.getNode(mergedConfigOptions.target);\n if (mergedConfigOptions.target && !targetNode) {\n return throwError(() => new Error('Unable to find Target Element'));\n }\n const container = this.getContainer(mergedConfigOptions, targetNode);\n if (mergedConfigOptions.container && !container) {\n return throwError(() => new Error('Unable to find Container Element'));\n }\n const listenerTarget = this.getListenerTarget(container) || window;\n let to = container ? container.getBoundingClientRect().top : 0;\n if (targetNode) {\n to = isWindow(listenerTarget) ?\n window.scrollY + targetNode.getBoundingClientRect().top :\n targetNode.getBoundingClientRect().top;\n }\n // Create Animation\n this.animation = new ScrollToAnimation(container, listenerTarget, isWindow(listenerTarget), to, mergedConfigOptions, isPlatformBrowser(this.platformId));\n const onInterrupt = () => this.animation.stop();\n this.addInterruptiveEventListeners(listenerTarget, onInterrupt);\n // Start Animation\n const animation$ = this.animation.start();\n this.subscribeToAnimation(animation$, listenerTarget, onInterrupt);\n return animation$;\n }\n /**\n * Subscribe to the events emitted from the Scrolling\n * Animation. Events might be used for e.g. unsubscribing\n * once finished.\n *\n * @param animation$ The Animation Observable\n * @param listenerTarget The Listener Target for events\n * @param onInterrupt The handler for Interruptive Events\n * @returns Void\n */\n subscribeToAnimation(animation$, listenerTarget, onInterrupt) {\n const subscription = animation$\n .subscribe({\n complete: () => {\n this.removeInterruptiveEventListeners(this.interruptiveEvents, listenerTarget, onInterrupt);\n subscription.unsubscribe();\n }\n });\n }\n /**\n * Get the container HTML Element in which\n * the scrolling should happen.\n *\n * @param options The Merged Configuration Object\n * @param targetNode the targeted HTMLElement\n */\n getContainer(options, targetNode) {\n let container = null;\n if (options.container) {\n container = this.getNode(options.container, true);\n }\n else if (targetNode) {\n container = this.getFirstScrollableParent(targetNode);\n }\n return container;\n }\n /**\n * Add listeners for the Animation Interruptive Events\n * to the Listener Target.\n *\n * @param events List of events to listen to\n * @param listenerTarget Target to attach the listener on\n * @param handler Handler for when the listener fires\n * @returns Void\n */\n addInterruptiveEventListeners(listenerTarget, handler) {\n if (!listenerTarget) {\n listenerTarget = window;\n }\n this.interruptiveEvents\n .forEach(event => listenerTarget\n .addEventListener(event, handler, this.supportPassive() ? { passive: true } : false));\n }\n /**\n * Feature-detect support for passive event listeners.\n *\n * @returns Whether or not passive event listeners are supported\n */\n supportPassive() {\n let supportsPassive = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n get: () => {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassive', null, opts);\n window.removeEventListener('testPassive', null, opts);\n }\n catch (e) {\n }\n return supportsPassive;\n }\n /**\n * Remove listeners for the Animation Interrupt Event from\n * the Listener Target. Specifying the correct handler prevents\n * memory leaks and makes the allocated memory available for\n * Garbage Collection.\n *\n * @param events List of Interruptive Events to remove\n * @param listenerTarget Target to attach the listener on\n * @param handler Handler for when the listener fires\n * @returns Void\n */\n removeInterruptiveEventListeners(events, listenerTarget, handler) {\n if (!listenerTarget) {\n listenerTarget = window;\n }\n events.forEach(event => listenerTarget.removeEventListener(event, handler));\n }\n /**\n * Find the first scrollable parent Node of a given\n * Element. The DOM Tree gets searched upwards\n * to find this first scrollable parent. Parents might\n * be ignored by CSS styles applied to the HTML Element.\n *\n * @param nativeElement The Element to search the DOM Tree upwards from\n * @returns The first scrollable parent HTML Element\n */\n getFirstScrollableParent(nativeElement) {\n let style = window.getComputedStyle(nativeElement);\n const overflowRegex = /(auto|scroll|overlay)/;\n if (style.position === 'fixed') {\n return null;\n }\n let parent = nativeElement;\n while (parent.parentElement) {\n parent = parent.parentElement;\n style = window.getComputedStyle(parent);\n if (style.position === 'absolute'\n || style.overflow === 'hidden'\n || style.overflowY === 'hidden') {\n continue;\n }\n if (overflowRegex.test(style.overflow + style.overflowY)\n || parent.tagName === 'BODY') {\n return parent;\n }\n }\n return null;\n }\n /**\n * Get the Target Node to scroll to.\n *\n * @param id The given ID of the node, either a string or\n * an element reference\n * @param allowBodyTag Indicate whether or not the Document Body is\n * considered a valid Target Node\n * @returns The Target Node to scroll to\n */\n getNode(id, allowBodyTag = false) {\n let targetNode;\n if (isString(id)) {\n if (allowBodyTag && (id === 'body' || id === 'BODY')) {\n targetNode = this.document.body;\n }\n else {\n targetNode = this.document.getElementById(stripHash(id));\n }\n }\n else if (isNumber(id)) {\n targetNode = this.document.getElementById(String(id));\n }\n else if (isElementRef(id)) {\n targetNode = id.nativeElement;\n }\n else if (isNativeElement(id)) {\n targetNode = id;\n }\n return targetNode;\n }\n /**\n * Retrieve the Listener target. This Listener Target is used\n * to attach Event Listeners on. In case of the target being\n * the Document Body, we need the actual `window` to listen\n * for events.\n *\n * @param container The HTML Container element\n * @returns The Listener Target to attach events on\n */\n getListenerTarget(container) {\n if (!container) {\n return null;\n }\n return this.isDocumentBody(container) ? window : container;\n }\n /**\n * Test if a given HTML Element is the Document Body.\n *\n * @param element The given HTML Element\n * @returns Whether or not the Element is the\n * Document Body Element\n */\n isDocumentBody(element) {\n return element.tagName.toUpperCase() === 'BODY';\n }\n}\nScrollToService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.7\", ngImport: i0, type: ScrollToService, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });\nScrollToService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"14.2.7\", ngImport: i0, type: ScrollToService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.7\", ngImport: i0, type: ScrollToService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; } });\n\nclass ScrollToDirective {\n constructor(elementRef, scrollToService, renderer2) {\n this.elementRef = elementRef;\n this.scrollToService = scrollToService;\n this.renderer2 = renderer2;\n this.ngxScrollTo = DEFAULTS.target;\n this.ngxScrollToEvent = DEFAULTS.action;\n this.ngxScrollToDuration = DEFAULTS.duration;\n this.ngxScrollToEasing = DEFAULTS.easing;\n this.ngxScrollToOffset = DEFAULTS.offset;\n this.ngxScrollToOffsetMap = DEFAULTS.offsetMap;\n }\n /**\n * Angular Lifecycle Hook - After View Init\n *\n * @todo Implement Subscription for Events\n *\n * @returns void\n */\n ngAfterViewInit() {\n // Test Event Support\n if (EVENTS.indexOf(this.ngxScrollToEvent) === -1) {\n throw new Error(`Unsupported Event '${this.ngxScrollToEvent}'`);\n }\n // Listen for the trigger...\n this.renderer2.listen(this.elementRef.nativeElement, this.ngxScrollToEvent, (event) => {\n this.options = {\n target: this.ngxScrollTo,\n duration: this.ngxScrollToDuration,\n easing: this.ngxScrollToEasing,\n offset: this.ngxScrollToOffset,\n offsetMap: this.ngxScrollToOffsetMap\n };\n this.scrollToService.scrollTo(this.options);\n });\n }\n}\nScrollToDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.7\", ngImport: i0, type: ScrollToDirective, deps: [{ token: i0.ElementRef }, { token: ScrollToService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nScrollToDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"14.2.7\", type: ScrollToDirective, selector: \"[ngxScrollTo]\", inputs: { ngxScrollTo: \"ngxScrollTo\", ngxScrollToEvent: \"ngxScrollToEvent\", ngxScrollToDuration: \"ngxScrollToDuration\", ngxScrollToEasing: \"ngxScrollToEasing\", ngxScrollToOffset: \"ngxScrollToOffset\", ngxScrollToOffsetMap: \"ngxScrollToOffsetMap\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.7\", ngImport: i0, type: ScrollToDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[ngxScrollTo]'\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: ScrollToService }, { type: i0.Renderer2 }]; }, propDecorators: { ngxScrollTo: [{\n type: Input\n }], ngxScrollToEvent: [{\n type: Input\n }], ngxScrollToDuration: [{\n type: Input\n }], ngxScrollToEasing: [{\n type: Input\n }], ngxScrollToOffset: [{\n type: Input\n }], ngxScrollToOffsetMap: [{\n type: Input\n }] } });\n\n/** Scroll To Module */\nclass ScrollToModule {\n /**\n * Guaranteed singletons for provided Services across App.\n *\n * @return An Angular Module with Providers\n */\n static forRoot() {\n return {\n ngModule: ScrollToModule,\n providers: [\n ScrollToService\n ]\n };\n }\n}\nScrollToModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"14.2.7\", ngImport: i0, type: ScrollToModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nScrollToModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"14.2.7\", ngImport: i0, type: ScrollToModule, declarations: [ScrollToDirective], exports: [ScrollToDirective] });\nScrollToModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"14.2.7\", ngImport: i0, type: ScrollToModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"14.2.7\", ngImport: i0, type: ScrollToModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n ScrollToDirective\n ],\n exports: [\n ScrollToDirective\n ]\n }]\n }] });\n\n/*\n * Public API Surface of ngx-scroll-to\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ScrollToDirective, ScrollToModule, ScrollToService };\n","import * as i0 from '@angular/core';\nimport { Component, ChangeDetectionStrategy, Input, ViewChild, NgModule } from '@angular/core';\nimport { asapScheduler } from 'rxjs';\nimport ApexCharts from 'apexcharts';\n\nclass ChartComponent {\n constructor(ngZone) {\n this.ngZone = ngZone;\n this.autoUpdateSeries = true;\n }\n ngOnChanges(changes) {\n asapScheduler.schedule(() => {\n if (this.autoUpdateSeries &&\n Object.keys(changes).filter((c) => c !== \"series\").length === 0) {\n this.updateSeries(this.series, true);\n return;\n }\n this.createElement();\n });\n }\n ngOnDestroy() {\n if (this.chartObj) {\n this.chartObj.destroy();\n }\n }\n createElement() {\n const options = {};\n if (this.annotations) {\n options.annotations = this.annotations;\n }\n if (this.chart) {\n options.chart = this.chart;\n }\n if (this.colors) {\n options.colors = this.colors;\n }\n if (this.dataLabels) {\n options.dataLabels = this.dataLabels;\n }\n if (this.series) {\n options.series = this.series;\n }\n if (this.stroke) {\n options.stroke = this.stroke;\n }\n if (this.labels) {\n options.labels = this.labels;\n }\n if (this.legend) {\n options.legend = this.legend;\n }\n if (this.fill) {\n options.fill = this.fill;\n }\n if (this.tooltip) {\n options.tooltip = this.tooltip;\n }\n if (this.plotOptions) {\n options.plotOptions = this.plotOptions;\n }\n if (this.responsive) {\n options.responsive = this.responsive;\n }\n if (this.markers) {\n options.markers = this.markers;\n }\n if (this.noData) {\n options.noData = this.noData;\n }\n if (this.xaxis) {\n options.xaxis = this.xaxis;\n }\n if (this.yaxis) {\n options.yaxis = this.yaxis;\n }\n if (this.forecastDataPoints) {\n options.forecastDataPoints = this.forecastDataPoints;\n }\n if (this.grid) {\n options.grid = this.grid;\n }\n if (this.states) {\n options.states = this.states;\n }\n if (this.title) {\n options.title = this.title;\n }\n if (this.subtitle) {\n options.subtitle = this.subtitle;\n }\n if (this.theme) {\n options.theme = this.theme;\n }\n if (this.chartObj) {\n this.chartObj.destroy();\n }\n this.ngZone.runOutsideAngular(() => {\n this.chartObj = new ApexCharts(this.chartElement.nativeElement, options);\n });\n this.render();\n }\n render() {\n return this.ngZone.runOutsideAngular(() => this.chartObj.render());\n }\n updateOptions(options, redrawPaths, animate, updateSyncedCharts) {\n return this.ngZone.runOutsideAngular(() => this.chartObj.updateOptions(options, redrawPaths, animate, updateSyncedCharts));\n }\n updateSeries(newSeries, animate) {\n return this.ngZone.runOutsideAngular(() => this.chartObj.updateSeries(newSeries, animate));\n }\n appendSeries(newSeries, animate) {\n this.ngZone.runOutsideAngular(() => this.chartObj.appendSeries(newSeries, animate));\n }\n appendData(newData) {\n this.ngZone.runOutsideAngular(() => this.chartObj.appendData(newData));\n }\n toggleSeries(seriesName) {\n return this.ngZone.runOutsideAngular(() => this.chartObj.toggleSeries(seriesName));\n }\n showSeries(seriesName) {\n this.ngZone.runOutsideAngular(() => this.chartObj.showSeries(seriesName));\n }\n hideSeries(seriesName) {\n this.ngZone.runOutsideAngular(() => this.chartObj.hideSeries(seriesName));\n }\n resetSeries() {\n this.ngZone.runOutsideAngular(() => this.chartObj.resetSeries());\n }\n zoomX(min, max) {\n this.ngZone.runOutsideAngular(() => this.chartObj.zoomX(min, max));\n }\n toggleDataPointSelection(seriesIndex, dataPointIndex) {\n this.ngZone.runOutsideAngular(() => this.chartObj.toggleDataPointSelection(seriesIndex, dataPointIndex));\n }\n destroy() {\n this.chartObj.destroy();\n }\n setLocale(localeName) {\n this.ngZone.runOutsideAngular(() => this.chartObj.setLocale(localeName));\n }\n paper() {\n this.ngZone.runOutsideAngular(() => this.chartObj.paper());\n }\n addXaxisAnnotation(options, pushToMemory, context) {\n this.ngZone.runOutsideAngular(() => this.chartObj.addXaxisAnnotation(options, pushToMemory, context));\n }\n addYaxisAnnotation(options, pushToMemory, context) {\n this.ngZone.runOutsideAngular(() => this.chartObj.addYaxisAnnotation(options, pushToMemory, context));\n }\n addPointAnnotation(options, pushToMemory, context) {\n this.ngZone.runOutsideAngular(() => this.chartObj.addPointAnnotation(options, pushToMemory, context));\n }\n removeAnnotation(id, options) {\n this.ngZone.runOutsideAngular(() => this.chartObj.removeAnnotation(id, options));\n }\n clearAnnotations(options) {\n this.ngZone.runOutsideAngular(() => this.chartObj.clearAnnotations(options));\n }\n dataURI(options) {\n return this.chartObj.dataURI(options);\n }\n}\n/** @nocollapse */ /** @nocollapse */ ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.3\", ngImport: i0, type: ChartComponent, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ /** @nocollapse */ ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"13.0.3\", type: ChartComponent, selector: \"apx-chart\", inputs: { chart: \"chart\", annotations: \"annotations\", colors: \"colors\", dataLabels: \"dataLabels\", series: \"series\", stroke: \"stroke\", labels: \"labels\", legend: \"legend\", markers: \"markers\", noData: \"noData\", fill: \"fill\", tooltip: \"tooltip\", plotOptions: \"plotOptions\", responsive: \"responsive\", xaxis: \"xaxis\", yaxis: \"yaxis\", forecastDataPoints: \"forecastDataPoints\", grid: \"grid\", states: \"states\", title: \"title\", subtitle: \"subtitle\", theme: \"theme\", autoUpdateSeries: \"autoUpdateSeries\" }, viewQueries: [{ propertyName: \"chartElement\", first: true, predicate: [\"chart\"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: `
`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.3\", ngImport: i0, type: ChartComponent, decorators: [{\n type: Component,\n args: [{\n selector: \"apx-chart\",\n template: `
`,\n changeDetection: ChangeDetectionStrategy.OnPush\n }]\n }], ctorParameters: function () { return [{ type: i0.NgZone }]; }, propDecorators: { chart: [{\n type: Input\n }], annotations: [{\n type: Input\n }], colors: [{\n type: Input\n }], dataLabels: [{\n type: Input\n }], series: [{\n type: Input\n }], stroke: [{\n type: Input\n }], labels: [{\n type: Input\n }], legend: [{\n type: Input\n }], markers: [{\n type: Input\n }], noData: [{\n type: Input\n }], fill: [{\n type: Input\n }], tooltip: [{\n type: Input\n }], plotOptions: [{\n type: Input\n }], responsive: [{\n type: Input\n }], xaxis: [{\n type: Input\n }], yaxis: [{\n type: Input\n }], forecastDataPoints: [{\n type: Input\n }], grid: [{\n type: Input\n }], states: [{\n type: Input\n }], title: [{\n type: Input\n }], subtitle: [{\n type: Input\n }], theme: [{\n type: Input\n }], autoUpdateSeries: [{\n type: Input\n }], chartElement: [{\n type: ViewChild,\n args: [\"chart\", { static: true }]\n }] } });\n\nwindow.ApexCharts = ApexCharts;\nconst declerations = [ChartComponent];\nclass NgApexchartsModule {\n}\n/** @nocollapse */ /** @nocollapse */ NgApexchartsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"13.0.3\", ngImport: i0, type: NgApexchartsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n/** @nocollapse */ /** @nocollapse */ NgApexchartsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"13.0.3\", ngImport: i0, type: NgApexchartsModule, declarations: [ChartComponent], exports: [ChartComponent] });\n/** @nocollapse */ /** @nocollapse */ NgApexchartsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"13.0.3\", ngImport: i0, type: NgApexchartsModule, imports: [[]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"13.0.3\", ngImport: i0, type: NgApexchartsModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [...declerations],\n imports: [],\n exports: [...declerations],\n }]\n }] });\n\n/*\n * Public API Surface of ng-apexcharts\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ChartComponent, NgApexchartsModule };\n","/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param argument - The value to convert\n *\n * @returns The parsed date in the local time zone\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport function toDate(argument) {\n const argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (\n argument instanceof Date ||\n (typeof argument === \"object\" && argStr === \"[object Date]\")\n ) {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new argument.constructor(+argument);\n } else if (\n typeof argument === \"number\" ||\n argStr === \"[object Number]\" ||\n typeof argument === \"string\" ||\n argStr === \"[object String]\"\n ) {\n // TODO: Can we get rid of as?\n return new Date(argument);\n } else {\n // TODO: Can we get rid of as?\n return new Date(NaN);\n }\n}\n\n// Fallback for modularized imports:\nexport default toDate;\n","/**\n * @name constructFrom\n * @category Generic Helpers\n * @summary Constructs a date using the reference date and the value\n *\n * @description\n * The function constructs a new date using the constructor from the reference\n * date and the given value. It helps to build generic functions that accept\n * date extensions.\n *\n * It defaults to `Date` if the passed reference date is a number or a string.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The reference date to take constructor from\n * @param value - The value to create the date\n *\n * @returns Date initialized using the given date and value\n *\n * @example\n * import { constructFrom } from 'date-fns'\n *\n * // A function that clones a date preserving the original type\n * function cloneDate Thu Sep 11 2014 00:00:00\n */\nexport function addDays(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n _date.setDate(_date.getDate() + amount);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default addDays;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of milliseconds to be added.\n *\n * @returns The new date with the milliseconds added\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport function addMilliseconds(date, amount) {\n const timestamp = +toDate(date);\n return constructFrom(date, timestamp + amount);\n}\n\n// Fallback for modularized imports:\nexport default addMilliseconds;\n","/**\n * @module constants\n * @summary Useful constants\n * @description\n * Collection of useful date constants.\n *\n * The constants could be imported from `date-fns/constants`:\n *\n * ```ts\n * import { maxTime, minTime } from \"./constants/date-fns/constants\";\n *\n * function isAllowedTime(time) {\n * return time <= maxTime && time >= minTime;\n * }\n * ```\n */\n\n/**\n * @constant\n * @name daysInWeek\n * @summary Days in 1 week.\n */\nexport const daysInWeek = 7;\n\n/**\n * @constant\n * @name daysInYear\n * @summary Days in 1 year.\n *\n * @description\n * How many days in a year.\n *\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n */\nexport const daysInYear = 365.2425;\n\n/**\n * @constant\n * @name maxTime\n * @summary Maximum allowed time.\n *\n * @example\n * import { maxTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = 8640000000000001 <= maxTime;\n * //=> false\n *\n * new Date(8640000000000001);\n * //=> Invalid Date\n */\nexport const maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * @constant\n * @name minTime\n * @summary Minimum allowed time.\n *\n * @example\n * import { minTime } from \"./constants/date-fns/constants\";\n *\n * const isValid = -8640000000000001 >= minTime;\n * //=> false\n *\n * new Date(-8640000000000001)\n * //=> Invalid Date\n */\nexport const minTime = -maxTime;\n\n/**\n * @constant\n * @name millisecondsInWeek\n * @summary Milliseconds in 1 week.\n */\nexport const millisecondsInWeek = 604800000;\n\n/**\n * @constant\n * @name millisecondsInDay\n * @summary Milliseconds in 1 day.\n */\nexport const millisecondsInDay = 86400000;\n\n/**\n * @constant\n * @name millisecondsInMinute\n * @summary Milliseconds in 1 minute\n */\nexport const millisecondsInMinute = 60000;\n\n/**\n * @constant\n * @name millisecondsInHour\n * @summary Milliseconds in 1 hour\n */\nexport const millisecondsInHour = 3600000;\n\n/**\n * @constant\n * @name millisecondsInSecond\n * @summary Milliseconds in 1 second\n */\nexport const millisecondsInSecond = 1000;\n\n/**\n * @constant\n * @name minutesInYear\n * @summary Minutes in 1 year.\n */\nexport const minutesInYear = 525600;\n\n/**\n * @constant\n * @name minutesInMonth\n * @summary Minutes in 1 month.\n */\nexport const minutesInMonth = 43200;\n\n/**\n * @constant\n * @name minutesInDay\n * @summary Minutes in 1 day.\n */\nexport const minutesInDay = 1440;\n\n/**\n * @constant\n * @name minutesInHour\n * @summary Minutes in 1 hour.\n */\nexport const minutesInHour = 60;\n\n/**\n * @constant\n * @name monthsInQuarter\n * @summary Months in 1 quarter.\n */\nexport const monthsInQuarter = 3;\n\n/**\n * @constant\n * @name monthsInYear\n * @summary Months in 1 year.\n */\nexport const monthsInYear = 12;\n\n/**\n * @constant\n * @name quartersInYear\n * @summary Quarters in 1 year\n */\nexport const quartersInYear = 4;\n\n/**\n * @constant\n * @name secondsInHour\n * @summary Seconds in 1 hour.\n */\nexport const secondsInHour = 3600;\n\n/**\n * @constant\n * @name secondsInMinute\n * @summary Seconds in 1 minute.\n */\nexport const secondsInMinute = 60;\n\n/**\n * @constant\n * @name secondsInDay\n * @summary Seconds in 1 day.\n */\nexport const secondsInDay = secondsInHour * 24;\n\n/**\n * @constant\n * @name secondsInWeek\n * @summary Seconds in 1 week.\n */\nexport const secondsInWeek = secondsInDay * 7;\n\n/**\n * @constant\n * @name secondsInYear\n * @summary Seconds in 1 year.\n */\nexport const secondsInYear = secondsInDay * daysInYear;\n\n/**\n * @constant\n * @name secondsInMonth\n * @summary Seconds in 1 month\n */\nexport const secondsInMonth = secondsInYear / 12;\n\n/**\n * @constant\n * @name secondsInQuarter\n * @summary Seconds in 1 quarter.\n */\nexport const secondsInQuarter = secondsInMonth * 3;\n","import { addMilliseconds } from \"./addMilliseconds.mjs\";\nimport { millisecondsInHour } from \"./constants.mjs\";\n\n/**\n * @name addHours\n * @category Hour Helpers\n * @summary Add the specified number of hours to the given date.\n *\n * @description\n * Add the specified number of hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of hours to be added.\n *\n * @returns The new date with the hours added\n *\n * @example\n * // Add 2 hours to 10 July 2014 23:00:00:\n * const result = addHours(new Date(2014, 6, 10, 23, 0), 2)\n * //=> Fri Jul 11 2014 01:00:00\n */\nexport function addHours(date, amount) {\n return addMilliseconds(date, amount * millisecondsInHour);\n}\n\n// Fallback for modularized imports:\nexport default addHours;\n","import { addMilliseconds } from \"./addMilliseconds.mjs\";\nimport { millisecondsInMinute } from \"./constants.mjs\";\n\n/**\n * @name addMinutes\n * @category Minute Helpers\n * @summary Add the specified number of minutes to the given date.\n *\n * @description\n * Add the specified number of minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of minutes to be added.\n *\n * @returns The new date with the minutes added\n *\n * @example\n * // Add 30 minutes to 10 July 2014 12:00:00:\n * const result = addMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 12:30:00\n */\nexport function addMinutes(date, amount) {\n return addMilliseconds(date, amount * millisecondsInMinute);\n}\n\n// Fallback for modularized imports:\nexport default addMinutes;\n","import { addMilliseconds } from \"./addMilliseconds.mjs\";\n\n/**\n * @name addSeconds\n * @category Second Helpers\n * @summary Add the specified number of seconds to the given date.\n *\n * @description\n * Add the specified number of seconds to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of seconds to be added.\n *\n * @returns The new date with the seconds added\n *\n * @example\n * // Add 30 seconds to 10 July 2014 12:45:00:\n * const result = addSeconds(new Date(2014, 6, 10, 12, 45, 0), 30)\n * //=> Thu Jul 10 2014 12:45:30\n */\nexport function addSeconds(date, amount) {\n return addMilliseconds(date, amount * 1000);\n}\n\n// Fallback for modularized imports:\nexport default addSeconds;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a day\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\nexport function startOfDay(date) {\n const _date = toDate(date);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfDay;\n","import { toDate } from \"../toDate.mjs\";\n\n/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport function getTimezoneOffsetInMilliseconds(date) {\n const _date = toDate(date);\n const utcDate = new Date(\n Date.UTC(\n _date.getFullYear(),\n _date.getMonth(),\n _date.getDate(),\n _date.getHours(),\n _date.getMinutes(),\n _date.getSeconds(),\n _date.getMilliseconds(),\n ),\n );\n utcDate.setUTCFullYear(_date.getFullYear());\n return +date - +utcDate;\n}\n","import { differenceInCalendarDays } from \"./differenceInCalendarDays.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between two dates. Fractional days are\n * truncated towards zero.\n *\n * One \"full day\" is the distance between a local time in one day to the same\n * local time on the next or previous day. A full day can sometimes be less than\n * or more than 24 hours if a daylight savings change happens between two dates.\n *\n * To ignore DST and only measure exact 24-hour periods, use this instead:\n * `Math.trunc(differenceInHours(dateLeft, dateRight)/24)|0`.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of full days according to the local timezone\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n *\n * @example\n * // How many full days are between\n * // 1 March 2020 0:00 and 1 June 2020 0:00 ?\n * // Note: because local time is used, the\n * // result will always be 92 days, even in\n * // time zones where DST starts and the\n * // period has only 92*24-1 hours.\n * const result = differenceInDays(\n * new Date(2020, 5, 1),\n * new Date(2020, 2, 1)\n * )\n * //=> 92\n */\nexport function differenceInDays(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n\n const sign = compareLocalAsc(_dateLeft, _dateRight);\n const difference = Math.abs(differenceInCalendarDays(_dateLeft, _dateRight));\n\n _dateLeft.setDate(_dateLeft.getDate() - sign * difference);\n\n // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n const isLastDayNotFull = Number(\n compareLocalAsc(_dateLeft, _dateRight) === -sign,\n );\n const result = sign * (difference - isLastDayNotFull);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n}\n\n// Like `compareAsc` but uses local time not UTC, which is needed\n// for accurate equality comparisons of UTC timestamps that end up\n// having the same representation in local time, e.g. one hour before\n// DST ends vs. the instant that DST ends.\nfunction compareLocalAsc(dateLeft, dateRight) {\n const diff =\n dateLeft.getFullYear() - dateRight.getFullYear() ||\n dateLeft.getMonth() - dateRight.getMonth() ||\n dateLeft.getDate() - dateRight.getDate() ||\n dateLeft.getHours() - dateRight.getHours() ||\n dateLeft.getMinutes() - dateRight.getMinutes() ||\n dateLeft.getSeconds() - dateRight.getSeconds() ||\n dateLeft.getMilliseconds() - dateRight.getMilliseconds();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1;\n // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}\n\n// Fallback for modularized imports:\nexport default differenceInDays;\n","import { millisecondsInDay } from \"./constants.mjs\";\nimport { startOfDay } from \"./startOfDay.mjs\";\nimport { getTimezoneOffsetInMilliseconds } from \"./_lib/getTimezoneOffsetInMilliseconds.mjs\";\n\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of calendar days\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\nexport function differenceInCalendarDays(dateLeft, dateRight) {\n const startOfDayLeft = startOfDay(dateLeft);\n const startOfDayRight = startOfDay(dateRight);\n\n const timestampLeft =\n +startOfDayLeft - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n const timestampRight =\n +startOfDayRight - getTimezoneOffsetInMilliseconds(startOfDayRight);\n\n // Round the number of days to the nearest integer because the number of\n // milliseconds in a day is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round((timestampLeft - timestampRight) / millisecondsInDay);\n}\n\n// Fallback for modularized imports:\nexport default differenceInCalendarDays;\n","export function getRoundingMethod(method) {\n return (number) => {\n const round = method ? Math[method] : Math.trunc;\n const result = round(number);\n // Prevent negative zero\n return result === 0 ? 0 : result;\n };\n}\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name differenceInMilliseconds\n * @category Millisecond Helpers\n * @summary Get the number of milliseconds between the given dates.\n *\n * @description\n * Get the number of milliseconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n *\n * @returns The number of milliseconds\n *\n * @example\n * // How many milliseconds are between\n * // 2 July 2014 12:30:20.600 and 2 July 2014 12:30:21.700?\n * const result = differenceInMilliseconds(\n * new Date(2014, 6, 2, 12, 30, 21, 700),\n * new Date(2014, 6, 2, 12, 30, 20, 600)\n * )\n * //=> 1100\n */\nexport function differenceInMilliseconds(dateLeft, dateRight) {\n return +toDate(dateLeft) - +toDate(dateRight);\n}\n\n// Fallback for modularized imports:\nexport default differenceInMilliseconds;\n","import { getRoundingMethod } from \"./_lib/getRoundingMethod.mjs\";\nimport { millisecondsInMinute } from \"./constants.mjs\";\nimport { differenceInMilliseconds } from \"./differenceInMilliseconds.mjs\";\n\n/**\n * The {@link differenceInMinutes} function options.\n */\n\n/**\n * @name differenceInMinutes\n * @category Minute Helpers\n * @summary Get the number of minutes between the given dates.\n *\n * @description\n * Get the signed number of full (rounded towards 0) minutes between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of minutes\n *\n * @example\n * // How many minutes are between 2 July 2014 12:07:59 and 2 July 2014 12:20:00?\n * const result = differenceInMinutes(\n * new Date(2014, 6, 2, 12, 20, 0),\n * new Date(2014, 6, 2, 12, 7, 59)\n * )\n * //=> 12\n *\n * @example\n * // How many minutes are between 10:01:59 and 10:00:00\n * const result = differenceInMinutes(\n * new Date(2000, 0, 1, 10, 0, 0),\n * new Date(2000, 0, 1, 10, 1, 59)\n * )\n * //=> -1\n */\nexport function differenceInMinutes(dateLeft, dateRight, options) {\n const diff =\n differenceInMilliseconds(dateLeft, dateRight) / millisecondsInMinute;\n return getRoundingMethod(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\nexport default differenceInMinutes;\n","import { getRoundingMethod } from \"./_lib/getRoundingMethod.mjs\";\nimport { differenceInMilliseconds } from \"./differenceInMilliseconds.mjs\";\n\n/**\n * The {@link differenceInSeconds} function options.\n */\n\n/**\n * @name differenceInSeconds\n * @category Second Helpers\n * @summary Get the number of seconds between the given dates.\n *\n * @description\n * Get the number of seconds between the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The later date\n * @param dateRight - The earlier date\n * @param options - An object with options.\n *\n * @returns The number of seconds\n *\n * @example\n * // How many seconds are between\n * // 2 July 2014 12:30:07.999 and 2 July 2014 12:30:20.000?\n * const result = differenceInSeconds(\n * new Date(2014, 6, 2, 12, 30, 20, 0),\n * new Date(2014, 6, 2, 12, 30, 7, 999)\n * )\n * //=> 12\n */\nexport function differenceInSeconds(dateLeft, dateRight, options) {\n const diff = differenceInMilliseconds(dateLeft, dateRight) / 1000;\n return getRoundingMethod(options?.roundingMethod)(diff);\n}\n\n// Fallback for modularized imports:\nexport default differenceInSeconds;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a day\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\nexport function endOfDay(date) {\n const _date = toDate(date);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfDay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The end of a month\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * const result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\nexport function endOfMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n _date.setFullYear(_date.getFullYear(), month + 1, 0);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfMonth;\n","let defaultOptions = {};\n\nexport function getDefaultOptions() {\n return defaultOptions;\n}\n\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link endOfWeek} function options.\n */\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The end of a week\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport function endOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n\n _date.setDate(_date.getDate() + diff);\n _date.setHours(23, 59, 59, 999);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default endOfWeek;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of week, 0 represents Sunday\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\nexport function getDay(date) {\n const _date = toDate(date);\n const day = _date.getDay();\n return day;\n}\n\n// Fallback for modularized imports:\nexport default getDay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The month index (0-11)\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\nexport function getMonth(date) {\n const _date = toDate(date);\n const month = _date.getMonth();\n return month;\n}\n\n// Fallback for modularized imports:\nexport default getMonth;\n","import { startOfDay } from \"./startOfDay.mjs\";\n\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day (and year and month)?\n *\n * @description\n * Are the given dates in the same day (and year and month)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n\n * @returns The dates are in the same day (and year and month)\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n *\n * @example\n * // Are 4 September and 4 October in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2014, 9, 4))\n * //=> false\n *\n * @example\n * // Are 4 September, 2014 and 4 September, 2015 in the same day?\n * const result = isSameDay(new Date(2014, 8, 4), new Date(2015, 8, 4))\n * //=> false\n */\nexport function isSameDay(dateLeft, dateRight) {\n const dateLeftStartOfDay = startOfDay(dateLeft);\n const dateRightStartOfDay = startOfDay(dateRight);\n\n return +dateLeftStartOfDay === +dateRightStartOfDay;\n}\n\n// Fallback for modularized imports:\nexport default isSameDay;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isSameMonth\n * @category Month Helpers\n * @summary Are the given dates in the same month (and year)?\n *\n * @description\n * Are the given dates in the same month (and year)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n *\n * @returns The dates are in the same month (and year)\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n *\n * @example\n * // Are 2 September 2014 and 25 September 2015 in the same month?\n * const result = isSameMonth(new Date(2014, 8, 2), new Date(2015, 8, 25))\n * //=> false\n */\nexport function isSameMonth(dateLeft, dateRight) {\n const _dateLeft = toDate(dateLeft);\n const _dateRight = toDate(dateRight);\n return (\n _dateLeft.getFullYear() === _dateRight.getFullYear() &&\n _dateLeft.getMonth() === _dateRight.getMonth()\n );\n}\n\n// Fallback for modularized imports:\nexport default isSameMonth;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfSecond\n * @category Second Helpers\n * @summary Return the start of a second for the given date.\n *\n * @description\n * Return the start of a second for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a second\n *\n * @example\n * // The start of a second for 1 December 2014 22:15:45.400:\n * const result = startOfSecond(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:45.000\n */\nexport function startOfSecond(date) {\n const _date = toDate(date);\n _date.setMilliseconds(0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfSecond;\n","import { startOfSecond } from \"./startOfSecond.mjs\";\n\n/**\n * @name isSameSecond\n * @category Second Helpers\n * @summary Are the given dates in the same second (and hour and day)?\n *\n * @description\n * Are the given dates in the same second (and hour and day)?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dateLeft - The first date to check\n * @param dateRight - The second date to check\n *\n * @returns The dates are in the same second (and hour and day)\n *\n * @example\n * // Are 4 September 2014 06:30:15.000 and 4 September 2014 06:30.15.500 in the same second?\n * const result = isSameSecond(\n * new Date(2014, 8, 4, 6, 30, 15),\n * new Date(2014, 8, 4, 6, 30, 15, 500)\n * )\n * //=> true\n *\n * @example\n * // Are 4 September 2014 06:00:15.000 and 4 September 2014 06:01.15.000 in the same second?\n * const result = isSameSecond(\n * new Date(2014, 8, 4, 6, 0, 15),\n * new Date(2014, 8, 4, 6, 1, 15)\n * )\n * //=> false\n *\n * @example\n * // Are 4 September 2014 06:00:15.000 and 5 September 2014 06:00.15.000 in the same second?\n * const result = isSameSecond(\n * new Date(2014, 8, 4, 6, 0, 15),\n * new Date(2014, 8, 5, 6, 0, 15)\n * )\n * //=> false\n */\nexport function isSameSecond(dateLeft, dateRight) {\n const dateLeftStartOfSecond = startOfSecond(dateLeft);\n const dateRightStartOfSecond = startOfSecond(dateRight);\n\n return +dateLeftStartOfSecond === +dateRightStartOfSecond;\n}\n\n// Fallback for modularized imports:\nexport default isSameSecond;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name max\n * @category Common Helpers\n * @summary Return the latest of the given dates.\n *\n * @description\n * Return the latest of the given dates.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param dates - The dates to compare\n *\n * @returns The latest of the dates\n *\n * @example\n * // Which of these dates is the latest?\n * const result = max([\n * new Date(1989, 6, 10),\n * new Date(1987, 1, 11),\n * new Date(1995, 6, 2),\n * new Date(1990, 0, 1)\n * ])\n * //=> Sun Jul 02 1995 00:00:00\n */\nexport function max(dates) {\n let result;\n dates.forEach(function (dirtyDate) {\n const currentDate = toDate(dirtyDate);\n\n if (\n result === undefined ||\n result < currentDate ||\n isNaN(Number(currentDate))\n ) {\n result = currentDate;\n }\n });\n\n return result || new Date(NaN);\n}\n\n// Fallback for modularized imports:\nexport default max;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param hours - The hours of the new date\n *\n * @returns The new date with the hours set\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * const result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\nexport function setHours(date, hours) {\n const _date = toDate(date);\n _date.setHours(hours);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setHours;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param minutes - The minutes of the new date\n *\n * @returns The new date with the minutes set\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\nexport function setMinutes(date, minutes) {\n const _date = toDate(date);\n _date.setMinutes(minutes);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMinutes;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfMinute\n * @category Minute Helpers\n * @summary Return the start of a minute for the given date.\n *\n * @description\n * Return the start of a minute for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a minute\n *\n * @example\n * // The start of a minute for 1 December 2014 22:15:45.400:\n * const result = startOfMinute(new Date(2014, 11, 1, 22, 15, 45, 400))\n * //=> Mon Dec 01 2014 22:15:00\n */\nexport function startOfMinute(date) {\n const _date = toDate(date);\n _date.setSeconds(0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMinute;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of a month\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * const result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfMonth(date) {\n const _date = toDate(date);\n _date.setDate(1);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfMonth;\n","import { toDate } from \"./toDate.mjs\";\nimport { getDefaultOptions } from \"./_lib/defaultOptions.mjs\";\n\n/**\n * The {@link startOfWeek} function options.\n */\n\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n * @param options - An object with options\n *\n * @returns The start of a week\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfWeek(date, options) {\n const defaultOptions = getDefaultOptions();\n const weekStartsOn =\n options?.weekStartsOn ??\n options?.locale?.options?.weekStartsOn ??\n defaultOptions.weekStartsOn ??\n defaultOptions.locale?.options?.weekStartsOn ??\n 0;\n\n const _date = toDate(date);\n const day = _date.getDay();\n const diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n\n _date.setDate(_date.getDate() - diff);\n _date.setHours(0, 0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfWeek;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The hours\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\nexport function getHours(date) {\n const _date = toDate(date);\n const hours = _date.getHours();\n return hours;\n}\n\n// Fallback for modularized imports:\nexport default getHours;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The minutes\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\nexport function getMinutes(date) {\n const _date = toDate(date);\n const minutes = _date.getMinutes();\n return minutes;\n}\n\n// Fallback for modularized imports:\nexport default getMinutes;\n","import { addDays, addHours, addMinutes, addSeconds, differenceInDays, differenceInMinutes, differenceInSeconds, endOfDay, endOfMonth, endOfWeek, getDay, getMonth, isSameDay, isSameMonth, isSameSecond, max, setHours, setMinutes, startOfDay, startOfMinute, startOfMonth, startOfWeek, getHours, getMinutes, } from 'date-fns';\nfunction getTimezoneOffset(date) {\n return new Date(date).getTimezoneOffset();\n}\nexport function adapterFactory() {\n return {\n addDays: addDays,\n addHours: addHours,\n addMinutes: addMinutes,\n addSeconds: addSeconds,\n differenceInDays: differenceInDays,\n differenceInMinutes: differenceInMinutes,\n differenceInSeconds: differenceInSeconds,\n endOfDay: endOfDay,\n endOfMonth: endOfMonth,\n endOfWeek: endOfWeek,\n getDay: getDay,\n getMonth: getMonth,\n isSameDay: isSameDay,\n isSameMonth: isSameMonth,\n isSameSecond: isSameSecond,\n max: max,\n setHours: setHours,\n setMinutes: setMinutes,\n startOfDay: startOfDay,\n startOfMinute: startOfMinute,\n startOfMonth: startOfMonth,\n startOfWeek: startOfWeek,\n getHours: getHours,\n getMinutes: getMinutes,\n getTimezoneOffset: getTimezoneOffset,\n };\n}\n","import { addDays } from \"./addDays.mjs\";\n\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of weeks to be added.\n *\n * @returns The new date with the weeks added\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nexport function addWeeks(date, amount) {\n const days = amount * 7;\n return addDays(date, days);\n}\n\n// Fallback for modularized imports:\nexport default addWeeks;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be added.\n *\n * @returns The new date with the months added\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n *\n * // Add one month to 30 January 2023:\n * const result = addMonths(new Date(2023, 0, 30), 1)\n * //=> Tue Feb 28 2023 00:00:00\n */\nexport function addMonths(date, amount) {\n const _date = toDate(date);\n if (isNaN(amount)) return constructFrom(date, NaN);\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return _date;\n }\n const dayOfMonth = _date.getDate();\n\n // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n const endOfDesiredMonth = constructFrom(date, _date.getTime());\n endOfDesiredMonth.setMonth(_date.getMonth() + amount + 1, 0);\n const daysInMonth = endOfDesiredMonth.getDate();\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n _date.setFullYear(\n endOfDesiredMonth.getFullYear(),\n endOfDesiredMonth.getMonth(),\n dayOfMonth,\n );\n return _date;\n }\n}\n\n// Fallback for modularized imports:\nexport default addMonths;\n","import { addDays } from \"./addDays.mjs\";\n\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of days to be subtracted.\n *\n * @returns The new date with the days subtracted\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\nexport function subDays(date, amount) {\n return addDays(date, -amount);\n}\n\n// Fallback for modularized imports:\nexport default subDays;\n","import { addWeeks } from \"./addWeeks.mjs\";\n\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of weeks to be subtracted.\n *\n * @returns The new date with the weeks subtracted\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * const result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\nexport function subWeeks(date, amount) {\n return addWeeks(date, -amount);\n}\n\n// Fallback for modularized imports:\nexport default subWeeks;\n","import { addMonths } from \"./addMonths.mjs\";\n\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of months to be subtracted.\n *\n * @returns The new date with the months subtracted\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function subMonths(date, amount) {\n return addMonths(date, -amount);\n}\n\n// Fallback for modularized imports:\nexport default subMonths;\n","import { startOfWeek } from \"./startOfWeek.mjs\";\n\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * const result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\nexport function startOfISOWeek(date) {\n return startOfWeek(date, { weekStartsOn: 1 });\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeek;\n","import { millisecondsInWeek } from \"./constants.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { startOfISOWeekYear } from \"./startOfISOWeekYear.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\nexport function getISOWeek(date) {\n const _date = toDate(date);\n const diff = +startOfISOWeek(_date) - +startOfISOWeekYear(_date);\n\n // Round the number of weeks to the nearest integer because the number of\n // milliseconds in a week is not constant (e.g. it's different in the week of\n // the daylight saving time clock shift).\n return Math.round(diff / millisecondsInWeek) + 1;\n}\n\n// Fallback for modularized imports:\nexport default getISOWeek;\n","import { getISOWeekYear } from \"./getISOWeekYear.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an ISO week-numbering year\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\nexport function startOfISOWeekYear(date) {\n const year = getISOWeekYear(date);\n const fourthOfJanuary = constructFrom(date, 0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n return startOfISOWeek(fourthOfJanuary);\n}\n\n// Fallback for modularized imports:\nexport default startOfISOWeekYear;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { startOfISOWeek } from \"./startOfISOWeek.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The ISO week-numbering year\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\nexport function getISOWeekYear(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n\n const fourthOfJanuaryOfNextYear = constructFrom(date, 0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n const startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n\n const fourthOfJanuaryOfThisYear = constructFrom(date, 0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n const startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (_date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (_date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}\n\n// Fallback for modularized imports:\nexport default getISOWeekYear;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setDate\n * @category Day Helpers\n * @summary Set the day of the month to the given date.\n *\n * @description\n * Set the day of the month to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param dayOfMonth - The day of the month of the new date\n *\n * @returns The new date with the day of the month set\n *\n * @example\n * // Set the 30th day of the month to 1 September 2014:\n * const result = setDate(new Date(2014, 8, 1), 30)\n * //=> Tue Sep 30 2014 00:00:00\n */\nexport function setDate(date, dayOfMonth) {\n const _date = toDate(date);\n _date.setDate(dayOfMonth);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setDate;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { getDaysInMonth } from \"./getDaysInMonth.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param month - The month index to set (0-11)\n *\n * @returns The new date with the month set\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\nexport function setMonth(date, month) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n const day = _date.getDate();\n\n const dateWithDesiredMonth = constructFrom(date, 0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n const daysInMonth = getDaysInMonth(dateWithDesiredMonth);\n // Set the last day of the new month\n // if the original date was the last day of the longer month\n _date.setMonth(month, Math.min(day, daysInMonth));\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setMonth;\n","import { toDate } from \"./toDate.mjs\";\nimport { constructFrom } from \"./constructFrom.mjs\";\n\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The number of days in a month\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\nexport function getDaysInMonth(date) {\n const _date = toDate(date);\n const year = _date.getFullYear();\n const monthIndex = _date.getMonth();\n const lastDayOfMonth = constructFrom(date, 0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}\n\n// Fallback for modularized imports:\nexport default getDaysInMonth;\n","import { constructFrom } from \"./constructFrom.mjs\";\nimport { toDate } from \"./toDate.mjs\";\n\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param year - The year of the new date\n *\n * @returns The new date with the year set\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\nexport function setYear(date, year) {\n const _date = toDate(date);\n\n // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n if (isNaN(+_date)) {\n return constructFrom(date, NaN);\n }\n\n _date.setFullYear(year);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default setYear;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getDate\n * @category Day Helpers\n * @summary Get the day of the month of the given date.\n *\n * @description\n * Get the day of the month of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The day of month\n *\n * @example\n * // Which day of the month is 29 February 2012?\n * const result = getDate(new Date(2012, 1, 29))\n * //=> 29\n */\nexport function getDate(date) {\n const _date = toDate(date);\n const dayOfMonth = _date.getDate();\n return dayOfMonth;\n}\n\n// Fallback for modularized imports:\nexport default getDate;\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The given date\n *\n * @returns The year\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport function getYear(date) {\n return toDate(date).getFullYear();\n}\n\n// Fallback for modularized imports:\nexport default getYear;\n","import { __assign } from \"tslib\";\nimport { adapterFactory as baseAdapterFactory } from 'calendar-utils/date-adapters/date-fns';\nimport { addWeeks, addMonths, subDays, subWeeks, subMonths, getISOWeek, setDate, setMonth, setYear, getDate, getYear, } from 'date-fns';\nexport function adapterFactory() {\n return __assign(__assign({}, baseAdapterFactory()), { addWeeks: addWeeks, addMonths: addMonths, subDays: subDays, subWeeks: subWeeks, subMonths: subMonths, getISOWeek: getISOWeek, setDate: setDate, setMonth: setMonth, setYear: setYear, getDate: getDate, getYear: getYear });\n}\n","// previous version:\n// https://github.com/angular-ui/bootstrap/blob/07c31d0731f7cb068a1932b8e01d2312b796b4ec/src/position/position.js\nvar Positioning = /** @class */ (function () {\n function Positioning() {\n }\n Positioning.prototype.getAllStyles = function (element) { return window.getComputedStyle(element); };\n Positioning.prototype.getStyle = function (element, prop) { return this.getAllStyles(element)[prop]; };\n Positioning.prototype.isStaticPositioned = function (element) {\n return (this.getStyle(element, 'position') || 'static') === 'static';\n };\n Positioning.prototype.offsetParent = function (element) {\n var offsetParentEl = element.offsetParent || document.documentElement;\n while (offsetParentEl && offsetParentEl !== document.documentElement && this.isStaticPositioned(offsetParentEl)) {\n offsetParentEl = offsetParentEl.offsetParent;\n }\n return offsetParentEl || document.documentElement;\n };\n Positioning.prototype.position = function (element, round) {\n if (round === void 0) { round = true; }\n var elPosition;\n var parentOffset = { width: 0, height: 0, top: 0, bottom: 0, left: 0, right: 0 };\n if (this.getStyle(element, 'position') === 'fixed') {\n elPosition = element.getBoundingClientRect();\n elPosition = {\n top: elPosition.top,\n bottom: elPosition.bottom,\n left: elPosition.left,\n right: elPosition.right,\n height: elPosition.height,\n width: elPosition.width\n };\n }\n else {\n var offsetParentEl = this.offsetParent(element);\n elPosition = this.offset(element, false);\n if (offsetParentEl !== document.documentElement) {\n parentOffset = this.offset(offsetParentEl, false);\n }\n parentOffset.top += offsetParentEl.clientTop;\n parentOffset.left += offsetParentEl.clientLeft;\n }\n elPosition.top -= parentOffset.top;\n elPosition.bottom -= parentOffset.top;\n elPosition.left -= parentOffset.left;\n elPosition.right -= parentOffset.left;\n if (round) {\n elPosition.top = Math.round(elPosition.top);\n elPosition.bottom = Math.round(elPosition.bottom);\n elPosition.left = Math.round(elPosition.left);\n elPosition.right = Math.round(elPosition.right);\n }\n return elPosition;\n };\n Positioning.prototype.offset = function (element, round) {\n if (round === void 0) { round = true; }\n var elBcr = element.getBoundingClientRect();\n var viewportOffset = {\n top: window.pageYOffset - document.documentElement.clientTop,\n left: window.pageXOffset - document.documentElement.clientLeft\n };\n var elOffset = {\n height: elBcr.height || element.offsetHeight,\n width: elBcr.width || element.offsetWidth,\n top: elBcr.top + viewportOffset.top,\n bottom: elBcr.bottom + viewportOffset.top,\n left: elBcr.left + viewportOffset.left,\n right: elBcr.right + viewportOffset.left\n };\n if (round) {\n elOffset.height = Math.round(elOffset.height);\n elOffset.width = Math.round(elOffset.width);\n elOffset.top = Math.round(elOffset.top);\n elOffset.bottom = Math.round(elOffset.bottom);\n elOffset.left = Math.round(elOffset.left);\n elOffset.right = Math.round(elOffset.right);\n }\n return elOffset;\n };\n /*\n Return false if the element to position is outside the viewport\n */\n Positioning.prototype.positionElements = function (hostElement, targetElement, placement, appendToBody) {\n var _a = placement.split('-'), _b = _a[0], placementPrimary = _b === void 0 ? 'top' : _b, _c = _a[1], placementSecondary = _c === void 0 ? 'center' : _c;\n var hostElPosition = appendToBody ? this.offset(hostElement, false) : this.position(hostElement, false);\n var targetElStyles = this.getAllStyles(targetElement);\n var marginTop = parseFloat(targetElStyles.marginTop);\n var marginBottom = parseFloat(targetElStyles.marginBottom);\n var marginLeft = parseFloat(targetElStyles.marginLeft);\n var marginRight = parseFloat(targetElStyles.marginRight);\n var topPosition = 0;\n var leftPosition = 0;\n switch (placementPrimary) {\n case 'top':\n topPosition = (hostElPosition.top - (targetElement.offsetHeight + marginTop + marginBottom));\n break;\n case 'bottom':\n topPosition = (hostElPosition.top + hostElPosition.height);\n break;\n case 'left':\n leftPosition = (hostElPosition.left - (targetElement.offsetWidth + marginLeft + marginRight));\n break;\n case 'right':\n leftPosition = (hostElPosition.left + hostElPosition.width);\n break;\n }\n switch (placementSecondary) {\n case 'top':\n topPosition = hostElPosition.top;\n break;\n case 'bottom':\n topPosition = hostElPosition.top + hostElPosition.height - targetElement.offsetHeight;\n break;\n case 'left':\n leftPosition = hostElPosition.left;\n break;\n case 'right':\n leftPosition = hostElPosition.left + hostElPosition.width - targetElement.offsetWidth;\n break;\n case 'center':\n if (placementPrimary === 'top' || placementPrimary === 'bottom') {\n leftPosition = (hostElPosition.left + hostElPosition.width / 2 - targetElement.offsetWidth / 2);\n }\n else {\n topPosition = (hostElPosition.top + hostElPosition.height / 2 - targetElement.offsetHeight / 2);\n }\n break;\n }\n /// The translate3d/gpu acceleration render a blurry text on chrome, the next line is commented until a browser fix\n // targetElement.style.transform = `translate3d(${Math.round(leftPosition)}px, ${Math.floor(topPosition)}px, 0px)`;\n targetElement.style.transform = \"translate(\" + Math.round(leftPosition) + \"px, \" + Math.round(topPosition) + \"px)\";\n // Check if the targetElement is inside the viewport\n var targetElBCR = targetElement.getBoundingClientRect();\n var html = document.documentElement;\n var windowHeight = window.innerHeight || html.clientHeight;\n var windowWidth = window.innerWidth || html.clientWidth;\n return targetElBCR.left >= 0 && targetElBCR.top >= 0 && targetElBCR.right <= windowWidth &&\n targetElBCR.bottom <= windowHeight;\n };\n return Positioning;\n}());\nexport { Positioning };\nvar placementSeparator = /\\s+/;\nvar positionService = new Positioning();\n/*\n * Accept the placement array and applies the appropriate placement dependent on the viewport.\n * Returns the applied placement.\n * In case of auto placement, placements are selected in order\n * 'top', 'bottom', 'left', 'right',\n * 'top-left', 'top-right',\n * 'bottom-left', 'bottom-right',\n * 'left-top', 'left-bottom',\n * 'right-top', 'right-bottom'.\n * */\nexport function positionElements(hostElement, targetElement, placement, appendToBody, baseClass) {\n var placementVals = Array.isArray(placement) ? placement : placement.split(placementSeparator);\n var allowedPlacements = [\n 'top', 'bottom', 'left', 'right', 'top-left', 'top-right', 'bottom-left', 'bottom-right', 'left-top', 'left-bottom',\n 'right-top', 'right-bottom'\n ];\n var classList = targetElement.classList;\n var addClassesToTarget = function (targetPlacement) {\n var _a = targetPlacement.split('-'), primary = _a[0], secondary = _a[1];\n var classes = [];\n if (baseClass) {\n classes.push(baseClass + \"-\" + primary);\n if (secondary) {\n classes.push(baseClass + \"-\" + primary + \"-\" + secondary);\n }\n classes.forEach(function (classname) { classList.add(classname); });\n }\n return classes;\n };\n // Remove old placement classes to avoid issues\n if (baseClass) {\n allowedPlacements.forEach(function (placementToRemove) { classList.remove(baseClass + \"-\" + placementToRemove); });\n }\n // replace auto placement with other placements\n var hasAuto = placementVals.findIndex(function (val) { return val === 'auto'; });\n if (hasAuto >= 0) {\n allowedPlacements.forEach(function (obj) {\n if (placementVals.find(function (val) { return val.search('^' + obj) !== -1; }) == null) {\n placementVals.splice(hasAuto++, 1, obj);\n }\n });\n }\n // coordinates where to position\n // Required for transform:\n var style = targetElement.style;\n style.position = 'absolute';\n style.top = '0';\n style.left = '0';\n style['will-change'] = 'transform';\n var testPlacement;\n var isInViewport = false;\n for (var _i = 0, placementVals_1 = placementVals; _i < placementVals_1.length; _i++) {\n testPlacement = placementVals_1[_i];\n var addedClasses = addClassesToTarget(testPlacement);\n if (positionService.positionElements(hostElement, targetElement, testPlacement, appendToBody)) {\n isInViewport = true;\n break;\n }\n // Remove the baseClasses for further calculation\n if (baseClass) {\n addedClasses.forEach(function (classname) { classList.remove(classname); });\n }\n }\n if (!isInViewport) {\n // If nothing match, the first placement is the default one\n testPlacement = placementVals[0];\n addClassesToTarget(testPlacement);\n positionService.positionElements(hostElement, targetElement, testPlacement, appendToBody);\n }\n return testPlacement;\n}\n","var __assign = (this && this.__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 __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\nexport var DAYS_OF_WEEK;\n(function (DAYS_OF_WEEK) {\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"SUNDAY\"] = 0] = \"SUNDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"MONDAY\"] = 1] = \"MONDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"TUESDAY\"] = 2] = \"TUESDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"WEDNESDAY\"] = 3] = \"WEDNESDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"THURSDAY\"] = 4] = \"THURSDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"FRIDAY\"] = 5] = \"FRIDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"SATURDAY\"] = 6] = \"SATURDAY\";\n})(DAYS_OF_WEEK || (DAYS_OF_WEEK = {}));\nvar DEFAULT_WEEKEND_DAYS = [\n DAYS_OF_WEEK.SUNDAY,\n DAYS_OF_WEEK.SATURDAY,\n];\nvar DAYS_IN_WEEK = 7;\nvar HOURS_IN_DAY = 24;\nvar MINUTES_IN_HOUR = 60;\nexport var SECONDS_IN_DAY = 60 * 60 * 24;\nfunction getExcludedSeconds(dateAdapter, _a) {\n var startDate = _a.startDate, seconds = _a.seconds, excluded = _a.excluded, precision = _a.precision;\n if (excluded.length < 1) {\n return 0;\n }\n var addSeconds = dateAdapter.addSeconds, getDay = dateAdapter.getDay, addDays = dateAdapter.addDays;\n var endDate = addSeconds(startDate, seconds - 1);\n var dayStart = getDay(startDate);\n var dayEnd = getDay(endDate);\n var result = 0; // Calculated in seconds\n var current = startDate;\n var _loop_1 = function () {\n var day = getDay(current);\n if (excluded.some(function (excludedDay) { return excludedDay === day; })) {\n result += calculateExcludedSeconds(dateAdapter, {\n dayStart: dayStart,\n dayEnd: dayEnd,\n day: day,\n precision: precision,\n startDate: startDate,\n endDate: endDate,\n });\n }\n current = addDays(current, 1);\n };\n while (current < endDate) {\n _loop_1();\n }\n return result;\n}\nfunction calculateExcludedSeconds(dateAdapter, _a) {\n var precision = _a.precision, day = _a.day, dayStart = _a.dayStart, dayEnd = _a.dayEnd, startDate = _a.startDate, endDate = _a.endDate;\n var differenceInSeconds = dateAdapter.differenceInSeconds, endOfDay = dateAdapter.endOfDay, startOfDay = dateAdapter.startOfDay;\n if (precision === 'minutes') {\n if (day === dayStart) {\n return differenceInSeconds(endOfDay(startDate), startDate) + 1;\n }\n else if (day === dayEnd) {\n return differenceInSeconds(endDate, startOfDay(endDate)) + 1;\n }\n }\n return SECONDS_IN_DAY;\n}\nfunction getWeekViewEventSpan(dateAdapter, _a) {\n var event = _a.event, offset = _a.offset, startOfWeekDate = _a.startOfWeekDate, excluded = _a.excluded, precision = _a.precision, totalDaysInView = _a.totalDaysInView;\n var max = dateAdapter.max, differenceInSeconds = dateAdapter.differenceInSeconds, addDays = dateAdapter.addDays, endOfDay = dateAdapter.endOfDay, differenceInDays = dateAdapter.differenceInDays;\n var span = SECONDS_IN_DAY;\n var begin = max([event.start, startOfWeekDate]);\n if (event.end) {\n switch (precision) {\n case 'minutes':\n span = differenceInSeconds(event.end, begin);\n break;\n default:\n span =\n differenceInDays(addDays(endOfDay(event.end), 1), begin) *\n SECONDS_IN_DAY;\n break;\n }\n }\n var offsetSeconds = offset * SECONDS_IN_DAY;\n var totalLength = offsetSeconds + span;\n // the best way to detect if an event is outside the week-view\n // is to check if the total span beginning (from startOfWeekDay or event start) exceeds the total days in the view\n var secondsInView = totalDaysInView * SECONDS_IN_DAY;\n if (totalLength > secondsInView) {\n span = secondsInView - offsetSeconds;\n }\n span -= getExcludedSeconds(dateAdapter, {\n startDate: begin,\n seconds: span,\n excluded: excluded,\n precision: precision,\n });\n return span / SECONDS_IN_DAY;\n}\nfunction getWeekViewEventOffset(dateAdapter, _a) {\n var event = _a.event, startOfWeekDate = _a.startOfWeek, excluded = _a.excluded, precision = _a.precision;\n var differenceInDays = dateAdapter.differenceInDays, startOfDay = dateAdapter.startOfDay, differenceInSeconds = dateAdapter.differenceInSeconds;\n if (event.start < startOfWeekDate) {\n return 0;\n }\n var offset = 0;\n switch (precision) {\n case 'days':\n offset =\n differenceInDays(startOfDay(event.start), startOfWeekDate) *\n SECONDS_IN_DAY;\n break;\n case 'minutes':\n offset = differenceInSeconds(event.start, startOfWeekDate);\n break;\n }\n offset -= getExcludedSeconds(dateAdapter, {\n startDate: startOfWeekDate,\n seconds: offset,\n excluded: excluded,\n precision: precision,\n });\n return Math.abs(offset / SECONDS_IN_DAY);\n}\nfunction isEventIsPeriod(dateAdapter, _a) {\n var event = _a.event, periodStart = _a.periodStart, periodEnd = _a.periodEnd;\n var isSameSecond = dateAdapter.isSameSecond;\n var eventStart = event.start;\n var eventEnd = event.end || event.start;\n if (eventStart > periodStart && eventStart < periodEnd) {\n return true;\n }\n if (eventEnd > periodStart && eventEnd < periodEnd) {\n return true;\n }\n if (eventStart < periodStart && eventEnd > periodEnd) {\n return true;\n }\n if (isSameSecond(eventStart, periodStart) ||\n isSameSecond(eventStart, periodEnd)) {\n return true;\n }\n if (isSameSecond(eventEnd, periodStart) ||\n isSameSecond(eventEnd, periodEnd)) {\n return true;\n }\n return false;\n}\nexport function getEventsInPeriod(dateAdapter, _a) {\n var events = _a.events, periodStart = _a.periodStart, periodEnd = _a.periodEnd;\n return events.filter(function (event) {\n return isEventIsPeriod(dateAdapter, { event: event, periodStart: periodStart, periodEnd: periodEnd });\n });\n}\nfunction getWeekDay(dateAdapter, _a) {\n var date = _a.date, _b = _a.weekendDays, weekendDays = _b === void 0 ? DEFAULT_WEEKEND_DAYS : _b;\n var startOfDay = dateAdapter.startOfDay, isSameDay = dateAdapter.isSameDay, getDay = dateAdapter.getDay;\n var today = startOfDay(new Date());\n var day = getDay(date);\n return {\n date: date,\n day: day,\n isPast: date < today,\n isToday: isSameDay(date, today),\n isFuture: date > today,\n isWeekend: weekendDays.indexOf(day) > -1,\n };\n}\nexport function getWeekViewHeader(dateAdapter, _a) {\n var viewDate = _a.viewDate, weekStartsOn = _a.weekStartsOn, _b = _a.excluded, excluded = _b === void 0 ? [] : _b, weekendDays = _a.weekendDays, _c = _a.viewStart, viewStart = _c === void 0 ? dateAdapter.startOfWeek(viewDate, { weekStartsOn: weekStartsOn }) : _c, _d = _a.viewEnd, viewEnd = _d === void 0 ? dateAdapter.addDays(viewStart, DAYS_IN_WEEK) : _d;\n var addDays = dateAdapter.addDays, getDay = dateAdapter.getDay;\n var days = [];\n var date = viewStart;\n while (date < viewEnd) {\n if (!excluded.some(function (e) { return getDay(date) === e; })) {\n days.push(getWeekDay(dateAdapter, { date: date, weekendDays: weekendDays }));\n }\n date = addDays(date, 1);\n }\n return days;\n}\nexport function getDifferenceInDaysWithExclusions(dateAdapter, _a) {\n var date1 = _a.date1, date2 = _a.date2, excluded = _a.excluded;\n var date = date1;\n var diff = 0;\n while (date < date2) {\n if (excluded.indexOf(dateAdapter.getDay(date)) === -1) {\n diff++;\n }\n date = dateAdapter.addDays(date, 1);\n }\n return diff;\n}\nexport function getAllDayWeekEvents(dateAdapter, _a) {\n var _b = _a.events, events = _b === void 0 ? [] : _b, _c = _a.excluded, excluded = _c === void 0 ? [] : _c, _d = _a.precision, precision = _d === void 0 ? 'days' : _d, _e = _a.absolutePositionedEvents, absolutePositionedEvents = _e === void 0 ? false : _e, viewStart = _a.viewStart, viewEnd = _a.viewEnd;\n viewStart = dateAdapter.startOfDay(viewStart);\n viewEnd = dateAdapter.endOfDay(viewEnd);\n var differenceInSeconds = dateAdapter.differenceInSeconds, differenceInDays = dateAdapter.differenceInDays;\n var maxRange = getDifferenceInDaysWithExclusions(dateAdapter, {\n date1: viewStart,\n date2: viewEnd,\n excluded: excluded,\n });\n var totalDaysInView = differenceInDays(viewEnd, viewStart) + 1;\n var eventsMapped = events\n .filter(function (event) { return event.allDay; })\n .map(function (event) {\n var offset = getWeekViewEventOffset(dateAdapter, {\n event: event,\n startOfWeek: viewStart,\n excluded: excluded,\n precision: precision,\n });\n var span = getWeekViewEventSpan(dateAdapter, {\n event: event,\n offset: offset,\n startOfWeekDate: viewStart,\n excluded: excluded,\n precision: precision,\n totalDaysInView: totalDaysInView,\n });\n return { event: event, offset: offset, span: span };\n })\n .filter(function (e) { return e.offset < maxRange; })\n .filter(function (e) { return e.span > 0; })\n .map(function (entry) { return ({\n event: entry.event,\n offset: entry.offset,\n span: entry.span,\n startsBeforeWeek: entry.event.start < viewStart,\n endsAfterWeek: (entry.event.end || entry.event.start) > viewEnd,\n }); })\n .sort(function (itemA, itemB) {\n var startSecondsDiff = differenceInSeconds(itemA.event.start, itemB.event.start);\n if (startSecondsDiff === 0) {\n return differenceInSeconds(itemB.event.end || itemB.event.start, itemA.event.end || itemA.event.start);\n }\n return startSecondsDiff;\n });\n var allDayEventRows = [];\n var allocatedEvents = [];\n eventsMapped.forEach(function (event, index) {\n if (allocatedEvents.indexOf(event) === -1) {\n allocatedEvents.push(event);\n var rowSpan_1 = event.span + event.offset;\n var otherRowEvents = eventsMapped\n .slice(index + 1)\n .filter(function (nextEvent) {\n if (nextEvent.offset >= rowSpan_1 &&\n rowSpan_1 + nextEvent.span <= totalDaysInView &&\n allocatedEvents.indexOf(nextEvent) === -1) {\n var nextEventOffset = nextEvent.offset - rowSpan_1;\n if (!absolutePositionedEvents) {\n nextEvent.offset = nextEventOffset;\n }\n rowSpan_1 += nextEvent.span + nextEventOffset;\n allocatedEvents.push(nextEvent);\n return true;\n }\n });\n var weekEvents = __spreadArray([event], otherRowEvents, true);\n var id = weekEvents\n .filter(function (weekEvent) { return weekEvent.event.id; })\n .map(function (weekEvent) { return weekEvent.event.id; })\n .join('-');\n allDayEventRows.push(__assign({ row: weekEvents }, (id ? { id: id } : {})));\n }\n });\n return allDayEventRows;\n}\nfunction getWeekViewHourGrid(dateAdapter, _a) {\n var events = _a.events, viewDate = _a.viewDate, hourSegments = _a.hourSegments, hourDuration = _a.hourDuration, dayStart = _a.dayStart, dayEnd = _a.dayEnd, weekStartsOn = _a.weekStartsOn, excluded = _a.excluded, weekendDays = _a.weekendDays, segmentHeight = _a.segmentHeight, viewStart = _a.viewStart, viewEnd = _a.viewEnd, minimumEventHeight = _a.minimumEventHeight;\n var dayViewHourGrid = getDayViewHourGrid(dateAdapter, {\n viewDate: viewDate,\n hourSegments: hourSegments,\n hourDuration: hourDuration,\n dayStart: dayStart,\n dayEnd: dayEnd,\n });\n var weekDays = getWeekViewHeader(dateAdapter, {\n viewDate: viewDate,\n weekStartsOn: weekStartsOn,\n excluded: excluded,\n weekendDays: weekendDays,\n viewStart: viewStart,\n viewEnd: viewEnd,\n });\n var setHours = dateAdapter.setHours, setMinutes = dateAdapter.setMinutes, getHours = dateAdapter.getHours, getMinutes = dateAdapter.getMinutes;\n return weekDays.map(function (day) {\n var dayView = getDayView(dateAdapter, {\n events: events,\n viewDate: day.date,\n hourSegments: hourSegments,\n dayStart: dayStart,\n dayEnd: dayEnd,\n segmentHeight: segmentHeight,\n eventWidth: 1,\n hourDuration: hourDuration,\n minimumEventHeight: minimumEventHeight,\n });\n var hours = dayViewHourGrid.map(function (hour) {\n var segments = hour.segments.map(function (segment) {\n var date = setMinutes(setHours(day.date, getHours(segment.date)), getMinutes(segment.date));\n return __assign(__assign({}, segment), { date: date });\n });\n return __assign(__assign({}, hour), { segments: segments });\n });\n function getColumnCount(allEvents, prevOverlappingEvents) {\n var columnCount = Math.max.apply(Math, prevOverlappingEvents.map(function (iEvent) { return iEvent.left + 1; }));\n var nextOverlappingEvents = allEvents\n .filter(function (iEvent) { return iEvent.left >= columnCount; })\n .filter(function (iEvent) {\n return (getOverLappingWeekViewEvents(prevOverlappingEvents, iEvent.top, iEvent.top + iEvent.height).length > 0);\n });\n if (nextOverlappingEvents.length > 0) {\n return getColumnCount(allEvents, nextOverlappingEvents);\n }\n else {\n return columnCount;\n }\n }\n var mappedEvents = dayView.events.map(function (event) {\n var columnCount = getColumnCount(dayView.events, getOverLappingWeekViewEvents(dayView.events, event.top, event.top + event.height));\n var width = 100 / columnCount;\n return __assign(__assign({}, event), { left: event.left * width, width: width });\n });\n return {\n hours: hours,\n date: day.date,\n events: mappedEvents.map(function (event) {\n var overLappingEvents = getOverLappingWeekViewEvents(mappedEvents.filter(function (otherEvent) { return otherEvent.left > event.left; }), event.top, event.top + event.height);\n if (overLappingEvents.length > 0) {\n return __assign(__assign({}, event), { width: Math.min.apply(Math, overLappingEvents.map(function (otherEvent) { return otherEvent.left; })) - event.left });\n }\n return event;\n }),\n };\n });\n}\nexport function getWeekView(dateAdapter, _a) {\n var _b = _a.events, events = _b === void 0 ? [] : _b, viewDate = _a.viewDate, weekStartsOn = _a.weekStartsOn, _c = _a.excluded, excluded = _c === void 0 ? [] : _c, _d = _a.precision, precision = _d === void 0 ? 'days' : _d, _e = _a.absolutePositionedEvents, absolutePositionedEvents = _e === void 0 ? false : _e, hourSegments = _a.hourSegments, hourDuration = _a.hourDuration, dayStart = _a.dayStart, dayEnd = _a.dayEnd, weekendDays = _a.weekendDays, segmentHeight = _a.segmentHeight, minimumEventHeight = _a.minimumEventHeight, _f = _a.viewStart, viewStart = _f === void 0 ? dateAdapter.startOfWeek(viewDate, { weekStartsOn: weekStartsOn }) : _f, _g = _a.viewEnd, viewEnd = _g === void 0 ? dateAdapter.endOfWeek(viewDate, { weekStartsOn: weekStartsOn }) : _g;\n if (!events) {\n events = [];\n }\n var startOfDay = dateAdapter.startOfDay, endOfDay = dateAdapter.endOfDay;\n viewStart = startOfDay(viewStart);\n viewEnd = endOfDay(viewEnd);\n var eventsInPeriod = getEventsInPeriod(dateAdapter, {\n events: events,\n periodStart: viewStart,\n periodEnd: viewEnd,\n });\n var header = getWeekViewHeader(dateAdapter, {\n viewDate: viewDate,\n weekStartsOn: weekStartsOn,\n excluded: excluded,\n weekendDays: weekendDays,\n viewStart: viewStart,\n viewEnd: viewEnd,\n });\n return {\n allDayEventRows: getAllDayWeekEvents(dateAdapter, {\n events: eventsInPeriod,\n excluded: excluded,\n precision: precision,\n absolutePositionedEvents: absolutePositionedEvents,\n viewStart: viewStart,\n viewEnd: viewEnd,\n }),\n period: {\n events: eventsInPeriod,\n start: header[0].date,\n end: endOfDay(header[header.length - 1].date),\n },\n hourColumns: getWeekViewHourGrid(dateAdapter, {\n events: events,\n viewDate: viewDate,\n hourSegments: hourSegments,\n hourDuration: hourDuration,\n dayStart: dayStart,\n dayEnd: dayEnd,\n weekStartsOn: weekStartsOn,\n excluded: excluded,\n weekendDays: weekendDays,\n segmentHeight: segmentHeight,\n viewStart: viewStart,\n viewEnd: viewEnd,\n minimumEventHeight: minimumEventHeight,\n }),\n };\n}\nexport function getMonthView(dateAdapter, _a) {\n var _b = _a.events, events = _b === void 0 ? [] : _b, viewDate = _a.viewDate, weekStartsOn = _a.weekStartsOn, _c = _a.excluded, excluded = _c === void 0 ? [] : _c, _d = _a.viewStart, viewStart = _d === void 0 ? dateAdapter.startOfMonth(viewDate) : _d, _e = _a.viewEnd, viewEnd = _e === void 0 ? dateAdapter.endOfMonth(viewDate) : _e, weekendDays = _a.weekendDays;\n if (!events) {\n events = [];\n }\n var startOfWeek = dateAdapter.startOfWeek, endOfWeek = dateAdapter.endOfWeek, differenceInDays = dateAdapter.differenceInDays, startOfDay = dateAdapter.startOfDay, addHours = dateAdapter.addHours, endOfDay = dateAdapter.endOfDay, isSameMonth = dateAdapter.isSameMonth, getDay = dateAdapter.getDay;\n var start = startOfWeek(viewStart, { weekStartsOn: weekStartsOn });\n var end = endOfWeek(viewEnd, { weekStartsOn: weekStartsOn });\n var eventsInMonth = getEventsInPeriod(dateAdapter, {\n events: events,\n periodStart: start,\n periodEnd: end,\n });\n var initialViewDays = [];\n var previousDate;\n var _loop_2 = function (i) {\n // hacky fix for https://github.com/mattlewis92/angular-calendar/issues/173\n var date;\n if (previousDate) {\n date = startOfDay(addHours(previousDate, HOURS_IN_DAY));\n if (previousDate.getTime() === date.getTime()) {\n // DST change, so need to add 25 hours\n /* istanbul ignore next */\n date = startOfDay(addHours(previousDate, HOURS_IN_DAY + 1));\n }\n previousDate = date;\n }\n else {\n date = previousDate = start;\n }\n if (!excluded.some(function (e) { return getDay(date) === e; })) {\n var day = getWeekDay(dateAdapter, {\n date: date,\n weekendDays: weekendDays,\n });\n var eventsInPeriod = getEventsInPeriod(dateAdapter, {\n events: eventsInMonth,\n periodStart: startOfDay(date),\n periodEnd: endOfDay(date),\n });\n day.inMonth = isSameMonth(date, viewDate);\n day.events = eventsInPeriod;\n day.badgeTotal = eventsInPeriod.length;\n initialViewDays.push(day);\n }\n };\n for (var i = 0; i < differenceInDays(end, start) + 1; i++) {\n _loop_2(i);\n }\n var days = [];\n var totalDaysVisibleInWeek = DAYS_IN_WEEK - excluded.length;\n if (totalDaysVisibleInWeek < DAYS_IN_WEEK) {\n for (var i = 0; i < initialViewDays.length; i += totalDaysVisibleInWeek) {\n var row = initialViewDays.slice(i, i + totalDaysVisibleInWeek);\n var isRowInMonth = row.some(function (day) { return viewStart <= day.date && day.date < viewEnd; });\n if (isRowInMonth) {\n days = __spreadArray(__spreadArray([], days, true), row, true);\n }\n }\n }\n else {\n days = initialViewDays;\n }\n var rows = Math.floor(days.length / totalDaysVisibleInWeek);\n var rowOffsets = [];\n for (var i = 0; i < rows; i++) {\n rowOffsets.push(i * totalDaysVisibleInWeek);\n }\n return {\n rowOffsets: rowOffsets,\n totalDaysVisibleInWeek: totalDaysVisibleInWeek,\n days: days,\n period: {\n start: days[0].date,\n end: endOfDay(days[days.length - 1].date),\n events: eventsInMonth,\n },\n };\n}\nfunction getOverLappingWeekViewEvents(events, top, bottom) {\n return events.filter(function (previousEvent) {\n var previousEventTop = previousEvent.top;\n var previousEventBottom = previousEvent.top + previousEvent.height;\n if (top < previousEventBottom && previousEventBottom < bottom) {\n return true;\n }\n else if (top < previousEventTop && previousEventTop < bottom) {\n return true;\n }\n else if (previousEventTop <= top && bottom <= previousEventBottom) {\n return true;\n }\n return false;\n });\n}\nfunction getDayView(dateAdapter, _a) {\n var events = _a.events, viewDate = _a.viewDate, hourSegments = _a.hourSegments, dayStart = _a.dayStart, dayEnd = _a.dayEnd, eventWidth = _a.eventWidth, segmentHeight = _a.segmentHeight, hourDuration = _a.hourDuration, minimumEventHeight = _a.minimumEventHeight;\n var setMinutes = dateAdapter.setMinutes, setHours = dateAdapter.setHours, startOfDay = dateAdapter.startOfDay, startOfMinute = dateAdapter.startOfMinute, endOfDay = dateAdapter.endOfDay, differenceInMinutes = dateAdapter.differenceInMinutes;\n var startOfView = setMinutes(setHours(startOfDay(viewDate), sanitiseHours(dayStart.hour)), sanitiseMinutes(dayStart.minute));\n var endOfView = setMinutes(setHours(startOfMinute(endOfDay(viewDate)), sanitiseHours(dayEnd.hour)), sanitiseMinutes(dayEnd.minute));\n endOfView.setSeconds(59, 999);\n var previousDayEvents = [];\n var eventsInPeriod = getEventsInPeriod(dateAdapter, {\n events: events.filter(function (event) { return !event.allDay; }),\n periodStart: startOfView,\n periodEnd: endOfView,\n });\n var dayViewEvents = eventsInPeriod\n .sort(function (eventA, eventB) {\n return eventA.start.valueOf() - eventB.start.valueOf();\n })\n .map(function (event) {\n var eventStart = event.start;\n var eventEnd = event.end || eventStart;\n var startsBeforeDay = eventStart < startOfView;\n var endsAfterDay = eventEnd > endOfView;\n var hourHeightModifier = (hourSegments * segmentHeight) / (hourDuration || MINUTES_IN_HOUR);\n var top = 0;\n if (eventStart > startOfView) {\n // adjust the difference in minutes if the user's offset is different between the start of the day and the event (e.g. when going to or from DST)\n var eventOffset = dateAdapter.getTimezoneOffset(eventStart);\n var startOffset = dateAdapter.getTimezoneOffset(startOfView);\n var diff = startOffset - eventOffset;\n top += differenceInMinutes(eventStart, startOfView) + diff;\n }\n top *= hourHeightModifier;\n top = Math.floor(top);\n var startDate = startsBeforeDay ? startOfView : eventStart;\n var endDate = endsAfterDay ? endOfView : eventEnd;\n var timezoneOffset = dateAdapter.getTimezoneOffset(startDate) -\n dateAdapter.getTimezoneOffset(endDate);\n var height = differenceInMinutes(endDate, startDate) + timezoneOffset;\n if (!event.end) {\n height = segmentHeight;\n }\n else {\n height *= hourHeightModifier;\n }\n if (minimumEventHeight && height < minimumEventHeight) {\n height = minimumEventHeight;\n }\n height = Math.floor(height);\n var bottom = top + height;\n var overlappingPreviousEvents = getOverLappingWeekViewEvents(previousDayEvents, top, bottom);\n var left = 0;\n while (overlappingPreviousEvents.some(function (previousEvent) { return previousEvent.left === left; })) {\n left += eventWidth;\n }\n var dayEvent = {\n event: event,\n height: height,\n width: eventWidth,\n top: top,\n left: left,\n startsBeforeDay: startsBeforeDay,\n endsAfterDay: endsAfterDay,\n };\n previousDayEvents.push(dayEvent);\n return dayEvent;\n });\n var width = Math.max.apply(Math, dayViewEvents.map(function (event) { return event.left + event.width; }));\n var allDayEvents = getEventsInPeriod(dateAdapter, {\n events: events.filter(function (event) { return event.allDay; }),\n periodStart: startOfDay(startOfView),\n periodEnd: endOfDay(endOfView),\n });\n return {\n events: dayViewEvents,\n width: width,\n allDayEvents: allDayEvents,\n period: {\n events: eventsInPeriod,\n start: startOfView,\n end: endOfView,\n },\n };\n}\nfunction sanitiseHours(hours) {\n return Math.max(Math.min(23, hours), 0);\n}\nfunction sanitiseMinutes(minutes) {\n return Math.max(Math.min(59, minutes), 0);\n}\nfunction getDayViewHourGrid(dateAdapter, _a) {\n var viewDate = _a.viewDate, hourSegments = _a.hourSegments, hourDuration = _a.hourDuration, dayStart = _a.dayStart, dayEnd = _a.dayEnd;\n var setMinutes = dateAdapter.setMinutes, setHours = dateAdapter.setHours, startOfDay = dateAdapter.startOfDay, startOfMinute = dateAdapter.startOfMinute, endOfDay = dateAdapter.endOfDay, addMinutes = dateAdapter.addMinutes, addDays = dateAdapter.addDays;\n var hours = [];\n var startOfView = setMinutes(setHours(startOfDay(viewDate), sanitiseHours(dayStart.hour)), sanitiseMinutes(dayStart.minute));\n var endOfView = setMinutes(setHours(startOfMinute(endOfDay(viewDate)), sanitiseHours(dayEnd.hour)), sanitiseMinutes(dayEnd.minute));\n var segmentDuration = (hourDuration || MINUTES_IN_HOUR) / hourSegments;\n var startOfViewDay = startOfDay(viewDate);\n var endOfViewDay = endOfDay(viewDate);\n var dateAdjustment = function (d) { return d; };\n // this means that we change from or to DST on this day and that's going to cause problems so we bump the date\n if (dateAdapter.getTimezoneOffset(startOfViewDay) !==\n dateAdapter.getTimezoneOffset(endOfViewDay)) {\n startOfViewDay = addDays(startOfViewDay, 1);\n startOfView = addDays(startOfView, 1);\n endOfView = addDays(endOfView, 1);\n dateAdjustment = function (d) { return addDays(d, -1); };\n }\n var dayDuration = hourDuration\n ? (HOURS_IN_DAY * 60) / hourDuration\n : MINUTES_IN_HOUR;\n for (var i = 0; i < dayDuration; i++) {\n var segments = [];\n for (var j = 0; j < hourSegments; j++) {\n var date = addMinutes(addMinutes(startOfView, i * (hourDuration || MINUTES_IN_HOUR)), j * segmentDuration);\n if (date >= startOfView && date < endOfView) {\n segments.push({\n date: dateAdjustment(date),\n displayDate: date,\n isStart: j === 0,\n });\n }\n }\n if (segments.length > 0) {\n hours.push({ segments: segments });\n }\n }\n return hours;\n}\nexport var EventValidationErrorMessage;\n(function (EventValidationErrorMessage) {\n EventValidationErrorMessage[\"NotArray\"] = \"Events must be an array\";\n EventValidationErrorMessage[\"StartPropertyMissing\"] = \"Event is missing the `start` property\";\n EventValidationErrorMessage[\"StartPropertyNotDate\"] = \"Event `start` property should be a javascript date object. Do `new Date(event.start)` to fix it.\";\n EventValidationErrorMessage[\"EndPropertyNotDate\"] = \"Event `end` property should be a javascript date object. Do `new Date(event.end)` to fix it.\";\n EventValidationErrorMessage[\"EndsBeforeStart\"] = \"Event `start` property occurs after the `end`\";\n})(EventValidationErrorMessage || (EventValidationErrorMessage = {}));\nexport function validateEvents(events, log) {\n var isValid = true;\n function isError(msg, event) {\n log(msg, event);\n isValid = false;\n }\n if (!Array.isArray(events)) {\n log(EventValidationErrorMessage.NotArray, events);\n return false;\n }\n events.forEach(function (event) {\n if (!event.start) {\n isError(EventValidationErrorMessage.StartPropertyMissing, event);\n }\n else if (!(event.start instanceof Date)) {\n isError(EventValidationErrorMessage.StartPropertyNotDate, event);\n }\n if (event.end) {\n if (!(event.end instanceof Date)) {\n isError(EventValidationErrorMessage.EndPropertyNotDate, event);\n }\n if (event.start > event.end) {\n isError(EventValidationErrorMessage.EndsBeforeStart, event);\n }\n }\n });\n return isValid;\n}\n","function getDef(f, d) {\n if (typeof f === 'undefined') {\n return typeof d === 'undefined' ? f : d;\n }\n\n return f;\n}\nfunction boolean(func, def) {\n\n func = getDef(func, def);\n\n if (typeof func === 'function') {\n return function f() {\n var arguments$1 = arguments;\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments$1[_key];\n }\n\n return !!func.apply(this, args);\n };\n }\n\n return !!func ? function () {\n return true;\n } : function () {\n return false;\n };\n}\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\n/**\n * Returns `true` if provided input is Element.\n * @name isElement\n * @param {*} [input]\n * @returns {boolean}\n */\nvar isElement$1 = function (input) {\n return input != null && (typeof input === 'undefined' ? 'undefined' : _typeof(input)) === 'object' && input.nodeType === 1 && _typeof(input.style) === 'object' && _typeof(input.ownerDocument) === 'object';\n};\n\nfunction indexOfElement(elements, element){\n element = resolveElement(element, true);\n if(!isElement$1(element)) { return -1; }\n for(var i=0; i 0 ) { toAdd[ len ] = arguments$1[ len + 1 ]; }\n\n toAdd = toAdd.map(resolveElement);\n return pushElements(elements, toAdd);\n}\n\nfunction removeElements(elements){\n var arguments$1 = arguments;\n\n var toRemove = [], len = arguments.length - 1;\n while ( len-- > 0 ) { toRemove[ len ] = arguments$1[ len + 1 ]; }\n\n return toRemove.map(resolveElement).reduce(function (last, e){\n\n var index = indexOfElement(elements, e);\n\n if(index !== -1)\n { return last.concat(elements.splice(index, 1)); }\n return last;\n }, []);\n}\n\nfunction resolveElement(element, noThrow){\n if(typeof element === 'string'){\n try{\n return document.querySelector(element);\n }catch(e){\n throw e;\n }\n\n }\n\n if(!isElement$1(element) && !noThrow){\n throw new TypeError((element + \" is not a DOM element.\"));\n }\n return element;\n}\n\nfunction createPointCB(object, options) {\n\n // A persistent object (as opposed to returned object) is used to save memory\n // This is good to prevent layout thrashing, or for games, and such\n\n // NOTE\n // This uses IE fixes which should be OK to remove some day. :)\n // Some speed will be gained by removal of these.\n\n // pointCB should be saved in a variable on return\n // This allows the usage of element.removeEventListener\n\n options = options || {};\n\n var allowUpdate = boolean(options.allowUpdate, true);\n\n /*if(typeof options.allowUpdate === 'function'){\n allowUpdate = options.allowUpdate;\n }else{\n allowUpdate = function(){return true;};\n }*/\n\n return function pointCB(event) {\n\n event = event || window.event; // IE-ism\n object.target = event.target || event.srcElement || event.originalTarget;\n object.element = this;\n object.type = event.type;\n\n if (!allowUpdate(event)) {\n return;\n }\n\n // Support touch\n // http://www.creativebloq.com/javascript/make-your-site-work-touch-devices-51411644\n\n if (event.targetTouches) {\n object.x = event.targetTouches[0].clientX;\n object.y = event.targetTouches[0].clientY;\n object.pageX = event.targetTouches[0].pageX;\n object.pageY = event.targetTouches[0].pageY;\n object.screenX = event.targetTouches[0].screenX;\n object.screenY = event.targetTouches[0].screenY;\n } else {\n\n // If pageX/Y aren't available and clientX/Y are,\n // calculate pageX/Y - logic taken from jQuery.\n // (This is to support old IE)\n // NOTE Hopefully this can be removed soon.\n\n if (event.pageX === null && event.clientX !== null) {\n var eventDoc = event.target && event.target.ownerDocument || document;\n var doc = eventDoc.documentElement;\n var body = eventDoc.body;\n\n object.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n object.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n } else {\n object.pageX = event.pageX;\n object.pageY = event.pageY;\n }\n\n // pageX, and pageY change with page scroll\n // so we're not going to use those for x, and y.\n // NOTE Most browsers also alias clientX/Y with x/y\n // so that's something to consider down the road.\n\n object.x = event.clientX;\n object.y = event.clientY;\n\n object.screenX = event.screenX;\n object.screenY = event.screenY;\n }\n\n object.clientX = object.x;\n object.clientY = object.y;\n };\n\n //NOTE Remember accessibility, Aria roles, and labels.\n}\n\nfunction createWindowRect() {\n var props = {\n top: { value: 0, enumerable: true },\n left: { value: 0, enumerable: true },\n right: { value: window.innerWidth, enumerable: true },\n bottom: { value: window.innerHeight, enumerable: true },\n width: { value: window.innerWidth, enumerable: true },\n height: { value: window.innerHeight, enumerable: true },\n x: { value: 0, enumerable: true },\n y: { value: 0, enumerable: true }\n };\n\n if (Object.create) {\n return Object.create({}, props);\n } else {\n var rect = {};\n Object.defineProperties(rect, props);\n return rect;\n }\n}\n\nfunction getClientRect(el) {\n if (el === window) {\n return createWindowRect();\n } else {\n try {\n var rect = el.getBoundingClientRect();\n if (rect.x === undefined) {\n rect.x = rect.left;\n rect.y = rect.top;\n }\n return rect;\n } catch (e) {\n throw new TypeError(\"Can't call getBoundingClientRect on \" + el);\n }\n }\n}\n\nfunction pointInside(point, el) {\n var rect = getClientRect(el);\n return point.y > rect.top && point.y < rect.bottom && point.x > rect.left && point.x < rect.right;\n}\n\nvar objectCreate = void 0;\nif (typeof Object.create != 'function') {\n objectCreate = function (undefined$1) {\n var Temp = function Temp() {};\n return function (prototype, propertiesObject) {\n if (prototype !== Object(prototype) && prototype !== null) {\n throw TypeError('Argument must be an object, or null');\n }\n Temp.prototype = prototype || {};\n var result = new Temp();\n Temp.prototype = null;\n if (propertiesObject !== undefined$1) {\n Object.defineProperties(result, propertiesObject);\n }\n\n // to imitate the case of Object.create(null)\n if (prototype === null) {\n result.__proto__ = null;\n }\n return result;\n };\n }();\n} else {\n objectCreate = Object.create;\n}\n\nvar objectCreate$1 = objectCreate;\n\nvar mouseEventProps = ['altKey', 'button', 'buttons', 'clientX', 'clientY', 'ctrlKey', 'metaKey', 'movementX', 'movementY', 'offsetX', 'offsetY', 'pageX', 'pageY', 'region', 'relatedTarget', 'screenX', 'screenY', 'shiftKey', 'which', 'x', 'y'];\n\nfunction createDispatcher(element) {\n\n var defaultSettings = {\n screenX: 0,\n screenY: 0,\n clientX: 0,\n clientY: 0,\n ctrlKey: false,\n shiftKey: false,\n altKey: false,\n metaKey: false,\n button: 0,\n buttons: 1,\n relatedTarget: null,\n region: null\n };\n\n if (element !== undefined) {\n element.addEventListener('mousemove', onMove);\n }\n\n function onMove(e) {\n for (var i = 0; i < mouseEventProps.length; i++) {\n defaultSettings[mouseEventProps[i]] = e[mouseEventProps[i]];\n }\n }\n\n var dispatch = function () {\n if (MouseEvent) {\n return function m1(element, initMove, data) {\n var evt = new MouseEvent('mousemove', createMoveInit(defaultSettings, initMove));\n\n //evt.dispatched = 'mousemove';\n setSpecial(evt, data);\n\n return element.dispatchEvent(evt);\n };\n } else if (typeof document.createEvent === 'function') {\n return function m2(element, initMove, data) {\n var settings = createMoveInit(defaultSettings, initMove);\n var evt = document.createEvent('MouseEvents');\n\n evt.initMouseEvent(\"mousemove\", true, //can bubble\n true, //cancelable\n window, //view\n 0, //detail\n settings.screenX, //0, //screenX\n settings.screenY, //0, //screenY\n settings.clientX, //80, //clientX\n settings.clientY, //20, //clientY\n settings.ctrlKey, //false, //ctrlKey\n settings.altKey, //false, //altKey\n settings.shiftKey, //false, //shiftKey\n settings.metaKey, //false, //metaKey\n settings.button, //0, //button\n settings.relatedTarget //null //relatedTarget\n );\n\n //evt.dispatched = 'mousemove';\n setSpecial(evt, data);\n\n return element.dispatchEvent(evt);\n };\n } else if (typeof document.createEventObject === 'function') {\n return function m3(element, initMove, data) {\n var evt = document.createEventObject();\n var settings = createMoveInit(defaultSettings, initMove);\n for (var name in settings) {\n evt[name] = settings[name];\n }\n\n //evt.dispatched = 'mousemove';\n setSpecial(evt, data);\n\n return element.dispatchEvent(evt);\n };\n }\n }();\n\n function destroy() {\n if (element) { element.removeEventListener('mousemove', onMove, false); }\n defaultSettings = null;\n }\n\n return {\n destroy: destroy,\n dispatch: dispatch\n };\n}\n\nfunction createMoveInit(defaultSettings, initMove) {\n initMove = initMove || {};\n var settings = objectCreate$1(defaultSettings);\n for (var i = 0; i < mouseEventProps.length; i++) {\n if (initMove[mouseEventProps[i]] !== undefined) { settings[mouseEventProps[i]] = initMove[mouseEventProps[i]]; }\n }\n\n return settings;\n}\n\nfunction setSpecial(e, data) {\n console.log('data ', data);\n e.data = data || {};\n e.dispatched = 'mousemove';\n}\n\nvar prefix = [ 'webkit', 'moz', 'ms', 'o' ];\n\nvar requestFrame = (function () {\n\n if (typeof window === \"undefined\") {\n return function () {};\n }\n\n for ( var i = 0, limit = prefix.length ; i < limit && ! window.requestAnimationFrame ; ++i ) {\n window.requestAnimationFrame = window[ prefix[ i ] + 'RequestAnimationFrame' ];\n }\n\n if ( ! window.requestAnimationFrame ) {\n var lastTime = 0;\n\n window.requestAnimationFrame = function (callback) {\n var now = new Date().getTime();\n var ttc = Math.max( 0, 16 - now - lastTime );\n var timer = window.setTimeout( function () { return callback( now + ttc ); }, ttc );\n\n lastTime = now + ttc;\n\n return timer;\n };\n }\n\n return window.requestAnimationFrame.bind( window );\n})();\n\nvar cancelFrame = (function () {\n\n if (typeof window === \"undefined\") {\n return function () {};\n }\n\n for ( var i = 0, limit = prefix.length ; i < limit && ! window.cancelAnimationFrame ; ++i ) {\n window.cancelAnimationFrame = window[ prefix[ i ] + 'CancelAnimationFrame' ] || window[ prefix[ i ] + 'CancelRequestAnimationFrame' ];\n }\n\n if ( ! window.cancelAnimationFrame ) {\n window.cancelAnimationFrame = function (timer) {\n window.clearTimeout( timer );\n };\n }\n\n return window.cancelAnimationFrame.bind( window );\n})();\n\nfunction AutoScroller(elements, options){\n if ( options === void 0 ) options = {};\n\n var self = this;\n var maxSpeed = 4, scrolling = false;\n\n if (typeof options.margin !== 'object') {\n var margin = options.margin || -1;\n\n this.margin = {\n left: margin,\n right: margin,\n top: margin,\n bottom: margin\n };\n } else {\n this.margin = options.margin;\n }\n\n //this.scrolling = false;\n this.scrollWhenOutside = options.scrollWhenOutside || false;\n\n var point = {},\n pointCB = createPointCB(point),\n dispatcher = createDispatcher(),\n down = false;\n\n window.addEventListener('mousemove', pointCB, false);\n window.addEventListener('touchmove', pointCB, false);\n\n if(!isNaN(options.maxSpeed)){\n maxSpeed = options.maxSpeed;\n }\n\n if (typeof maxSpeed !== 'object') {\n maxSpeed = {\n left: maxSpeed,\n right: maxSpeed,\n top: maxSpeed,\n bottom: maxSpeed\n };\n }\n\n this.autoScroll = boolean(options.autoScroll);\n this.syncMove = boolean(options.syncMove, false);\n\n this.destroy = function(forceCleanAnimation) {\n window.removeEventListener('mousemove', pointCB, false);\n window.removeEventListener('touchmove', pointCB, false);\n window.removeEventListener('mousedown', onDown, false);\n window.removeEventListener('touchstart', onDown, false);\n window.removeEventListener('mouseup', onUp, false);\n window.removeEventListener('touchend', onUp, false);\n window.removeEventListener('pointerup', onUp, false);\n window.removeEventListener('mouseleave', onMouseOut, false);\n\n window.removeEventListener('mousemove', onMove, false);\n window.removeEventListener('touchmove', onMove, false);\n\n window.removeEventListener('scroll', setScroll, true);\n elements = [];\n if(forceCleanAnimation){\n cleanAnimation();\n }\n };\n\n this.add = function(){\n var element = [], len = arguments.length;\n while ( len-- ) element[ len ] = arguments[ len ];\n\n addElements.apply(void 0, [ elements ].concat( element ));\n return this;\n };\n\n this.remove = function(){\n var element = [], len = arguments.length;\n while ( len-- ) element[ len ] = arguments[ len ];\n\n return removeElements.apply(void 0, [ elements ].concat( element ));\n };\n\n var hasWindow = null, windowAnimationFrame;\n\n if(Object.prototype.toString.call(elements) !== '[object Array]'){\n elements = [elements];\n }\n\n (function(temp){\n elements = [];\n temp.forEach(function(element){\n if(element === window){\n hasWindow = window;\n }else {\n self.add(element);\n }\n });\n }(elements));\n\n Object.defineProperties(this, {\n down: {\n get: function(){ return down; }\n },\n maxSpeed: {\n get: function(){ return maxSpeed; }\n },\n point: {\n get: function(){ return point; }\n },\n scrolling: {\n get: function(){ return scrolling; }\n }\n });\n\n var current = null, animationFrame;\n\n window.addEventListener('mousedown', onDown, false);\n window.addEventListener('touchstart', onDown, false);\n window.addEventListener('mouseup', onUp, false);\n window.addEventListener('touchend', onUp, false);\n\n /*\n IE does not trigger mouseup event when scrolling.\n It is a known issue that Microsoft won't fix.\n https://connect.microsoft.com/IE/feedback/details/783058/scrollbar-trigger-mousedown-but-not-mouseup\n IE supports pointer events instead\n */\n window.addEventListener('pointerup', onUp, false);\n\n window.addEventListener('mousemove', onMove, false);\n window.addEventListener('touchmove', onMove, false);\n\n window.addEventListener('mouseleave', onMouseOut, false);\n\n window.addEventListener('scroll', setScroll, true);\n\n function setScroll(e){\n\n for(var i=0; i rect.right - self.margin.right){\n scrollx = Math.ceil(\n Math.min(1, (point.x - rect.right) / self.margin.right + 1) * self.maxSpeed.right\n );\n }else {\n scrollx = 0;\n }\n\n if(point.y < rect.top + self.margin.top){\n scrolly = Math.floor(\n Math.max(-1, (point.y - rect.top) / self.margin.top - 1) * self.maxSpeed.top\n );\n }else if(point.y > rect.bottom - self.margin.bottom){\n scrolly = Math.ceil(\n Math.min(1, (point.y - rect.bottom) / self.margin.bottom + 1) * self.maxSpeed.bottom\n );\n }else {\n scrolly = 0;\n }\n\n if(self.syncMove()){\n /*\n Notes about mousemove event dispatch.\n screen(X/Y) should need to be updated.\n Some other properties might need to be set.\n Keep the syncMove option default false until all inconsistencies are taken care of.\n */\n dispatcher.dispatch(el, {\n pageX: point.pageX + scrollx,\n pageY: point.pageY + scrolly,\n clientX: point.x + scrollx,\n clientY: point.y + scrolly\n });\n }\n\n setTimeout(function (){\n\n if(scrolly){\n scrollY(el, scrolly);\n }\n\n if(scrollx){\n scrollX(el, scrollx);\n }\n\n });\n }\n\n function scrollY(el, amount){\n if(el === window){\n window.scrollTo(el.pageXOffset, el.pageYOffset + amount);\n }else {\n el.scrollTop += amount;\n }\n }\n\n function scrollX(el, amount){\n if(el === window){\n window.scrollTo(el.pageXOffset + amount, el.pageYOffset);\n }else {\n el.scrollLeft += amount;\n }\n }\n\n}\n\nfunction AutoScrollerFactory(element, options){\n return new AutoScroller(element, options);\n}\n\nfunction inside(point, el, rect){\n if(!rect){\n return pointInside(point, el);\n }else {\n return (point.y > rect.top && point.y < rect.bottom &&\n point.x > rect.left && point.x < rect.right);\n }\n}\n\n/*\ngit remote add origin https://github.com/hollowdoor/dom_autoscroller.git\ngit push -u origin master\n*/\n\nexport default AutoScrollerFactory;\n","import * as i0 from '@angular/core';\nimport { Injectable, Directive, EventEmitter, Optional, Inject, Input, Output, NgModule } from '@angular/core';\nimport { Subject, Observable, ReplaySubject, merge, combineLatest, fromEvent } from 'rxjs';\nimport { filter, mergeMap, startWith, map, share, takeUntil, take, takeLast, count, pairwise, distinctUntilChanged } from 'rxjs/operators';\nimport { DOCUMENT } from '@angular/common';\nimport autoScroll from '@mattlewis92/dom-autoscroller';\n\nfunction addClass(renderer, element, classToAdd) {\n if (classToAdd) {\n classToAdd\n .split(' ')\n .forEach((className) => renderer.addClass(element.nativeElement, className));\n }\n}\nfunction removeClass(renderer, element, classToRemove) {\n if (classToRemove) {\n classToRemove\n .split(' ')\n .forEach((className) => renderer.removeClass(element.nativeElement, className));\n }\n}\n\nclass DraggableHelper {\n constructor() {\n this.currentDrag = new Subject();\n }\n}\nDraggableHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: DraggableHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\nDraggableHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: DraggableHelper, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: DraggableHelper, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n\n/**\n * If the window isn't scrollable, then place this on the scrollable container that draggable elements are inside. e.g.\n * ```html\n
\n
Drag me!
\n
\n ```\n */\nclass DraggableScrollContainerDirective {\n /**\n * @hidden\n */\n constructor(elementRef) {\n this.elementRef = elementRef;\n }\n}\nDraggableScrollContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: DraggableScrollContainerDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });\nDraggableScrollContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: DraggableScrollContainerDirective, selector: \"[mwlDraggableScrollContainer]\", ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: DraggableScrollContainerDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[mwlDraggableScrollContainer]',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });\n\nclass DraggableDirective {\n /**\n * @hidden\n */\n constructor(element, renderer, draggableHelper, zone, vcr, scrollContainer, document) {\n this.element = element;\n this.renderer = renderer;\n this.draggableHelper = draggableHelper;\n this.zone = zone;\n this.vcr = vcr;\n this.scrollContainer = scrollContainer;\n this.document = document;\n /**\n * The axis along which the element is draggable\n */\n this.dragAxis = { x: true, y: true };\n /**\n * Snap all drags to an x / y grid\n */\n this.dragSnapGrid = {};\n /**\n * Show a ghost element that shows the drag when dragging\n */\n this.ghostDragEnabled = true;\n /**\n * Show the original element when ghostDragEnabled is true\n */\n this.showOriginalElementWhileDragging = false;\n /**\n * The cursor to use when hovering over a draggable element\n */\n this.dragCursor = '';\n /*\n * Options used to control the behaviour of auto scrolling: https://www.npmjs.com/package/dom-autoscroller\n */\n this.autoScroll = {\n margin: 20,\n };\n /**\n * Called when the element can be dragged along one axis and has the mouse or pointer device pressed on it\n */\n this.dragPointerDown = new EventEmitter();\n /**\n * Called when the element has started to be dragged.\n * Only called after at least one mouse or touch move event.\n * If you call $event.cancelDrag$.emit() it will cancel the current drag\n */\n this.dragStart = new EventEmitter();\n /**\n * Called after the ghost element has been created\n */\n this.ghostElementCreated = new EventEmitter();\n /**\n * Called when the element is being dragged\n */\n this.dragging = new EventEmitter();\n /**\n * Called after the element is dragged\n */\n this.dragEnd = new EventEmitter();\n /**\n * @hidden\n */\n this.pointerDown$ = new Subject();\n /**\n * @hidden\n */\n this.pointerMove$ = new Subject();\n /**\n * @hidden\n */\n this.pointerUp$ = new Subject();\n this.eventListenerSubscriptions = {};\n this.destroy$ = new Subject();\n this.timeLongPress = { timerBegin: 0, timerEnd: 0 };\n }\n ngOnInit() {\n this.checkEventListeners();\n const pointerDragged$ = this.pointerDown$.pipe(filter(() => this.canDrag()), mergeMap((pointerDownEvent) => {\n // fix for https://github.com/mattlewis92/angular-draggable-droppable/issues/61\n // stop mouse events propagating up the chain\n if (pointerDownEvent.event.stopPropagation && !this.scrollContainer) {\n pointerDownEvent.event.stopPropagation();\n }\n // hack to prevent text getting selected in safari while dragging\n const globalDragStyle = this.renderer.createElement('style');\n this.renderer.setAttribute(globalDragStyle, 'type', 'text/css');\n this.renderer.appendChild(globalDragStyle, this.renderer.createText(`\n body * {\n -moz-user-select: none;\n -ms-user-select: none;\n -webkit-user-select: none;\n user-select: none;\n }\n `));\n requestAnimationFrame(() => {\n this.document.head.appendChild(globalDragStyle);\n });\n const startScrollPosition = this.getScrollPosition();\n const scrollContainerScroll$ = new Observable((observer) => {\n const scrollContainer = this.scrollContainer\n ? this.scrollContainer.elementRef.nativeElement\n : 'window';\n return this.renderer.listen(scrollContainer, 'scroll', (e) => observer.next(e));\n }).pipe(startWith(startScrollPosition), map(() => this.getScrollPosition()));\n const currentDrag$ = new Subject();\n const cancelDrag$ = new ReplaySubject();\n if (this.dragPointerDown.observers.length > 0) {\n this.zone.run(() => {\n this.dragPointerDown.next({ x: 0, y: 0 });\n });\n }\n const dragComplete$ = merge(this.pointerUp$, this.pointerDown$, cancelDrag$, this.destroy$).pipe(share());\n const pointerMove = combineLatest([\n this.pointerMove$,\n scrollContainerScroll$,\n ]).pipe(map(([pointerMoveEvent, scroll]) => {\n return {\n currentDrag$,\n transformX: pointerMoveEvent.clientX - pointerDownEvent.clientX,\n transformY: pointerMoveEvent.clientY - pointerDownEvent.clientY,\n clientX: pointerMoveEvent.clientX,\n clientY: pointerMoveEvent.clientY,\n scrollLeft: scroll.left,\n scrollTop: scroll.top,\n target: pointerMoveEvent.event.target,\n };\n }), map((moveData) => {\n if (this.dragSnapGrid.x) {\n moveData.transformX =\n Math.round(moveData.transformX / this.dragSnapGrid.x) *\n this.dragSnapGrid.x;\n }\n if (this.dragSnapGrid.y) {\n moveData.transformY =\n Math.round(moveData.transformY / this.dragSnapGrid.y) *\n this.dragSnapGrid.y;\n }\n return moveData;\n }), map((moveData) => {\n if (!this.dragAxis.x) {\n moveData.transformX = 0;\n }\n if (!this.dragAxis.y) {\n moveData.transformY = 0;\n }\n return moveData;\n }), map((moveData) => {\n const scrollX = moveData.scrollLeft - startScrollPosition.left;\n const scrollY = moveData.scrollTop - startScrollPosition.top;\n return {\n ...moveData,\n x: moveData.transformX + scrollX,\n y: moveData.transformY + scrollY,\n };\n }), filter(({ x, y, transformX, transformY }) => !this.validateDrag ||\n this.validateDrag({\n x,\n y,\n transform: { x: transformX, y: transformY },\n })), takeUntil(dragComplete$), share());\n const dragStarted$ = pointerMove.pipe(take(1), share());\n const dragEnded$ = pointerMove.pipe(takeLast(1), share());\n dragStarted$.subscribe(({ clientX, clientY, x, y }) => {\n if (this.dragStart.observers.length > 0) {\n this.zone.run(() => {\n this.dragStart.next({ cancelDrag$ });\n });\n }\n this.scroller = autoScroll([\n this.scrollContainer\n ? this.scrollContainer.elementRef.nativeElement\n : this.document.defaultView,\n ], {\n ...this.autoScroll,\n autoScroll() {\n return true;\n },\n });\n addClass(this.renderer, this.element, this.dragActiveClass);\n if (this.ghostDragEnabled) {\n const rect = this.element.nativeElement.getBoundingClientRect();\n const clone = this.element.nativeElement.cloneNode(true);\n if (!this.showOriginalElementWhileDragging) {\n this.renderer.setStyle(this.element.nativeElement, 'visibility', 'hidden');\n }\n if (this.ghostElementAppendTo) {\n this.ghostElementAppendTo.appendChild(clone);\n }\n else {\n this.element.nativeElement.parentNode.insertBefore(clone, this.element.nativeElement.nextSibling);\n }\n this.ghostElement = clone;\n this.document.body.style.cursor = this.dragCursor;\n this.setElementStyles(clone, {\n position: 'fixed',\n top: `${rect.top}px`,\n left: `${rect.left}px`,\n width: `${rect.width}px`,\n height: `${rect.height}px`,\n cursor: this.dragCursor,\n margin: '0',\n willChange: 'transform',\n pointerEvents: 'none',\n });\n if (this.ghostElementTemplate) {\n const viewRef = this.vcr.createEmbeddedView(this.ghostElementTemplate);\n clone.innerHTML = '';\n viewRef.rootNodes\n .filter((node) => node instanceof Node)\n .forEach((node) => {\n clone.appendChild(node);\n });\n dragEnded$.subscribe(() => {\n this.vcr.remove(this.vcr.indexOf(viewRef));\n });\n }\n if (this.ghostElementCreated.observers.length > 0) {\n this.zone.run(() => {\n this.ghostElementCreated.emit({\n clientX: clientX - x,\n clientY: clientY - y,\n element: clone,\n });\n });\n }\n dragEnded$.subscribe(() => {\n clone.parentElement.removeChild(clone);\n this.ghostElement = null;\n this.renderer.setStyle(this.element.nativeElement, 'visibility', '');\n });\n }\n this.draggableHelper.currentDrag.next(currentDrag$);\n });\n dragEnded$\n .pipe(mergeMap((dragEndData) => {\n const dragEndData$ = cancelDrag$.pipe(count(), take(1), map((calledCount) => ({\n ...dragEndData,\n dragCancelled: calledCount > 0,\n })));\n cancelDrag$.complete();\n return dragEndData$;\n }))\n .subscribe(({ x, y, dragCancelled }) => {\n this.scroller.destroy();\n if (this.dragEnd.observers.length > 0) {\n this.zone.run(() => {\n this.dragEnd.next({ x, y, dragCancelled });\n });\n }\n removeClass(this.renderer, this.element, this.dragActiveClass);\n currentDrag$.complete();\n });\n merge(dragComplete$, dragEnded$)\n .pipe(take(1))\n .subscribe(() => {\n requestAnimationFrame(() => {\n this.document.head.removeChild(globalDragStyle);\n });\n });\n return pointerMove;\n }), share());\n merge(pointerDragged$.pipe(take(1), map((value) => [, value])), pointerDragged$.pipe(pairwise()))\n .pipe(filter(([previous, next]) => {\n if (!previous) {\n return true;\n }\n return previous.x !== next.x || previous.y !== next.y;\n }), map(([previous, next]) => next))\n .subscribe(({ x, y, currentDrag$, clientX, clientY, transformX, transformY, target, }) => {\n if (this.dragging.observers.length > 0) {\n this.zone.run(() => {\n this.dragging.next({ x, y });\n });\n }\n requestAnimationFrame(() => {\n if (this.ghostElement) {\n const transform = `translate3d(${transformX}px, ${transformY}px, 0px)`;\n this.setElementStyles(this.ghostElement, {\n transform,\n '-webkit-transform': transform,\n '-ms-transform': transform,\n '-moz-transform': transform,\n '-o-transform': transform,\n });\n }\n });\n currentDrag$.next({\n clientX,\n clientY,\n dropData: this.dropData,\n target,\n });\n });\n }\n ngOnChanges(changes) {\n if (changes.dragAxis) {\n this.checkEventListeners();\n }\n }\n ngOnDestroy() {\n this.unsubscribeEventListeners();\n this.pointerDown$.complete();\n this.pointerMove$.complete();\n this.pointerUp$.complete();\n this.destroy$.next();\n }\n checkEventListeners() {\n const canDrag = this.canDrag();\n const hasEventListeners = Object.keys(this.eventListenerSubscriptions).length > 0;\n if (canDrag && !hasEventListeners) {\n this.zone.runOutsideAngular(() => {\n this.eventListenerSubscriptions.mousedown = this.renderer.listen(this.element.nativeElement, 'mousedown', (event) => {\n this.onMouseDown(event);\n });\n this.eventListenerSubscriptions.mouseup = this.renderer.listen('document', 'mouseup', (event) => {\n this.onMouseUp(event);\n });\n this.eventListenerSubscriptions.touchstart = this.renderer.listen(this.element.nativeElement, 'touchstart', (event) => {\n this.onTouchStart(event);\n });\n this.eventListenerSubscriptions.touchend = this.renderer.listen('document', 'touchend', (event) => {\n this.onTouchEnd(event);\n });\n this.eventListenerSubscriptions.touchcancel = this.renderer.listen('document', 'touchcancel', (event) => {\n this.onTouchEnd(event);\n });\n this.eventListenerSubscriptions.mouseenter = this.renderer.listen(this.element.nativeElement, 'mouseenter', () => {\n this.onMouseEnter();\n });\n this.eventListenerSubscriptions.mouseleave = this.renderer.listen(this.element.nativeElement, 'mouseleave', () => {\n this.onMouseLeave();\n });\n });\n }\n else if (!canDrag && hasEventListeners) {\n this.unsubscribeEventListeners();\n }\n }\n onMouseDown(event) {\n if (event.button === 0) {\n if (!this.eventListenerSubscriptions.mousemove) {\n this.eventListenerSubscriptions.mousemove = this.renderer.listen('document', 'mousemove', (mouseMoveEvent) => {\n this.pointerMove$.next({\n event: mouseMoveEvent,\n clientX: mouseMoveEvent.clientX,\n clientY: mouseMoveEvent.clientY,\n });\n });\n }\n this.pointerDown$.next({\n event,\n clientX: event.clientX,\n clientY: event.clientY,\n });\n }\n }\n onMouseUp(event) {\n if (event.button === 0) {\n if (this.eventListenerSubscriptions.mousemove) {\n this.eventListenerSubscriptions.mousemove();\n delete this.eventListenerSubscriptions.mousemove;\n }\n this.pointerUp$.next({\n event,\n clientX: event.clientX,\n clientY: event.clientY,\n });\n }\n }\n onTouchStart(event) {\n let startScrollPosition;\n let isDragActivated;\n let hasContainerScrollbar;\n if (this.touchStartLongPress) {\n this.timeLongPress.timerBegin = Date.now();\n isDragActivated = false;\n hasContainerScrollbar = this.hasScrollbar();\n startScrollPosition = this.getScrollPosition();\n }\n if (!this.eventListenerSubscriptions.touchmove) {\n const contextMenuListener = fromEvent(this.document, 'contextmenu').subscribe((e) => {\n e.preventDefault();\n });\n const touchMoveListener = fromEvent(this.document, 'touchmove', {\n passive: false,\n }).subscribe((touchMoveEvent) => {\n if (this.touchStartLongPress &&\n !isDragActivated &&\n hasContainerScrollbar) {\n isDragActivated = this.shouldBeginDrag(event, touchMoveEvent, startScrollPosition);\n }\n if (!this.touchStartLongPress ||\n !hasContainerScrollbar ||\n isDragActivated) {\n touchMoveEvent.preventDefault();\n this.pointerMove$.next({\n event: touchMoveEvent,\n clientX: touchMoveEvent.targetTouches[0].clientX,\n clientY: touchMoveEvent.targetTouches[0].clientY,\n });\n }\n });\n this.eventListenerSubscriptions.touchmove = () => {\n contextMenuListener.unsubscribe();\n touchMoveListener.unsubscribe();\n };\n }\n this.pointerDown$.next({\n event,\n clientX: event.touches[0].clientX,\n clientY: event.touches[0].clientY,\n });\n }\n onTouchEnd(event) {\n if (this.eventListenerSubscriptions.touchmove) {\n this.eventListenerSubscriptions.touchmove();\n delete this.eventListenerSubscriptions.touchmove;\n if (this.touchStartLongPress) {\n this.enableScroll();\n }\n }\n this.pointerUp$.next({\n event,\n clientX: event.changedTouches[0].clientX,\n clientY: event.changedTouches[0].clientY,\n });\n }\n onMouseEnter() {\n this.setCursor(this.dragCursor);\n }\n onMouseLeave() {\n this.setCursor('');\n }\n canDrag() {\n return this.dragAxis.x || this.dragAxis.y;\n }\n setCursor(value) {\n if (!this.eventListenerSubscriptions.mousemove) {\n this.renderer.setStyle(this.element.nativeElement, 'cursor', value);\n }\n }\n unsubscribeEventListeners() {\n Object.keys(this.eventListenerSubscriptions).forEach((type) => {\n this.eventListenerSubscriptions[type]();\n delete this.eventListenerSubscriptions[type];\n });\n }\n setElementStyles(element, styles) {\n Object.keys(styles).forEach((key) => {\n this.renderer.setStyle(element, key, styles[key]);\n });\n }\n getScrollElement() {\n if (this.scrollContainer) {\n return this.scrollContainer.elementRef.nativeElement;\n }\n else {\n return this.document.body;\n }\n }\n getScrollPosition() {\n if (this.scrollContainer) {\n return {\n top: this.scrollContainer.elementRef.nativeElement.scrollTop,\n left: this.scrollContainer.elementRef.nativeElement.scrollLeft,\n };\n }\n else {\n return {\n top: window.pageYOffset || this.document.documentElement.scrollTop,\n left: window.pageXOffset || this.document.documentElement.scrollLeft,\n };\n }\n }\n shouldBeginDrag(event, touchMoveEvent, startScrollPosition) {\n const moveScrollPosition = this.getScrollPosition();\n const deltaScroll = {\n top: Math.abs(moveScrollPosition.top - startScrollPosition.top),\n left: Math.abs(moveScrollPosition.left - startScrollPosition.left),\n };\n const deltaX = Math.abs(touchMoveEvent.targetTouches[0].clientX - event.touches[0].clientX) - deltaScroll.left;\n const deltaY = Math.abs(touchMoveEvent.targetTouches[0].clientY - event.touches[0].clientY) - deltaScroll.top;\n const deltaTotal = deltaX + deltaY;\n const longPressConfig = this.touchStartLongPress;\n if (deltaTotal > longPressConfig.delta ||\n deltaScroll.top > 0 ||\n deltaScroll.left > 0) {\n this.timeLongPress.timerBegin = Date.now();\n }\n this.timeLongPress.timerEnd = Date.now();\n const duration = this.timeLongPress.timerEnd - this.timeLongPress.timerBegin;\n if (duration >= longPressConfig.delay) {\n this.disableScroll();\n return true;\n }\n return false;\n }\n enableScroll() {\n if (this.scrollContainer) {\n this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement, 'overflow', '');\n }\n this.renderer.setStyle(this.document.body, 'overflow', '');\n }\n disableScroll() {\n /* istanbul ignore next */\n if (this.scrollContainer) {\n this.renderer.setStyle(this.scrollContainer.elementRef.nativeElement, 'overflow', 'hidden');\n }\n this.renderer.setStyle(this.document.body, 'overflow', 'hidden');\n }\n hasScrollbar() {\n const scrollContainer = this.getScrollElement();\n const containerHasHorizontalScroll = scrollContainer.scrollWidth > scrollContainer.clientWidth;\n const containerHasVerticalScroll = scrollContainer.scrollHeight > scrollContainer.clientHeight;\n return containerHasHorizontalScroll || containerHasVerticalScroll;\n }\n}\nDraggableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: DraggableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: DraggableHelper }, { token: i0.NgZone }, { token: i0.ViewContainerRef }, { token: DraggableScrollContainerDirective, optional: true }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });\nDraggableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: DraggableDirective, selector: \"[mwlDraggable]\", inputs: { dropData: \"dropData\", dragAxis: \"dragAxis\", dragSnapGrid: \"dragSnapGrid\", ghostDragEnabled: \"ghostDragEnabled\", showOriginalElementWhileDragging: \"showOriginalElementWhileDragging\", validateDrag: \"validateDrag\", dragCursor: \"dragCursor\", dragActiveClass: \"dragActiveClass\", ghostElementAppendTo: \"ghostElementAppendTo\", ghostElementTemplate: \"ghostElementTemplate\", touchStartLongPress: \"touchStartLongPress\", autoScroll: \"autoScroll\" }, outputs: { dragPointerDown: \"dragPointerDown\", dragStart: \"dragStart\", ghostElementCreated: \"ghostElementCreated\", dragging: \"dragging\", dragEnd: \"dragEnd\" }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: DraggableDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[mwlDraggable]',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: DraggableHelper }, { type: i0.NgZone }, { type: i0.ViewContainerRef }, { type: DraggableScrollContainerDirective, decorators: [{\n type: Optional\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, propDecorators: { dropData: [{\n type: Input\n }], dragAxis: [{\n type: Input\n }], dragSnapGrid: [{\n type: Input\n }], ghostDragEnabled: [{\n type: Input\n }], showOriginalElementWhileDragging: [{\n type: Input\n }], validateDrag: [{\n type: Input\n }], dragCursor: [{\n type: Input\n }], dragActiveClass: [{\n type: Input\n }], ghostElementAppendTo: [{\n type: Input\n }], ghostElementTemplate: [{\n type: Input\n }], touchStartLongPress: [{\n type: Input\n }], autoScroll: [{\n type: Input\n }], dragPointerDown: [{\n type: Output\n }], dragStart: [{\n type: Output\n }], ghostElementCreated: [{\n type: Output\n }], dragging: [{\n type: Output\n }], dragEnd: [{\n type: Output\n }] } });\n\nfunction isCoordinateWithinRectangle(clientX, clientY, rect) {\n return (clientX >= rect.left &&\n clientX <= rect.right &&\n clientY >= rect.top &&\n clientY <= rect.bottom);\n}\nclass DroppableDirective {\n constructor(element, draggableHelper, zone, renderer, scrollContainer) {\n this.element = element;\n this.draggableHelper = draggableHelper;\n this.zone = zone;\n this.renderer = renderer;\n this.scrollContainer = scrollContainer;\n /**\n * Called when a draggable element starts overlapping the element\n */\n this.dragEnter = new EventEmitter();\n /**\n * Called when a draggable element stops overlapping the element\n */\n this.dragLeave = new EventEmitter();\n /**\n * Called when a draggable element is moved over the element\n */\n this.dragOver = new EventEmitter();\n /**\n * Called when a draggable element is dropped on this element\n */\n this.drop = new EventEmitter(); // eslint-disable-line @angular-eslint/no-output-native\n }\n ngOnInit() {\n this.currentDragSubscription = this.draggableHelper.currentDrag.subscribe((drag$) => {\n addClass(this.renderer, this.element, this.dragActiveClass);\n const droppableElement = {\n updateCache: true,\n };\n const deregisterScrollListener = this.renderer.listen(this.scrollContainer\n ? this.scrollContainer.elementRef.nativeElement\n : 'window', 'scroll', () => {\n droppableElement.updateCache = true;\n });\n let currentDragEvent;\n const overlaps$ = drag$.pipe(map(({ clientX, clientY, dropData, target }) => {\n currentDragEvent = { clientX, clientY, dropData, target };\n if (droppableElement.updateCache) {\n droppableElement.rect =\n this.element.nativeElement.getBoundingClientRect();\n if (this.scrollContainer) {\n droppableElement.scrollContainerRect =\n this.scrollContainer.elementRef.nativeElement.getBoundingClientRect();\n }\n droppableElement.updateCache = false;\n }\n const isWithinElement = isCoordinateWithinRectangle(clientX, clientY, droppableElement.rect);\n const isDropAllowed = !this.validateDrop ||\n this.validateDrop({ clientX, clientY, target, dropData });\n if (droppableElement.scrollContainerRect) {\n return (isWithinElement &&\n isDropAllowed &&\n isCoordinateWithinRectangle(clientX, clientY, droppableElement.scrollContainerRect));\n }\n else {\n return isWithinElement && isDropAllowed;\n }\n }));\n const overlapsChanged$ = overlaps$.pipe(distinctUntilChanged());\n let dragOverActive; // TODO - see if there's a way of doing this via rxjs\n overlapsChanged$\n .pipe(filter((overlapsNow) => overlapsNow))\n .subscribe(() => {\n dragOverActive = true;\n addClass(this.renderer, this.element, this.dragOverClass);\n if (this.dragEnter.observers.length > 0) {\n this.zone.run(() => {\n this.dragEnter.next(currentDragEvent);\n });\n }\n });\n overlaps$.pipe(filter((overlapsNow) => overlapsNow)).subscribe(() => {\n if (this.dragOver.observers.length > 0) {\n this.zone.run(() => {\n this.dragOver.next(currentDragEvent);\n });\n }\n });\n overlapsChanged$\n .pipe(pairwise(), filter(([didOverlap, overlapsNow]) => didOverlap && !overlapsNow))\n .subscribe(() => {\n dragOverActive = false;\n removeClass(this.renderer, this.element, this.dragOverClass);\n if (this.dragLeave.observers.length > 0) {\n this.zone.run(() => {\n this.dragLeave.next(currentDragEvent);\n });\n }\n });\n drag$.subscribe({\n complete: () => {\n deregisterScrollListener();\n removeClass(this.renderer, this.element, this.dragActiveClass);\n if (dragOverActive) {\n removeClass(this.renderer, this.element, this.dragOverClass);\n if (this.drop.observers.length > 0) {\n this.zone.run(() => {\n this.drop.next(currentDragEvent);\n });\n }\n }\n },\n });\n });\n }\n ngOnDestroy() {\n if (this.currentDragSubscription) {\n this.currentDragSubscription.unsubscribe();\n }\n }\n}\nDroppableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: DroppableDirective, deps: [{ token: i0.ElementRef }, { token: DraggableHelper }, { token: i0.NgZone }, { token: i0.Renderer2 }, { token: DraggableScrollContainerDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nDroppableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: DroppableDirective, selector: \"[mwlDroppable]\", inputs: { dragOverClass: \"dragOverClass\", dragActiveClass: \"dragActiveClass\", validateDrop: \"validateDrop\" }, outputs: { dragEnter: \"dragEnter\", dragLeave: \"dragLeave\", dragOver: \"dragOver\", drop: \"drop\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: DroppableDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[mwlDroppable]',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: DraggableHelper }, { type: i0.NgZone }, { type: i0.Renderer2 }, { type: DraggableScrollContainerDirective, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { dragOverClass: [{\n type: Input\n }], dragActiveClass: [{\n type: Input\n }], validateDrop: [{\n type: Input\n }], dragEnter: [{\n type: Output\n }], dragLeave: [{\n type: Output\n }], dragOver: [{\n type: Output\n }], drop: [{\n type: Output\n }] } });\n\nclass DragAndDropModule {\n}\nDragAndDropModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: DragAndDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nDragAndDropModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: DragAndDropModule, declarations: [DraggableDirective,\n DroppableDirective,\n DraggableScrollContainerDirective], exports: [DraggableDirective,\n DroppableDirective,\n DraggableScrollContainerDirective] });\nDragAndDropModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: DragAndDropModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: DragAndDropModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n DraggableDirective,\n DroppableDirective,\n DraggableScrollContainerDirective,\n ],\n exports: [\n DraggableDirective,\n DroppableDirective,\n DraggableScrollContainerDirective,\n ],\n }]\n }] });\n\n/*\n * Public API Surface of angular-draggable-droppable\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { DragAndDropModule, DraggableDirective, DraggableScrollContainerDirective, DroppableDirective };\n//# sourceMappingURL=angular-draggable-droppable.mjs.map\n","import { reduce } from './reduce';\nexport function count(predicate) {\n return reduce((total, value, i) => (!predicate || predicate(value, i) ? total + 1 : total), 0);\n}\n","import { scanInternals } from './scanInternals';\nimport { operate } from '../util/lift';\nexport function reduce(accumulator, seed) {\n return operate(scanInternals(accumulator, seed, arguments.length >= 2, false, true));\n}\n","import * as i0 from '@angular/core';\nimport { EventEmitter, PLATFORM_ID, Directive, Inject, Input, Output, Optional, NgModule } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Subject, merge, Observable, fromEvent } from 'rxjs';\nimport { tap, share, mergeMap, take, map, pairwise, filter, takeUntil } from 'rxjs/operators';\n\n/**\n * @hidden\n */\nconst IS_TOUCH_DEVICE = (() => {\n // In case we're in Node.js environment.\n if (typeof window === 'undefined') {\n return false;\n }\n else {\n return ('ontouchstart' in window ||\n navigator.maxTouchPoints > 0 ||\n navigator.msMaxTouchPoints >\n 0);\n }\n})();\n\n/** Creates a deep clone of an element. */\nfunction deepCloneNode(node) {\n const clone = node.cloneNode(true);\n const descendantsWithId = clone.querySelectorAll('[id]');\n const nodeName = node.nodeName.toLowerCase();\n // Remove the `id` to avoid having multiple elements with the same id on the page.\n clone.removeAttribute('id');\n descendantsWithId.forEach((descendant) => {\n descendant.removeAttribute('id');\n });\n if (nodeName === 'canvas') {\n transferCanvasData(node, clone);\n }\n else if (nodeName === 'input' ||\n nodeName === 'select' ||\n nodeName === 'textarea') {\n transferInputData(node, clone);\n }\n transferData('canvas', node, clone, transferCanvasData);\n transferData('input, textarea, select', node, clone, transferInputData);\n return clone;\n}\n/** Matches elements between an element and its clone and allows for their data to be cloned. */\nfunction transferData(selector, node, clone, callback) {\n const descendantElements = node.querySelectorAll(selector);\n if (descendantElements.length) {\n const cloneElements = clone.querySelectorAll(selector);\n for (let i = 0; i < descendantElements.length; i++) {\n callback(descendantElements[i], cloneElements[i]);\n }\n }\n}\n// Counter for unique cloned radio button names.\nlet cloneUniqueId = 0;\n/** Transfers the data of one input element to another. */\nfunction transferInputData(source, clone) {\n // Browsers throw an error when assigning the value of a file input programmatically.\n if (clone.type !== 'file') {\n clone.value = source.value;\n }\n // Radio button `name` attributes must be unique for radio button groups\n // otherwise original radio buttons can lose their checked state\n // once the clone is inserted in the DOM.\n if (clone.type === 'radio' && clone.name) {\n clone.name = `mat-clone-${clone.name}-${cloneUniqueId++}`;\n }\n}\n/** Transfers the data of one canvas element to another. */\nfunction transferCanvasData(source, clone) {\n const context = clone.getContext('2d');\n if (context) {\n // In some cases `drawImage` can throw (e.g. if the canvas size is 0x0).\n // We can't do much about it so just ignore the error.\n try {\n context.drawImage(source, 0, 0);\n }\n catch { }\n }\n}\n\nfunction getNewBoundingRectangle(startingRect, edges, clientX, clientY) {\n const newBoundingRect = {\n top: startingRect.top,\n bottom: startingRect.bottom,\n left: startingRect.left,\n right: startingRect.right,\n };\n if (edges.top) {\n newBoundingRect.top += clientY;\n }\n if (edges.bottom) {\n newBoundingRect.bottom += clientY;\n }\n if (edges.left) {\n newBoundingRect.left += clientX;\n }\n if (edges.right) {\n newBoundingRect.right += clientX;\n }\n newBoundingRect.height = newBoundingRect.bottom - newBoundingRect.top;\n newBoundingRect.width = newBoundingRect.right - newBoundingRect.left;\n return newBoundingRect;\n}\nfunction getElementRect(element, ghostElementPositioning) {\n let translateX = 0;\n let translateY = 0;\n const style = element.nativeElement.style;\n const transformProperties = [\n 'transform',\n '-ms-transform',\n '-moz-transform',\n '-o-transform',\n ];\n const transform = transformProperties\n .map((property) => style[property])\n .find((value) => !!value);\n if (transform && transform.includes('translate')) {\n translateX = transform.replace(/.*translate3?d?\\((-?[0-9]*)px, (-?[0-9]*)px.*/, '$1');\n translateY = transform.replace(/.*translate3?d?\\((-?[0-9]*)px, (-?[0-9]*)px.*/, '$2');\n }\n if (ghostElementPositioning === 'absolute') {\n return {\n height: element.nativeElement.offsetHeight,\n width: element.nativeElement.offsetWidth,\n top: element.nativeElement.offsetTop - translateY,\n bottom: element.nativeElement.offsetHeight +\n element.nativeElement.offsetTop -\n translateY,\n left: element.nativeElement.offsetLeft - translateX,\n right: element.nativeElement.offsetWidth +\n element.nativeElement.offsetLeft -\n translateX,\n };\n }\n else {\n const boundingRect = element.nativeElement.getBoundingClientRect();\n return {\n height: boundingRect.height,\n width: boundingRect.width,\n top: boundingRect.top - translateY,\n bottom: boundingRect.bottom - translateY,\n left: boundingRect.left - translateX,\n right: boundingRect.right - translateX,\n scrollTop: element.nativeElement.scrollTop,\n scrollLeft: element.nativeElement.scrollLeft,\n };\n }\n}\nconst DEFAULT_RESIZE_CURSORS = Object.freeze({\n topLeft: 'nw-resize',\n topRight: 'ne-resize',\n bottomLeft: 'sw-resize',\n bottomRight: 'se-resize',\n leftOrRight: 'col-resize',\n topOrBottom: 'row-resize',\n});\nfunction getResizeCursor(edges, cursors) {\n if (edges.left && edges.top) {\n return cursors.topLeft;\n }\n else if (edges.right && edges.top) {\n return cursors.topRight;\n }\n else if (edges.left && edges.bottom) {\n return cursors.bottomLeft;\n }\n else if (edges.right && edges.bottom) {\n return cursors.bottomRight;\n }\n else if (edges.left || edges.right) {\n return cursors.leftOrRight;\n }\n else if (edges.top || edges.bottom) {\n return cursors.topOrBottom;\n }\n else {\n return '';\n }\n}\nfunction getEdgesDiff({ edges, initialRectangle, newRectangle, }) {\n const edgesDiff = {};\n Object.keys(edges).forEach((edge) => {\n edgesDiff[edge] = (newRectangle[edge] || 0) - (initialRectangle[edge] || 0);\n });\n return edgesDiff;\n}\nconst RESIZE_ACTIVE_CLASS = 'resize-active';\nconst RESIZE_GHOST_ELEMENT_CLASS = 'resize-ghost-element';\nconst MOUSE_MOVE_THROTTLE_MS = 50;\n/**\n * Place this on an element to make it resizable. For example:\n *\n * ```html\n * \n * \n * ```\n * Or in case they are sibling elements:\n * ```html\n *
\n *
\n * ```\n */\nclass ResizableDirective {\n /**\n * @hidden\n */\n constructor(platformId, renderer, elm, zone) {\n this.platformId = platformId;\n this.renderer = renderer;\n this.elm = elm;\n this.zone = zone;\n /**\n * Set to `true` to enable a temporary resizing effect of the element in between the `resizeStart` and `resizeEnd` events.\n */\n this.enableGhostResize = false;\n /**\n * A snap grid that resize events will be locked to.\n *\n * e.g. to only allow the element to be resized every 10px set it to `{left: 10, right: 10}`\n */\n this.resizeSnapGrid = {};\n /**\n * The mouse cursors that will be set on the resize edges\n */\n this.resizeCursors = DEFAULT_RESIZE_CURSORS;\n /**\n * Define the positioning of the ghost element (can be fixed or absolute)\n */\n this.ghostElementPositioning = 'fixed';\n /**\n * Allow elements to be resized to negative dimensions\n */\n this.allowNegativeResizes = false;\n /**\n * The mouse move throttle in milliseconds, default: 50 ms\n */\n this.mouseMoveThrottleMS = MOUSE_MOVE_THROTTLE_MS;\n /**\n * Called when the mouse is pressed and a resize event is about to begin. `$event` is a `ResizeEvent` object.\n */\n this.resizeStart = new EventEmitter();\n /**\n * Called as the mouse is dragged after a resize event has begun. `$event` is a `ResizeEvent` object.\n */\n this.resizing = new EventEmitter();\n /**\n * Called after the mouse is released after a resize event. `$event` is a `ResizeEvent` object.\n */\n this.resizeEnd = new EventEmitter();\n /**\n * @hidden\n */\n this.mouseup = new Subject();\n /**\n * @hidden\n */\n this.mousedown = new Subject();\n /**\n * @hidden\n */\n this.mousemove = new Subject();\n this.destroy$ = new Subject();\n this.pointerEventListeners = PointerEventListeners.getInstance(renderer, zone);\n }\n /**\n * @hidden\n */\n ngOnInit() {\n const mousedown$ = merge(this.pointerEventListeners.pointerDown, this.mousedown);\n const mousemove$ = merge(this.pointerEventListeners.pointerMove, this.mousemove).pipe(tap(({ event }) => {\n if (currentResize && event.cancelable) {\n event.preventDefault();\n }\n }), share());\n const mouseup$ = merge(this.pointerEventListeners.pointerUp, this.mouseup);\n let currentResize;\n const removeGhostElement = () => {\n if (currentResize && currentResize.clonedNode) {\n this.elm.nativeElement.parentElement.removeChild(currentResize.clonedNode);\n this.renderer.setStyle(this.elm.nativeElement, 'visibility', 'inherit');\n }\n };\n const getResizeCursors = () => {\n return {\n ...DEFAULT_RESIZE_CURSORS,\n ...this.resizeCursors,\n };\n };\n const mousedrag = mousedown$\n .pipe(mergeMap((startCoords) => {\n function getDiff(moveCoords) {\n return {\n clientX: moveCoords.clientX - startCoords.clientX,\n clientY: moveCoords.clientY - startCoords.clientY,\n };\n }\n const getSnapGrid = () => {\n const snapGrid = { x: 1, y: 1 };\n if (currentResize) {\n if (this.resizeSnapGrid.left && currentResize.edges.left) {\n snapGrid.x = +this.resizeSnapGrid.left;\n }\n else if (this.resizeSnapGrid.right &&\n currentResize.edges.right) {\n snapGrid.x = +this.resizeSnapGrid.right;\n }\n if (this.resizeSnapGrid.top && currentResize.edges.top) {\n snapGrid.y = +this.resizeSnapGrid.top;\n }\n else if (this.resizeSnapGrid.bottom &&\n currentResize.edges.bottom) {\n snapGrid.y = +this.resizeSnapGrid.bottom;\n }\n }\n return snapGrid;\n };\n function getGrid(coords, snapGrid) {\n return {\n x: Math.ceil(coords.clientX / snapGrid.x),\n y: Math.ceil(coords.clientY / snapGrid.y),\n };\n }\n return merge(mousemove$.pipe(take(1)).pipe(map((coords) => [, coords])), mousemove$.pipe(pairwise()))\n .pipe(map(([previousCoords, newCoords]) => {\n return [\n previousCoords ? getDiff(previousCoords) : previousCoords,\n getDiff(newCoords),\n ];\n }))\n .pipe(filter(([previousCoords, newCoords]) => {\n if (!previousCoords) {\n return true;\n }\n const snapGrid = getSnapGrid();\n const previousGrid = getGrid(previousCoords, snapGrid);\n const newGrid = getGrid(newCoords, snapGrid);\n return (previousGrid.x !== newGrid.x || previousGrid.y !== newGrid.y);\n }))\n .pipe(map(([, newCoords]) => {\n const snapGrid = getSnapGrid();\n return {\n clientX: Math.round(newCoords.clientX / snapGrid.x) * snapGrid.x,\n clientY: Math.round(newCoords.clientY / snapGrid.y) * snapGrid.y,\n };\n }))\n .pipe(takeUntil(merge(mouseup$, mousedown$)));\n }))\n .pipe(filter(() => !!currentResize));\n mousedrag\n .pipe(map(({ clientX, clientY }) => {\n return getNewBoundingRectangle(currentResize.startingRect, currentResize.edges, clientX, clientY);\n }))\n .pipe(filter((newBoundingRect) => {\n return (this.allowNegativeResizes ||\n !!(newBoundingRect.height &&\n newBoundingRect.width &&\n newBoundingRect.height > 0 &&\n newBoundingRect.width > 0));\n }))\n .pipe(filter((newBoundingRect) => {\n return this.validateResize\n ? this.validateResize({\n rectangle: newBoundingRect,\n edges: getEdgesDiff({\n edges: currentResize.edges,\n initialRectangle: currentResize.startingRect,\n newRectangle: newBoundingRect,\n }),\n })\n : true;\n }), takeUntil(this.destroy$))\n .subscribe((newBoundingRect) => {\n if (currentResize && currentResize.clonedNode) {\n this.renderer.setStyle(currentResize.clonedNode, 'height', `${newBoundingRect.height}px`);\n this.renderer.setStyle(currentResize.clonedNode, 'width', `${newBoundingRect.width}px`);\n this.renderer.setStyle(currentResize.clonedNode, 'top', `${newBoundingRect.top}px`);\n this.renderer.setStyle(currentResize.clonedNode, 'left', `${newBoundingRect.left}px`);\n }\n if (this.resizing.observers.length > 0) {\n this.zone.run(() => {\n this.resizing.emit({\n edges: getEdgesDiff({\n edges: currentResize.edges,\n initialRectangle: currentResize.startingRect,\n newRectangle: newBoundingRect,\n }),\n rectangle: newBoundingRect,\n });\n });\n }\n currentResize.currentRect = newBoundingRect;\n });\n mousedown$\n .pipe(map(({ edges }) => {\n return edges || {};\n }), filter((edges) => {\n return Object.keys(edges).length > 0;\n }), takeUntil(this.destroy$))\n .subscribe((edges) => {\n if (currentResize) {\n removeGhostElement();\n }\n const startingRect = getElementRect(this.elm, this.ghostElementPositioning);\n currentResize = {\n edges,\n startingRect,\n currentRect: startingRect,\n };\n const resizeCursors = getResizeCursors();\n const cursor = getResizeCursor(currentResize.edges, resizeCursors);\n this.renderer.setStyle(document.body, 'cursor', cursor);\n this.setElementClass(this.elm, RESIZE_ACTIVE_CLASS, true);\n if (this.enableGhostResize) {\n currentResize.clonedNode = deepCloneNode(this.elm.nativeElement);\n this.elm.nativeElement.parentElement.appendChild(currentResize.clonedNode);\n this.renderer.setStyle(this.elm.nativeElement, 'visibility', 'hidden');\n this.renderer.setStyle(currentResize.clonedNode, 'position', this.ghostElementPositioning);\n this.renderer.setStyle(currentResize.clonedNode, 'left', `${currentResize.startingRect.left}px`);\n this.renderer.setStyle(currentResize.clonedNode, 'top', `${currentResize.startingRect.top}px`);\n this.renderer.setStyle(currentResize.clonedNode, 'height', `${currentResize.startingRect.height}px`);\n this.renderer.setStyle(currentResize.clonedNode, 'width', `${currentResize.startingRect.width}px`);\n this.renderer.setStyle(currentResize.clonedNode, 'cursor', getResizeCursor(currentResize.edges, resizeCursors));\n this.renderer.addClass(currentResize.clonedNode, RESIZE_GHOST_ELEMENT_CLASS);\n currentResize.clonedNode.scrollTop = currentResize.startingRect\n .scrollTop;\n currentResize.clonedNode.scrollLeft = currentResize.startingRect\n .scrollLeft;\n }\n if (this.resizeStart.observers.length > 0) {\n this.zone.run(() => {\n this.resizeStart.emit({\n edges: getEdgesDiff({\n edges,\n initialRectangle: startingRect,\n newRectangle: startingRect,\n }),\n rectangle: getNewBoundingRectangle(startingRect, {}, 0, 0),\n });\n });\n }\n });\n mouseup$.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (currentResize) {\n this.renderer.removeClass(this.elm.nativeElement, RESIZE_ACTIVE_CLASS);\n this.renderer.setStyle(document.body, 'cursor', '');\n this.renderer.setStyle(this.elm.nativeElement, 'cursor', '');\n if (this.resizeEnd.observers.length > 0) {\n this.zone.run(() => {\n this.resizeEnd.emit({\n edges: getEdgesDiff({\n edges: currentResize.edges,\n initialRectangle: currentResize.startingRect,\n newRectangle: currentResize.currentRect,\n }),\n rectangle: currentResize.currentRect,\n });\n });\n }\n removeGhostElement();\n currentResize = null;\n }\n });\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n // browser check for angular universal, because it doesn't know what document is\n if (isPlatformBrowser(this.platformId)) {\n this.renderer.setStyle(document.body, 'cursor', '');\n }\n this.mousedown.complete();\n this.mouseup.complete();\n this.mousemove.complete();\n this.destroy$.next();\n }\n setElementClass(elm, name, add) {\n if (add) {\n this.renderer.addClass(elm.nativeElement, name);\n }\n else {\n this.renderer.removeClass(elm.nativeElement, name);\n }\n }\n}\nResizableDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: ResizableDirective, deps: [{ token: PLATFORM_ID }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });\nResizableDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: ResizableDirective, selector: \"[mwlResizable]\", inputs: { validateResize: \"validateResize\", enableGhostResize: \"enableGhostResize\", resizeSnapGrid: \"resizeSnapGrid\", resizeCursors: \"resizeCursors\", ghostElementPositioning: \"ghostElementPositioning\", allowNegativeResizes: \"allowNegativeResizes\", mouseMoveThrottleMS: \"mouseMoveThrottleMS\" }, outputs: { resizeStart: \"resizeStart\", resizing: \"resizing\", resizeEnd: \"resizeEnd\" }, exportAs: [\"mwlResizable\"], ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: ResizableDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[mwlResizable]',\n exportAs: 'mwlResizable',\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { validateResize: [{\n type: Input\n }], enableGhostResize: [{\n type: Input\n }], resizeSnapGrid: [{\n type: Input\n }], resizeCursors: [{\n type: Input\n }], ghostElementPositioning: [{\n type: Input\n }], allowNegativeResizes: [{\n type: Input\n }], mouseMoveThrottleMS: [{\n type: Input\n }], resizeStart: [{\n type: Output\n }], resizing: [{\n type: Output\n }], resizeEnd: [{\n type: Output\n }] } });\nclass PointerEventListeners {\n constructor(renderer, zone) {\n this.pointerDown = new Observable((observer) => {\n let unsubscribeMouseDown;\n let unsubscribeTouchStart;\n zone.runOutsideAngular(() => {\n unsubscribeMouseDown = renderer.listen('document', 'mousedown', (event) => {\n observer.next({\n clientX: event.clientX,\n clientY: event.clientY,\n event,\n });\n });\n if (IS_TOUCH_DEVICE) {\n unsubscribeTouchStart = renderer.listen('document', 'touchstart', (event) => {\n observer.next({\n clientX: event.touches[0].clientX,\n clientY: event.touches[0].clientY,\n event,\n });\n });\n }\n });\n return () => {\n unsubscribeMouseDown();\n if (IS_TOUCH_DEVICE) {\n unsubscribeTouchStart();\n }\n };\n }).pipe(share());\n this.pointerMove = new Observable((observer) => {\n let unsubscribeMouseMove;\n let unsubscribeTouchMove;\n zone.runOutsideAngular(() => {\n unsubscribeMouseMove = renderer.listen('document', 'mousemove', (event) => {\n observer.next({\n clientX: event.clientX,\n clientY: event.clientY,\n event,\n });\n });\n if (IS_TOUCH_DEVICE) {\n unsubscribeTouchMove = renderer.listen('document', 'touchmove', (event) => {\n observer.next({\n clientX: event.targetTouches[0].clientX,\n clientY: event.targetTouches[0].clientY,\n event,\n });\n });\n }\n });\n return () => {\n unsubscribeMouseMove();\n if (IS_TOUCH_DEVICE) {\n unsubscribeTouchMove();\n }\n };\n }).pipe(share());\n this.pointerUp = new Observable((observer) => {\n let unsubscribeMouseUp;\n let unsubscribeTouchEnd;\n let unsubscribeTouchCancel;\n zone.runOutsideAngular(() => {\n unsubscribeMouseUp = renderer.listen('document', 'mouseup', (event) => {\n observer.next({\n clientX: event.clientX,\n clientY: event.clientY,\n event,\n });\n });\n if (IS_TOUCH_DEVICE) {\n unsubscribeTouchEnd = renderer.listen('document', 'touchend', (event) => {\n observer.next({\n clientX: event.changedTouches[0].clientX,\n clientY: event.changedTouches[0].clientY,\n event,\n });\n });\n unsubscribeTouchCancel = renderer.listen('document', 'touchcancel', (event) => {\n observer.next({\n clientX: event.changedTouches[0].clientX,\n clientY: event.changedTouches[0].clientY,\n event,\n });\n });\n }\n });\n return () => {\n unsubscribeMouseUp();\n if (IS_TOUCH_DEVICE) {\n unsubscribeTouchEnd();\n unsubscribeTouchCancel();\n }\n };\n }).pipe(share());\n }\n static getInstance(renderer, zone) {\n if (!PointerEventListeners.instance) {\n PointerEventListeners.instance = new PointerEventListeners(renderer, zone);\n }\n return PointerEventListeners.instance;\n }\n}\n\n/**\n * An element placed inside a `mwlResizable` directive to be used as a drag and resize handle\n *\n * For example\n *\n * ```html\n *
\n *
\n *
\n * ```\n * Or in case they are sibling elements:\n * ```html\n *
\n *
\n * ```\n */\nclass ResizeHandleDirective {\n constructor(renderer, element, zone, resizableDirective) {\n this.renderer = renderer;\n this.element = element;\n this.zone = zone;\n this.resizableDirective = resizableDirective;\n /**\n * The `Edges` object that contains the edges of the parent element that dragging the handle will trigger a resize on\n */\n this.resizeEdges = {};\n this.eventListeners = {};\n this.destroy$ = new Subject();\n }\n ngOnInit() {\n this.zone.runOutsideAngular(() => {\n this.listenOnTheHost('mousedown').subscribe((event) => {\n this.onMousedown(event, event.clientX, event.clientY);\n });\n this.listenOnTheHost('mouseup').subscribe((event) => {\n this.onMouseup(event.clientX, event.clientY);\n });\n if (IS_TOUCH_DEVICE) {\n this.listenOnTheHost('touchstart').subscribe((event) => {\n this.onMousedown(event, event.touches[0].clientX, event.touches[0].clientY);\n });\n merge(this.listenOnTheHost('touchend'), this.listenOnTheHost('touchcancel')).subscribe((event) => {\n this.onMouseup(event.changedTouches[0].clientX, event.changedTouches[0].clientY);\n });\n }\n });\n }\n ngOnDestroy() {\n this.destroy$.next();\n this.unsubscribeEventListeners();\n }\n /**\n * @hidden\n */\n onMousedown(event, clientX, clientY) {\n if (event.cancelable) {\n event.preventDefault();\n }\n if (!this.eventListeners.touchmove) {\n this.eventListeners.touchmove = this.renderer.listen(this.element.nativeElement, 'touchmove', (touchMoveEvent) => {\n this.onMousemove(touchMoveEvent, touchMoveEvent.targetTouches[0].clientX, touchMoveEvent.targetTouches[0].clientY);\n });\n }\n if (!this.eventListeners.mousemove) {\n this.eventListeners.mousemove = this.renderer.listen(this.element.nativeElement, 'mousemove', (mouseMoveEvent) => {\n this.onMousemove(mouseMoveEvent, mouseMoveEvent.clientX, mouseMoveEvent.clientY);\n });\n }\n this.resizable.mousedown.next({\n clientX,\n clientY,\n edges: this.resizeEdges,\n });\n }\n /**\n * @hidden\n */\n onMouseup(clientX, clientY) {\n this.unsubscribeEventListeners();\n this.resizable.mouseup.next({\n clientX,\n clientY,\n edges: this.resizeEdges,\n });\n }\n // directive might be passed from DI or as an input\n get resizable() {\n return this.resizableDirective || this.resizableContainer;\n }\n onMousemove(event, clientX, clientY) {\n this.resizable.mousemove.next({\n clientX,\n clientY,\n edges: this.resizeEdges,\n event,\n });\n }\n unsubscribeEventListeners() {\n Object.keys(this.eventListeners).forEach((type) => {\n this.eventListeners[type]();\n delete this.eventListeners[type];\n });\n }\n listenOnTheHost(eventName) {\n return fromEvent(this.element.nativeElement, eventName).pipe(takeUntil(this.destroy$));\n }\n}\nResizeHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: ResizeHandleDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.NgZone }, { token: ResizableDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive });\nResizeHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: ResizeHandleDirective, selector: \"[mwlResizeHandle]\", inputs: { resizeEdges: \"resizeEdges\", resizableContainer: \"resizableContainer\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: ResizeHandleDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[mwlResizeHandle]',\n }]\n }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.NgZone }, { type: ResizableDirective, decorators: [{\n type: Optional\n }] }]; }, propDecorators: { resizeEdges: [{\n type: Input\n }], resizableContainer: [{\n type: Input\n }] } });\n\nclass ResizableModule {\n}\nResizableModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: ResizableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nResizableModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: ResizableModule, declarations: [ResizableDirective, ResizeHandleDirective], exports: [ResizableDirective, ResizeHandleDirective] });\nResizableModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: ResizableModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: ResizableModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [ResizableDirective, ResizeHandleDirective],\n exports: [ResizableDirective, ResizeHandleDirective],\n }]\n }] });\n\n/*\n * Public API Surface of angular-resizable-element\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ResizableDirective, ResizableModule, ResizeHandleDirective };\n//# sourceMappingURL=angular-resizable-element.mjs.map\n","import * as i0 from '@angular/core';\nimport { EventEmitter, Directive, Inject, Input, Output, Injectable, LOCALE_ID, Pipe, Component, HostListener, InjectionToken, NgModule } from '@angular/core';\nimport * as i1 from '@angular/common';\nimport { DOCUMENT, formatDate, CommonModule, I18nPluralPipe } from '@angular/common';\nimport { Subject, Observable, of, timer, BehaviorSubject, interval } from 'rxjs';\nimport { takeUntil, switchMap, startWith, switchMapTo, map } from 'rxjs/operators';\nimport { positionElements } from 'positioning';\nimport { validateEvents as validateEvents$1, getMonthView, getWeekViewHeader, getWeekView } from 'calendar-utils';\nexport { DAYS_OF_WEEK } from 'calendar-utils';\nimport * as i2 from 'angular-draggable-droppable';\nimport { DragAndDropModule } from 'angular-draggable-droppable';\nimport { trigger, state, style, transition, animate } from '@angular/animations';\nimport * as i4 from 'angular-resizable-element';\nimport { ResizableModule } from 'angular-resizable-element';\n\nclass ClickDirective {\n constructor(renderer, elm, document) {\n this.renderer = renderer;\n this.elm = elm;\n this.document = document;\n this.clickListenerDisabled = false;\n this.click = new EventEmitter(); // eslint-disable-line\n this.destroy$ = new Subject();\n }\n ngOnInit() {\n if (!this.clickListenerDisabled) {\n this.listen()\n .pipe(takeUntil(this.destroy$))\n .subscribe((event) => {\n event.stopPropagation();\n this.click.emit(event);\n });\n }\n }\n ngOnDestroy() {\n this.destroy$.next();\n }\n listen() {\n return new Observable((observer) => {\n return this.renderer.listen(this.elm.nativeElement, 'click', (event) => {\n observer.next(event);\n });\n });\n }\n}\nClickDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: ClickDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });\nClickDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: ClickDirective, selector: \"[mwlClick]\", inputs: { clickListenerDisabled: \"clickListenerDisabled\" }, outputs: { click: \"mwlClick\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: ClickDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[mwlClick]',\n }]\n }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, propDecorators: { clickListenerDisabled: [{\n type: Input\n }], click: [{\n type: Output,\n args: ['mwlClick']\n }] } });\n\nclass KeydownEnterDirective {\n constructor(host, ngZone, renderer) {\n this.host = host;\n this.ngZone = ngZone;\n this.renderer = renderer;\n this.keydown = new EventEmitter(); // eslint-disable-line\n this.keydownListener = null;\n }\n ngOnInit() {\n this.ngZone.runOutsideAngular(() => {\n this.keydownListener = this.renderer.listen(this.host.nativeElement, 'keydown', (event) => {\n if (event.keyCode === 13 ||\n event.which === 13 ||\n event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n this.ngZone.run(() => {\n this.keydown.emit(event);\n });\n }\n });\n });\n }\n ngOnDestroy() {\n if (this.keydownListener !== null) {\n this.keydownListener();\n this.keydownListener = null;\n }\n }\n}\nKeydownEnterDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: KeydownEnterDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });\nKeydownEnterDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: KeydownEnterDirective, selector: \"[mwlKeydownEnter]\", outputs: { keydown: \"mwlKeydownEnter\" }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: KeydownEnterDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[mwlKeydownEnter]',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.Renderer2 }]; }, propDecorators: { keydown: [{\n type: Output,\n args: ['mwlKeydownEnter']\n }] } });\n\n/**\n * This class is responsible for adding accessibility to the calendar.\n * You may override any of its methods via angulars DI to suit your requirements.\n * For example:\n *\n * ```typescript\n * import { A11yParams, CalendarA11y } from 'angular-calendar';\n * import { formatDate, I18nPluralPipe } from '@angular/common';\n * import { Injectable } from '@angular/core';\n *\n * // adding your own a11y params\n * export interface CustomA11yParams extends A11yParams {\n * isDrSuess?: boolean;\n * }\n *\n * @Injectable()\n * export class CustomCalendarA11y extends CalendarA11y {\n * constructor(protected i18nPlural: I18nPluralPipe) {\n * super(i18nPlural);\n * }\n *\n * // overriding a function\n * public openDayEventsLandmark({ date, locale, isDrSuess }: CustomA11yParams): string {\n * if (isDrSuess) {\n * return `\n * ${formatDate(date, 'EEEE MMMM d', locale)}\n * Today you are you! That is truer than true! There is no one alive\n * who is you-er than you!\n * `;\n * }\n * }\n * }\n *\n * // in your component that uses the calendar\n * providers: [{\n * provide: CalendarA11y,\n * useClass: CustomCalendarA11y\n * }]\n * ```\n */\nclass CalendarA11y {\n constructor(i18nPlural) {\n this.i18nPlural = i18nPlural;\n }\n /**\n * Aria label for the badges/date of a cell\n * @example: `Saturday October 19 1 event click to expand`\n */\n monthCell({ day, locale }) {\n if (day.badgeTotal > 0) {\n return `\n ${formatDate(day.date, 'EEEE MMMM d', locale)},\n ${this.i18nPlural.transform(day.badgeTotal, {\n '=0': 'No events',\n '=1': 'One event',\n other: '# events',\n })},\n click to expand\n `;\n }\n else {\n return `${formatDate(day.date, 'EEEE MMMM d', locale)}`;\n }\n }\n /**\n * Aria label for the open day events start landmark\n * @example: `Saturday October 19 expanded view`\n */\n openDayEventsLandmark({ date, locale }) {\n return `\n Beginning of expanded view for ${formatDate(date, 'EEEE MMMM dd', locale)}\n `;\n }\n /**\n * Aria label for alert that a day in the month view was expanded\n * @example: `Saturday October 19 expanded`\n */\n openDayEventsAlert({ date, locale }) {\n return `${formatDate(date, 'EEEE MMMM dd', locale)} expanded`;\n }\n /**\n * Descriptive aria label for an event\n * @example: `Saturday October 19th, Scott's Pizza Party, from 11:00am to 5:00pm`\n */\n eventDescription({ event, locale }) {\n if (event.allDay === true) {\n return this.allDayEventDescription({ event, locale });\n }\n const aria = `\n ${formatDate(event.start, 'EEEE MMMM dd', locale)},\n ${event.title}, from ${formatDate(event.start, 'hh:mm a', locale)}\n `;\n if (event.end) {\n return aria + ` to ${formatDate(event.end, 'hh:mm a', locale)}`;\n }\n return aria;\n }\n /**\n * Descriptive aria label for an all day event\n * @example:\n * `Scott's Party, event spans multiple days: start time October 19 5:00pm, no stop time`\n */\n allDayEventDescription({ event, locale }) {\n const aria = `\n ${event.title}, event spans multiple days:\n start time ${formatDate(event.start, 'MMMM dd hh:mm a', locale)}\n `;\n if (event.end) {\n return (aria + `, stop time ${formatDate(event.end, 'MMMM d hh:mm a', locale)}`);\n }\n return aria + `, no stop time`;\n }\n /**\n * Aria label for the calendar event actions icons\n * @returns 'Edit' for fa-pencil icons, and 'Delete' for fa-times icons\n */\n actionButtonLabel({ action }) {\n return action.a11yLabel;\n }\n /**\n * @returns {number} Tab index to be given to month cells\n */\n monthCellTabIndex() {\n return 0;\n }\n /**\n * @returns true if the events inside the month cell should be aria-hidden\n */\n hideMonthCellEvents() {\n return true;\n }\n /**\n * @returns true if event titles should be aria-hidden (global)\n */\n hideEventTitle() {\n return true;\n }\n /**\n * @returns true if hour segments in the week view should be aria-hidden\n */\n hideWeekHourSegment() {\n return true;\n }\n /**\n * @returns true if hour segments in the day view should be aria-hidden\n */\n hideDayHourSegment() {\n return true;\n }\n}\nCalendarA11y.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarA11y, deps: [{ token: i1.I18nPluralPipe }], target: i0.ɵɵFactoryTarget.Injectable });\nCalendarA11y.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarA11y });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarA11y, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i1.I18nPluralPipe }]; } });\n\n/**\n * This pipe is primarily for rendering aria labels. Example usage:\n * ```typescript\n * // where `myEvent` is a `CalendarEvent` and myLocale is a locale identifier\n * {{ { event: myEvent, locale: myLocale } | calendarA11y: 'eventDescription' }}\n * ```\n */\nclass CalendarA11yPipe {\n constructor(calendarA11y, locale) {\n this.calendarA11y = calendarA11y;\n this.locale = locale;\n }\n transform(a11yParams, method) {\n a11yParams.locale = a11yParams.locale || this.locale;\n if (typeof this.calendarA11y[method] === 'undefined') {\n const allowedMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(CalendarA11y.prototype)).filter((iMethod) => iMethod !== 'constructor');\n throw new Error(`${method} is not a valid a11y method. Can only be one of ${allowedMethods.join(', ')}`);\n }\n return this.calendarA11y[method](a11yParams);\n }\n}\nCalendarA11yPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarA11yPipe, deps: [{ token: CalendarA11y }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nCalendarA11yPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarA11yPipe, name: \"calendarA11y\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarA11yPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'calendarA11y',\n }]\n }], ctorParameters: function () { return [{ type: CalendarA11y }, { type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; } });\n\nclass CalendarEventActionsComponent {\n constructor() {\n this.trackByActionId = (index, action) => action.id ? action.id : action;\n }\n}\nCalendarEventActionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarEventActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nCalendarEventActionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarEventActionsComponent, selector: \"mwl-calendar-event-actions\", inputs: { event: \"event\", customTemplate: \"customTemplate\" }, ngImport: i0, template: `\n \n \n \n \n \n \n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: ClickDirective, selector: \"[mwlClick]\", inputs: [\"clickListenerDisabled\"], outputs: [\"mwlClick\"] }, { kind: \"directive\", type: KeydownEnterDirective, selector: \"[mwlKeydownEnter]\", outputs: [\"mwlKeydownEnter\"] }, { kind: \"pipe\", type: CalendarA11yPipe, name: \"calendarA11y\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarEventActionsComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-event-actions',\n template: `\n \n \n \n \n \n \n \n \n `,\n }]\n }], propDecorators: { event: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }] } });\n\n/**\n * This class is responsible for displaying all event titles within the calendar. You may override any of its methods via angulars DI to suit your requirements. For example:\n *\n * ```typescript\n * import { Injectable } from '@angular/core';\n * import { CalendarEventTitleFormatter, CalendarEvent } from 'angular-calendar';\n *\n * @Injectable()\n * class CustomEventTitleFormatter extends CalendarEventTitleFormatter {\n *\n * month(event: CalendarEvent): string {\n * return `Custom prefix: ${event.title}`;\n * }\n *\n * }\n *\n * // in your component\n * providers: [{\n * provide: CalendarEventTitleFormatter,\n * useClass: CustomEventTitleFormatter\n * }]\n * ```\n */\nclass CalendarEventTitleFormatter {\n /**\n * The month view event title.\n */\n month(event, title) {\n return event.title;\n }\n /**\n * The month view event tooltip. Return a falsey value from this to disable the tooltip.\n */\n monthTooltip(event, title) {\n return event.title;\n }\n /**\n * The week view event title.\n */\n week(event, title) {\n return event.title;\n }\n /**\n * The week view event tooltip. Return a falsey value from this to disable the tooltip.\n */\n weekTooltip(event, title) {\n return event.title;\n }\n /**\n * The day view event title.\n */\n day(event, title) {\n return event.title;\n }\n /**\n * The day view event tooltip. Return a falsey value from this to disable the tooltip.\n */\n dayTooltip(event, title) {\n return event.title;\n }\n}\n\nclass CalendarEventTitlePipe {\n constructor(calendarEventTitle) {\n this.calendarEventTitle = calendarEventTitle;\n }\n transform(title, titleType, event) {\n return this.calendarEventTitle[titleType](event, title);\n }\n}\nCalendarEventTitlePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarEventTitlePipe, deps: [{ token: CalendarEventTitleFormatter }], target: i0.ɵɵFactoryTarget.Pipe });\nCalendarEventTitlePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarEventTitlePipe, name: \"calendarEventTitle\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarEventTitlePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'calendarEventTitle',\n }]\n }], ctorParameters: function () { return [{ type: CalendarEventTitleFormatter }]; } });\n\nclass CalendarEventTitleComponent {\n}\nCalendarEventTitleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarEventTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nCalendarEventTitleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarEventTitleComponent, selector: \"mwl-calendar-event-title\", inputs: { event: \"event\", customTemplate: \"customTemplate\", view: \"view\" }, ngImport: i0, template: `\n \n \n \n \n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"pipe\", type: CalendarEventTitlePipe, name: \"calendarEventTitle\" }, { kind: \"pipe\", type: CalendarA11yPipe, name: \"calendarA11y\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarEventTitleComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-event-title',\n template: `\n \n \n \n \n \n \n `,\n }]\n }], propDecorators: { event: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }], view: [{\n type: Input\n }] } });\n\nclass CalendarTooltipWindowComponent {\n}\nCalendarTooltipWindowComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarTooltipWindowComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nCalendarTooltipWindowComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarTooltipWindowComponent, selector: \"mwl-calendar-tooltip-window\", inputs: { contents: \"contents\", placement: \"placement\", event: \"event\", customTemplate: \"customTemplate\" }, ngImport: i0, template: `\n \n
\n
\n
\n
\n \n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarTooltipWindowComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-tooltip-window',\n template: `\n \n
\n
\n
\n
\n \n \n \n `,\n }]\n }], propDecorators: { contents: [{\n type: Input\n }], placement: [{\n type: Input\n }], event: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }] } });\nclass CalendarTooltipDirective {\n constructor(elementRef, injector, renderer, componentFactoryResolver, viewContainerRef, document // eslint-disable-line\n ) {\n this.elementRef = elementRef;\n this.injector = injector;\n this.renderer = renderer;\n this.viewContainerRef = viewContainerRef;\n this.document = document;\n this.placement = 'auto'; // eslint-disable-line @angular-eslint/no-input-rename\n this.delay = null; // eslint-disable-line @angular-eslint/no-input-rename\n this.cancelTooltipDelay$ = new Subject();\n this.tooltipFactory = componentFactoryResolver.resolveComponentFactory(CalendarTooltipWindowComponent);\n }\n ngOnChanges(changes) {\n if (this.tooltipRef &&\n (changes.contents || changes.customTemplate || changes.event)) {\n this.tooltipRef.instance.contents = this.contents;\n this.tooltipRef.instance.customTemplate = this.customTemplate;\n this.tooltipRef.instance.event = this.event;\n this.tooltipRef.changeDetectorRef.markForCheck();\n if (!this.contents) {\n this.hide();\n }\n }\n }\n ngOnDestroy() {\n this.hide();\n }\n onMouseOver() {\n const delay$ = this.delay === null ? of('now') : timer(this.delay);\n delay$.pipe(takeUntil(this.cancelTooltipDelay$)).subscribe(() => {\n this.show();\n });\n }\n onMouseOut() {\n this.hide();\n }\n show() {\n if (!this.tooltipRef && this.contents) {\n this.tooltipRef = this.viewContainerRef.createComponent(this.tooltipFactory, 0, this.injector, []);\n this.tooltipRef.instance.contents = this.contents;\n this.tooltipRef.instance.customTemplate = this.customTemplate;\n this.tooltipRef.instance.event = this.event;\n if (this.appendToBody) {\n this.document.body.appendChild(this.tooltipRef.location.nativeElement);\n }\n requestAnimationFrame(() => {\n this.positionTooltip();\n });\n }\n }\n hide() {\n if (this.tooltipRef) {\n this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.tooltipRef.hostView));\n this.tooltipRef = null;\n }\n this.cancelTooltipDelay$.next();\n }\n positionTooltip(previousPositions = []) {\n if (this.tooltipRef) {\n this.tooltipRef.changeDetectorRef.detectChanges();\n this.tooltipRef.instance.placement = positionElements(this.elementRef.nativeElement, this.tooltipRef.location.nativeElement.children[0], this.placement, this.appendToBody);\n // keep re-positioning the tooltip until the arrow position doesn't make a difference\n if (previousPositions.indexOf(this.tooltipRef.instance.placement) === -1) {\n this.positionTooltip([\n ...previousPositions,\n this.tooltipRef.instance.placement,\n ]);\n }\n }\n }\n}\nCalendarTooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarTooltipDirective, deps: [{ token: i0.ElementRef }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.ComponentFactoryResolver }, { token: i0.ViewContainerRef }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });\nCalendarTooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarTooltipDirective, selector: \"[mwlCalendarTooltip]\", inputs: { contents: [\"mwlCalendarTooltip\", \"contents\"], placement: [\"tooltipPlacement\", \"placement\"], customTemplate: [\"tooltipTemplate\", \"customTemplate\"], event: [\"tooltipEvent\", \"event\"], appendToBody: [\"tooltipAppendToBody\", \"appendToBody\"], delay: [\"tooltipDelay\", \"delay\"] }, host: { listeners: { \"mouseenter\": \"onMouseOver()\", \"mouseleave\": \"onMouseOut()\" } }, usesOnChanges: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarTooltipDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[mwlCalendarTooltip]',\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.ComponentFactoryResolver }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, propDecorators: { contents: [{\n type: Input,\n args: ['mwlCalendarTooltip']\n }], placement: [{\n type: Input,\n args: ['tooltipPlacement']\n }], customTemplate: [{\n type: Input,\n args: ['tooltipTemplate']\n }], event: [{\n type: Input,\n args: ['tooltipEvent']\n }], appendToBody: [{\n type: Input,\n args: ['tooltipAppendToBody']\n }], delay: [{\n type: Input,\n args: ['tooltipDelay']\n }], onMouseOver: [{\n type: HostListener,\n args: ['mouseenter']\n }], onMouseOut: [{\n type: HostListener,\n args: ['mouseleave']\n }] } });\n\nvar CalendarView;\n(function (CalendarView) {\n CalendarView[\"Month\"] = \"month\";\n CalendarView[\"Week\"] = \"week\";\n CalendarView[\"Day\"] = \"day\";\n})(CalendarView || (CalendarView = {}));\n\nconst validateEvents = (events) => {\n const warn = (...args) => console.warn('angular-calendar', ...args);\n return validateEvents$1(events, warn);\n};\nfunction isInsideLeftAndRight(outer, inner) {\n return (Math.floor(outer.left) <= Math.ceil(inner.left) &&\n Math.floor(inner.left) <= Math.ceil(outer.right) &&\n Math.floor(outer.left) <= Math.ceil(inner.right) &&\n Math.floor(inner.right) <= Math.ceil(outer.right));\n}\nfunction isInsideTopAndBottom(outer, inner) {\n return (Math.floor(outer.top) <= Math.ceil(inner.top) &&\n Math.floor(inner.top) <= Math.ceil(outer.bottom) &&\n Math.floor(outer.top) <= Math.ceil(inner.bottom) &&\n Math.floor(inner.bottom) <= Math.ceil(outer.bottom));\n}\nfunction isInside(outer, inner) {\n return (isInsideLeftAndRight(outer, inner) && isInsideTopAndBottom(outer, inner));\n}\nfunction roundToNearest(amount, precision) {\n return Math.round(amount / precision) * precision;\n}\nconst trackByEventId = (index, event) => event.id ? event.id : event;\nconst trackByWeekDayHeaderDate = (index, day) => day.date.toISOString();\nconst trackByHourSegment = (index, segment) => segment.date.toISOString();\nconst trackByHour = (index, hour) => hour.segments[0].date.toISOString();\nconst trackByWeekAllDayEvent = (index, weekEvent) => (weekEvent.event.id ? weekEvent.event.id : weekEvent.event);\nconst trackByWeekTimeEvent = (index, weekEvent) => (weekEvent.event.id ? weekEvent.event.id : weekEvent.event);\nconst MINUTES_IN_HOUR = 60;\nfunction getPixelAmountInMinutes(hourSegments, hourSegmentHeight, hourDuration) {\n return (hourDuration || MINUTES_IN_HOUR) / (hourSegments * hourSegmentHeight);\n}\nfunction getMinutesMoved(movedY, hourSegments, hourSegmentHeight, eventSnapSize, hourDuration) {\n const draggedInPixelsSnapSize = roundToNearest(movedY, eventSnapSize || hourSegmentHeight);\n const pixelAmountInMinutes = getPixelAmountInMinutes(hourSegments, hourSegmentHeight, hourDuration);\n return draggedInPixelsSnapSize * pixelAmountInMinutes;\n}\nfunction getDefaultEventEnd(dateAdapter, event, minimumMinutes) {\n if (event.end) {\n return event.end;\n }\n else {\n return dateAdapter.addMinutes(event.start, minimumMinutes);\n }\n}\nfunction addDaysWithExclusions(dateAdapter, date, days, excluded) {\n let daysCounter = 0;\n let daysToAdd = 0;\n const changeDays = days < 0 ? dateAdapter.subDays : dateAdapter.addDays;\n let result = date;\n while (daysToAdd <= Math.abs(days)) {\n result = changeDays(date, daysCounter);\n const day = dateAdapter.getDay(result);\n if (excluded.indexOf(day) === -1) {\n daysToAdd++;\n }\n daysCounter++;\n }\n return result;\n}\nfunction isDraggedWithinPeriod(newStart, newEnd, period) {\n const end = newEnd || newStart;\n return ((period.start <= newStart && newStart <= period.end) ||\n (period.start <= end && end <= period.end));\n}\nfunction shouldFireDroppedEvent(dropEvent, date, allDay, calendarId) {\n return (dropEvent.dropData &&\n dropEvent.dropData.event &&\n (dropEvent.dropData.calendarId !== calendarId ||\n (dropEvent.dropData.event.allDay && !allDay) ||\n (!dropEvent.dropData.event.allDay && allDay)));\n}\nfunction getWeekViewPeriod(dateAdapter, viewDate, weekStartsOn, excluded = [], daysInWeek) {\n let viewStart = daysInWeek\n ? dateAdapter.startOfDay(viewDate)\n : dateAdapter.startOfWeek(viewDate, { weekStartsOn });\n const endOfWeek = dateAdapter.endOfWeek(viewDate, { weekStartsOn });\n while (excluded.indexOf(dateAdapter.getDay(viewStart)) > -1 &&\n viewStart < endOfWeek) {\n viewStart = dateAdapter.addDays(viewStart, 1);\n }\n if (daysInWeek) {\n const viewEnd = dateAdapter.endOfDay(addDaysWithExclusions(dateAdapter, viewStart, daysInWeek - 1, excluded));\n return { viewStart, viewEnd };\n }\n else {\n let viewEnd = endOfWeek;\n while (excluded.indexOf(dateAdapter.getDay(viewEnd)) > -1 &&\n viewEnd > viewStart) {\n viewEnd = dateAdapter.subDays(viewEnd, 1);\n }\n return { viewStart, viewEnd };\n }\n}\nfunction isWithinThreshold({ x, y }) {\n const DRAG_THRESHOLD = 1;\n return Math.abs(x) > DRAG_THRESHOLD || Math.abs(y) > DRAG_THRESHOLD;\n}\n\nclass DateAdapter {\n}\n\n/**\n * Change the view date to the previous view. For example:\n *\n * ```typescript\n * \n * Previous\n * \n * ```\n */\nclass CalendarPreviousViewDirective {\n constructor(dateAdapter) {\n this.dateAdapter = dateAdapter;\n /**\n * Days to skip when going back by 1 day\n */\n this.excludeDays = [];\n /**\n * Called when the view date is changed\n */\n this.viewDateChange = new EventEmitter();\n }\n /**\n * @hidden\n */\n onClick() {\n const subFn = {\n day: this.dateAdapter.subDays,\n week: this.dateAdapter.subWeeks,\n month: this.dateAdapter.subMonths,\n }[this.view];\n if (this.view === CalendarView.Day) {\n this.viewDateChange.emit(addDaysWithExclusions(this.dateAdapter, this.viewDate, -1, this.excludeDays));\n }\n else if (this.view === CalendarView.Week && this.daysInWeek) {\n this.viewDateChange.emit(addDaysWithExclusions(this.dateAdapter, this.viewDate, -this.daysInWeek, this.excludeDays));\n }\n else {\n this.viewDateChange.emit(subFn(this.viewDate, 1));\n }\n }\n}\nCalendarPreviousViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarPreviousViewDirective, deps: [{ token: DateAdapter }], target: i0.ɵɵFactoryTarget.Directive });\nCalendarPreviousViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarPreviousViewDirective, selector: \"[mwlCalendarPreviousView]\", inputs: { view: \"view\", viewDate: \"viewDate\", excludeDays: \"excludeDays\", daysInWeek: \"daysInWeek\" }, outputs: { viewDateChange: \"viewDateChange\" }, host: { listeners: { \"click\": \"onClick()\" } }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarPreviousViewDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[mwlCalendarPreviousView]',\n }]\n }], ctorParameters: function () { return [{ type: DateAdapter }]; }, propDecorators: { view: [{\n type: Input\n }], viewDate: [{\n type: Input\n }], excludeDays: [{\n type: Input\n }], daysInWeek: [{\n type: Input\n }], viewDateChange: [{\n type: Output\n }], onClick: [{\n type: HostListener,\n args: ['click']\n }] } });\n\n/**\n * Change the view date to the next view. For example:\n *\n * ```typescript\n * \n * Next\n * \n * ```\n */\nclass CalendarNextViewDirective {\n constructor(dateAdapter) {\n this.dateAdapter = dateAdapter;\n /**\n * Days to skip when going forward by 1 day\n */\n this.excludeDays = [];\n /**\n * Called when the view date is changed\n */\n this.viewDateChange = new EventEmitter();\n }\n /**\n * @hidden\n */\n onClick() {\n const addFn = {\n day: this.dateAdapter.addDays,\n week: this.dateAdapter.addWeeks,\n month: this.dateAdapter.addMonths,\n }[this.view];\n if (this.view === CalendarView.Day) {\n this.viewDateChange.emit(addDaysWithExclusions(this.dateAdapter, this.viewDate, 1, this.excludeDays));\n }\n else if (this.view === CalendarView.Week && this.daysInWeek) {\n this.viewDateChange.emit(addDaysWithExclusions(this.dateAdapter, this.viewDate, this.daysInWeek, this.excludeDays));\n }\n else {\n this.viewDateChange.emit(addFn(this.viewDate, 1));\n }\n }\n}\nCalendarNextViewDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarNextViewDirective, deps: [{ token: DateAdapter }], target: i0.ɵɵFactoryTarget.Directive });\nCalendarNextViewDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarNextViewDirective, selector: \"[mwlCalendarNextView]\", inputs: { view: \"view\", viewDate: \"viewDate\", excludeDays: \"excludeDays\", daysInWeek: \"daysInWeek\" }, outputs: { viewDateChange: \"viewDateChange\" }, host: { listeners: { \"click\": \"onClick()\" } }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarNextViewDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[mwlCalendarNextView]',\n }]\n }], ctorParameters: function () { return [{ type: DateAdapter }]; }, propDecorators: { view: [{\n type: Input\n }], viewDate: [{\n type: Input\n }], excludeDays: [{\n type: Input\n }], daysInWeek: [{\n type: Input\n }], viewDateChange: [{\n type: Output\n }], onClick: [{\n type: HostListener,\n args: ['click']\n }] } });\n\n/**\n * Change the view date to the current day. For example:\n *\n * ```typescript\n * \n * Today\n * \n * ```\n */\nclass CalendarTodayDirective {\n constructor(dateAdapter) {\n this.dateAdapter = dateAdapter;\n /**\n * Called when the view date is changed\n */\n this.viewDateChange = new EventEmitter();\n }\n /**\n * @hidden\n */\n onClick() {\n this.viewDateChange.emit(this.dateAdapter.startOfDay(new Date()));\n }\n}\nCalendarTodayDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarTodayDirective, deps: [{ token: DateAdapter }], target: i0.ɵɵFactoryTarget.Directive });\nCalendarTodayDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarTodayDirective, selector: \"[mwlCalendarToday]\", inputs: { viewDate: \"viewDate\" }, outputs: { viewDateChange: \"viewDateChange\" }, host: { listeners: { \"click\": \"onClick()\" } }, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarTodayDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[mwlCalendarToday]',\n }]\n }], ctorParameters: function () { return [{ type: DateAdapter }]; }, propDecorators: { viewDate: [{\n type: Input\n }], viewDateChange: [{\n type: Output\n }], onClick: [{\n type: HostListener,\n args: ['click']\n }] } });\n\n/**\n * This will use the angular date pipe to do all date formatting. It is the default date formatter used by the calendar.\n */\nclass CalendarAngularDateFormatter {\n constructor(dateAdapter) {\n this.dateAdapter = dateAdapter;\n }\n /**\n * The month view header week day labels\n */\n monthViewColumnHeader({ date, locale }) {\n return formatDate(date, 'EEEE', locale);\n }\n /**\n * The month view cell day number\n */\n monthViewDayNumber({ date, locale }) {\n return formatDate(date, 'd', locale);\n }\n /**\n * The month view title\n */\n monthViewTitle({ date, locale }) {\n return formatDate(date, 'LLLL y', locale);\n }\n /**\n * The week view header week day labels\n */\n weekViewColumnHeader({ date, locale }) {\n return formatDate(date, 'EEEE', locale);\n }\n /**\n * The week view sub header day and month labels\n */\n weekViewColumnSubHeader({ date, locale, }) {\n return formatDate(date, 'MMM d', locale);\n }\n /**\n * The week view title\n */\n weekViewTitle({ date, locale, weekStartsOn, excludeDays, daysInWeek, }) {\n const { viewStart, viewEnd } = getWeekViewPeriod(this.dateAdapter, date, weekStartsOn, excludeDays, daysInWeek);\n const format = (dateToFormat, showYear) => formatDate(dateToFormat, 'MMM d' + (showYear ? ', yyyy' : ''), locale);\n return `${format(viewStart, viewStart.getUTCFullYear() !== viewEnd.getUTCFullYear())} - ${format(viewEnd, true)}`;\n }\n /**\n * The time formatting down the left hand side of the week view\n */\n weekViewHour({ date, locale }) {\n return formatDate(date, 'h a', locale);\n }\n /**\n * The time formatting down the left hand side of the day view\n */\n dayViewHour({ date, locale }) {\n return formatDate(date, 'h a', locale);\n }\n /**\n * The day view title\n */\n dayViewTitle({ date, locale }) {\n return formatDate(date, 'EEEE, MMMM d, y', locale);\n }\n}\nCalendarAngularDateFormatter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarAngularDateFormatter, deps: [{ token: DateAdapter }], target: i0.ɵɵFactoryTarget.Injectable });\nCalendarAngularDateFormatter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarAngularDateFormatter });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarAngularDateFormatter, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: DateAdapter }]; } });\n\n/**\n * This class is responsible for all formatting of dates. There are 3 implementations available, the `CalendarAngularDateFormatter` (default) which uses the angular date pipe to format dates, the `CalendarNativeDateFormatter` which will use the Intl API to format dates, or there is the `CalendarMomentDateFormatter` which uses moment.\n *\n * If you wish, you may override any of the defaults via angulars DI. For example:\n *\n * ```typescript\n * import { CalendarDateFormatter, DateFormatterParams } from 'angular-calendar';\n * import { formatDate } from '@angular/common';\n * import { Injectable } from '@angular/core';\n *\n * @Injectable()\n * class CustomDateFormatter extends CalendarDateFormatter {\n *\n * public monthViewColumnHeader({date, locale}: DateFormatterParams): string {\n * return formatDate(date, 'EEE', locale); // use short week days\n * }\n *\n * }\n *\n * // in your component that uses the calendar\n * providers: [{\n * provide: CalendarDateFormatter,\n * useClass: CustomDateFormatter\n * }]\n * ```\n */\nclass CalendarDateFormatter extends CalendarAngularDateFormatter {\n}\nCalendarDateFormatter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarDateFormatter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nCalendarDateFormatter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarDateFormatter });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarDateFormatter, decorators: [{\n type: Injectable\n }] });\n\n/**\n * This pipe is primarily for rendering the current view title. Example usage:\n * ```typescript\n * // where `viewDate` is a `Date` and view is `'month' | 'week' | 'day'`\n * {{ viewDate | calendarDate:(view + 'ViewTitle'):'en' }}\n * ```\n */\nclass CalendarDatePipe {\n constructor(dateFormatter, locale) {\n this.dateFormatter = dateFormatter;\n this.locale = locale;\n }\n transform(date, method, locale = this.locale, weekStartsOn = 0, excludeDays = [], daysInWeek) {\n if (typeof this.dateFormatter[method] === 'undefined') {\n const allowedMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(CalendarDateFormatter.prototype)).filter((iMethod) => iMethod !== 'constructor');\n throw new Error(`${method} is not a valid date formatter. Can only be one of ${allowedMethods.join(', ')}`);\n }\n return this.dateFormatter[method]({\n date,\n locale,\n weekStartsOn,\n excludeDays,\n daysInWeek,\n });\n }\n}\nCalendarDatePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarDatePipe, deps: [{ token: CalendarDateFormatter }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\nCalendarDatePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarDatePipe, name: \"calendarDate\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarDatePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'calendarDate',\n }]\n }], ctorParameters: function () { return [{ type: CalendarDateFormatter }, { type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; } });\n\nclass CalendarUtils {\n constructor(dateAdapter) {\n this.dateAdapter = dateAdapter;\n }\n getMonthView(args) {\n return getMonthView(this.dateAdapter, args);\n }\n getWeekViewHeader(args) {\n return getWeekViewHeader(this.dateAdapter, args);\n }\n getWeekView(args) {\n return getWeekView(this.dateAdapter, args);\n }\n}\nCalendarUtils.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarUtils, deps: [{ token: DateAdapter }], target: i0.ɵɵFactoryTarget.Injectable });\nCalendarUtils.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarUtils });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarUtils, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: DateAdapter }]; } });\n\nconst MOMENT = new InjectionToken('Moment');\n/**\n * This will use moment to do all date formatting. To use this class:\n *\n * ```typescript\n * import { CalendarDateFormatter, CalendarMomentDateFormatter, MOMENT } from 'angular-calendar';\n * import moment from 'moment';\n *\n * // in your component\n * provide: [{\n * provide: MOMENT, useValue: moment\n * }, {\n * provide: CalendarDateFormatter, useClass: CalendarMomentDateFormatter\n * }]\n *\n * ```\n */\nclass CalendarMomentDateFormatter {\n /**\n * @hidden\n */\n constructor(moment, dateAdapter) {\n this.moment = moment;\n this.dateAdapter = dateAdapter;\n }\n /**\n * The month view header week day labels\n */\n monthViewColumnHeader({ date, locale }) {\n return this.moment(date).locale(locale).format('dddd');\n }\n /**\n * The month view cell day number\n */\n monthViewDayNumber({ date, locale }) {\n return this.moment(date).locale(locale).format('D');\n }\n /**\n * The month view title\n */\n monthViewTitle({ date, locale }) {\n return this.moment(date).locale(locale).format('MMMM YYYY');\n }\n /**\n * The week view header week day labels\n */\n weekViewColumnHeader({ date, locale }) {\n return this.moment(date).locale(locale).format('dddd');\n }\n /**\n * The week view sub header day and month labels\n */\n weekViewColumnSubHeader({ date, locale, }) {\n return this.moment(date).locale(locale).format('MMM D');\n }\n /**\n * The week view title\n */\n weekViewTitle({ date, locale, weekStartsOn, excludeDays, daysInWeek, }) {\n const { viewStart, viewEnd } = getWeekViewPeriod(this.dateAdapter, date, weekStartsOn, excludeDays, daysInWeek);\n const format = (dateToFormat, showYear) => this.moment(dateToFormat)\n .locale(locale)\n .format('MMM D' + (showYear ? ', YYYY' : ''));\n return `${format(viewStart, viewStart.getUTCFullYear() !== viewEnd.getUTCFullYear())} - ${format(viewEnd, true)}`;\n }\n /**\n * The time formatting down the left hand side of the week view\n */\n weekViewHour({ date, locale }) {\n return this.moment(date).locale(locale).format('ha');\n }\n /**\n * The time formatting down the left hand side of the day view\n */\n dayViewHour({ date, locale }) {\n return this.moment(date).locale(locale).format('ha');\n }\n /**\n * The day view title\n */\n dayViewTitle({ date, locale }) {\n return this.moment(date).locale(locale).format('dddd, LL'); // dddd = Thursday\n } // LL = locale-dependent Month Day, Year\n}\nCalendarMomentDateFormatter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMomentDateFormatter, deps: [{ token: MOMENT }, { token: DateAdapter }], target: i0.ɵɵFactoryTarget.Injectable });\nCalendarMomentDateFormatter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMomentDateFormatter });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMomentDateFormatter, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MOMENT]\n }] }, { type: DateAdapter }]; } });\n\n/**\n * This will use Intl API to do all date formatting.\n *\n * You will need to include a polyfill for older browsers.\n */\nclass CalendarNativeDateFormatter {\n constructor(dateAdapter) {\n this.dateAdapter = dateAdapter;\n }\n /**\n * The month view header week day labels\n */\n monthViewColumnHeader({ date, locale }) {\n return new Intl.DateTimeFormat(locale, { weekday: 'long' }).format(date);\n }\n /**\n * The month view cell day number\n */\n monthViewDayNumber({ date, locale }) {\n return new Intl.DateTimeFormat(locale, { day: 'numeric' }).format(date);\n }\n /**\n * The month view title\n */\n monthViewTitle({ date, locale }) {\n return new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'long',\n }).format(date);\n }\n /**\n * The week view header week day labels\n */\n weekViewColumnHeader({ date, locale }) {\n return new Intl.DateTimeFormat(locale, { weekday: 'long' }).format(date);\n }\n /**\n * The week view sub header day and month labels\n */\n weekViewColumnSubHeader({ date, locale, }) {\n return new Intl.DateTimeFormat(locale, {\n day: 'numeric',\n month: 'short',\n }).format(date);\n }\n /**\n * The week view title\n */\n weekViewTitle({ date, locale, weekStartsOn, excludeDays, daysInWeek, }) {\n const { viewStart, viewEnd } = getWeekViewPeriod(this.dateAdapter, date, weekStartsOn, excludeDays, daysInWeek);\n const format = (dateToFormat, showYear) => new Intl.DateTimeFormat(locale, {\n day: 'numeric',\n month: 'short',\n year: showYear ? 'numeric' : undefined,\n }).format(dateToFormat);\n return `${format(viewStart, viewStart.getUTCFullYear() !== viewEnd.getUTCFullYear())} - ${format(viewEnd, true)}`;\n }\n /**\n * The time formatting down the left hand side of the week view\n */\n weekViewHour({ date, locale }) {\n return new Intl.DateTimeFormat(locale, { hour: 'numeric' }).format(date);\n }\n /**\n * The time formatting down the left hand side of the day view\n */\n dayViewHour({ date, locale }) {\n return new Intl.DateTimeFormat(locale, { hour: 'numeric' }).format(date);\n }\n /**\n * The day view title\n */\n dayViewTitle({ date, locale }) {\n return new Intl.DateTimeFormat(locale, {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n weekday: 'long',\n }).format(date);\n }\n}\nCalendarNativeDateFormatter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarNativeDateFormatter, deps: [{ token: DateAdapter }], target: i0.ɵɵFactoryTarget.Injectable });\nCalendarNativeDateFormatter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarNativeDateFormatter });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarNativeDateFormatter, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: DateAdapter }]; } });\n\nvar CalendarEventTimesChangedEventType;\n(function (CalendarEventTimesChangedEventType) {\n CalendarEventTimesChangedEventType[\"Drag\"] = \"drag\";\n CalendarEventTimesChangedEventType[\"Drop\"] = \"drop\";\n CalendarEventTimesChangedEventType[\"Resize\"] = \"resize\";\n})(CalendarEventTimesChangedEventType || (CalendarEventTimesChangedEventType = {}));\n\n/**\n * Import this module to if you're just using a singular view and want to save on bundle size. Example usage:\n *\n * ```typescript\n * import { CalendarCommonModule, CalendarMonthModule } from 'angular-calendar';\n *\n * @NgModule({\n * imports: [\n * CalendarCommonModule.forRoot(),\n * CalendarMonthModule\n * ]\n * })\n * class MyModule {}\n * ```\n *\n */\nclass CalendarCommonModule {\n static forRoot(dateAdapter, config = {}) {\n return {\n ngModule: CalendarCommonModule,\n providers: [\n dateAdapter,\n config.eventTitleFormatter || CalendarEventTitleFormatter,\n config.dateFormatter || CalendarDateFormatter,\n config.utils || CalendarUtils,\n config.a11y || CalendarA11y,\n ],\n };\n }\n}\nCalendarCommonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCalendarCommonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarCommonModule, declarations: [CalendarEventActionsComponent,\n CalendarEventTitleComponent,\n CalendarTooltipWindowComponent,\n CalendarTooltipDirective,\n CalendarPreviousViewDirective,\n CalendarNextViewDirective,\n CalendarTodayDirective,\n CalendarDatePipe,\n CalendarEventTitlePipe,\n CalendarA11yPipe,\n ClickDirective,\n KeydownEnterDirective], imports: [CommonModule], exports: [CalendarEventActionsComponent,\n CalendarEventTitleComponent,\n CalendarTooltipWindowComponent,\n CalendarTooltipDirective,\n CalendarPreviousViewDirective,\n CalendarNextViewDirective,\n CalendarTodayDirective,\n CalendarDatePipe,\n CalendarEventTitlePipe,\n CalendarA11yPipe,\n ClickDirective,\n KeydownEnterDirective] });\nCalendarCommonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarCommonModule, providers: [I18nPluralPipe], imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarCommonModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n CalendarEventActionsComponent,\n CalendarEventTitleComponent,\n CalendarTooltipWindowComponent,\n CalendarTooltipDirective,\n CalendarPreviousViewDirective,\n CalendarNextViewDirective,\n CalendarTodayDirective,\n CalendarDatePipe,\n CalendarEventTitlePipe,\n CalendarA11yPipe,\n ClickDirective,\n KeydownEnterDirective,\n ],\n imports: [CommonModule],\n exports: [\n CalendarEventActionsComponent,\n CalendarEventTitleComponent,\n CalendarTooltipWindowComponent,\n CalendarTooltipDirective,\n CalendarPreviousViewDirective,\n CalendarNextViewDirective,\n CalendarTodayDirective,\n CalendarDatePipe,\n CalendarEventTitlePipe,\n CalendarA11yPipe,\n ClickDirective,\n KeydownEnterDirective,\n ],\n providers: [I18nPluralPipe],\n }]\n }] });\n\nclass CalendarMonthCellComponent {\n constructor() {\n this.highlightDay = new EventEmitter();\n this.unhighlightDay = new EventEmitter();\n this.eventClicked = new EventEmitter();\n this.trackByEventId = trackByEventId;\n this.validateDrag = isWithinThreshold;\n }\n}\nCalendarMonthCellComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMonthCellComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nCalendarMonthCellComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarMonthCellComponent, selector: \"mwl-calendar-month-cell\", inputs: { day: \"day\", openDay: \"openDay\", locale: \"locale\", tooltipPlacement: \"tooltipPlacement\", tooltipAppendToBody: \"tooltipAppendToBody\", customTemplate: \"customTemplate\", tooltipTemplate: \"tooltipTemplate\", tooltipDelay: \"tooltipDelay\" }, outputs: { highlightDay: \"highlightDay\", unhighlightDay: \"unhighlightDay\", eventClicked: \"eventClicked\" }, host: { properties: { \"class.cal-past\": \"day.isPast\", \"class.cal-today\": \"day.isToday\", \"class.cal-future\": \"day.isFuture\", \"class.cal-weekend\": \"day.isWeekend\", \"class.cal-in-month\": \"day.inMonth\", \"class.cal-out-month\": \"!day.inMonth\", \"class.cal-has-events\": \"day.events.length > 0\", \"class.cal-open\": \"day === openDay\", \"class.cal-event-highlight\": \"!!day.backgroundColor\" }, classAttribute: \"cal-cell cal-day-cell\" }, ngImport: i0, template: `\n \n \n \n 0\">{{\n day.badgeTotal\n }}\n {{\n day.date | calendarDate : 'monthViewDayNumber' : locale\n }}\n \n \n
0\">\n
\n \n \n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"directive\", type: i2.DraggableDirective, selector: \"[mwlDraggable]\", inputs: [\"dropData\", \"dragAxis\", \"dragSnapGrid\", \"ghostDragEnabled\", \"showOriginalElementWhileDragging\", \"validateDrag\", \"dragCursor\", \"dragActiveClass\", \"ghostElementAppendTo\", \"ghostElementTemplate\", \"touchStartLongPress\", \"autoScroll\"], outputs: [\"dragPointerDown\", \"dragStart\", \"ghostElementCreated\", \"dragging\", \"dragEnd\"] }, { kind: \"directive\", type: CalendarTooltipDirective, selector: \"[mwlCalendarTooltip]\", inputs: [\"mwlCalendarTooltip\", \"tooltipPlacement\", \"tooltipTemplate\", \"tooltipEvent\", \"tooltipAppendToBody\", \"tooltipDelay\"] }, { kind: \"directive\", type: ClickDirective, selector: \"[mwlClick]\", inputs: [\"clickListenerDisabled\"], outputs: [\"mwlClick\"] }, { kind: \"pipe\", type: CalendarDatePipe, name: \"calendarDate\" }, { kind: \"pipe\", type: CalendarEventTitlePipe, name: \"calendarEventTitle\" }, { kind: \"pipe\", type: CalendarA11yPipe, name: \"calendarA11y\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMonthCellComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-month-cell',\n template: `\n \n \n \n 0\">{{\n day.badgeTotal\n }}\n {{\n day.date | calendarDate : 'monthViewDayNumber' : locale\n }}\n \n \n
0\">\n
\n \n \n \n \n `,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n class: 'cal-cell cal-day-cell',\n '[class.cal-past]': 'day.isPast',\n '[class.cal-today]': 'day.isToday',\n '[class.cal-future]': 'day.isFuture',\n '[class.cal-weekend]': 'day.isWeekend',\n '[class.cal-in-month]': 'day.inMonth',\n '[class.cal-out-month]': '!day.inMonth',\n '[class.cal-has-events]': 'day.events.length > 0',\n '[class.cal-open]': 'day === openDay',\n '[class.cal-event-highlight]': '!!day.backgroundColor',\n },\n }]\n }], propDecorators: { day: [{\n type: Input\n }], openDay: [{\n type: Input\n }], locale: [{\n type: Input\n }], tooltipPlacement: [{\n type: Input\n }], tooltipAppendToBody: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], tooltipDelay: [{\n type: Input\n }], highlightDay: [{\n type: Output\n }], unhighlightDay: [{\n type: Output\n }], eventClicked: [{\n type: Output\n }] } });\n\nconst collapseAnimation = trigger('collapse', [\n state('void', style({\n height: 0,\n overflow: 'hidden',\n 'padding-top': 0,\n 'padding-bottom': 0,\n })),\n state('*', style({\n height: '*',\n overflow: 'hidden',\n 'padding-top': '*',\n 'padding-bottom': '*',\n })),\n transition('* => void', animate('150ms ease-out')),\n transition('void => *', animate('150ms ease-in')),\n]);\nclass CalendarOpenDayEventsComponent {\n constructor() {\n this.isOpen = false;\n this.eventClicked = new EventEmitter();\n this.trackByEventId = trackByEventId;\n this.validateDrag = isWithinThreshold;\n }\n}\nCalendarOpenDayEventsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarOpenDayEventsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nCalendarOpenDayEventsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarOpenDayEventsComponent, selector: \"mwl-calendar-open-day-events\", inputs: { locale: \"locale\", isOpen: \"isOpen\", events: \"events\", customTemplate: \"customTemplate\", eventTitleTemplate: \"eventTitleTemplate\", eventActionsTemplate: \"eventActionsTemplate\", date: \"date\" }, outputs: { eventClicked: \"eventClicked\" }, ngImport: i0, template: `\n \n \n \n \n \n \n \n &ngsp;\n \n \n &ngsp;\n \n \n \n \n \n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"directive\", type: i2.DraggableDirective, selector: \"[mwlDraggable]\", inputs: [\"dropData\", \"dragAxis\", \"dragSnapGrid\", \"ghostDragEnabled\", \"showOriginalElementWhileDragging\", \"validateDrag\", \"dragCursor\", \"dragActiveClass\", \"ghostElementAppendTo\", \"ghostElementTemplate\", \"touchStartLongPress\", \"autoScroll\"], outputs: [\"dragPointerDown\", \"dragStart\", \"ghostElementCreated\", \"dragging\", \"dragEnd\"] }, { kind: \"component\", type: CalendarEventActionsComponent, selector: \"mwl-calendar-event-actions\", inputs: [\"event\", \"customTemplate\"] }, { kind: \"component\", type: CalendarEventTitleComponent, selector: \"mwl-calendar-event-title\", inputs: [\"event\", \"customTemplate\", \"view\"] }, { kind: \"directive\", type: ClickDirective, selector: \"[mwlClick]\", inputs: [\"clickListenerDisabled\"], outputs: [\"mwlClick\"] }, { kind: \"directive\", type: KeydownEnterDirective, selector: \"[mwlKeydownEnter]\", outputs: [\"mwlKeydownEnter\"] }, { kind: \"pipe\", type: CalendarA11yPipe, name: \"calendarA11y\" }], animations: [collapseAnimation] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarOpenDayEventsComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-open-day-events',\n template: `\n \n \n \n \n \n \n \n &ngsp;\n \n \n &ngsp;\n \n \n \n \n \n \n \n `,\n animations: [collapseAnimation],\n }]\n }], propDecorators: { locale: [{\n type: Input\n }], isOpen: [{\n type: Input\n }], events: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }], eventTitleTemplate: [{\n type: Input\n }], eventActionsTemplate: [{\n type: Input\n }], date: [{\n type: Input\n }], eventClicked: [{\n type: Output\n }] } });\n\nclass CalendarMonthViewHeaderComponent {\n constructor() {\n this.columnHeaderClicked = new EventEmitter();\n this.trackByWeekDayHeaderDate = trackByWeekDayHeaderDate;\n }\n}\nCalendarMonthViewHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMonthViewHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nCalendarMonthViewHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarMonthViewHeaderComponent, selector: \"mwl-calendar-month-view-header\", inputs: { days: \"days\", locale: \"locale\", customTemplate: \"customTemplate\" }, outputs: { columnHeaderClicked: \"columnHeaderClicked\" }, ngImport: i0, template: `\n \n
\n \n {{ day.date | calendarDate : 'monthViewColumnHeader' : locale }}\n
\n \n \n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"pipe\", type: CalendarDatePipe, name: \"calendarDate\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMonthViewHeaderComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-month-view-header',\n template: `\n \n
\n \n {{ day.date | calendarDate : 'monthViewColumnHeader' : locale }}\n
\n \n \n \n \n `,\n }]\n }], propDecorators: { days: [{\n type: Input\n }], locale: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }], columnHeaderClicked: [{\n type: Output\n }] } });\n\n/**\n * Shows all events on a given month. Example usage:\n *\n * ```typescript\n * \n * \n * ```\n */\nclass CalendarMonthViewComponent {\n /**\n * @hidden\n */\n constructor(cdr, utils, locale, dateAdapter) {\n this.cdr = cdr;\n this.utils = utils;\n this.dateAdapter = dateAdapter;\n /**\n * An array of events to display on view.\n * The schema is available here: https://github.com/mattlewis92/calendar-utils/blob/c51689985f59a271940e30bc4e2c4e1fee3fcb5c/src/calendarUtils.ts#L49-L63\n */\n this.events = [];\n /**\n * An array of day indexes (0 = sunday, 1 = monday etc) that will be hidden on the view\n */\n this.excludeDays = [];\n /**\n * Whether the events list for the day of the `viewDate` option is visible or not\n */\n this.activeDayIsOpen = false;\n /**\n * The placement of the event tooltip\n */\n this.tooltipPlacement = 'auto';\n /**\n * Whether to append tooltips to the body or next to the trigger element\n */\n this.tooltipAppendToBody = true;\n /**\n * The delay in milliseconds before the tooltip should be displayed. If not provided the tooltip\n * will be displayed immediately.\n */\n this.tooltipDelay = null;\n /**\n * An output that will be called before the view is rendered for the current month.\n * If you add the `cssClass` property to a day in the body it will add that class to the cell element in the template\n */\n this.beforeViewRender = new EventEmitter();\n /**\n * Called when the day cell is clicked\n */\n this.dayClicked = new EventEmitter();\n /**\n * Called when the event title is clicked\n */\n this.eventClicked = new EventEmitter();\n /**\n * Called when a header week day is clicked. Returns ISO day number.\n */\n this.columnHeaderClicked = new EventEmitter();\n /**\n * Called when an event is dragged and dropped\n */\n this.eventTimesChanged = new EventEmitter();\n /**\n * @hidden\n */\n this.trackByRowOffset = (index, offset) => this.view.days\n .slice(offset, this.view.totalDaysVisibleInWeek)\n .map((day) => day.date.toISOString())\n .join('-');\n /**\n * @hidden\n */\n this.trackByDate = (index, day) => day.date.toISOString();\n this.locale = locale;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n if (this.refresh) {\n this.refreshSubscription = this.refresh.subscribe(() => {\n this.refreshAll();\n this.cdr.markForCheck();\n });\n }\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n const refreshHeader = changes.viewDate || changes.excludeDays || changes.weekendDays;\n const refreshBody = changes.viewDate ||\n changes.events ||\n changes.excludeDays ||\n changes.weekendDays;\n if (refreshHeader) {\n this.refreshHeader();\n }\n if (changes.events) {\n validateEvents(this.events);\n }\n if (refreshBody) {\n this.refreshBody();\n }\n if (refreshHeader || refreshBody) {\n this.emitBeforeViewRender();\n }\n if (changes.activeDayIsOpen ||\n changes.viewDate ||\n changes.events ||\n changes.excludeDays ||\n changes.activeDay) {\n this.checkActiveDayIsOpen();\n }\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.refreshSubscription) {\n this.refreshSubscription.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n toggleDayHighlight(event, isHighlighted) {\n this.view.days.forEach((day) => {\n if (isHighlighted && day.events.indexOf(event) > -1) {\n day.backgroundColor =\n (event.color && event.color.secondary) || '#D1E8FF';\n }\n else {\n delete day.backgroundColor;\n }\n });\n }\n /**\n * @hidden\n */\n eventDropped(droppedOn, event, draggedFrom) {\n if (droppedOn !== draggedFrom) {\n const year = this.dateAdapter.getYear(droppedOn.date);\n const month = this.dateAdapter.getMonth(droppedOn.date);\n const date = this.dateAdapter.getDate(droppedOn.date);\n const newStart = this.dateAdapter.setDate(this.dateAdapter.setMonth(this.dateAdapter.setYear(event.start, year), month), date);\n let newEnd;\n if (event.end) {\n const secondsDiff = this.dateAdapter.differenceInSeconds(newStart, event.start);\n newEnd = this.dateAdapter.addSeconds(event.end, secondsDiff);\n }\n this.eventTimesChanged.emit({\n event,\n newStart,\n newEnd,\n day: droppedOn,\n type: CalendarEventTimesChangedEventType.Drop,\n });\n }\n }\n refreshHeader() {\n this.columnHeaders = this.utils.getWeekViewHeader({\n viewDate: this.viewDate,\n weekStartsOn: this.weekStartsOn,\n excluded: this.excludeDays,\n weekendDays: this.weekendDays,\n });\n }\n refreshBody() {\n this.view = this.utils.getMonthView({\n events: this.events,\n viewDate: this.viewDate,\n weekStartsOn: this.weekStartsOn,\n excluded: this.excludeDays,\n weekendDays: this.weekendDays,\n });\n }\n checkActiveDayIsOpen() {\n if (this.activeDayIsOpen === true) {\n const activeDay = this.activeDay || this.viewDate;\n this.openDay = this.view.days.find((day) => this.dateAdapter.isSameDay(day.date, activeDay));\n const index = this.view.days.indexOf(this.openDay);\n this.openRowIndex =\n Math.floor(index / this.view.totalDaysVisibleInWeek) *\n this.view.totalDaysVisibleInWeek;\n }\n else {\n this.openRowIndex = null;\n this.openDay = null;\n }\n }\n refreshAll() {\n this.refreshHeader();\n this.refreshBody();\n this.emitBeforeViewRender();\n this.checkActiveDayIsOpen();\n }\n emitBeforeViewRender() {\n if (this.columnHeaders && this.view) {\n this.beforeViewRender.emit({\n header: this.columnHeaders,\n body: this.view.days,\n period: this.view.period,\n });\n }\n }\n}\nCalendarMonthViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMonthViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CalendarUtils }, { token: LOCALE_ID }, { token: DateAdapter }], target: i0.ɵɵFactoryTarget.Component });\nCalendarMonthViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarMonthViewComponent, selector: \"mwl-calendar-month-view\", inputs: { viewDate: \"viewDate\", events: \"events\", excludeDays: \"excludeDays\", activeDayIsOpen: \"activeDayIsOpen\", activeDay: \"activeDay\", refresh: \"refresh\", locale: \"locale\", tooltipPlacement: \"tooltipPlacement\", tooltipTemplate: \"tooltipTemplate\", tooltipAppendToBody: \"tooltipAppendToBody\", tooltipDelay: \"tooltipDelay\", weekStartsOn: \"weekStartsOn\", headerTemplate: \"headerTemplate\", cellTemplate: \"cellTemplate\", openDayEventsTemplate: \"openDayEventsTemplate\", eventTitleTemplate: \"eventTitleTemplate\", eventActionsTemplate: \"eventActionsTemplate\", weekendDays: \"weekendDays\" }, outputs: { beforeViewRender: \"beforeViewRender\", dayClicked: \"dayClicked\", eventClicked: \"eventClicked\", columnHeaderClicked: \"columnHeaderClicked\", eventTimesChanged: \"eventTimesChanged\" }, usesOnChanges: true, ngImport: i0, template: `\n
\n \n \n
\n \n
\n \n \n
\n \n \n
\n
\n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"directive\", type: i2.DroppableDirective, selector: \"[mwlDroppable]\", inputs: [\"dragOverClass\", \"dragActiveClass\", \"validateDrop\"], outputs: [\"dragEnter\", \"dragLeave\", \"dragOver\", \"drop\"] }, { kind: \"directive\", type: ClickDirective, selector: \"[mwlClick]\", inputs: [\"clickListenerDisabled\"], outputs: [\"mwlClick\"] }, { kind: \"directive\", type: KeydownEnterDirective, selector: \"[mwlKeydownEnter]\", outputs: [\"mwlKeydownEnter\"] }, { kind: \"component\", type: CalendarMonthCellComponent, selector: \"mwl-calendar-month-cell\", inputs: [\"day\", \"openDay\", \"locale\", \"tooltipPlacement\", \"tooltipAppendToBody\", \"customTemplate\", \"tooltipTemplate\", \"tooltipDelay\"], outputs: [\"highlightDay\", \"unhighlightDay\", \"eventClicked\"] }, { kind: \"component\", type: CalendarOpenDayEventsComponent, selector: \"mwl-calendar-open-day-events\", inputs: [\"locale\", \"isOpen\", \"events\", \"customTemplate\", \"eventTitleTemplate\", \"eventActionsTemplate\", \"date\"], outputs: [\"eventClicked\"] }, { kind: \"component\", type: CalendarMonthViewHeaderComponent, selector: \"mwl-calendar-month-view-header\", inputs: [\"days\", \"locale\", \"customTemplate\"], outputs: [\"columnHeaderClicked\"] }, { kind: \"pipe\", type: i1.SlicePipe, name: \"slice\" }, { kind: \"pipe\", type: CalendarA11yPipe, name: \"calendarA11y\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMonthViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-month-view',\n template: `\n
\n \n \n
\n \n
\n \n \n
\n \n \n
\n
\n \n `,\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: CalendarUtils }, { type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: DateAdapter }]; }, propDecorators: { viewDate: [{\n type: Input\n }], events: [{\n type: Input\n }], excludeDays: [{\n type: Input\n }], activeDayIsOpen: [{\n type: Input\n }], activeDay: [{\n type: Input\n }], refresh: [{\n type: Input\n }], locale: [{\n type: Input\n }], tooltipPlacement: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], tooltipAppendToBody: [{\n type: Input\n }], tooltipDelay: [{\n type: Input\n }], weekStartsOn: [{\n type: Input\n }], headerTemplate: [{\n type: Input\n }], cellTemplate: [{\n type: Input\n }], openDayEventsTemplate: [{\n type: Input\n }], eventTitleTemplate: [{\n type: Input\n }], eventActionsTemplate: [{\n type: Input\n }], weekendDays: [{\n type: Input\n }], beforeViewRender: [{\n type: Output\n }], dayClicked: [{\n type: Output\n }], eventClicked: [{\n type: Output\n }], columnHeaderClicked: [{\n type: Output\n }], eventTimesChanged: [{\n type: Output\n }] } });\n\nclass CalendarMonthModule {\n}\nCalendarMonthModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMonthModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCalendarMonthModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMonthModule, declarations: [CalendarMonthViewComponent,\n CalendarMonthCellComponent,\n CalendarOpenDayEventsComponent,\n CalendarMonthViewHeaderComponent], imports: [CommonModule, DragAndDropModule, CalendarCommonModule], exports: [DragAndDropModule,\n CalendarMonthViewComponent,\n CalendarMonthCellComponent,\n CalendarOpenDayEventsComponent,\n CalendarMonthViewHeaderComponent] });\nCalendarMonthModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMonthModule, imports: [CommonModule, DragAndDropModule, CalendarCommonModule, DragAndDropModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarMonthModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, DragAndDropModule, CalendarCommonModule],\n declarations: [\n CalendarMonthViewComponent,\n CalendarMonthCellComponent,\n CalendarOpenDayEventsComponent,\n CalendarMonthViewHeaderComponent,\n ],\n exports: [\n DragAndDropModule,\n CalendarMonthViewComponent,\n CalendarMonthCellComponent,\n CalendarOpenDayEventsComponent,\n CalendarMonthViewHeaderComponent,\n ],\n }]\n }] });\n\nclass CalendarDragHelper {\n constructor(dragContainerElement, draggableElement) {\n this.dragContainerElement = dragContainerElement;\n this.startPosition = draggableElement.getBoundingClientRect();\n }\n validateDrag({ x, y, snapDraggedEvents, dragAlreadyMoved, transform, }) {\n const isDraggedWithinThreshold = isWithinThreshold({ x, y }) || dragAlreadyMoved;\n if (snapDraggedEvents) {\n const inner = Object.assign({}, this.startPosition, {\n left: this.startPosition.left + transform.x,\n right: this.startPosition.right + transform.x,\n top: this.startPosition.top + transform.y,\n bottom: this.startPosition.bottom + transform.y,\n });\n if (isDraggedWithinThreshold) {\n const outer = this.dragContainerElement.getBoundingClientRect();\n const isTopInside = outer.top < inner.top && inner.top < outer.bottom;\n const isBottomInside = outer.top < inner.bottom && inner.bottom < outer.bottom;\n return (isInsideLeftAndRight(outer, inner) && (isTopInside || isBottomInside));\n }\n /* istanbul ignore next */\n return false;\n }\n else {\n return isDraggedWithinThreshold;\n }\n }\n}\n\nclass CalendarResizeHelper {\n constructor(resizeContainerElement, minWidth, rtl) {\n this.resizeContainerElement = resizeContainerElement;\n this.minWidth = minWidth;\n this.rtl = rtl;\n }\n validateResize({ rectangle, edges }) {\n if (this.rtl) {\n // TODO - find a way of testing this, for some reason the tests always fail but it does actually work\n /* istanbul ignore next */\n if (typeof edges.left !== 'undefined') {\n rectangle.left -= edges.left;\n rectangle.right += edges.left;\n }\n else if (typeof edges.right !== 'undefined') {\n rectangle.left += edges.right;\n rectangle.right -= edges.right;\n }\n rectangle.width = rectangle.right - rectangle.left;\n }\n if (this.minWidth &&\n Math.ceil(rectangle.width) < Math.ceil(this.minWidth)) {\n return false;\n }\n return isInside(this.resizeContainerElement.getBoundingClientRect(), rectangle);\n }\n}\n\nclass CalendarWeekViewHeaderComponent {\n constructor() {\n this.dayHeaderClicked = new EventEmitter();\n this.eventDropped = new EventEmitter();\n this.dragEnter = new EventEmitter();\n this.trackByWeekDayHeaderDate = trackByWeekDayHeaderDate;\n }\n}\nCalendarWeekViewHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekViewHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nCalendarWeekViewHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarWeekViewHeaderComponent, selector: \"mwl-calendar-week-view-header\", inputs: { days: \"days\", locale: \"locale\", customTemplate: \"customTemplate\" }, outputs: { dayHeaderClicked: \"dayHeaderClicked\", eventDropped: \"eventDropped\", dragEnter: \"dragEnter\" }, ngImport: i0, template: `\n \n
\n \n {{ day.date | calendarDate : 'weekViewColumnHeader' : locale }}
\n {{\n day.date | calendarDate : 'weekViewColumnSubHeader' : locale\n }}\n
\n \n \n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i2.DroppableDirective, selector: \"[mwlDroppable]\", inputs: [\"dragOverClass\", \"dragActiveClass\", \"validateDrop\"], outputs: [\"dragEnter\", \"dragLeave\", \"dragOver\", \"drop\"] }, { kind: \"directive\", type: ClickDirective, selector: \"[mwlClick]\", inputs: [\"clickListenerDisabled\"], outputs: [\"mwlClick\"] }, { kind: \"pipe\", type: CalendarDatePipe, name: \"calendarDate\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekViewHeaderComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-week-view-header',\n template: `\n \n
\n \n {{ day.date | calendarDate : 'weekViewColumnHeader' : locale }}
\n {{\n day.date | calendarDate : 'weekViewColumnSubHeader' : locale\n }}\n
\n \n \n \n \n `,\n }]\n }], propDecorators: { days: [{\n type: Input\n }], locale: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }], dayHeaderClicked: [{\n type: Output\n }], eventDropped: [{\n type: Output\n }], dragEnter: [{\n type: Output\n }] } });\n\nclass CalendarWeekViewEventComponent {\n constructor() {\n this.eventClicked = new EventEmitter();\n }\n}\nCalendarWeekViewEventComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekViewEventComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nCalendarWeekViewEventComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarWeekViewEventComponent, selector: \"mwl-calendar-week-view-event\", inputs: { locale: \"locale\", weekEvent: \"weekEvent\", tooltipPlacement: \"tooltipPlacement\", tooltipAppendToBody: \"tooltipAppendToBody\", tooltipDisabled: \"tooltipDisabled\", tooltipDelay: \"tooltipDelay\", customTemplate: \"customTemplate\", eventTitleTemplate: \"eventTitleTemplate\", eventActionsTemplate: \"eventActionsTemplate\", tooltipTemplate: \"tooltipTemplate\", column: \"column\", daysInWeek: \"daysInWeek\" }, outputs: { eventClicked: \"eventClicked\" }, ngImport: i0, template: `\n \n \n \n \n &ngsp;\n \n \n \n \n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1.NgStyle, selector: \"[ngStyle]\", inputs: [\"ngStyle\"] }, { kind: \"component\", type: CalendarEventActionsComponent, selector: \"mwl-calendar-event-actions\", inputs: [\"event\", \"customTemplate\"] }, { kind: \"component\", type: CalendarEventTitleComponent, selector: \"mwl-calendar-event-title\", inputs: [\"event\", \"customTemplate\", \"view\"] }, { kind: \"directive\", type: CalendarTooltipDirective, selector: \"[mwlCalendarTooltip]\", inputs: [\"mwlCalendarTooltip\", \"tooltipPlacement\", \"tooltipTemplate\", \"tooltipEvent\", \"tooltipAppendToBody\", \"tooltipDelay\"] }, { kind: \"directive\", type: ClickDirective, selector: \"[mwlClick]\", inputs: [\"clickListenerDisabled\"], outputs: [\"mwlClick\"] }, { kind: \"directive\", type: KeydownEnterDirective, selector: \"[mwlKeydownEnter]\", outputs: [\"mwlKeydownEnter\"] }, { kind: \"pipe\", type: CalendarEventTitlePipe, name: \"calendarEventTitle\" }, { kind: \"pipe\", type: CalendarA11yPipe, name: \"calendarA11y\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekViewEventComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-week-view-event',\n template: `\n \n \n \n \n &ngsp;\n \n \n \n \n \n \n `,\n }]\n }], propDecorators: { locale: [{\n type: Input\n }], weekEvent: [{\n type: Input\n }], tooltipPlacement: [{\n type: Input\n }], tooltipAppendToBody: [{\n type: Input\n }], tooltipDisabled: [{\n type: Input\n }], tooltipDelay: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }], eventTitleTemplate: [{\n type: Input\n }], eventActionsTemplate: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], column: [{\n type: Input\n }], daysInWeek: [{\n type: Input\n }], eventClicked: [{\n type: Output\n }] } });\n\nclass CalendarWeekViewHourSegmentComponent {\n}\nCalendarWeekViewHourSegmentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekViewHourSegmentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nCalendarWeekViewHourSegmentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarWeekViewHourSegmentComponent, selector: \"mwl-calendar-week-view-hour-segment\", inputs: { segment: \"segment\", segmentHeight: \"segmentHeight\", locale: \"locale\", isTimeLabel: \"isTimeLabel\", daysInWeek: \"daysInWeek\", customTemplate: \"customTemplate\" }, ngImport: i0, template: `\n \n \n
\n {{\n segment.displayDate\n | calendarDate\n : (daysInWeek === 1 ? 'dayViewHour' : 'weekViewHour')\n : locale\n }}\n
\n \n \n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"pipe\", type: CalendarDatePipe, name: \"calendarDate\" }, { kind: \"pipe\", type: CalendarA11yPipe, name: \"calendarA11y\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekViewHourSegmentComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-week-view-hour-segment',\n template: `\n \n \n
\n {{\n segment.displayDate\n | calendarDate\n : (daysInWeek === 1 ? 'dayViewHour' : 'weekViewHour')\n : locale\n }}\n
\n \n \n \n \n `,\n }]\n }], propDecorators: { segment: [{\n type: Input\n }], segmentHeight: [{\n type: Input\n }], locale: [{\n type: Input\n }], isTimeLabel: [{\n type: Input\n }], daysInWeek: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }] } });\n\nclass CalendarWeekViewCurrentTimeMarkerComponent {\n constructor(dateAdapter, zone) {\n this.dateAdapter = dateAdapter;\n this.zone = zone;\n this.columnDate$ = new BehaviorSubject(undefined);\n this.marker$ = this.zone.onStable.pipe(switchMap(() => interval(60 * 1000)), startWith(0), switchMapTo(this.columnDate$), map((columnDate) => {\n const startOfDay = this.dateAdapter.setMinutes(this.dateAdapter.setHours(columnDate, this.dayStartHour), this.dayStartMinute);\n const endOfDay = this.dateAdapter.setMinutes(this.dateAdapter.setHours(columnDate, this.dayEndHour), this.dayEndMinute);\n const hourHeightModifier = (this.hourSegments * this.hourSegmentHeight) /\n (this.hourDuration || 60);\n const now = new Date();\n return {\n isVisible: this.dateAdapter.isSameDay(columnDate, now) &&\n now >= startOfDay &&\n now <= endOfDay,\n top: this.dateAdapter.differenceInMinutes(now, startOfDay) *\n hourHeightModifier,\n };\n }));\n }\n ngOnChanges(changes) {\n if (changes.columnDate) {\n this.columnDate$.next(changes.columnDate.currentValue);\n }\n }\n}\nCalendarWeekViewCurrentTimeMarkerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekViewCurrentTimeMarkerComponent, deps: [{ token: DateAdapter }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nCalendarWeekViewCurrentTimeMarkerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarWeekViewCurrentTimeMarkerComponent, selector: \"mwl-calendar-week-view-current-time-marker\", inputs: { columnDate: \"columnDate\", dayStartHour: \"dayStartHour\", dayStartMinute: \"dayStartMinute\", dayEndHour: \"dayEndHour\", dayEndMinute: \"dayEndMinute\", hourSegments: \"hourSegments\", hourDuration: \"hourDuration\", hourSegmentHeight: \"hourSegmentHeight\", customTemplate: \"customTemplate\" }, usesOnChanges: true, ngImport: i0, template: `\n \n \n \n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekViewCurrentTimeMarkerComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-week-view-current-time-marker',\n template: `\n \n \n \n \n \n `,\n }]\n }], ctorParameters: function () { return [{ type: DateAdapter }, { type: i0.NgZone }]; }, propDecorators: { columnDate: [{\n type: Input\n }], dayStartHour: [{\n type: Input\n }], dayStartMinute: [{\n type: Input\n }], dayEndHour: [{\n type: Input\n }], dayEndMinute: [{\n type: Input\n }], hourSegments: [{\n type: Input\n }], hourDuration: [{\n type: Input\n }], hourSegmentHeight: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }] } });\n\n/**\n * Shows all events on a given week. Example usage:\n *\n * ```typescript\n * \n * \n * ```\n */\nclass CalendarWeekViewComponent {\n /**\n * @hidden\n */\n constructor(cdr, utils, locale, dateAdapter, element) {\n this.cdr = cdr;\n this.utils = utils;\n this.dateAdapter = dateAdapter;\n this.element = element;\n /**\n * An array of events to display on view\n * The schema is available here: https://github.com/mattlewis92/calendar-utils/blob/c51689985f59a271940e30bc4e2c4e1fee3fcb5c/src/calendarUtils.ts#L49-L63\n */\n this.events = [];\n /**\n * An array of day indexes (0 = sunday, 1 = monday etc) that will be hidden on the view\n */\n this.excludeDays = [];\n /**\n * The placement of the event tooltip\n */\n this.tooltipPlacement = 'auto';\n /**\n * Whether to append tooltips to the body or next to the trigger element\n */\n this.tooltipAppendToBody = true;\n /**\n * The delay in milliseconds before the tooltip should be displayed. If not provided the tooltip\n * will be displayed immediately.\n */\n this.tooltipDelay = null;\n /**\n * The precision to display events.\n * `days` will round event start and end dates to the nearest day and `minutes` will not do this rounding\n */\n this.precision = 'days';\n /**\n * Whether to snap events to a grid when dragging\n */\n this.snapDraggedEvents = true;\n /**\n * The number of segments in an hour. Must divide equally into 60.\n */\n this.hourSegments = 2;\n /**\n * The height in pixels of each hour segment\n */\n this.hourSegmentHeight = 30;\n /**\n * The minimum height in pixels of each event\n */\n this.minimumEventHeight = 30;\n /**\n * The day start hours in 24 hour time. Must be 0-23\n */\n this.dayStartHour = 0;\n /**\n * The day start minutes. Must be 0-59\n */\n this.dayStartMinute = 0;\n /**\n * The day end hours in 24 hour time. Must be 0-23\n */\n this.dayEndHour = 23;\n /**\n * The day end minutes. Must be 0-59\n */\n this.dayEndMinute = 59;\n /**\n * Called when a header week day is clicked. Adding a `cssClass` property on `$event.day` will add that class to the header element\n */\n this.dayHeaderClicked = new EventEmitter();\n /**\n * Called when an event title is clicked\n */\n this.eventClicked = new EventEmitter();\n /**\n * Called when an event is resized or dragged and dropped\n */\n this.eventTimesChanged = new EventEmitter();\n /**\n * An output that will be called before the view is rendered for the current week.\n * If you add the `cssClass` property to a day in the header it will add that class to the cell element in the template\n */\n this.beforeViewRender = new EventEmitter();\n /**\n * Called when an hour segment is clicked\n */\n this.hourSegmentClicked = new EventEmitter();\n /**\n * @hidden\n */\n this.allDayEventResizes = new Map();\n /**\n * @hidden\n */\n this.timeEventResizes = new Map();\n /**\n * @hidden\n */\n this.eventDragEnterByType = {\n allDay: 0,\n time: 0,\n };\n /**\n * @hidden\n */\n this.dragActive = false;\n /**\n * @hidden\n */\n this.dragAlreadyMoved = false;\n /**\n * @hidden\n */\n this.calendarId = Symbol('angular calendar week view id');\n /**\n * @hidden\n */\n this.rtl = false;\n /**\n * @hidden\n */\n this.trackByWeekDayHeaderDate = trackByWeekDayHeaderDate;\n /**\n * @hidden\n */\n this.trackByHourSegment = trackByHourSegment;\n /**\n * @hidden\n */\n this.trackByHour = trackByHour;\n /**\n * @hidden\n */\n this.trackByWeekAllDayEvent = trackByWeekAllDayEvent;\n /**\n * @hidden\n */\n this.trackByWeekTimeEvent = trackByWeekTimeEvent;\n /**\n * @hidden\n */\n this.trackByHourColumn = (index, column) => column.hours[0] ? column.hours[0].segments[0].date.toISOString() : column;\n /**\n * @hidden\n */\n this.trackById = (index, row) => row.id;\n this.locale = locale;\n }\n /**\n * @hidden\n */\n ngOnInit() {\n if (this.refresh) {\n this.refreshSubscription = this.refresh.subscribe(() => {\n this.refreshAll();\n this.cdr.markForCheck();\n });\n }\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n const refreshHeader = changes.viewDate ||\n changes.excludeDays ||\n changes.weekendDays ||\n changes.daysInWeek ||\n changes.weekStartsOn;\n const refreshBody = changes.viewDate ||\n changes.dayStartHour ||\n changes.dayStartMinute ||\n changes.dayEndHour ||\n changes.dayEndMinute ||\n changes.hourSegments ||\n changes.hourDuration ||\n changes.weekStartsOn ||\n changes.weekendDays ||\n changes.excludeDays ||\n changes.hourSegmentHeight ||\n changes.events ||\n changes.daysInWeek ||\n changes.minimumEventHeight;\n if (refreshHeader) {\n this.refreshHeader();\n }\n if (changes.events) {\n validateEvents(this.events);\n }\n if (refreshBody) {\n this.refreshBody();\n }\n if (refreshHeader || refreshBody) {\n this.emitBeforeViewRender();\n }\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.refreshSubscription) {\n this.refreshSubscription.unsubscribe();\n }\n }\n /**\n * @hidden\n */\n ngAfterViewInit() {\n this.rtl =\n typeof window !== 'undefined' &&\n getComputedStyle(this.element.nativeElement).direction === 'rtl';\n this.cdr.detectChanges();\n }\n /**\n * @hidden\n */\n timeEventResizeStarted(eventsContainer, timeEvent, resizeEvent) {\n this.timeEventResizes.set(timeEvent.event, resizeEvent);\n this.resizeStarted(eventsContainer, timeEvent);\n }\n /**\n * @hidden\n */\n timeEventResizing(timeEvent, resizeEvent) {\n this.timeEventResizes.set(timeEvent.event, resizeEvent);\n const adjustedEvents = new Map();\n const tempEvents = [...this.events];\n this.timeEventResizes.forEach((lastResizeEvent, event) => {\n const newEventDates = this.getTimeEventResizedDates(event, lastResizeEvent);\n const adjustedEvent = { ...event, ...newEventDates };\n adjustedEvents.set(adjustedEvent, event);\n const eventIndex = tempEvents.indexOf(event);\n tempEvents[eventIndex] = adjustedEvent;\n });\n this.restoreOriginalEvents(tempEvents, adjustedEvents, true);\n }\n /**\n * @hidden\n */\n timeEventResizeEnded(timeEvent) {\n this.view = this.getWeekView(this.events);\n const lastResizeEvent = this.timeEventResizes.get(timeEvent.event);\n if (lastResizeEvent) {\n this.timeEventResizes.delete(timeEvent.event);\n const newEventDates = this.getTimeEventResizedDates(timeEvent.event, lastResizeEvent);\n this.eventTimesChanged.emit({\n newStart: newEventDates.start,\n newEnd: newEventDates.end,\n event: timeEvent.event,\n type: CalendarEventTimesChangedEventType.Resize,\n });\n }\n }\n /**\n * @hidden\n */\n allDayEventResizeStarted(allDayEventsContainer, allDayEvent, resizeEvent) {\n this.allDayEventResizes.set(allDayEvent, {\n originalOffset: allDayEvent.offset,\n originalSpan: allDayEvent.span,\n edge: typeof resizeEvent.edges.left !== 'undefined' ? 'left' : 'right',\n });\n this.resizeStarted(allDayEventsContainer, allDayEvent, this.getDayColumnWidth(allDayEventsContainer));\n }\n /**\n * @hidden\n */\n allDayEventResizing(allDayEvent, resizeEvent, dayWidth) {\n const currentResize = this.allDayEventResizes.get(allDayEvent);\n const modifier = this.rtl ? -1 : 1;\n if (typeof resizeEvent.edges.left !== 'undefined') {\n const diff = Math.round(+resizeEvent.edges.left / dayWidth) * modifier;\n allDayEvent.offset = currentResize.originalOffset + diff;\n allDayEvent.span = currentResize.originalSpan - diff;\n }\n else if (typeof resizeEvent.edges.right !== 'undefined') {\n const diff = Math.round(+resizeEvent.edges.right / dayWidth) * modifier;\n allDayEvent.span = currentResize.originalSpan + diff;\n }\n }\n /**\n * @hidden\n */\n allDayEventResizeEnded(allDayEvent) {\n const currentResize = this.allDayEventResizes.get(allDayEvent);\n if (currentResize) {\n const allDayEventResizingBeforeStart = currentResize.edge === 'left';\n let daysDiff;\n if (allDayEventResizingBeforeStart) {\n daysDiff = allDayEvent.offset - currentResize.originalOffset;\n }\n else {\n daysDiff = allDayEvent.span - currentResize.originalSpan;\n }\n allDayEvent.offset = currentResize.originalOffset;\n allDayEvent.span = currentResize.originalSpan;\n const newDates = this.getAllDayEventResizedDates(allDayEvent.event, daysDiff, allDayEventResizingBeforeStart);\n this.eventTimesChanged.emit({\n newStart: newDates.start,\n newEnd: newDates.end,\n event: allDayEvent.event,\n type: CalendarEventTimesChangedEventType.Resize,\n });\n this.allDayEventResizes.delete(allDayEvent);\n }\n }\n /**\n * @hidden\n */\n getDayColumnWidth(eventRowContainer) {\n return Math.floor(eventRowContainer.offsetWidth / this.days.length);\n }\n /**\n * @hidden\n */\n dateDragEnter(date) {\n this.lastDragEnterDate = date;\n }\n /**\n * @hidden\n */\n eventDropped(dropEvent, date, allDay) {\n if (shouldFireDroppedEvent(dropEvent, date, allDay, this.calendarId) &&\n this.lastDragEnterDate.getTime() === date.getTime() &&\n (!this.snapDraggedEvents ||\n dropEvent.dropData.event !== this.lastDraggedEvent)) {\n this.eventTimesChanged.emit({\n type: CalendarEventTimesChangedEventType.Drop,\n event: dropEvent.dropData.event,\n newStart: date,\n allDay,\n });\n }\n this.lastDraggedEvent = null;\n }\n /**\n * @hidden\n */\n dragEnter(type) {\n this.eventDragEnterByType[type]++;\n }\n /**\n * @hidden\n */\n dragLeave(type) {\n this.eventDragEnterByType[type]--;\n }\n /**\n * @hidden\n */\n dragStarted(eventsContainerElement, eventElement, event, useY) {\n this.dayColumnWidth = this.getDayColumnWidth(eventsContainerElement);\n const dragHelper = new CalendarDragHelper(eventsContainerElement, eventElement);\n this.validateDrag = ({ x, y, transform }) => {\n const isAllowed = this.allDayEventResizes.size === 0 &&\n this.timeEventResizes.size === 0 &&\n dragHelper.validateDrag({\n x,\n y,\n snapDraggedEvents: this.snapDraggedEvents,\n dragAlreadyMoved: this.dragAlreadyMoved,\n transform,\n });\n if (isAllowed && this.validateEventTimesChanged) {\n const newEventTimes = this.getDragMovedEventTimes(event, { x, y }, this.dayColumnWidth, useY);\n return this.validateEventTimesChanged({\n type: CalendarEventTimesChangedEventType.Drag,\n event: event.event,\n newStart: newEventTimes.start,\n newEnd: newEventTimes.end,\n });\n }\n return isAllowed;\n };\n this.dragActive = true;\n this.dragAlreadyMoved = false;\n this.lastDraggedEvent = null;\n this.eventDragEnterByType = {\n allDay: 0,\n time: 0,\n };\n if (!this.snapDraggedEvents && useY) {\n this.view.hourColumns.forEach((column) => {\n const linkedEvent = column.events.find((columnEvent) => columnEvent.event === event.event && columnEvent !== event);\n // hide any linked events while dragging\n if (linkedEvent) {\n linkedEvent.width = 0;\n linkedEvent.height = 0;\n }\n });\n }\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n dragMove(dayEvent, dragEvent) {\n const newEventTimes = this.getDragMovedEventTimes(dayEvent, dragEvent, this.dayColumnWidth, true);\n const originalEvent = dayEvent.event;\n const adjustedEvent = { ...originalEvent, ...newEventTimes };\n const tempEvents = this.events.map((event) => {\n if (event === originalEvent) {\n return adjustedEvent;\n }\n return event;\n });\n this.restoreOriginalEvents(tempEvents, new Map([[adjustedEvent, originalEvent]]), this.snapDraggedEvents);\n this.dragAlreadyMoved = true;\n }\n /**\n * @hidden\n */\n allDayEventDragMove() {\n this.dragAlreadyMoved = true;\n }\n /**\n * @hidden\n */\n dragEnded(weekEvent, dragEndEvent, dayWidth, useY = false) {\n this.view = this.getWeekView(this.events);\n this.dragActive = false;\n this.validateDrag = null;\n const { start, end } = this.getDragMovedEventTimes(weekEvent, dragEndEvent, dayWidth, useY);\n if ((this.snapDraggedEvents ||\n this.eventDragEnterByType[useY ? 'time' : 'allDay'] > 0) &&\n isDraggedWithinPeriod(start, end, this.view.period)) {\n this.lastDraggedEvent = weekEvent.event;\n this.eventTimesChanged.emit({\n newStart: start,\n newEnd: end,\n event: weekEvent.event,\n type: CalendarEventTimesChangedEventType.Drag,\n allDay: !useY,\n });\n }\n }\n refreshHeader() {\n this.days = this.utils.getWeekViewHeader({\n viewDate: this.viewDate,\n weekStartsOn: this.weekStartsOn,\n excluded: this.excludeDays,\n weekendDays: this.weekendDays,\n ...getWeekViewPeriod(this.dateAdapter, this.viewDate, this.weekStartsOn, this.excludeDays, this.daysInWeek),\n });\n }\n refreshBody() {\n this.view = this.getWeekView(this.events);\n }\n refreshAll() {\n this.refreshHeader();\n this.refreshBody();\n this.emitBeforeViewRender();\n }\n emitBeforeViewRender() {\n if (this.days && this.view) {\n this.beforeViewRender.emit({\n header: this.days,\n ...this.view,\n });\n }\n }\n getWeekView(events) {\n return this.utils.getWeekView({\n events,\n viewDate: this.viewDate,\n weekStartsOn: this.weekStartsOn,\n excluded: this.excludeDays,\n precision: this.precision,\n absolutePositionedEvents: true,\n hourSegments: this.hourSegments,\n hourDuration: this.hourDuration,\n dayStart: {\n hour: this.dayStartHour,\n minute: this.dayStartMinute,\n },\n dayEnd: {\n hour: this.dayEndHour,\n minute: this.dayEndMinute,\n },\n segmentHeight: this.hourSegmentHeight,\n weekendDays: this.weekendDays,\n minimumEventHeight: this.minimumEventHeight,\n ...getWeekViewPeriod(this.dateAdapter, this.viewDate, this.weekStartsOn, this.excludeDays, this.daysInWeek),\n });\n }\n getDragMovedEventTimes(weekEvent, dragEndEvent, dayWidth, useY) {\n const daysDragged = (roundToNearest(dragEndEvent.x, dayWidth) / dayWidth) *\n (this.rtl ? -1 : 1);\n const minutesMoved = useY\n ? getMinutesMoved(dragEndEvent.y, this.hourSegments, this.hourSegmentHeight, this.eventSnapSize, this.hourDuration)\n : 0;\n const start = this.dateAdapter.addMinutes(addDaysWithExclusions(this.dateAdapter, weekEvent.event.start, daysDragged, this.excludeDays), minutesMoved);\n let end;\n if (weekEvent.event.end) {\n end = this.dateAdapter.addMinutes(addDaysWithExclusions(this.dateAdapter, weekEvent.event.end, daysDragged, this.excludeDays), minutesMoved);\n }\n return { start, end };\n }\n restoreOriginalEvents(tempEvents, adjustedEvents, snapDraggedEvents = true) {\n const previousView = this.view;\n if (snapDraggedEvents) {\n this.view = this.getWeekView(tempEvents);\n }\n const adjustedEventsArray = tempEvents.filter((event) => adjustedEvents.has(event));\n this.view.hourColumns.forEach((column, columnIndex) => {\n previousView.hourColumns[columnIndex].hours.forEach((hour, hourIndex) => {\n hour.segments.forEach((segment, segmentIndex) => {\n column.hours[hourIndex].segments[segmentIndex].cssClass =\n segment.cssClass;\n });\n });\n adjustedEventsArray.forEach((adjustedEvent) => {\n const originalEvent = adjustedEvents.get(adjustedEvent);\n const existingColumnEvent = column.events.find((columnEvent) => columnEvent.event ===\n (snapDraggedEvents ? adjustedEvent : originalEvent));\n if (existingColumnEvent) {\n // restore the original event so trackBy kicks in and the dom isn't changed\n existingColumnEvent.event = originalEvent;\n existingColumnEvent['tempEvent'] = adjustedEvent;\n if (!snapDraggedEvents) {\n existingColumnEvent.height = 0;\n existingColumnEvent.width = 0;\n }\n }\n else {\n // add a dummy event to the drop so if the event was removed from the original column the drag doesn't end early\n const event = {\n event: originalEvent,\n left: 0,\n top: 0,\n height: 0,\n width: 0,\n startsBeforeDay: false,\n endsAfterDay: false,\n tempEvent: adjustedEvent,\n };\n column.events.push(event);\n }\n });\n });\n adjustedEvents.clear();\n }\n getTimeEventResizedDates(calendarEvent, resizeEvent) {\n const newEventDates = {\n start: calendarEvent.start,\n end: getDefaultEventEnd(this.dateAdapter, calendarEvent, this.minimumEventHeight),\n };\n const { end, ...eventWithoutEnd } = calendarEvent;\n const smallestResizes = {\n start: this.dateAdapter.addMinutes(newEventDates.end, this.minimumEventHeight * -1),\n end: getDefaultEventEnd(this.dateAdapter, eventWithoutEnd, this.minimumEventHeight),\n };\n const modifier = this.rtl ? -1 : 1;\n if (typeof resizeEvent.edges.left !== 'undefined') {\n const daysDiff = Math.round(+resizeEvent.edges.left / this.dayColumnWidth) * modifier;\n const newStart = addDaysWithExclusions(this.dateAdapter, newEventDates.start, daysDiff, this.excludeDays);\n if (newStart < smallestResizes.start) {\n newEventDates.start = newStart;\n }\n else {\n newEventDates.start = smallestResizes.start;\n }\n }\n else if (typeof resizeEvent.edges.right !== 'undefined') {\n const daysDiff = Math.round(+resizeEvent.edges.right / this.dayColumnWidth) * modifier;\n const newEnd = addDaysWithExclusions(this.dateAdapter, newEventDates.end, daysDiff, this.excludeDays);\n if (newEnd > smallestResizes.end) {\n newEventDates.end = newEnd;\n }\n else {\n newEventDates.end = smallestResizes.end;\n }\n }\n if (typeof resizeEvent.edges.top !== 'undefined') {\n const minutesMoved = getMinutesMoved(resizeEvent.edges.top, this.hourSegments, this.hourSegmentHeight, this.eventSnapSize, this.hourDuration);\n const newStart = this.dateAdapter.addMinutes(newEventDates.start, minutesMoved);\n if (newStart < smallestResizes.start) {\n newEventDates.start = newStart;\n }\n else {\n newEventDates.start = smallestResizes.start;\n }\n }\n else if (typeof resizeEvent.edges.bottom !== 'undefined') {\n const minutesMoved = getMinutesMoved(resizeEvent.edges.bottom, this.hourSegments, this.hourSegmentHeight, this.eventSnapSize, this.hourDuration);\n const newEnd = this.dateAdapter.addMinutes(newEventDates.end, minutesMoved);\n if (newEnd > smallestResizes.end) {\n newEventDates.end = newEnd;\n }\n else {\n newEventDates.end = smallestResizes.end;\n }\n }\n return newEventDates;\n }\n resizeStarted(eventsContainer, event, dayWidth) {\n this.dayColumnWidth = this.getDayColumnWidth(eventsContainer);\n const resizeHelper = new CalendarResizeHelper(eventsContainer, dayWidth, this.rtl);\n this.validateResize = ({ rectangle, edges }) => {\n const isWithinBoundary = resizeHelper.validateResize({\n rectangle: { ...rectangle },\n edges,\n });\n if (isWithinBoundary && this.validateEventTimesChanged) {\n let newEventDates;\n if (!dayWidth) {\n newEventDates = this.getTimeEventResizedDates(event.event, {\n rectangle,\n edges,\n });\n }\n else {\n const modifier = this.rtl ? -1 : 1;\n if (typeof edges.left !== 'undefined') {\n const diff = Math.round(+edges.left / dayWidth) * modifier;\n newEventDates = this.getAllDayEventResizedDates(event.event, diff, !this.rtl);\n }\n else {\n const diff = Math.round(+edges.right / dayWidth) * modifier;\n newEventDates = this.getAllDayEventResizedDates(event.event, diff, this.rtl);\n }\n }\n return this.validateEventTimesChanged({\n type: CalendarEventTimesChangedEventType.Resize,\n event: event.event,\n newStart: newEventDates.start,\n newEnd: newEventDates.end,\n });\n }\n return isWithinBoundary;\n };\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n getAllDayEventResizedDates(event, daysDiff, beforeStart) {\n let start = event.start;\n let end = event.end || event.start;\n if (beforeStart) {\n start = addDaysWithExclusions(this.dateAdapter, start, daysDiff, this.excludeDays);\n }\n else {\n end = addDaysWithExclusions(this.dateAdapter, end, daysDiff, this.excludeDays);\n }\n return { start, end };\n }\n}\nCalendarWeekViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CalendarUtils }, { token: LOCALE_ID }, { token: DateAdapter }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\nCalendarWeekViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarWeekViewComponent, selector: \"mwl-calendar-week-view\", inputs: { viewDate: \"viewDate\", events: \"events\", excludeDays: \"excludeDays\", refresh: \"refresh\", locale: \"locale\", tooltipPlacement: \"tooltipPlacement\", tooltipTemplate: \"tooltipTemplate\", tooltipAppendToBody: \"tooltipAppendToBody\", tooltipDelay: \"tooltipDelay\", weekStartsOn: \"weekStartsOn\", headerTemplate: \"headerTemplate\", eventTemplate: \"eventTemplate\", eventTitleTemplate: \"eventTitleTemplate\", eventActionsTemplate: \"eventActionsTemplate\", precision: \"precision\", weekendDays: \"weekendDays\", snapDraggedEvents: \"snapDraggedEvents\", hourSegments: \"hourSegments\", hourDuration: \"hourDuration\", hourSegmentHeight: \"hourSegmentHeight\", minimumEventHeight: \"minimumEventHeight\", dayStartHour: \"dayStartHour\", dayStartMinute: \"dayStartMinute\", dayEndHour: \"dayEndHour\", dayEndMinute: \"dayEndMinute\", hourSegmentTemplate: \"hourSegmentTemplate\", eventSnapSize: \"eventSnapSize\", allDayEventsLabelTemplate: \"allDayEventsLabelTemplate\", daysInWeek: \"daysInWeek\", currentTimeMarkerTemplate: \"currentTimeMarkerTemplate\", validateEventTimesChanged: \"validateEventTimesChanged\", resizeCursors: \"resizeCursors\" }, outputs: { dayHeaderClicked: \"dayHeaderClicked\", eventClicked: \"eventClicked\", eventTimesChanged: \"eventTimesChanged\", beforeViewRender: \"beforeViewRender\", hourSegmentClicked: \"hourSegmentClicked\" }, usesOnChanges: true, ngImport: i0, template: `\n
\n \n \n 0\"\n mwlDroppable\n (dragEnter)=\"dragEnter('allDay')\"\n (dragLeave)=\"dragLeave('allDay')\"\n >\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n 0 && daysInWeek !== 1\"\n >\n \n \n \n \n \n 0\"\n #dayColumns\n >\n \n \n
\n \n
\n \n \n 0\"\n [tooltipDelay]=\"tooltipDelay\"\n [customTemplate]=\"eventTemplate\"\n [eventTitleTemplate]=\"eventTitleTemplate\"\n [eventActionsTemplate]=\"eventActionsTemplate\"\n [column]=\"column\"\n [daysInWeek]=\"daysInWeek\"\n (eventClicked)=\"\n eventClicked.emit({\n event: timeEvent.event,\n sourceEvent: $event.sourceEvent\n })\n \"\n >\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i4.ResizableDirective, selector: \"[mwlResizable]\", inputs: [\"validateResize\", \"enableGhostResize\", \"resizeSnapGrid\", \"resizeCursors\", \"ghostElementPositioning\", \"allowNegativeResizes\", \"mouseMoveThrottleMS\"], outputs: [\"resizeStart\", \"resizing\", \"resizeEnd\"], exportAs: [\"mwlResizable\"] }, { kind: \"directive\", type: i4.ResizeHandleDirective, selector: \"[mwlResizeHandle]\", inputs: [\"resizeEdges\", \"resizableContainer\"] }, { kind: \"directive\", type: i2.DraggableDirective, selector: \"[mwlDraggable]\", inputs: [\"dropData\", \"dragAxis\", \"dragSnapGrid\", \"ghostDragEnabled\", \"showOriginalElementWhileDragging\", \"validateDrag\", \"dragCursor\", \"dragActiveClass\", \"ghostElementAppendTo\", \"ghostElementTemplate\", \"touchStartLongPress\", \"autoScroll\"], outputs: [\"dragPointerDown\", \"dragStart\", \"ghostElementCreated\", \"dragging\", \"dragEnd\"] }, { kind: \"directive\", type: i2.DroppableDirective, selector: \"[mwlDroppable]\", inputs: [\"dragOverClass\", \"dragActiveClass\", \"validateDrop\"], outputs: [\"dragEnter\", \"dragLeave\", \"dragOver\", \"drop\"] }, { kind: \"directive\", type: ClickDirective, selector: \"[mwlClick]\", inputs: [\"clickListenerDisabled\"], outputs: [\"mwlClick\"] }, { kind: \"component\", type: CalendarWeekViewHeaderComponent, selector: \"mwl-calendar-week-view-header\", inputs: [\"days\", \"locale\", \"customTemplate\"], outputs: [\"dayHeaderClicked\", \"eventDropped\", \"dragEnter\"] }, { kind: \"component\", type: CalendarWeekViewEventComponent, selector: \"mwl-calendar-week-view-event\", inputs: [\"locale\", \"weekEvent\", \"tooltipPlacement\", \"tooltipAppendToBody\", \"tooltipDisabled\", \"tooltipDelay\", \"customTemplate\", \"eventTitleTemplate\", \"eventActionsTemplate\", \"tooltipTemplate\", \"column\", \"daysInWeek\"], outputs: [\"eventClicked\"] }, { kind: \"component\", type: CalendarWeekViewHourSegmentComponent, selector: \"mwl-calendar-week-view-hour-segment\", inputs: [\"segment\", \"segmentHeight\", \"locale\", \"isTimeLabel\", \"daysInWeek\", \"customTemplate\"] }, { kind: \"component\", type: CalendarWeekViewCurrentTimeMarkerComponent, selector: \"mwl-calendar-week-view-current-time-marker\", inputs: [\"columnDate\", \"dayStartHour\", \"dayStartMinute\", \"dayEndHour\", \"dayEndMinute\", \"hourSegments\", \"hourDuration\", \"hourSegmentHeight\", \"customTemplate\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-week-view',\n template: `\n
\n \n \n 0\"\n mwlDroppable\n (dragEnter)=\"dragEnter('allDay')\"\n (dragLeave)=\"dragLeave('allDay')\"\n >\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n 0 && daysInWeek !== 1\"\n >\n \n \n \n \n \n 0\"\n #dayColumns\n >\n \n \n
\n \n
\n \n \n 0\"\n [tooltipDelay]=\"tooltipDelay\"\n [customTemplate]=\"eventTemplate\"\n [eventTitleTemplate]=\"eventTitleTemplate\"\n [eventActionsTemplate]=\"eventActionsTemplate\"\n [column]=\"column\"\n [daysInWeek]=\"daysInWeek\"\n (eventClicked)=\"\n eventClicked.emit({\n event: timeEvent.event,\n sourceEvent: $event.sourceEvent\n })\n \"\n >\n \n \n \n \n \n\n \n \n \n \n \n \n \n \n `,\n }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: CalendarUtils }, { type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: DateAdapter }, { type: i0.ElementRef }]; }, propDecorators: { viewDate: [{\n type: Input\n }], events: [{\n type: Input\n }], excludeDays: [{\n type: Input\n }], refresh: [{\n type: Input\n }], locale: [{\n type: Input\n }], tooltipPlacement: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], tooltipAppendToBody: [{\n type: Input\n }], tooltipDelay: [{\n type: Input\n }], weekStartsOn: [{\n type: Input\n }], headerTemplate: [{\n type: Input\n }], eventTemplate: [{\n type: Input\n }], eventTitleTemplate: [{\n type: Input\n }], eventActionsTemplate: [{\n type: Input\n }], precision: [{\n type: Input\n }], weekendDays: [{\n type: Input\n }], snapDraggedEvents: [{\n type: Input\n }], hourSegments: [{\n type: Input\n }], hourDuration: [{\n type: Input\n }], hourSegmentHeight: [{\n type: Input\n }], minimumEventHeight: [{\n type: Input\n }], dayStartHour: [{\n type: Input\n }], dayStartMinute: [{\n type: Input\n }], dayEndHour: [{\n type: Input\n }], dayEndMinute: [{\n type: Input\n }], hourSegmentTemplate: [{\n type: Input\n }], eventSnapSize: [{\n type: Input\n }], allDayEventsLabelTemplate: [{\n type: Input\n }], daysInWeek: [{\n type: Input\n }], currentTimeMarkerTemplate: [{\n type: Input\n }], validateEventTimesChanged: [{\n type: Input\n }], resizeCursors: [{\n type: Input\n }], dayHeaderClicked: [{\n type: Output\n }], eventClicked: [{\n type: Output\n }], eventTimesChanged: [{\n type: Output\n }], beforeViewRender: [{\n type: Output\n }], hourSegmentClicked: [{\n type: Output\n }] } });\n\nclass CalendarWeekModule {\n}\nCalendarWeekModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCalendarWeekModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekModule, declarations: [CalendarWeekViewComponent,\n CalendarWeekViewHeaderComponent,\n CalendarWeekViewEventComponent,\n CalendarWeekViewHourSegmentComponent,\n CalendarWeekViewCurrentTimeMarkerComponent], imports: [CommonModule,\n ResizableModule,\n DragAndDropModule,\n CalendarCommonModule], exports: [ResizableModule,\n DragAndDropModule,\n CalendarWeekViewComponent,\n CalendarWeekViewHeaderComponent,\n CalendarWeekViewEventComponent,\n CalendarWeekViewHourSegmentComponent,\n CalendarWeekViewCurrentTimeMarkerComponent] });\nCalendarWeekModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekModule, imports: [CommonModule,\n ResizableModule,\n DragAndDropModule,\n CalendarCommonModule, ResizableModule,\n DragAndDropModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarWeekModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n ResizableModule,\n DragAndDropModule,\n CalendarCommonModule,\n ],\n declarations: [\n CalendarWeekViewComponent,\n CalendarWeekViewHeaderComponent,\n CalendarWeekViewEventComponent,\n CalendarWeekViewHourSegmentComponent,\n CalendarWeekViewCurrentTimeMarkerComponent,\n ],\n exports: [\n ResizableModule,\n DragAndDropModule,\n CalendarWeekViewComponent,\n CalendarWeekViewHeaderComponent,\n CalendarWeekViewEventComponent,\n CalendarWeekViewHourSegmentComponent,\n CalendarWeekViewCurrentTimeMarkerComponent,\n ],\n }]\n }] });\n\n/**\n * Shows all events on a given day. Example usage:\n *\n * ```typescript\n * \n * \n * ```\n */\nclass CalendarDayViewComponent {\n constructor() {\n /**\n * An array of events to display on view\n * The schema is available here: https://github.com/mattlewis92/calendar-utils/blob/c51689985f59a271940e30bc4e2c4e1fee3fcb5c/src/calendarUtils.ts#L49-L63\n */\n this.events = [];\n /**\n * The number of segments in an hour. Must divide equally into 60.\n */\n this.hourSegments = 2;\n /**\n * The height in pixels of each hour segment\n */\n this.hourSegmentHeight = 30;\n /**\n * The minimum height in pixels of each event\n */\n this.minimumEventHeight = 30;\n /**\n * The day start hours in 24 hour time. Must be 0-23\n */\n this.dayStartHour = 0;\n /**\n * The day start minutes. Must be 0-59\n */\n this.dayStartMinute = 0;\n /**\n * The day end hours in 24 hour time. Must be 0-23\n */\n this.dayEndHour = 23;\n /**\n * The day end minutes. Must be 0-59\n */\n this.dayEndMinute = 59;\n /**\n * The placement of the event tooltip\n */\n this.tooltipPlacement = 'auto';\n /**\n * Whether to append tooltips to the body or next to the trigger element\n */\n this.tooltipAppendToBody = true;\n /**\n * The delay in milliseconds before the tooltip should be displayed. If not provided the tooltip\n * will be displayed immediately.\n */\n this.tooltipDelay = null;\n /**\n * Whether to snap events to a grid when dragging\n */\n this.snapDraggedEvents = true;\n /**\n * Called when an event title is clicked\n */\n this.eventClicked = new EventEmitter();\n /**\n * Called when an hour segment is clicked\n */\n this.hourSegmentClicked = new EventEmitter();\n /**\n * Called when an event is resized or dragged and dropped\n */\n this.eventTimesChanged = new EventEmitter();\n /**\n * An output that will be called before the view is rendered for the current day.\n * If you add the `cssClass` property to an hour grid segment it will add that class to the hour segment in the template\n */\n this.beforeViewRender = new EventEmitter();\n }\n}\nCalendarDayViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarDayViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\nCalendarDayViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.0.3\", type: CalendarDayViewComponent, selector: \"mwl-calendar-day-view\", inputs: { viewDate: \"viewDate\", events: \"events\", hourSegments: \"hourSegments\", hourSegmentHeight: \"hourSegmentHeight\", hourDuration: \"hourDuration\", minimumEventHeight: \"minimumEventHeight\", dayStartHour: \"dayStartHour\", dayStartMinute: \"dayStartMinute\", dayEndHour: \"dayEndHour\", dayEndMinute: \"dayEndMinute\", refresh: \"refresh\", locale: \"locale\", eventSnapSize: \"eventSnapSize\", tooltipPlacement: \"tooltipPlacement\", tooltipTemplate: \"tooltipTemplate\", tooltipAppendToBody: \"tooltipAppendToBody\", tooltipDelay: \"tooltipDelay\", hourSegmentTemplate: \"hourSegmentTemplate\", eventTemplate: \"eventTemplate\", eventTitleTemplate: \"eventTitleTemplate\", eventActionsTemplate: \"eventActionsTemplate\", snapDraggedEvents: \"snapDraggedEvents\", allDayEventsLabelTemplate: \"allDayEventsLabelTemplate\", currentTimeMarkerTemplate: \"currentTimeMarkerTemplate\", validateEventTimesChanged: \"validateEventTimesChanged\", resizeCursors: \"resizeCursors\" }, outputs: { eventClicked: \"eventClicked\", hourSegmentClicked: \"hourSegmentClicked\", eventTimesChanged: \"eventTimesChanged\", beforeViewRender: \"beforeViewRender\" }, ngImport: i0, template: `\n \n `, isInline: true, dependencies: [{ kind: \"component\", type: CalendarWeekViewComponent, selector: \"mwl-calendar-week-view\", inputs: [\"viewDate\", \"events\", \"excludeDays\", \"refresh\", \"locale\", \"tooltipPlacement\", \"tooltipTemplate\", \"tooltipAppendToBody\", \"tooltipDelay\", \"weekStartsOn\", \"headerTemplate\", \"eventTemplate\", \"eventTitleTemplate\", \"eventActionsTemplate\", \"precision\", \"weekendDays\", \"snapDraggedEvents\", \"hourSegments\", \"hourDuration\", \"hourSegmentHeight\", \"minimumEventHeight\", \"dayStartHour\", \"dayStartMinute\", \"dayEndHour\", \"dayEndMinute\", \"hourSegmentTemplate\", \"eventSnapSize\", \"allDayEventsLabelTemplate\", \"daysInWeek\", \"currentTimeMarkerTemplate\", \"validateEventTimesChanged\", \"resizeCursors\"], outputs: [\"dayHeaderClicked\", \"eventClicked\", \"eventTimesChanged\", \"beforeViewRender\", \"hourSegmentClicked\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarDayViewComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'mwl-calendar-day-view',\n template: `\n \n `,\n }]\n }], propDecorators: { viewDate: [{\n type: Input\n }], events: [{\n type: Input\n }], hourSegments: [{\n type: Input\n }], hourSegmentHeight: [{\n type: Input\n }], hourDuration: [{\n type: Input\n }], minimumEventHeight: [{\n type: Input\n }], dayStartHour: [{\n type: Input\n }], dayStartMinute: [{\n type: Input\n }], dayEndHour: [{\n type: Input\n }], dayEndMinute: [{\n type: Input\n }], refresh: [{\n type: Input\n }], locale: [{\n type: Input\n }], eventSnapSize: [{\n type: Input\n }], tooltipPlacement: [{\n type: Input\n }], tooltipTemplate: [{\n type: Input\n }], tooltipAppendToBody: [{\n type: Input\n }], tooltipDelay: [{\n type: Input\n }], hourSegmentTemplate: [{\n type: Input\n }], eventTemplate: [{\n type: Input\n }], eventTitleTemplate: [{\n type: Input\n }], eventActionsTemplate: [{\n type: Input\n }], snapDraggedEvents: [{\n type: Input\n }], allDayEventsLabelTemplate: [{\n type: Input\n }], currentTimeMarkerTemplate: [{\n type: Input\n }], validateEventTimesChanged: [{\n type: Input\n }], resizeCursors: [{\n type: Input\n }], eventClicked: [{\n type: Output\n }], hourSegmentClicked: [{\n type: Output\n }], eventTimesChanged: [{\n type: Output\n }], beforeViewRender: [{\n type: Output\n }] } });\n\nclass CalendarDayModule {\n}\nCalendarDayModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarDayModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCalendarDayModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarDayModule, declarations: [CalendarDayViewComponent], imports: [CommonModule, CalendarCommonModule, CalendarWeekModule], exports: [CalendarDayViewComponent] });\nCalendarDayModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarDayModule, imports: [CommonModule, CalendarCommonModule, CalendarWeekModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarDayModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule, CalendarCommonModule, CalendarWeekModule],\n declarations: [CalendarDayViewComponent],\n exports: [CalendarDayViewComponent],\n }]\n }] });\n\n/**\n * The main module of this library. Example usage:\n *\n * ```typescript\n * import { CalenderModule } from 'angular-calendar';\n *\n * @NgModule({\n * imports: [\n * CalenderModule.forRoot()\n * ]\n * })\n * class MyModule {}\n * ```\n *\n */\nclass CalendarModule {\n static forRoot(dateAdapter, config = {}) {\n return {\n ngModule: CalendarModule,\n providers: [\n dateAdapter,\n config.eventTitleFormatter || CalendarEventTitleFormatter,\n config.dateFormatter || CalendarDateFormatter,\n config.utils || CalendarUtils,\n config.a11y || CalendarA11y,\n ],\n };\n }\n}\nCalendarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nCalendarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarModule, imports: [CalendarCommonModule,\n CalendarMonthModule,\n CalendarWeekModule,\n CalendarDayModule], exports: [CalendarCommonModule,\n CalendarMonthModule,\n CalendarWeekModule,\n CalendarDayModule] });\nCalendarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarModule, imports: [CalendarCommonModule,\n CalendarMonthModule,\n CalendarWeekModule,\n CalendarDayModule, CalendarCommonModule,\n CalendarMonthModule,\n CalendarWeekModule,\n CalendarDayModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.0.3\", ngImport: i0, type: CalendarModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CalendarCommonModule,\n CalendarMonthModule,\n CalendarWeekModule,\n CalendarDayModule,\n ],\n exports: [\n CalendarCommonModule,\n CalendarMonthModule,\n CalendarWeekModule,\n CalendarDayModule,\n ],\n }]\n }] });\n\n/*\n * Public API Surface of angular-calendar\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CalendarA11y, CalendarAngularDateFormatter, CalendarCommonModule, CalendarDateFormatter, CalendarDayModule, CalendarDayViewComponent, CalendarEventTimesChangedEventType, CalendarEventTitleFormatter, CalendarModule, CalendarMomentDateFormatter, CalendarMonthModule, CalendarMonthViewComponent, CalendarNativeDateFormatter, CalendarUtils, CalendarView, CalendarWeekModule, CalendarWeekViewComponent, DateAdapter, MOMENT, collapseAnimation, getWeekViewPeriod, CalendarA11yPipe as ɵCalendarA11yPipe, CalendarDatePipe as ɵCalendarDatePipe, CalendarEventActionsComponent as ɵCalendarEventActionsComponent, CalendarEventTitleComponent as ɵCalendarEventTitleComponent, CalendarEventTitlePipe as ɵCalendarEventTitlePipe, CalendarMonthCellComponent as ɵCalendarMonthCellComponent, CalendarMonthViewHeaderComponent as ɵCalendarMonthViewHeaderComponent, CalendarNextViewDirective as ɵCalendarNextViewDirective, CalendarOpenDayEventsComponent as ɵCalendarOpenDayEventsComponent, CalendarPreviousViewDirective as ɵCalendarPreviousViewDirective, CalendarTodayDirective as ɵCalendarTodayDirective, CalendarTooltipDirective as ɵCalendarTooltipDirective, CalendarTooltipWindowComponent as ɵCalendarTooltipWindowComponent, CalendarWeekViewCurrentTimeMarkerComponent as ɵCalendarWeekViewCurrentTimeMarkerComponent, CalendarWeekViewEventComponent as ɵCalendarWeekViewEventComponent, CalendarWeekViewHeaderComponent as ɵCalendarWeekViewHeaderComponent, CalendarWeekViewHourSegmentComponent as ɵCalendarWeekViewHourSegmentComponent, ClickDirective as ɵClickDirective, KeydownEnterDirective as ɵKeydownEnterDirective };\n//# sourceMappingURL=angular-calendar.mjs.map\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date that should be before the other one to return true\n * @param dateToCompare - The date to compare with\n *\n * @returns The first date is before the second date\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * const result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\nexport function isBefore(date, dateToCompare) {\n const _date = toDate(date);\n const _dateToCompare = toDate(dateToCompare);\n return +_date < +_dateToCompare;\n}\n\n// Fallback for modularized imports:\nexport default isBefore;\n","import * as i0 from '@angular/core';\nimport { NgModule, CSP_NONCE, Injectable, Optional, Inject } from '@angular/core';\nimport { coerceArray } from '@angular/cdk/coercion';\nimport { Subject, combineLatest, concat, Observable } from 'rxjs';\nimport { take, skip, debounceTime, map, startWith, takeUntil } from 'rxjs/operators';\nimport * as i1 from '@angular/cdk/platform';\n\nclass LayoutModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: LayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.1.1\", ngImport: i0, type: LayoutModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: LayoutModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: LayoutModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n\n/** Global registry for all dynamically-created, injected media queries. */\nconst mediaQueriesForWebkitCompatibility = new Set();\n/** Style tag that holds all of the dynamically-created media queries. */\nlet mediaQueryStyleNode;\n/** A utility for calling matchMedia queries. */\nclass MediaMatcher {\n constructor(_platform, _nonce) {\n this._platform = _platform;\n this._nonce = _nonce;\n this._matchMedia =\n this._platform.isBrowser && window.matchMedia\n ? // matchMedia is bound to the window scope intentionally as it is an illegal invocation to\n // call it from a different scope.\n window.matchMedia.bind(window)\n : noopMatchMedia;\n }\n /**\n * Evaluates the given media query and returns the native MediaQueryList from which results\n * can be retrieved.\n * Confirms the layout engine will trigger for the selector query provided and returns the\n * MediaQueryList for the query provided.\n */\n matchMedia(query) {\n if (this._platform.WEBKIT || this._platform.BLINK) {\n createEmptyStyleRule(query, this._nonce);\n }\n return this._matchMedia(query);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MediaMatcher, deps: [{ token: i1.Platform }, { token: CSP_NONCE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MediaMatcher, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: MediaMatcher, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: i1.Platform }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CSP_NONCE]\n }] }]; } });\n/**\n * Creates an empty stylesheet that is used to work around browser inconsistencies related to\n * `matchMedia`. At the time of writing, it handles the following cases:\n * 1. On WebKit browsers, a media query has to have at least one rule in order for `matchMedia`\n * to fire. We work around it by declaring a dummy stylesheet with a `@media` declaration.\n * 2. In some cases Blink browsers will stop firing the `matchMedia` listener if none of the rules\n * inside the `@media` match existing elements on the page. We work around it by having one rule\n * targeting the `body`. See https://github.com/angular/components/issues/23546.\n */\nfunction createEmptyStyleRule(query, nonce) {\n if (mediaQueriesForWebkitCompatibility.has(query)) {\n return;\n }\n try {\n if (!mediaQueryStyleNode) {\n mediaQueryStyleNode = document.createElement('style');\n if (nonce) {\n mediaQueryStyleNode.nonce = nonce;\n }\n mediaQueryStyleNode.setAttribute('type', 'text/css');\n document.head.appendChild(mediaQueryStyleNode);\n }\n if (mediaQueryStyleNode.sheet) {\n mediaQueryStyleNode.sheet.insertRule(`@media ${query} {body{ }}`, 0);\n mediaQueriesForWebkitCompatibility.add(query);\n }\n }\n catch (e) {\n console.error(e);\n }\n}\n/** No-op matchMedia replacement for non-browser platforms. */\nfunction noopMatchMedia(query) {\n // Use `as any` here to avoid adding additional necessary properties for\n // the noop matcher.\n return {\n matches: query === 'all' || query === '',\n media: query,\n addListener: () => { },\n removeListener: () => { },\n };\n}\n\n/** Utility for checking the matching state of @media queries. */\nclass BreakpointObserver {\n constructor(_mediaMatcher, _zone) {\n this._mediaMatcher = _mediaMatcher;\n this._zone = _zone;\n /** A map of all media queries currently being listened for. */\n this._queries = new Map();\n /** A subject for all other observables to takeUntil based on. */\n this._destroySubject = new Subject();\n }\n /** Completes the active subject, signalling to all other observables to complete. */\n ngOnDestroy() {\n this._destroySubject.next();\n this._destroySubject.complete();\n }\n /**\n * Whether one or more media queries match the current viewport size.\n * @param value One or more media queries to check.\n * @returns Whether any of the media queries match.\n */\n isMatched(value) {\n const queries = splitQueries(coerceArray(value));\n return queries.some(mediaQuery => this._registerQuery(mediaQuery).mql.matches);\n }\n /**\n * Gets an observable of results for the given queries that will emit new results for any changes\n * in matching of the given queries.\n * @param value One or more media queries to check.\n * @returns A stream of matches for the given queries.\n */\n observe(value) {\n const queries = splitQueries(coerceArray(value));\n const observables = queries.map(query => this._registerQuery(query).observable);\n let stateObservable = combineLatest(observables);\n // Emit the first state immediately, and then debounce the subsequent emissions.\n stateObservable = concat(stateObservable.pipe(take(1)), stateObservable.pipe(skip(1), debounceTime(0)));\n return stateObservable.pipe(map(breakpointStates => {\n const response = {\n matches: false,\n breakpoints: {},\n };\n breakpointStates.forEach(({ matches, query }) => {\n response.matches = response.matches || matches;\n response.breakpoints[query] = matches;\n });\n return response;\n }));\n }\n /** Registers a specific query to be listened for. */\n _registerQuery(query) {\n // Only set up a new MediaQueryList if it is not already being listened for.\n if (this._queries.has(query)) {\n return this._queries.get(query);\n }\n const mql = this._mediaMatcher.matchMedia(query);\n // Create callback for match changes and add it is as a listener.\n const queryObservable = new Observable((observer) => {\n // Listener callback methods are wrapped to be placed back in ngZone. Callbacks must be placed\n // back into the zone because matchMedia is only included in Zone.js by loading the\n // webapis-media-query.js file alongside the zone.js file. Additionally, some browsers do not\n // have MediaQueryList inherit from EventTarget, which causes inconsistencies in how Zone.js\n // patches it.\n const handler = (e) => this._zone.run(() => observer.next(e));\n mql.addListener(handler);\n return () => {\n mql.removeListener(handler);\n };\n }).pipe(startWith(mql), map(({ matches }) => ({ query, matches })), takeUntil(this._destroySubject));\n // Add the MediaQueryList to the set of queries.\n const output = { observable: queryObservable, mql };\n this._queries.set(query, output);\n return output;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: BreakpointObserver, deps: [{ token: MediaMatcher }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: BreakpointObserver, providedIn: 'root' }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.1\", ngImport: i0, type: BreakpointObserver, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: function () { return [{ type: MediaMatcher }, { type: i0.NgZone }]; } });\n/**\n * Split each query string into separate query strings if two queries are provided as comma\n * separated.\n */\nfunction splitQueries(queries) {\n return queries\n .map(query => query.split(','))\n .reduce((a1, a2) => a1.concat(a2))\n .map(query => query.trim());\n}\n\n// PascalCase is being used as Breakpoints is used like an enum.\n// tslint:disable-next-line:variable-name\nconst Breakpoints = {\n XSmall: '(max-width: 599.98px)',\n Small: '(min-width: 600px) and (max-width: 959.98px)',\n Medium: '(min-width: 960px) and (max-width: 1279.98px)',\n Large: '(min-width: 1280px) and (max-width: 1919.98px)',\n XLarge: '(min-width: 1920px)',\n Handset: '(max-width: 599.98px) and (orientation: portrait), ' +\n '(max-width: 959.98px) and (orientation: landscape)',\n Tablet: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), ' +\n '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n Web: '(min-width: 840px) and (orientation: portrait), ' +\n '(min-width: 1280px) and (orientation: landscape)',\n HandsetPortrait: '(max-width: 599.98px) and (orientation: portrait)',\n TabletPortrait: '(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)',\n WebPortrait: '(min-width: 840px) and (orientation: portrait)',\n HandsetLandscape: '(max-width: 959.98px) and (orientation: landscape)',\n TabletLandscape: '(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)',\n WebLandscape: '(min-width: 1280px) and (orientation: landscape)',\n};\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BreakpointObserver, Breakpoints, LayoutModule, MediaMatcher };\n","import * as i0 from '@angular/core';\nimport { Injectable, Inject, EventEmitter, Component, Input, Output, Pipe, LOCALE_ID, ViewEncapsulation, HostListener, InjectionToken, NgModule } from '@angular/core';\nimport * as i1$1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\nimport * as i1 from 'angular-calendar';\nimport { MOMENT, CalendarEventTitleFormatter, CalendarEventTimesChangedEventType, CalendarDateFormatter, CalendarModule, DateAdapter } from 'angular-calendar';\nimport { isBefore } from 'date-fns';\nimport { validateEvents as validateEvents$1 } from 'calendar-utils';\nimport * as i4 from '@angular/cdk/layout';\nimport * as i6 from 'angular-draggable-droppable';\nimport * as i7 from 'angular-resizable-element';\n\n// import * as momentNS from 'moment';\n// const moment = momentNS;\n// import moment from 'moment-timezone';\nvar DAYS_OF_WEEK;\n(function (DAYS_OF_WEEK) {\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"SUNDAY\"] = 0] = \"SUNDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"MONDAY\"] = 1] = \"MONDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"TUESDAY\"] = 2] = \"TUESDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"WEDNESDAY\"] = 3] = \"WEDNESDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"THURSDAY\"] = 4] = \"THURSDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"FRIDAY\"] = 5] = \"FRIDAY\";\n DAYS_OF_WEEK[DAYS_OF_WEEK[\"SATURDAY\"] = 6] = \"SATURDAY\";\n})(DAYS_OF_WEEK || (DAYS_OF_WEEK = {}));\nconst DEFAULT_WEEKEND_DAYS = [\n DAYS_OF_WEEK.SUNDAY,\n DAYS_OF_WEEK.SATURDAY\n];\nconst DAYS_IN_WEEK = 7;\nconst HOURS_IN_DAY = 24;\nconst MINUTES_IN_HOUR$1 = 60;\nconst SECONDS_IN_DAY = 60 * 60 * 24;\nconst DEFAULT_HOUR_SEGMENT_HEIGHT_PX = 40;\nconst DEFAULT_EVENT_WIDTH = 1;\nconst DEFAULT_HOUR_SEGMENTS = 2;\nfunction getSchedulerViewHourGrid(dateAdapter, { viewDate, hourSegments, dayStart, dayEnd }) {\n const { setMinutes, setHours, startOfDay, startOfMinute, endOfDay, addMinutes, addHours, addDays } = dateAdapter;\n const hours = [];\n let startOfView = setMinutes(setHours(startOfDay(viewDate), sanitiseHours(dayStart.hour)), sanitiseMinutes(dayStart.minute));\n let endOfView = setMinutes(setHours(startOfMinute(endOfDay(viewDate)), sanitiseHours(dayEnd.hour)), sanitiseMinutes(dayEnd.minute));\n const segmentDuration = MINUTES_IN_HOUR$1 / hourSegments;\n let startOfViewDay = startOfDay(viewDate);\n const endOfViewDay = endOfDay(viewDate);\n let dateAdjustment = (d) => d;\n // this means that we change from or to DST on this day and that's going to cause problems so we bump the date\n if (startOfViewDay.getTimezoneOffset() !== endOfViewDay.getTimezoneOffset()) {\n startOfViewDay = addDays(startOfViewDay, 1);\n startOfView = addDays(startOfView, 1);\n endOfView = addDays(endOfView, 1);\n dateAdjustment = (d) => addDays(d, -1);\n }\n for (let i = 0; i < HOURS_IN_DAY; i++) {\n }\n for (let i = 0; i < HOURS_IN_DAY; i++) {\n const segments = [];\n for (let j = 0; j < hourSegments; j++) {\n const date = addMinutes(addHours(startOfViewDay, i), j * segmentDuration);\n if (date >= startOfView && date < endOfView) {\n segments.push({\n date: dateAdjustment(date),\n displayDate: date,\n isStart: j === 0\n });\n }\n }\n if (segments.length > 0) {\n hours.push({ segments });\n }\n }\n return hours;\n}\nfunction getSchedulerView(dateAdapter, moment, { events = [], viewDate, viewDays, weekStartsOn, startsWithToday, excluded = [], hourSegments = DEFAULT_HOUR_SEGMENTS, dayStart, dayEnd, weekendDays = DEFAULT_WEEKEND_DAYS, hourSegmentHeight = DEFAULT_HOUR_SEGMENT_HEIGHT_PX, eventWidth = DEFAULT_EVENT_WIDTH, logEnabled, }) {\n if (!events) {\n events = [];\n }\n const { addDays, startOfDay, endOfDay, startOfWeek, endOfWeek } = dateAdapter;\n const startOfViewWeek = startsWithToday || viewDays < DAYS_IN_WEEK ? startOfDay(viewDate) : startOfWeek(viewDate, { weekStartsOn: weekStartsOn });\n const endOfViewWeek = startsWithToday || viewDays < DAYS_IN_WEEK ? addDays(endOfDay(viewDate), viewDays - 1) : endOfWeek(viewDate, { weekStartsOn: weekStartsOn });\n const eventsInWeek = getEventsInPeriod(dateAdapter, {\n events: events,\n periodStart: startOfViewWeek,\n periodEnd: endOfViewWeek\n });\n const days = getSchedulerViewDays(dateAdapter, {\n viewDate: viewDate,\n viewDays: viewDays,\n weekStartsOn: weekStartsOn,\n startsWithToday: startsWithToday,\n excluded: excluded,\n weekendDays: weekendDays\n });\n days.forEach((day) => {\n const startOfView = dateAdapter.setMinutes(dateAdapter.setHours(dateAdapter.startOfDay(day.date), dayStart.hour), dayStart.minute);\n const endOfView = dateAdapter.setMinutes(dateAdapter.setHours(dateAdapter.startOfMinute(dateAdapter.endOfDay(day.date)), dayEnd.hour), dayEnd.minute);\n const previousDayEvents = [];\n const eventsInDay = getEventsInPeriod(dateAdapter, {\n events: eventsInWeek,\n periodStart: startOfView,\n periodEnd: endOfView\n });\n const dayEvents = eventsInDay\n .sort((eventA, eventB) => eventA.start.valueOf() - eventB.start.valueOf())\n .map((ev) => {\n const eventStart = ev.start;\n const eventEnd = ev.end || eventStart;\n const startsBeforeDay = eventStart < startOfView;\n const endsAfterDay = dateAdapter.addMinutes(eventEnd, -1) > endOfView;\n const hourHeightModifier = ((hourSegments * hourSegmentHeight) + 1) / MINUTES_IN_HOUR$1; // +1 for the 1px segment bottom border\n let top = 0;\n if (eventStart > startOfView) {\n top += dateAdapter.differenceInMinutes(eventStart, startOfView);\n }\n top *= hourHeightModifier;\n const startDate = startsBeforeDay ? startOfView : eventStart;\n const endDate = endsAfterDay ? endOfView : eventEnd;\n let height = dateAdapter.differenceInMinutes(endDate, startDate);\n if (!ev.end) {\n height = hourSegmentHeight;\n }\n else {\n height *= hourHeightModifier;\n }\n const bottom = top + height;\n const overlappingPreviousEvents = getOverLappingEvents(ev, previousDayEvents, top, bottom, logEnabled);\n let left = 0;\n while (overlappingPreviousEvents.some(previousEvent => previousEvent.left === left)) {\n left += eventWidth;\n }\n const event = {\n event: ev,\n top: top,\n height: height,\n width: eventWidth,\n left: left,\n startsBeforeDay: startsBeforeDay,\n endsAfterDay: endsAfterDay\n };\n previousDayEvents.push(event);\n return event;\n });\n function getColumnCount(allEvents, prevOverlappingEvents) {\n const columnCount = Math.max(...prevOverlappingEvents.map((ev) => ev.left + 1));\n const nextOverlappingEvents = allEvents\n .filter((ev) => ev.left >= columnCount)\n .filter((ev) => {\n return (getOverLappingEvents(ev, prevOverlappingEvents, ev.top, ev.top + ev.height, logEnabled).length > 0);\n });\n if (nextOverlappingEvents.length > 0) {\n return getColumnCount(allEvents, nextOverlappingEvents);\n }\n else {\n return columnCount;\n }\n }\n const mappedEvents = dayEvents.map(event => {\n const columnCount = getColumnCount(dayEvents, getOverLappingEvents(event, dayEvents, event.top, event.top + event.height, logEnabled));\n const width = 100 / columnCount;\n return { ...event, left: event.left * width, width };\n });\n day.events = mappedEvents.map(event => {\n const overLappingEvents = getOverLappingEvents(event, mappedEvents.filter(otherEvent => otherEvent.left > event.left), event.top, event.top + event.height, logEnabled);\n if (logEnabled) {\n console.log(`DAY [${moment(day.date).format('dddd L')}] ` +\n `- EVENT ${event.event.id} [${moment(event.event.start).format('dddd L, LTS')} ` +\n `- ${moment(event.event.end).format('dddd L, LTS')}] overLappingEvents -> `, overLappingEvents);\n }\n if (overLappingEvents.length > 0) {\n return {\n ...event,\n width: Math.min(...overLappingEvents.map(otherEvent => otherEvent.left)) - event.left\n };\n }\n return event;\n });\n day.hours = getSchedulerViewHourGrid(dateAdapter, {\n viewDate: viewDate,\n hourSegments: hourSegments,\n dayStart: {\n hour: dayStart.hour,\n minute: dayStart.minute\n },\n dayEnd: {\n hour: dayEnd.hour,\n minute: dayEnd.minute\n }\n }).map((hour) => {\n const date = new Date(day.date.getFullYear(), day.date.getMonth(), day.date.getDate(), hour.segments[0].date.getHours());\n const startOfHour = new Date(day.date.getFullYear(), day.date.getMonth(), day.date.getDate(), hour.segments[0].date.getHours());\n const endOfHour = dateAdapter.addSeconds(dateAdapter.addHours(startOfHour, 1), -1);\n const eventsInHour = getSchedulerEventsInPeriod(dateAdapter, {\n events: day.events,\n periodStart: startOfHour,\n periodEnd: endOfHour\n });\n const segments = hour.segments.map((segment) => {\n segment.date = dateAdapter.setDate(dateAdapter.setMonth(dateAdapter.setYear(segment.date, day.date.getFullYear()), day.date.getMonth()), day.date.getDate());\n const startOfSegment = segment.date;\n const endOfSegment = dateAdapter.addSeconds(dateAdapter.addMinutes(startOfSegment, MINUTES_IN_HOUR$1 / hourSegments), -1);\n const eventsInSegment = getSchedulerEventsInPeriod(dateAdapter, {\n events: eventsInHour,\n periodStart: startOfSegment,\n periodEnd: endOfSegment\n });\n if (logEnabled) {\n console.log(`SEGMENT [${moment(startOfSegment).format('dddd L, LTS')} - ${moment(endOfSegment).format('dddd L, LTS')}] EVENTS -> `, eventsInSegment);\n }\n return {\n segment: segment,\n date: new Date(segment.date),\n events: eventsInSegment\n };\n });\n return {\n hour: hour,\n date: date,\n events: eventsInHour,\n segments: segments\n };\n });\n });\n return {\n days: days,\n period: {\n events: eventsInWeek,\n start: startOfViewWeek,\n end: endOfViewWeek\n }\n };\n}\nfunction getSchedulerViewDays(dateAdapter, { viewDate, viewDays, weekStartsOn, startsWithToday, excluded = [], weekendDays = DEFAULT_WEEKEND_DAYS }) {\n const start = startsWithToday || viewDays < DAYS_IN_WEEK\n ? new Date(viewDate)\n : dateAdapter.startOfWeek(viewDate, { weekStartsOn: weekStartsOn });\n const days = [];\n const loop = (i) => {\n const date = dateAdapter.addDays(start, i);\n if (!excluded.some((e) => date.getDay() === e)) {\n days.push(getSchedulerDay(dateAdapter, { date, weekendDays }));\n }\n };\n for (let i = 0; i < viewDays; i++) {\n loop(i);\n }\n return days;\n}\nfunction getSchedulerDay(dateAdapter, args) {\n const date = args.date;\n const today = dateAdapter.startOfDay(new Date());\n return {\n date: date,\n isPast: date < today,\n isToday: dateAdapter.isSameDay(date, today),\n isFuture: date >= dateAdapter.addDays(today, 1),\n isWeekend: args.weekendDays.indexOf(dateAdapter.getDay(date)) > -1,\n inMonth: dateAdapter.isSameMonth(date, today),\n hours: []\n };\n}\nfunction getEventsInPeriod(dateAdapter, { events, periodStart, periodEnd }) {\n return events.filter((event) => isEventInPeriod(dateAdapter, { event: event, periodStart: periodStart, periodEnd: periodEnd }));\n}\nfunction getSchedulerEventsInPeriod(dateAdapter, { events, periodStart, periodEnd }) {\n return events.filter((event) => isEventInPeriod(dateAdapter, { event: event.event, periodStart: periodStart, periodEnd: periodEnd }));\n}\nfunction isEventInPeriod(dateAdapter, { event, periodStart, periodEnd }) {\n const { isSameSecond, addSeconds } = dateAdapter;\n const eventStart = event.start;\n const eventEnd = event.end || event.start;\n if (eventStart > periodStart && eventStart < periodEnd) {\n return true;\n }\n if (eventEnd > periodStart && eventEnd < periodEnd) {\n return true;\n }\n if (eventStart < periodStart && eventEnd > periodEnd) {\n return true;\n }\n if (isSameSecond(eventStart, periodStart) || isSameSecond(eventStart, periodEnd)) {\n return true;\n }\n if (isSameSecond(addSeconds(eventEnd, -1), periodStart) || isSameSecond(addSeconds(eventEnd, -1), periodEnd)) {\n return true;\n }\n return false;\n}\nfunction getOverLappingEvents(event /*SchedulerViewEvent | CalendarSchedulerEvent*/, events, top, bottom, logEnabled = false) {\n return events.filter((previousEvent) => {\n top = Math.round(top);\n bottom = Math.round(bottom);\n const previousEventTop = Math.floor(previousEvent.top);\n const previousEventBottom = Math.floor(previousEvent.top + previousEvent.height);\n if (top < previousEventBottom && previousEventBottom < bottom) {\n if (logEnabled) {\n console.log('[getOverLappingEvents] - EVENT ' + (event.event?.id || event.id) + ' -> top: ' + top + ' - bottom: ' + bottom + ' | PREVIOUS EVENT ' + previousEvent.event.id\n + ' -> previousEventTop: ' + previousEventTop + ' - previousEventBottom: ' + previousEventBottom + ' -> top < previousEventBottom && previousEventBottom < bottom');\n }\n return true;\n }\n else if (top < previousEventTop && previousEventTop < bottom) {\n if (logEnabled) {\n console.log('[getOverLappingEvents] - EVENT ' + (event.event?.id || event.id) + ' -> top: ' + top + ' - bottom: ' + bottom + ' | PREVIOUS EVENT ' + previousEvent.event.id\n + ' -> previousEventTop: ' + previousEventTop + ' - previousEventBottom: ' + previousEventBottom + ' -> top < previousEventTop && previousEventTop < bottom');\n }\n return true;\n }\n else if (previousEventTop <= top && bottom <= previousEventBottom) {\n if (logEnabled) {\n console.log('[getOverLappingEvents] - EVENT ' + (event.event?.id || event.id) + ' -> top: ' + top + ' - bottom: ' + bottom + ' | PREVIOUS EVENT ' + previousEvent.event.id\n + ' -> previousEventTop: ' + previousEventTop + ' - previousEventBottom: ' + previousEventBottom + ' -> previousEventTop <= top && bottom <= previousEventBottom');\n }\n return true;\n }\n return false;\n });\n}\nfunction sanitiseHours(hours) {\n return Math.max(Math.min(23, hours), 0);\n}\nfunction sanitiseMinutes(minutes) {\n return Math.max(Math.min(59, minutes), 0);\n}\n\nfunction addPeriod(dateAdapter, period, date, amount) {\n return {\n day: dateAdapter.addDays,\n week: dateAdapter.addWeeks,\n month: dateAdapter.addMonths\n }[period](date, amount);\n}\nfunction subPeriod(dateAdapter, period, date, amount) {\n return {\n day: dateAdapter.subDays,\n week: dateAdapter.subWeeks,\n month: dateAdapter.subMonths\n }[period](date, amount);\n}\nfunction startOfPeriod(dateAdapter, period, date) {\n return {\n day: dateAdapter.startOfDay,\n week: dateAdapter.startOfWeek,\n month: dateAdapter.startOfMonth\n }[period](date);\n}\nfunction endOfPeriod(dateAdapter, period, date) {\n return {\n day: dateAdapter.endOfDay,\n week: dateAdapter.endOfWeek,\n month: dateAdapter.endOfMonth\n }[period](date);\n}\nconst trackByDayOrEvent = (index, event) => (event.event.id ? event.event.id : event.event);\nconst trackByHourColumn = (index, day) => day.hours[0] ? day.hours[0].segments[0].date.toISOString() : day;\nconst trackByHour$1 = (index, hour) => hour.segments[0].date.toISOString();\nconst trackByHourSegment$1 = (index, segment) => segment.date.toISOString();\nfunction getMinimumEventHeightInMinutes(hourSegments, hourSegmentHeight) {\n return (MINUTES_IN_HOUR$1 / (hourSegments * hourSegmentHeight)) * hourSegmentHeight;\n}\nfunction getDefaultEventEnd$1(dateAdapter, event, minimumMinutes) {\n return event.end ? event.end : dateAdapter.addMinutes(event.start, minimumMinutes);\n}\nfunction roundToNearest$1(amount, precision) {\n return Math.round(amount / precision) * precision;\n}\nfunction getMinutesMoved$1(movedY, hourSegments, hourSegmentHeight, eventSnapSize) {\n const draggedInPixelsSnapSize = roundToNearest$1(movedY, eventSnapSize || hourSegmentHeight);\n const pixelAmountInMinutes = MINUTES_IN_HOUR$1 / (hourSegments * hourSegmentHeight);\n return draggedInPixelsSnapSize * pixelAmountInMinutes;\n}\nfunction isDraggedWithinPeriod$1(newStart, newEnd, period) {\n const end = newEnd || newStart;\n return ((period.start <= newStart && newStart <= period.end) ||\n (period.start <= end && end <= period.end));\n}\nfunction shouldFireDroppedEvent$1(dropEvent, date, calendarId) {\n return (dropEvent.dropData &&\n dropEvent.dropData.event &&\n dropEvent.dropData.calendarId !== calendarId);\n}\n\nconst validateEvents = (events) => {\n const warn = (...args) => console.warn('angular-calendar', ...args);\n return validateEvents$1(events, warn);\n};\nfunction isInsideLeftAndRight(outer, inner) {\n return (Math.floor(outer.left) <= Math.ceil(inner.left) &&\n Math.floor(inner.left) <= Math.ceil(outer.right) &&\n Math.floor(outer.left) <= Math.ceil(inner.right) &&\n Math.floor(inner.right) <= Math.ceil(outer.right));\n}\nfunction isInsideTopAndBottom(outer, inner) {\n return (Math.floor(outer.top) <= Math.ceil(inner.top) &&\n Math.floor(inner.top) <= Math.ceil(outer.bottom) &&\n Math.floor(outer.top) <= Math.ceil(inner.bottom) &&\n Math.floor(inner.bottom) <= Math.ceil(outer.bottom));\n}\nfunction isInside(outer, inner) {\n return (isInsideLeftAndRight(outer, inner) && isInsideTopAndBottom(outer, inner));\n}\nfunction roundToNearest(amount, precision) {\n return Math.round(amount / precision) * precision;\n}\nconst trackByEventId = (index, event) => event.id ? event.id : event;\nconst trackByWeekDayHeaderDate = (index, day) => day.date.toISOString();\nconst trackByHourSegment = (index, segment) => segment.date.toISOString();\nconst trackByHour = (index, hour) => hour.segments[0].date.toISOString();\nconst trackByWeekAllDayEvent = (index, weekEvent) => (weekEvent.event.id ? weekEvent.event.id : weekEvent.event);\nconst trackByWeekTimeEvent = (index, weekEvent) => (weekEvent.event.id ? weekEvent.event.id : weekEvent.event);\nconst MINUTES_IN_HOUR = 60;\nfunction getPixelAmountInMinutes(hourSegments, hourSegmentHeight, hourDuration) {\n return (hourDuration || MINUTES_IN_HOUR) / (hourSegments * hourSegmentHeight);\n}\nfunction getMinutesMoved(movedY, hourSegments, hourSegmentHeight, eventSnapSize, hourDuration) {\n const draggedInPixelsSnapSize = roundToNearest(movedY, eventSnapSize || hourSegmentHeight);\n const pixelAmountInMinutes = getPixelAmountInMinutes(hourSegments, hourSegmentHeight, hourDuration);\n return draggedInPixelsSnapSize * pixelAmountInMinutes;\n}\nfunction getDefaultEventEnd(dateAdapter, event, minimumMinutes) {\n if (event.end) {\n return event.end;\n }\n else {\n return dateAdapter.addMinutes(event.start, minimumMinutes);\n }\n}\nfunction addDaysWithExclusions(dateAdapter, date, days, excluded) {\n let daysCounter = 0;\n let daysToAdd = 0;\n const changeDays = days < 0 ? dateAdapter.subDays : dateAdapter.addDays;\n let result = date;\n while (daysToAdd <= Math.abs(days)) {\n result = changeDays(date, daysCounter);\n const day = dateAdapter.getDay(result);\n if (excluded.indexOf(day) === -1) {\n daysToAdd++;\n }\n daysCounter++;\n }\n return result;\n}\nfunction isDraggedWithinPeriod(newStart, newEnd, period) {\n const end = newEnd || newStart;\n return ((period.start <= newStart && newStart <= period.end) ||\n (period.start <= end && end <= period.end));\n}\nfunction shouldFireDroppedEvent(dropEvent, date, allDay, calendarId) {\n return (dropEvent.dropData &&\n dropEvent.dropData.event &&\n (dropEvent.dropData.calendarId !== calendarId ||\n (dropEvent.dropData.event.allDay && !allDay) ||\n (!dropEvent.dropData.event.allDay && allDay)));\n}\nfunction getWeekViewPeriod(dateAdapter, viewDate, weekStartsOn, excluded = [], daysInWeek) {\n let viewStart = daysInWeek\n ? dateAdapter.startOfDay(viewDate)\n : dateAdapter.startOfWeek(viewDate, { weekStartsOn });\n const endOfWeek = dateAdapter.endOfWeek(viewDate, { weekStartsOn });\n while (excluded.indexOf(dateAdapter.getDay(viewStart)) > -1 &&\n viewStart < endOfWeek) {\n viewStart = dateAdapter.addDays(viewStart, 1);\n }\n if (daysInWeek) {\n const viewEnd = dateAdapter.endOfDay(addDaysWithExclusions(dateAdapter, viewStart, daysInWeek - 1, excluded));\n return { viewStart, viewEnd };\n }\n else {\n let viewEnd = endOfWeek;\n while (excluded.indexOf(dateAdapter.getDay(viewEnd)) > -1 &&\n viewEnd > viewStart) {\n viewEnd = dateAdapter.subDays(viewEnd, 1);\n }\n return { viewStart, viewEnd };\n }\n}\nfunction isWithinThreshold({ x, y }) {\n const DRAG_THRESHOLD = 1;\n return Math.abs(x) > DRAG_THRESHOLD || Math.abs(y) > DRAG_THRESHOLD;\n}\n\nclass CalendarResizeHelper {\n resizeContainerElement;\n minWidth;\n rtl;\n constructor(resizeContainerElement, minWidth, rtl) {\n this.resizeContainerElement = resizeContainerElement;\n this.minWidth = minWidth;\n this.rtl = rtl;\n }\n validateResize({ rectangle, edges }) {\n if (this.rtl) {\n // TODO - find a way of testing this, for some reason the tests always fail but it does actually work\n /* istanbul ignore next */\n if (typeof edges.left !== 'undefined') {\n rectangle.left -= edges.left;\n rectangle.right += edges.left;\n }\n else if (typeof edges.right !== 'undefined') {\n rectangle.left += edges.right;\n rectangle.right -= edges.right;\n }\n rectangle.width = rectangle.right - rectangle.left;\n }\n if (this.minWidth &&\n Math.ceil(rectangle.width) < Math.ceil(this.minWidth)) {\n return false;\n }\n return isInside(this.resizeContainerElement.getBoundingClientRect(), rectangle);\n }\n}\n\nclass CalendarDragHelper {\n dragContainerElement;\n startPosition;\n constructor(dragContainerElement, draggableElement) {\n this.dragContainerElement = dragContainerElement;\n this.startPosition = draggableElement.getBoundingClientRect();\n }\n validateDrag({ x, y, snapDraggedEvents, dragAlreadyMoved, transform, }) {\n const isDraggedWithinThreshold = isWithinThreshold({ x, y }) || dragAlreadyMoved;\n if (snapDraggedEvents) {\n const inner = Object.assign({}, this.startPosition, {\n left: this.startPosition.left + transform.x,\n right: this.startPosition.right + transform.x,\n top: this.startPosition.top + transform.y,\n bottom: this.startPosition.bottom + transform.y,\n });\n if (isDraggedWithinThreshold) {\n const outer = this.dragContainerElement.getBoundingClientRect();\n const isTopInside = outer.top < inner.top && inner.top < outer.bottom;\n const isBottomInside = outer.top < inner.bottom && inner.bottom < outer.bottom;\n return (\n /*isInsideLeftAndRight(outer, inner) &&*/ (isTopInside || isBottomInside));\n }\n /* istanbul ignore next */\n return false;\n }\n else {\n return isDraggedWithinThreshold;\n }\n }\n}\n\n/**\n * Auth configuration.\n */\nclass SchedulerConfig {\n locale = 'en';\n headerDateFormat = 'daysRange';\n logEnabled = false;\n constructor(config = {}) {\n function use(source, defaultValue) {\n return config && source !== undefined ? source : defaultValue;\n }\n this.locale = use(config.locale, this.locale);\n this.headerDateFormat = use(config.headerDateFormat, this.headerDateFormat);\n this.logEnabled = use(config.logEnabled, this.logEnabled);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerConfig, deps: [{ token: SchedulerConfig }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerConfig });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerConfig, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: SchedulerConfig }]; } });\n\nclass CalendarSchedulerUtils {\n dateAdapter;\n moment;\n constructor(dateAdapter, moment) {\n this.dateAdapter = dateAdapter;\n this.moment = moment;\n }\n getSchedulerViewHourGrid(args) {\n return getSchedulerViewHourGrid(this.dateAdapter, args);\n }\n getSchedulerViewDays(args) {\n return getSchedulerViewDays(this.dateAdapter, args);\n }\n getSchedulerView(args) {\n return getSchedulerView(this.dateAdapter, this.moment, args);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerUtils, deps: [{ token: i1.DateAdapter }, { token: MOMENT }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerUtils });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerUtils, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: undefined, decorators: [{\n type: Inject,\n args: [MOMENT]\n }] }]; } });\n\n// import * as momentNS from 'moment';\n// const moment = momentNS;\n// import moment from 'moment-timezone';\nclass CalendarSchedulerHourSegmentComponent {\n moment;\n title;\n day;\n segment;\n locale;\n customTemplate;\n hourSegmentHeight = 58;\n showHour = false;\n segmentClicked = new EventEmitter();\n constructor(moment) {\n this.moment = moment;\n }\n ngOnInit() {\n this.title = this.title || this.moment(this.segment.date).format('dddd L, LT');\n }\n /**\n * @hidden\n */\n onMouseEnter(mouseEvent, segment, event) {\n if (!event.isDisabled && !segment.isDisabled) {\n // Maybe do something\n }\n }\n /**\n * @hidden\n */\n onMouseLeave(mouseEvent, segment, event) {\n if (!event.isDisabled && !segment.isDisabled) {\n // Maybe do something\n }\n }\n /**\n * @hidden\n */\n onSegmentClick(mouseEvent, segment) {\n if (mouseEvent.stopPropagation) {\n mouseEvent.stopPropagation();\n }\n if (segment.events.length === 0 && !segment.isDisabled && !segment.isCancelled) {\n this.segmentClicked.emit({ segment: segment });\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerHourSegmentComponent, deps: [{ token: MOMENT }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.2.7\", type: CalendarSchedulerHourSegmentComponent, selector: \"calendar-scheduler-hour-segment\", inputs: { title: \"title\", day: \"day\", segment: \"segment\", locale: \"locale\", customTemplate: \"customTemplate\", hourSegmentHeight: \"hourSegmentHeight\", showHour: \"showHour\" }, outputs: { segmentClicked: \"segmentClicked\" }, ngImport: i0, template: `\r\n \r\n
0\"\r\n [class.cal-cancelled]=\"segment.isCancelled\"\r\n [class.cal-disabled]=\"segment.isDisabled\"\r\n [style.backgroundColor]=\"segment.backgroundColor\"\r\n [style.height.px]=\"hourSegmentHeight\"\r\n (mwlClick)=\"onSegmentClick($event, segment)\">\r\n
\r\n {{ segment.date | calendarDate:'dayViewHour':locale }}\r\n
\r\n
\r\n
\r\n \r\n \r\n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1$1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1$1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1$1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1.ɵClickDirective, selector: \"[mwlClick]\", inputs: [\"clickListenerDisabled\"], outputs: [\"mwlClick\"] }, { kind: \"pipe\", type: i1.ɵCalendarDatePipe, name: \"calendarDate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerHourSegmentComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'calendar-scheduler-hour-segment',\n template: `\r\n \r\n
0\"\r\n [class.cal-cancelled]=\"segment.isCancelled\"\r\n [class.cal-disabled]=\"segment.isDisabled\"\r\n [style.backgroundColor]=\"segment.backgroundColor\"\r\n [style.height.px]=\"hourSegmentHeight\"\r\n (mwlClick)=\"onSegmentClick($event, segment)\">\r\n
\r\n {{ segment.date | calendarDate:'dayViewHour':locale }}\r\n
\r\n
\r\n
\r\n \r\n \r\n `\n }]\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MOMENT]\n }] }]; }, propDecorators: { title: [{\n type: Input\n }], day: [{\n type: Input\n }], segment: [{\n type: Input\n }], locale: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }], hourSegmentHeight: [{\n type: Input\n }], showHour: [{\n type: Input\n }], segmentClicked: [{\n type: Output\n }] } });\n\nclass CalendarSchedulerHeaderComponent {\n days;\n locale;\n customTemplate;\n dayHeaderClicked = new EventEmitter();\n /**\n * @hidden\n */\n onDayHeaderClick(mouseEvent, day) {\n if (mouseEvent.stopPropagation) {\n mouseEvent.stopPropagation();\n }\n this.dayHeaderClicked.emit({ day: day });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.2.7\", type: CalendarSchedulerHeaderComponent, selector: \"calendar-scheduler-header\", inputs: { days: \"days\", locale: \"locale\", customTemplate: \"customTemplate\" }, outputs: { dayHeaderClicked: \"dayHeaderClicked\" }, ngImport: i0, template: `\r\n \r\n
\r\n
\r\n schedule\r\n
\r\n\r\n
\r\n \r\n {{ day.date | calendarDate:'weekViewColumnHeader':locale }}
\r\n {{ day.date | calendarDate:'weekViewColumnSubHeader':locale }}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1$1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1$1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1.ɵClickDirective, selector: \"[mwlClick]\", inputs: [\"clickListenerDisabled\"], outputs: [\"mwlClick\"] }, { kind: \"pipe\", type: i1.ɵCalendarDatePipe, name: \"calendarDate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerHeaderComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'calendar-scheduler-header',\n template: `\r\n \r\n
\r\n
\r\n schedule\r\n
\r\n\r\n
\r\n \r\n {{ day.date | calendarDate:'weekViewColumnHeader':locale }}
\r\n {{ day.date | calendarDate:'weekViewColumnSubHeader':locale }}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n `\n }]\n }], propDecorators: { days: [{\n type: Input\n }], locale: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }], dayHeaderClicked: [{\n type: Output\n }] } });\n\nclass CalendarSchedulerEventActionsComponent {\n event;\n actions = [];\n ngOnInit() {\n this.setupActions();\n }\n ngOnChanges(changes) {\n if (changes.event) {\n this.setupActions();\n }\n }\n setupActions() {\n if (this.event.actions) {\n this.actions = this.event.isCancelled\n ? this.event.actions.filter((a) => !a.when || a.when === 'cancelled')\n : this.event.isDisabled\n ? this.event.actions.filter((a) => !a.when || a.when === 'disabled')\n : this.event.actions.filter((a) => !a.when || a.when === 'enabled');\n }\n }\n /**\n * @hidden\n */\n onActionClick(mouseEvent, action, event) {\n if (mouseEvent.stopPropagation) {\n mouseEvent.stopPropagation();\n }\n action.onClick(event);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerEventActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.2.7\", type: CalendarSchedulerEventActionsComponent, selector: \"calendar-scheduler-event-actions\", inputs: { event: \"event\" }, host: { classAttribute: \"cal-scheduler-event-actions-container\" }, usesOnChanges: true, ngImport: i0, template: `\r\n \r\n \r\n \r\n \r\n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1$1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1$1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1$1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.ɵClickDirective, selector: \"[mwlClick]\", inputs: [\"clickListenerDisabled\"], outputs: [\"mwlClick\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerEventActionsComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'calendar-scheduler-event-actions',\n template: `\r\n \r\n \r\n \r\n \r\n `,\n host: {\n 'class': 'cal-scheduler-event-actions-container'\n }\n }]\n }], propDecorators: { event: [{\n type: Input\n }] } });\n\nclass SchedulerEventTitleFormatter extends CalendarEventTitleFormatter {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerEventTitleFormatter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerEventTitleFormatter });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerEventTitleFormatter, decorators: [{\n type: Injectable\n }] });\n\nclass SchedulerEventTitlePipe {\n schedulerEventTitle;\n constructor(schedulerEventTitle) {\n this.schedulerEventTitle = schedulerEventTitle;\n }\n transform(title, titleType, event) {\n return this.schedulerEventTitle[titleType](event);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerEventTitlePipe, deps: [{ token: SchedulerEventTitleFormatter }], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerEventTitlePipe, name: \"schedulerEventTitle\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerEventTitlePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'schedulerEventTitle'\n }]\n }], ctorParameters: function () { return [{ type: SchedulerEventTitleFormatter }]; } });\n\nclass CalendarSchedulerEventTitleComponent {\n view;\n event;\n showStatus = true;\n showContent = true;\n showActions = true;\n customTemplate;\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerEventTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.2.7\", type: CalendarSchedulerEventTitleComponent, selector: \"calendar-scheduler-event-title\", inputs: { view: \"view\", event: \"event\", showStatus: \"showStatus\", showContent: \"showContent\", showActions: \"showActions\", customTemplate: \"customTemplate\" }, host: { classAttribute: \"cal-scheduler-event-title-container\" }, ngImport: i0, template: `\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1$1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1$1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: CalendarSchedulerEventActionsComponent, selector: \"calendar-scheduler-event-actions\", inputs: [\"event\"] }, { kind: \"pipe\", type: SchedulerEventTitlePipe, name: \"schedulerEventTitle\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerEventTitleComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'calendar-scheduler-event-title',\n template: `\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n `,\n host: {\n 'class': 'cal-scheduler-event-title-container'\n }\n }]\n }], propDecorators: { view: [{\n type: Input\n }], event: [{\n type: Input\n }], showStatus: [{\n type: Input\n }], showContent: [{\n type: Input\n }], showActions: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }] } });\n\nclass CalendarSchedulerEventContentComponent {\n hostElement;\n event;\n eventContainer;\n maxHeight;\n constructor(hostElement) {\n this.hostElement = hostElement;\n }\n ngAfterViewInit() {\n setTimeout(() => { this.maxHeight = Math.max(30, this.eventContainer.clientHeight - 70); }, 0);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerEventContentComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.2.7\", type: CalendarSchedulerEventContentComponent, selector: \"calendar-scheduler-event-content\", inputs: { event: \"event\", eventContainer: \"eventContainer\" }, host: { classAttribute: \"cal-scheduler-event-content-container\" }, ngImport: i0, template: `\r\n
30 ? 'normal' : 'nowrap'\"\r\n [innerHTML]=\"event.content\">\r\n
\r\n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1$1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerEventContentComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'calendar-scheduler-event-content',\n template: `\r\n
30 ? 'normal' : 'nowrap'\"\r\n [innerHTML]=\"event.content\">\r\n
\r\n `,\n host: {\n 'class': 'cal-scheduler-event-content-container'\n }\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { event: [{\n type: Input\n }], eventContainer: [{\n type: Input\n }] } });\n\n// import * as momentNS from 'moment';\n// const moment = momentNS;\n// import moment from 'moment-timezone';\nclass CalendarSchedulerEventComponent {\n hostElement;\n changeDetectorRef;\n moment;\n title;\n day;\n event;\n container;\n showContent = true;\n showActions = true;\n showStatus = true;\n customTemplate;\n eventTitleTemplate;\n eventClicked = new EventEmitter();\n constructor(hostElement, changeDetectorRef, moment) {\n this.hostElement = hostElement;\n this.changeDetectorRef = changeDetectorRef;\n this.moment = moment;\n }\n ngOnInit() {\n this.title = this.title || `${this.event.event.title}, ${this.event.event.content ? `${this.event.event.content},` : null} ${this.moment(this.event.event.start).format('dddd L, LT')}`;\n }\n ngAfterContentChecked() {\n this.changeDetectorRef.detectChanges();\n }\n onMouseEnter() {\n // Maybe do something\n }\n onMouseLeave() {\n // Maybe do something\n }\n /**\n * @hidden\n */\n onEventClick(mouseEvent, event) {\n if (mouseEvent.stopPropagation) {\n mouseEvent.stopPropagation();\n }\n if (event.isClickable) {\n this.eventClicked.emit({ event: event });\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerEventComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: MOMENT }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.2.7\", type: CalendarSchedulerEventComponent, selector: \"calendar-scheduler-event\", inputs: { title: \"title\", day: \"day\", event: \"event\", container: \"container\", showContent: \"showContent\", showActions: \"showActions\", showStatus: \"showStatus\", customTemplate: \"customTemplate\", eventTitleTemplate: \"eventTitleTemplate\" }, outputs: { eventClicked: \"eventClicked\" }, host: { properties: { \"style.height.%\": \"100\" } }, ngImport: i0, template: `\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n `, isInline: true, dependencies: [{ kind: \"directive\", type: i1$1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1$1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i1.ɵClickDirective, selector: \"[mwlClick]\", inputs: [\"clickListenerDisabled\"], outputs: [\"mwlClick\"] }, { kind: \"component\", type: CalendarSchedulerEventTitleComponent, selector: \"calendar-scheduler-event-title\", inputs: [\"view\", \"event\", \"showStatus\", \"showContent\", \"showActions\", \"customTemplate\"] }, { kind: \"component\", type: CalendarSchedulerEventContentComponent, selector: \"calendar-scheduler-event-content\", inputs: [\"event\", \"eventContainer\"] }, { kind: \"component\", type: CalendarSchedulerEventActionsComponent, selector: \"calendar-scheduler-event-actions\", inputs: [\"event\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerEventComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'calendar-scheduler-event',\n template: `\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n `,\n host: {\n '[style.height.%]': '100'\n }\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [MOMENT]\n }] }]; }, propDecorators: { title: [{\n type: Input\n }], day: [{\n type: Input\n }], event: [{\n type: Input\n }], container: [{\n type: Input\n }], showContent: [{\n type: Input\n }], showActions: [{\n type: Input\n }], showStatus: [{\n type: Input\n }], customTemplate: [{\n type: Input\n }], eventTitleTemplate: [{\n type: Input\n }], eventClicked: [{\n type: Output\n }] } });\n\n/**\n * [ngClass]=\"getPositioningClasses(event)\"\n *\n * [style.top.px]=\"event.top\"\n * [style.height.px]=\"event.height\"\n * [style.left.%]=\"event.left\"\n * [style.width.%]=\"event.width\"\n *\n * DRAG & DROP & RESIZE -> https://github.com/mattlewis92/angular-calendar/blob/main/projects/angular-calendar/src/modules/week/calendar-week-view.component.ts\n * FLEXBOX -> https://css-tricks.com/snippets/css/a-guide-to-flexbox/\n */\nclass CalendarSchedulerViewComponent {\n cdr;\n config;\n utils;\n dateAdapter;\n media;\n changeDetectorRef;\n /**\n * Number of days shown. This value will be always normalized to DAYS_IN_WEEK (7)\n */\n _viewDays = DAYS_IN_WEEK;\n get viewDays() {\n return this._viewDays;\n }\n set viewDays(value) {\n this._viewDays = Math.min(value, DAYS_IN_WEEK);\n }\n /**\n * The current view date\n */\n viewDate;\n /**\n * Specify if the calendar must be resposive on window resize, changing the days showed automatically\n */\n responsive = false;\n /**\n * An array of events to display on view\n */\n events = [];\n /**\n * The number of segments in an hour. Must be one of 1, 2, 4, 6\n */\n hourSegments = DEFAULT_HOUR_SEGMENTS;\n /**\n * The height in pixels of each hour segment\n */\n hourSegmentHeight = DEFAULT_HOUR_SEGMENT_HEIGHT_PX;\n /**\n * An array of day indexes (0 = sunday, 1 = monday etc) that will be hidden on the view\n */\n excludeDays = [];\n /**\n * Specify if the first day of current scheduler view has to be today or the first day of the week\n */\n startsWithToday = false;\n /**\n * Specify if content must be shown or not\n */\n showEventContent = true;\n /**\n * Specify if actions must be shown or not\n */\n showEventActions = true;\n /**\n * Specify if status must be shown or not\n */\n showEventStatus = true;\n /**\n * Specify if hour must be shown on segment or not\n */\n showSegmentHour = false;\n /**\n * Specify if event must zoom on mouse hover or not\n */\n zoomEventOnHover = false;\n /**\n * A function that will be called before each cell is rendered. The first argument will contain the calendar (day, hour or segment) cell.\n * If you add the `cssClass` property to the cell it will add that class to the cell in the template\n */\n dayModifier;\n hourModifier;\n segmentModifier;\n eventModifier;\n /**\n * An observable that when emitted on will re-render the current view\n */\n refresh;\n /**\n * The locale used to format dates\n */\n locale;\n /**\n * The grid size to snap resizing and dragging of events to\n */\n eventSnapSize = this.hourSegmentHeight;\n /**\n * Whether to snap events to a grid when dragging\n */\n snapDraggedEvents = true;\n /**\n * The start number of the week\n */\n weekStartsOn;\n /**\n * A custom template to use to replace the header\n */\n headerTemplate;\n /**\n * A custom template to use to replace the day cell\n */\n cellTemplate;\n /**\n * A custom template to use for week view events\n */\n eventTemplate;\n /**\n * A custom template to use for event titles\n */\n eventTitleTemplate;\n /**\n * A custom template to use for all day events\n */\n allDayEventTemplate;\n /**\n * An array of day indexes (0 = sunday, 1 = monday etc) that indicate which days are weekends\n */\n weekendDays;\n /**\n * The day start hours in 24 hour time. Must be 0-23\n */\n dayStartHour = 0;\n /**\n * The day start minutes. Must be 0-59\n */\n dayStartMinute = 0;\n /**\n * The day end hours in 24 hour time. Must be 0-23\n */\n dayEndHour = 23;\n /**\n * The day end minutes. Must be 0-59\n */\n dayEndMinute = 59;\n /**\n * Called when view days value changes\n */\n viewDaysChanged = new EventEmitter();\n /**\n * Called when a header week day is clicked\n */\n dayHeaderClicked = new EventEmitter();\n /**\n * Called when the hour is clicked\n */\n hourClicked = new EventEmitter();\n /**\n * Called when the segment is clicked\n */\n segmentClicked = new EventEmitter();\n /**\n * Called when the event is clicked\n */\n eventClicked = new EventEmitter();\n /**\n * Called when an event is resized or dragged and dropped\n */\n eventTimesChanged = new EventEmitter();\n /**\n * @hidden\n */\n view;\n /**\n * @hidden\n */\n refreshSubscription;\n /**\n * @hidden\n */\n days;\n /**\n * @hidden\n */\n hours = [];\n /**\n * @hidden\n */\n // resizes: Map = new Map();\n resizes = new Map();\n /**\n * @hidden\n */\n eventDragEnter = 0;\n /**\n * @hidden\n */\n dragActive = false;\n /**\n * @hidden\n */\n dragAlreadyMoved = false;\n /**\n * @hidden\n */\n validateResize;\n /**\n * @hidden\n */\n validateDrag;\n /**\n * @hidden\n */\n dayColumnWidth;\n /**\n * @hidden\n */\n calendarId = Symbol('angular calendar scheduler view id');\n /**\n * @hidden\n */\n rtl = false;\n /**\n * @hidden\n */\n trackByHourColumn = trackByHourColumn;\n /**\n * @hidden\n */\n trackByDayOrEvent = trackByDayOrEvent;\n /**\n * @hidden\n */\n trackByHour = trackByHour$1;\n /**\n * @hidden\n */\n trackByHourSegment = trackByHourSegment$1;\n mobileQueryXs;\n mobileQuerySm;\n mobileQueryListener;\n onResize(event) {\n this.adjustViewDays();\n }\n /**\n * @hidden\n */\n constructor(cdr, locale, config, utils, dateAdapter, media, changeDetectorRef) {\n this.cdr = cdr;\n this.config = config;\n this.utils = utils;\n this.dateAdapter = dateAdapter;\n this.media = media;\n this.changeDetectorRef = changeDetectorRef;\n this.locale = this.config.locale || locale;\n // See 'Responsive breakpoints' at https://getbootstrap.com/docs/4.1/layout/overview/\n this.mobileQueryXs = this.media.matchMedia('(max-width: 576px)'); // Extra small devices (portrait phones, less than 576px)\n this.mobileQuerySm = this.media.matchMedia('(max-width: 768px)'); // Small devices (landscape phones, less than 768px)\n this.mobileQueryListener = () => this.changeDetectorRef.detectChanges();\n // this.mobileQueryXs.addEventListener('change', this.mobileQueryListener);\n this.mobileQueryXs.addListener(this.mobileQueryListener);\n // this.mobileQuerySm.addEventListener('change', this.mobileQueryListener);\n this.mobileQuerySm.addListener(this.mobileQueryListener);\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this.adjustViewDays();\n if (this.refresh) {\n this.refreshSubscription = this.refresh\n // tslint:disable-next-line: deprecation\n .subscribe({\n next: () => {\n this.refreshAll();\n this.cdr.markForCheck();\n },\n error: () => { },\n complete: () => { }\n });\n }\n }\n /**\n * @hidden\n */\n ngOnChanges(changes) {\n if (changes.viewDays || changes.viewDate || changes.excludeDays || changes.weekendDays) {\n this.refreshHeader();\n }\n if (changes.viewDays ||\n changes.viewDate ||\n changes.events ||\n changes.dayStartHour ||\n changes.dayEndHour ||\n changes.dayStartMinute ||\n changes.dayEndMinute ||\n changes.excludeDays ||\n changes.eventWidth) {\n this.refreshHourGrid();\n this.refreshBody();\n }\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n if (this.refreshSubscription) {\n this.refreshSubscription.unsubscribe();\n }\n // this.mobileQueryXs.removeEventListener('change', this.mobileQueryListener);\n this.mobileQueryXs.removeListener(this.mobileQueryListener);\n // this.mobileQuerySm.removeEventListener('change', this.mobileQueryListener);\n this.mobileQuerySm.removeListener(this.mobileQueryListener);\n }\n setViewDays(viewDays) {\n const oldViewDays = this._viewDays;\n this.viewDays = viewDays;\n if (this._viewDays !== oldViewDays) {\n this.viewDaysChanged.emit(this._viewDays);\n this.refreshAll();\n }\n }\n adjustViewDays() {\n const oldViewDays = this._viewDays;\n if (this.responsive) {\n // https://www.digitalocean.com/community/tutorials/angular-breakpoints-angular-cdk\n // With a Component: https://www.digitalocean.com/community/tutorials/detect-responsive-screen-sizes-in-angular\n // check/set the size\n if (this.mobileQueryXs.matches) {\n this.viewDays = 1;\n }\n else if (this.mobileQuerySm.matches) {\n this.viewDays = 3;\n }\n else {\n this.viewDays = DAYS_IN_WEEK;\n }\n }\n if (this._viewDays !== oldViewDays) {\n this.viewDaysChanged.emit(this._viewDays);\n this.refreshAll();\n }\n }\n getPositioningClasses(day, event) {\n const classes = [\n this.getDayClass(event.start),\n this.getTimeClass(day.date, event),\n this.getLengthClass(day.date, event)\n ];\n return classes.join(' ');\n }\n getDayClass(date) {\n return '';\n }\n getTimeClass(date, event) {\n if (this.dateAdapter.isSameDay(date, event.start)) {\n let hours = event.start.getHours();\n if (this.dayStartHour > 0) {\n hours = event.start.getHours() - this.dayStartHour;\n }\n const hoursString = hours < 10 ? `0${hours}` : `${hours}`;\n const minutesString = event.start.getMinutes() < 10 ? `0${event.start.getMinutes()}` : `${event.start.getMinutes()}`;\n return `time${hoursString}${minutesString}`;\n }\n else if (isBefore(event.start, this.dateAdapter.startOfDay(date))) {\n return `time0000`;\n }\n }\n getLengthClass(date, event) {\n if (this.dateAdapter.isSameDay(date, event.start)) {\n const durationInMinutes = this.dateAdapter.differenceInMinutes(event.end, event.start);\n const leftToEndOfDay = this.dateAdapter.differenceInMinutes(this.dateAdapter.setMinutes(this.dateAdapter.setHours(event.start, this.dayEndHour + 1), 0), event.start);\n return leftToEndOfDay > durationInMinutes ? `length${durationInMinutes}` : `length${leftToEndOfDay}`;\n }\n else if (isBefore(event.start, this.dateAdapter.startOfDay(date))) {\n let leftDurationInMinutes = 0;\n if (this.dateAdapter.isSameDay(date, event.end)) {\n leftDurationInMinutes = this.dateAdapter.differenceInMinutes(event.end, this.dateAdapter.startOfDay(date));\n if (this.dayStartHour > 0) {\n leftDurationInMinutes = (event.end.getHours() - this.dayStartHour) * MINUTES_IN_HOUR$1;\n }\n }\n else {\n leftDurationInMinutes = ((this.dayEndHour + 1) - this.dayStartHour) * MINUTES_IN_HOUR$1;\n }\n return `length${leftDurationInMinutes}`;\n }\n }\n refreshHourGrid() {\n this.hours = this.utils.getSchedulerViewHourGrid({\n viewDate: this.viewDate,\n hourSegments: this.hourSegments,\n dayStart: {\n hour: this.dayStartHour,\n minute: this.dayStartMinute\n },\n dayEnd: {\n hour: this.dayEndHour,\n minute: this.dayEndMinute\n }\n });\n }\n refreshHeader() {\n this.days = this.utils.getSchedulerViewDays({\n viewDate: this.viewDate,\n viewDays: this.viewDays,\n weekStartsOn: this.weekStartsOn,\n startsWithToday: this.startsWithToday,\n excluded: this.excludeDays,\n weekendDays: this.weekendDays\n });\n }\n refreshBody(events) {\n this.view = this.getSchedulerView(events || this.events);\n if (this.dayModifier) {\n this.days.forEach(day => this.dayModifier(day));\n }\n if (this.dayModifier || this.hourModifier || this.segmentModifier) {\n this.view.days.forEach(day => {\n if (this.dayModifier) {\n this.dayModifier(day);\n }\n day.hours.forEach((hour) => {\n if (this.hourModifier) {\n this.hourModifier(hour);\n }\n hour.segments.forEach((segment) => {\n if (this.segmentModifier) {\n this.segmentModifier(segment);\n }\n });\n });\n });\n }\n if (this.eventModifier) {\n this.events.forEach(event => this.eventModifier(event));\n }\n }\n refreshAll() {\n this.refreshHeader();\n this.refreshHourGrid();\n this.refreshBody();\n }\n getSchedulerView(events) {\n return this.utils.getSchedulerView({\n events: events,\n viewDate: this.viewDate,\n viewDays: this.viewDays,\n hourSegments: this.hourSegments,\n weekStartsOn: this.weekStartsOn,\n startsWithToday: this.startsWithToday,\n dayStart: {\n hour: this.dayStartHour,\n minute: this.dayStartMinute\n },\n dayEnd: {\n hour: this.dayEndHour,\n minute: this.dayEndMinute\n },\n excluded: this.excludeDays,\n eventWidth: 1,\n hourSegmentHeight: this.hourSegmentHeight,\n logEnabled: this.config.logEnabled\n });\n }\n //#region RESIZE\n /**\n * @hidden\n */\n resizeStarted(eventsContainer, event, resizeEvent) {\n this.resizes.set(event.event, resizeEvent);\n this.dayColumnWidth = Math.floor(eventsContainer.offsetWidth / this.days.length);\n const resizeHelper = new CalendarResizeHelper(eventsContainer, this.dayColumnWidth, this.rtl);\n this.validateResize = ({ rectangle, edges }) => resizeHelper.validateResize({\n rectangle: { ...rectangle },\n edges\n });\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n resizing(event, resizeEvent) {\n this.resizes.set(event.event, resizeEvent);\n const adjustedEvents = new Map();\n const tempEvents = [...this.events];\n this.resizes.forEach((lastResizeEvent, ev) => {\n const newEventDates = this.getResizedEventDates(ev, lastResizeEvent);\n const adjustedEvent = { ...ev, ...newEventDates };\n adjustedEvents.set(adjustedEvent, ev);\n const eventIndex = tempEvents.indexOf(ev);\n tempEvents[eventIndex] = adjustedEvent;\n });\n this.restoreOriginalEvents(tempEvents, adjustedEvents);\n }\n /**\n * @hidden\n */\n resizeEnded(event) {\n this.view = this.getSchedulerView(this.events);\n const lastResizeEvent = this.resizes.get(event.event);\n this.resizes.delete(event.event);\n const newEventDates = this.getResizedEventDates(event.event, lastResizeEvent);\n this.eventTimesChanged.emit({\n newStart: newEventDates.start,\n newEnd: newEventDates.end,\n event: event.event,\n type: CalendarEventTimesChangedEventType.Resize\n });\n }\n getResizedEventDates(event, resizeEvent) {\n const minimumEventHeight = getMinimumEventHeightInMinutes(this.hourSegments, this.hourSegmentHeight);\n const newEventDates = {\n start: event.start,\n end: getDefaultEventEnd$1(this.dateAdapter, event, minimumEventHeight)\n };\n const { end, ...eventWithoutEnd } = event;\n const smallestResizes = {\n start: this.dateAdapter.addMinutes(newEventDates.end, minimumEventHeight * -1),\n end: getDefaultEventEnd$1(this.dateAdapter, eventWithoutEnd, minimumEventHeight)\n };\n if (resizeEvent.edges.left) {\n const daysDiff = Math.round(+resizeEvent.edges.left / this.dayColumnWidth);\n const newStart = this.dateAdapter.addDays(newEventDates.start, daysDiff);\n if (newStart < smallestResizes.start) {\n newEventDates.start = newStart;\n }\n else {\n newEventDates.start = smallestResizes.start;\n }\n }\n else if (resizeEvent.edges.right) {\n const daysDiff = Math.round(+resizeEvent.edges.right / this.dayColumnWidth);\n const newEnd = this.dateAdapter.addDays(newEventDates.end, daysDiff);\n if (newEnd > smallestResizes.end) {\n newEventDates.end = newEnd;\n }\n else {\n newEventDates.end = smallestResizes.end;\n }\n }\n if (resizeEvent.edges.top) {\n const precision = this.eventSnapSize || this.hourSegmentHeight;\n const draggedInPixelsSnapSize = Math.round(resizeEvent.edges.top / precision) * precision;\n const pixelAmountInMinutes = MINUTES_IN_HOUR$1 / (this.hourSegments * this.hourSegmentHeight);\n const minutesMoved = draggedInPixelsSnapSize * pixelAmountInMinutes;\n const newStart = this.dateAdapter.addMinutes(newEventDates.start, minutesMoved);\n if (newStart < smallestResizes.start) {\n newEventDates.start = newStart;\n }\n else {\n newEventDates.start = smallestResizes.start;\n }\n }\n else if (resizeEvent.edges.bottom) {\n const precision = this.eventSnapSize || this.hourSegmentHeight;\n const draggedInPixelsSnapSize = Math.round(resizeEvent.edges.bottom / precision) * precision;\n const pixelAmountInMinutes = MINUTES_IN_HOUR$1 / (this.hourSegments * this.hourSegmentHeight);\n const minutesMoved = draggedInPixelsSnapSize * pixelAmountInMinutes;\n const newEnd = this.dateAdapter.addMinutes(newEventDates.end, minutesMoved);\n if (newEnd > smallestResizes.end) {\n newEventDates.end = newEnd;\n }\n else {\n newEventDates.end = smallestResizes.end;\n }\n }\n return newEventDates;\n }\n //#endregion\n //#region DRAG & DROP\n /**\n * @hidden\n */\n eventDropped(dropEvent, date) {\n if (shouldFireDroppedEvent$1(dropEvent, date, this.calendarId)) {\n this.eventTimesChanged.emit({\n type: CalendarEventTimesChangedEventType.Drop,\n event: dropEvent.dropData.event,\n newStart: date,\n newEnd: null\n });\n }\n }\n /**\n * @hidden\n */\n dragStarted(eventsContainer, eventContainer, event) {\n this.dayColumnWidth = Math.floor(eventsContainer.offsetWidth / this.days.length);\n const dragHelper = new CalendarDragHelper(eventsContainer, eventContainer);\n this.validateDrag = ({ x, y, transform }) => this.resizes.size === 0 && dragHelper.validateDrag({\n x,\n y,\n snapDraggedEvents: this.snapDraggedEvents,\n dragAlreadyMoved: this.dragAlreadyMoved,\n transform\n });\n this.dragActive = true;\n this.dragAlreadyMoved = false;\n this.eventDragEnter = 0;\n if (!this.snapDraggedEvents && event) {\n this.view.days.forEach((day) => {\n const linkedEvent = day.events.find(ev => ev.event === event.event && ev !== event);\n // hide any linked events while dragging\n if (linkedEvent) {\n linkedEvent.width = 0;\n linkedEvent.height = 0;\n }\n });\n }\n this.cdr.markForCheck();\n }\n /**\n * @hidden\n */\n dragMove(event, dragEvent) {\n if (this.snapDraggedEvents) {\n const newEventTimes = this.getDragMovedEventTimes(event, dragEvent, this.dayColumnWidth, true);\n const originalEvent = event.event;\n const adjustedEvent = { ...originalEvent, ...newEventTimes };\n const tempEvents = this.events.map(ev => {\n if (ev === originalEvent) {\n return adjustedEvent;\n }\n return ev;\n });\n this.restoreOriginalEvents(tempEvents, new Map([[adjustedEvent, originalEvent]]));\n }\n this.dragAlreadyMoved = true;\n }\n dragEnded(event, dragEndEvent, dayWidth, useY = false) {\n this.view = this.getSchedulerView(this.events);\n this.dragActive = false;\n const { start, end } = this.getDragMovedEventTimes(event, dragEndEvent, dayWidth, useY);\n if (this.eventDragEnter > 0 &&\n isDraggedWithinPeriod$1(start, end, this.view.period)) {\n this.eventTimesChanged.emit({\n newStart: start,\n newEnd: end,\n event: event.event,\n type: CalendarEventTimesChangedEventType.Drag\n });\n }\n }\n getDragMovedEventTimes(event, dragEndEvent, dayWidth, useY) {\n const daysDragged = roundToNearest$1(dragEndEvent.x, dayWidth) / dayWidth;\n const minutesMoved = useY ?\n getMinutesMoved$1(dragEndEvent.y, this.hourSegments, this.hourSegmentHeight, this.eventSnapSize)\n : 0;\n const start = this.dateAdapter.addMinutes(this.dateAdapter.addDays(event.event.start, daysDragged), minutesMoved);\n let end;\n if (event.event.end) {\n end = this.dateAdapter.addMinutes(this.dateAdapter.addDays(event.event.end, daysDragged), minutesMoved);\n }\n return { start, end };\n }\n restoreOriginalEvents(tempEvents, adjustedEvents) {\n this.refreshBody(tempEvents);\n const adjustedEventsArray = tempEvents.filter(event => adjustedEvents.has(event));\n this.view.days.forEach(day => {\n adjustedEventsArray.forEach(adjustedEvent => {\n const originalEvent = adjustedEvents.get(adjustedEvent);\n const existingColumnEvent = day.events.find(ev => ev.event === adjustedEvent);\n if (existingColumnEvent) {\n // restore the original event so trackBy kicks in and the dom isn't changed\n existingColumnEvent.event = originalEvent;\n }\n else {\n // add a dummy event to the drop so if the event was removed from the original column the drag doesn't end early\n day.events.push({\n event: originalEvent,\n left: 0,\n top: 0,\n height: 0,\n width: 0,\n startsBeforeDay: false,\n endsAfterDay: false\n });\n }\n });\n });\n adjustedEvents.clear();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerViewComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: LOCALE_ID }, { token: SchedulerConfig }, { token: CalendarSchedulerUtils }, { token: i1.DateAdapter }, { token: i4.MediaMatcher }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.2.7\", type: CalendarSchedulerViewComponent, selector: \"calendar-scheduler-view\", inputs: { viewDays: \"viewDays\", viewDate: \"viewDate\", responsive: \"responsive\", events: \"events\", hourSegments: \"hourSegments\", hourSegmentHeight: \"hourSegmentHeight\", excludeDays: \"excludeDays\", startsWithToday: \"startsWithToday\", showEventContent: \"showEventContent\", showEventActions: \"showEventActions\", showEventStatus: \"showEventStatus\", showSegmentHour: \"showSegmentHour\", zoomEventOnHover: \"zoomEventOnHover\", dayModifier: \"dayModifier\", hourModifier: \"hourModifier\", segmentModifier: \"segmentModifier\", eventModifier: \"eventModifier\", refresh: \"refresh\", locale: \"locale\", eventSnapSize: \"eventSnapSize\", snapDraggedEvents: \"snapDraggedEvents\", weekStartsOn: \"weekStartsOn\", headerTemplate: \"headerTemplate\", cellTemplate: \"cellTemplate\", eventTemplate: \"eventTemplate\", eventTitleTemplate: \"eventTitleTemplate\", allDayEventTemplate: \"allDayEventTemplate\", weekendDays: \"weekendDays\", dayStartHour: \"dayStartHour\", dayStartMinute: \"dayStartMinute\", dayEndHour: \"dayEndHour\", dayEndMinute: \"dayEndMinute\" }, outputs: { viewDaysChanged: \"viewDaysChanged\", dayHeaderClicked: \"dayHeaderClicked\", hourClicked: \"hourClicked\", segmentClicked: \"segmentClicked\", eventClicked: \"eventClicked\", eventTimesChanged: \"eventTimesChanged\" }, host: { listeners: { \"window:resize\": \"onResize($event)\" } }, usesOnChanges: true, ngImport: i0, template: `\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ segment.date | calendarDate:'dayViewHour':locale }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
0\"\r\n mwlDroppable\r\n (dragEnter)=\"eventDragEnter = eventDragEnter + 1\"\r\n (dragLeave)=\"eventDragEnter = eventDragEnter - 1\">\r\n
\r\n
\r\n\r\n
\r\n
\r\n = 75\"\r\n [showActions]=\"showEventActions\"\r\n [showStatus]=\"showEventStatus\"\r\n [customTemplate]=\"eventTemplate\"\r\n [eventTitleTemplate]=\"eventTitleTemplate\"\r\n (eventClicked)=\"eventClicked.emit($event)\">\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `, isInline: true, styles: [\".cal-scheduler-view *{box-sizing:border-box}.cal-scheduler-view .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.cal-scheduler-view .cal-scheduler-headers{display:flex;flex-flow:row wrap;margin-bottom:3px;border:1px solid #e1e1e1}.cal-scheduler-view .cal-scheduler-headers .aside{flex:1 0}.cal-scheduler-view .cal-scheduler-headers .aside.cal-header-clock{max-width:5em}.cal-scheduler-view .cal-scheduler-headers .cal-header{flex:1;text-align:center;padding:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default}.cal-scheduler-view .cal-scheduler-headers .cal-header:not(:last-child){border-right:1px solid #e1e1e1}.cal-scheduler-view .cal-scheduler-headers .cal-header:hover{background-color:#ededed}.cal-scheduler-view .cal-scheduler-headers .cal-header.cal-today{background-color:#e8fde7}.cal-scheduler-view .cal-scheduler-headers .cal-header.cal-weekend span{color:#8b0000}.cal-scheduler-view .cal-scheduler-headers .cal-header span{font-weight:400;opacity:.5}.cal-scheduler-view .cal-scheduler-headers .cal-header-cols,.cal-scheduler-view .cal-scheduler{display:flex;flex-flow:row wrap}.cal-scheduler-view .cal-scheduler .aside{flex:1 0}.cal-scheduler-view .cal-scheduler .aside.cal-scheduler-hour-rows{max-width:5em}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows{width:auto!important;border:solid 1px #e1e1e1;overflow:hidden;position:relative}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour{display:flex}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour:nth-child(odd){background-color:#fafafa}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour:not(:last-child){border-bottom:1px solid #e1e1e1}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour .cal-scheduler-time{display:flex;flex-flow:column wrap;width:100%;font-weight:700;text-align:center}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour .cal-scheduler-time .cal-scheduler-time-segment{cursor:default}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour .cal-scheduler-time .cal-scheduler-time-segment:hover{background-color:#ededed}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour .cal-scheduler-time .cal-scheduler-time-segment:not(:last-child){border-bottom:thin dashed #e1e1e1}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols{display:flex;flex-flow:row wrap;border-top:1px solid #e1e1e1}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols:not(.cal-resize-active) .cal-scheduler-hour-segment:hover{background-color:#ededed}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col{display:flex;flex-flow:column wrap;flex:1 0;position:relative;border-right:1px solid #e1e1e1}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour{display:flex;flex-flow:column wrap;flex:1 0}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour.cal-today{background-color:#e8fde7}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour.cal-disabled{background-color:#eee;pointer-events:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour.cal-odd{background:#ffffff}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour.cal-even{background:#fafafa}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments{display:flex;flex-flow:column wrap;flex:1 0;border-bottom:1px solid #e1e1e1}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments.no-border{border-bottom:0!important}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments.cal-disabled{background-color:#eee;pointer-events:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments.cal-disabled .cal-scheduler-event{filter:opacity(50%);-webkit-filter:opacity(50%)}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments :not(:last-child) .cal-scheduler-hour-segment{border-bottom:thin dashed #e1e1e1}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments .cal-scheduler-hour-segment{flex:1 0;display:flex;flex-flow:column wrap}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments .cal-scheduler-hour-segment.no-border{border-bottom:0!important}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments .cal-scheduler-hour-segment.cal-disabled{background-color:#eee;pointer-events:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments .cal-scheduler-hour-segment.cal-drag-over{background-color:#ededed}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments .cal-scheduler-hour-segment .cal-scheduler-time{font-weight:700;font-size:.7em;color:#6c757d;cursor:default}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container{flex:1 0;display:-ms-flexbox;flex-flow:column wrap;position:absolute}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.zoom-on-hover{transition:all ease-out .2s}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.zoom-on-hover:hover{transform:scale(1.05);z-index:9999999}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event{flex:1 0;display:flex;flex-flow:column wrap;padding:5px 10px;font-size:12px;margin:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:.3em;border:1px solid #1e90ff;background-color:#d1e8ff;height:calc(100% - 5px);transition:all ease-out .2s;filter:brightness(100%);-webkit-filter:brightness(100%);-webkit-backface-visibility:hidden;backface-visibility:hidden}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event.cal-disabled,.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event.cal-cancelled{background-color:gray!important;filter:grayscale(100%);-webkit-filter:grayscale(100%)}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event.cal-not-clickable{cursor:not-allowed!important}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event:not(.cal-disabled):not(.cal-cancelled):hover{cursor:pointer;filter:brightness(95%);-webkit-filter:brightness(95%)}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event:not(.cal-disabled):not(.cal-cancelled).cal-draggable{cursor:move}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event.cal-starts-before-day{border-top-left-radius:0;border-top-right-radius:0}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event.cal-ends-after-day{border-bottom-left-radius:0;border-bottom-right-radius:0}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-title-container{width:100%;display:flex;flex-flow:row wrap;align-items:center}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-title-container .cal-scheduler-event-title{flex:1 0;font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-title-container .cal-scheduler-event-status{width:16px;height:16px;background:grey;border-radius:50px;border:1px solid black}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-title-container .cal-scheduler-event-status.ok{background:green}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-title-container .cal-scheduler-event-status.warning{background:orange}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-title-container .cal-scheduler-event-status.danger{background:red}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-content-container{flex:1 auto;width:100%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-content-container .cal-scheduler-event-content{white-space:normal;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-actions-container{width:100%;position:relative;text-align:end}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-actions-container.no-content-actions{flex:1 0}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-actions-container:not(.no-content-actions) .cal-scheduler-event-actions{width:auto;height:auto}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-actions-container .cal-scheduler-event-actions .cal-scheduler-event-action{text-decoration:none;-webkit-user-select:none;user-select:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-resize-handle{width:100%;height:4px;cursor:row-resize;position:absolute}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-resize-handle.cal-resize-handle-after-end{bottom:0}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.cal-drag-active{pointer-events:none;z-index:999}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.cal-drag-active *{pointer-events:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day1{left:5%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day2{left:10%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day3{left:15%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day4{left:20%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day5{left:25%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day6{left:30%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day7{left:35%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0000{top:0%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0015{top:1.47%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0030{top:2.94%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0045{top:4.41%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0100{top:5.88%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0115{top:7.35%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0130{top:8.82%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0145{top:10.29%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0200{top:11.76%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0215{top:13.23%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0230{top:14.7%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0245{top:16.17%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0300{top:17.64%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0315{top:19.11%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0330{top:20.58%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0345{top:22.05%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0400{top:23.52%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0415{top:24.99%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0430{top:26.46%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0445{top:27.93%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0500{top:29.4%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0515{top:30.87%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0530{top:32.34%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0545{top:33.81%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0600{top:35.28%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0615{top:36.75%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0630{top:38.22%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0645{top:39.69%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0700{top:41.16%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0715{top:42.63%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0730{top:44.1%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0745{top:45.57%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0800{top:47.04%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0815{top:48.51%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0830{top:49.98%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0845{top:51.45%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0900{top:52.92%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0915{top:54.39%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0930{top:55.86%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0945{top:57.33%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1000{top:58.8%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1015{top:60.27%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1030{top:61.74%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1045{top:63.21%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1100{top:64.68%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1115{top:66.15%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1130{top:67.62%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1145{top:69.09%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1200{top:70.56%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1215{top:72.03%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1230{top:73.5%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1245{top:74.97%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1300{top:76.44%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1315{top:77.91%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1330{top:79.38%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1345{top:80.85%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1400{top:82.32%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1415{top:83.79%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1430{top:85.26%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1445{top:86.73%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1500{top:88.2%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1515{top:89.67%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1530{top:91.14%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1545{top:92.61%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1600{top:94.08%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1615{top:95.55%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1630{top:97.02%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1645{top:98.49%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1700{top:99.96%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1715{top:101.43%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1730{top:102.9%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1745{top:104.37%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1800{top:105.84%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1815{top:107.31%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1830{top:108.78%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1845{top:110.25%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1900{top:111.72%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1915{top:113.19%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1930{top:114.66%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1945{top:116.13%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2000{top:117.6%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2015{top:119.07%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2030{top:120.54%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2045{top:122.01%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2100{top:123.48%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2115{top:124.95%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2130{top:126.42%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2145{top:127.89%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2200{top:129.36%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2215{top:130.83%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2230{top:132.3%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2245{top:133.77%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2300{top:135.24%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2315{top:136.71%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2330{top:138.18%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2345{top:139.65%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2400{top:141.12%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length0{height:0%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length15{height:1.47%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length30{height:2.94%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length45{height:4.41%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length60{height:5.88%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length75{height:7.35%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length90{height:8.82%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length105{height:10.29%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length120{height:11.76%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length135{height:13.23%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length150{height:14.7%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length165{height:16.17%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length180{height:17.64%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length195{height:19.11%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length210{height:20.58%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length225{height:22.05%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length240{height:23.52%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length255{height:24.99%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length270{height:26.46%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length285{height:27.93%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length300{height:29.4%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length315{height:30.87%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length330{height:32.34%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length345{height:33.81%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length360{height:35.28%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length375{height:36.75%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length390{height:38.22%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length405{height:39.69%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length420{height:41.16%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length435{height:42.63%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length450{height:44.1%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length465{height:45.57%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length480{height:47.04%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length495{height:48.51%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length510{height:49.98%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length525{height:51.45%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length540{height:52.92%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length555{height:54.39%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length570{height:55.86%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length585{height:57.33%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length600{height:58.8%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length615{height:60.27%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length630{height:61.74%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length645{height:63.21%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length660{height:64.68%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length675{height:66.15%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length690{height:67.62%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length705{height:69.09%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length720{height:70.56%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length735{height:72.03%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length750{height:73.5%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length765{height:74.97%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length780{height:76.44%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length795{height:77.91%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length810{height:79.38%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length825{height:80.85%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length840{height:82.32%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length855{height:83.79%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length870{height:85.26%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length885{height:86.73%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length900{height:88.2%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length915{height:89.67%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length930{height:91.14%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length945{height:92.61%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length960{height:94.08%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length975{height:95.55%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length990{height:97.02%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1005{height:98.49%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1020{height:99.96%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1035{height:101.43%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1050{height:102.9%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1065{height:104.37%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1080{height:105.84%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1095{height:107.31%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1110{height:108.78%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1125{height:110.25%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1140{height:111.72%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1155{height:113.19%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1170{height:114.66%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1185{height:116.13%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1200{height:117.6%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1215{height:119.07%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1230{height:120.54%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1245{height:122.01%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1260{height:123.48%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1275{height:124.95%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1290{height:126.42%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1305{height:127.89%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1320{height:129.36%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1335{height:130.83%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1350{height:132.3%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1365{height:133.77%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1380{height:135.24%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1395{height:136.71%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1410{height:138.18%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1425{height:139.65%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1440{height:141.12%}\\n\"], dependencies: [{ kind: \"directive\", type: i1$1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i1$1.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i1$1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.ɵClickDirective, selector: \"[mwlClick]\", inputs: [\"clickListenerDisabled\"], outputs: [\"mwlClick\"] }, { kind: \"directive\", type: i6.DraggableDirective, selector: \"[mwlDraggable]\", inputs: [\"dropData\", \"dragAxis\", \"dragSnapGrid\", \"ghostDragEnabled\", \"showOriginalElementWhileDragging\", \"validateDrag\", \"dragCursor\", \"dragActiveClass\", \"ghostElementAppendTo\", \"ghostElementTemplate\", \"touchStartLongPress\", \"autoScroll\"], outputs: [\"dragPointerDown\", \"dragStart\", \"ghostElementCreated\", \"dragging\", \"dragEnd\"] }, { kind: \"directive\", type: i6.DroppableDirective, selector: \"[mwlDroppable]\", inputs: [\"dragOverClass\", \"dragActiveClass\", \"validateDrop\"], outputs: [\"dragEnter\", \"dragLeave\", \"dragOver\", \"drop\"] }, { kind: \"directive\", type: i7.ResizableDirective, selector: \"[mwlResizable]\", inputs: [\"validateResize\", \"enableGhostResize\", \"resizeSnapGrid\", \"resizeCursors\", \"ghostElementPositioning\", \"allowNegativeResizes\", \"mouseMoveThrottleMS\"], outputs: [\"resizeStart\", \"resizing\", \"resizeEnd\"], exportAs: [\"mwlResizable\"] }, { kind: \"directive\", type: i7.ResizeHandleDirective, selector: \"[mwlResizeHandle]\", inputs: [\"resizeEdges\", \"resizableContainer\"] }, { kind: \"component\", type: CalendarSchedulerHourSegmentComponent, selector: \"calendar-scheduler-hour-segment\", inputs: [\"title\", \"day\", \"segment\", \"locale\", \"customTemplate\", \"hourSegmentHeight\", \"showHour\"], outputs: [\"segmentClicked\"] }, { kind: \"component\", type: CalendarSchedulerHeaderComponent, selector: \"calendar-scheduler-header\", inputs: [\"days\", \"locale\", \"customTemplate\"], outputs: [\"dayHeaderClicked\"] }, { kind: \"component\", type: CalendarSchedulerEventComponent, selector: \"calendar-scheduler-event\", inputs: [\"title\", \"day\", \"event\", \"container\", \"showContent\", \"showActions\", \"showStatus\", \"customTemplate\", \"eventTitleTemplate\"], outputs: [\"eventClicked\"] }, { kind: \"pipe\", type: i1.ɵCalendarDatePipe, name: \"calendarDate\" }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerViewComponent, decorators: [{\n type: Component,\n args: [{ selector: 'calendar-scheduler-view', template: `\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ segment.date | calendarDate:'dayViewHour':locale }}\r\n
\r\n
\r\n
\r\n
\r\n\r\n
0\"\r\n mwlDroppable\r\n (dragEnter)=\"eventDragEnter = eventDragEnter + 1\"\r\n (dragLeave)=\"eventDragEnter = eventDragEnter - 1\">\r\n
\r\n
\r\n\r\n
\r\n
\r\n = 75\"\r\n [showActions]=\"showEventActions\"\r\n [showStatus]=\"showEventStatus\"\r\n [customTemplate]=\"eventTemplate\"\r\n [eventTitleTemplate]=\"eventTitleTemplate\"\r\n (eventClicked)=\"eventClicked.emit($event)\">\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n `, encapsulation: ViewEncapsulation.None, styles: [\".cal-scheduler-view *{box-sizing:border-box}.cal-scheduler-view .unselectable{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.cal-scheduler-view .cal-scheduler-headers{display:flex;flex-flow:row wrap;margin-bottom:3px;border:1px solid #e1e1e1}.cal-scheduler-view .cal-scheduler-headers .aside{flex:1 0}.cal-scheduler-view .cal-scheduler-headers .aside.cal-header-clock{max-width:5em}.cal-scheduler-view .cal-scheduler-headers .cal-header{flex:1;text-align:center;padding:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default}.cal-scheduler-view .cal-scheduler-headers .cal-header:not(:last-child){border-right:1px solid #e1e1e1}.cal-scheduler-view .cal-scheduler-headers .cal-header:hover{background-color:#ededed}.cal-scheduler-view .cal-scheduler-headers .cal-header.cal-today{background-color:#e8fde7}.cal-scheduler-view .cal-scheduler-headers .cal-header.cal-weekend span{color:#8b0000}.cal-scheduler-view .cal-scheduler-headers .cal-header span{font-weight:400;opacity:.5}.cal-scheduler-view .cal-scheduler-headers .cal-header-cols,.cal-scheduler-view .cal-scheduler{display:flex;flex-flow:row wrap}.cal-scheduler-view .cal-scheduler .aside{flex:1 0}.cal-scheduler-view .cal-scheduler .aside.cal-scheduler-hour-rows{max-width:5em}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows{width:auto!important;border:solid 1px #e1e1e1;overflow:hidden;position:relative}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour{display:flex}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour:nth-child(odd){background-color:#fafafa}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour:not(:last-child){border-bottom:1px solid #e1e1e1}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour .cal-scheduler-time{display:flex;flex-flow:column wrap;width:100%;font-weight:700;text-align:center}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour .cal-scheduler-time .cal-scheduler-time-segment{cursor:default}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour .cal-scheduler-time .cal-scheduler-time-segment:hover{background-color:#ededed}.cal-scheduler-view .cal-scheduler .cal-scheduler-hour-rows .cal-scheduler-hour .cal-scheduler-time .cal-scheduler-time-segment:not(:last-child){border-bottom:thin dashed #e1e1e1}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols{display:flex;flex-flow:row wrap;border-top:1px solid #e1e1e1}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols:not(.cal-resize-active) .cal-scheduler-hour-segment:hover{background-color:#ededed}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col{display:flex;flex-flow:column wrap;flex:1 0;position:relative;border-right:1px solid #e1e1e1}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour{display:flex;flex-flow:column wrap;flex:1 0}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour.cal-today{background-color:#e8fde7}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour.cal-disabled{background-color:#eee;pointer-events:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour.cal-odd{background:#ffffff}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour.cal-even{background:#fafafa}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments{display:flex;flex-flow:column wrap;flex:1 0;border-bottom:1px solid #e1e1e1}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments.no-border{border-bottom:0!important}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments.cal-disabled{background-color:#eee;pointer-events:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments.cal-disabled .cal-scheduler-event{filter:opacity(50%);-webkit-filter:opacity(50%)}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments :not(:last-child) .cal-scheduler-hour-segment{border-bottom:thin dashed #e1e1e1}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments .cal-scheduler-hour-segment{flex:1 0;display:flex;flex-flow:column wrap}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments .cal-scheduler-hour-segment.no-border{border-bottom:0!important}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments .cal-scheduler-hour-segment.cal-disabled{background-color:#eee;pointer-events:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments .cal-scheduler-hour-segment.cal-drag-over{background-color:#ededed}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-hour .cal-scheduler-hour-segments .cal-scheduler-hour-segment .cal-scheduler-time{font-weight:700;font-size:.7em;color:#6c757d;cursor:default}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container{flex:1 0;display:-ms-flexbox;flex-flow:column wrap;position:absolute}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.zoom-on-hover{transition:all ease-out .2s}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.zoom-on-hover:hover{transform:scale(1.05);z-index:9999999}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event{flex:1 0;display:flex;flex-flow:column wrap;padding:5px 10px;font-size:12px;margin:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:.3em;border:1px solid #1e90ff;background-color:#d1e8ff;height:calc(100% - 5px);transition:all ease-out .2s;filter:brightness(100%);-webkit-filter:brightness(100%);-webkit-backface-visibility:hidden;backface-visibility:hidden}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event.cal-disabled,.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event.cal-cancelled{background-color:gray!important;filter:grayscale(100%);-webkit-filter:grayscale(100%)}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event.cal-not-clickable{cursor:not-allowed!important}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event:not(.cal-disabled):not(.cal-cancelled):hover{cursor:pointer;filter:brightness(95%);-webkit-filter:brightness(95%)}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event:not(.cal-disabled):not(.cal-cancelled).cal-draggable{cursor:move}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event.cal-starts-before-day{border-top-left-radius:0;border-top-right-radius:0}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event.cal-ends-after-day{border-bottom-left-radius:0;border-bottom-right-radius:0}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-title-container{width:100%;display:flex;flex-flow:row wrap;align-items:center}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-title-container .cal-scheduler-event-title{flex:1 0;font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-title-container .cal-scheduler-event-status{width:16px;height:16px;background:grey;border-radius:50px;border:1px solid black}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-title-container .cal-scheduler-event-status.ok{background:green}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-title-container .cal-scheduler-event-status.warning{background:orange}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-title-container .cal-scheduler-event-status.danger{background:red}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-content-container{flex:1 auto;width:100%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-content-container .cal-scheduler-event-content{white-space:normal;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-actions-container{width:100%;position:relative;text-align:end}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-actions-container.no-content-actions{flex:1 0}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-actions-container:not(.no-content-actions) .cal-scheduler-event-actions{width:auto;height:auto}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-scheduler-event .cal-scheduler-event-actions-container .cal-scheduler-event-actions .cal-scheduler-event-action{text-decoration:none;-webkit-user-select:none;user-select:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-resize-handle{width:100%;height:4px;cursor:row-resize;position:absolute}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container .cal-resize-handle.cal-resize-handle-after-end{bottom:0}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.cal-drag-active{pointer-events:none;z-index:999}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.cal-drag-active *{pointer-events:none}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day1{left:5%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day2{left:10%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day3{left:15%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day4{left:20%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day5{left:25%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day6{left:30%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.day7{left:35%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0000{top:0%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0015{top:1.47%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0030{top:2.94%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0045{top:4.41%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0100{top:5.88%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0115{top:7.35%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0130{top:8.82%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0145{top:10.29%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0200{top:11.76%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0215{top:13.23%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0230{top:14.7%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0245{top:16.17%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0300{top:17.64%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0315{top:19.11%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0330{top:20.58%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0345{top:22.05%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0400{top:23.52%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0415{top:24.99%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0430{top:26.46%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0445{top:27.93%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0500{top:29.4%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0515{top:30.87%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0530{top:32.34%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0545{top:33.81%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0600{top:35.28%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0615{top:36.75%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0630{top:38.22%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0645{top:39.69%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0700{top:41.16%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0715{top:42.63%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0730{top:44.1%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0745{top:45.57%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0800{top:47.04%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0815{top:48.51%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0830{top:49.98%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0845{top:51.45%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0900{top:52.92%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0915{top:54.39%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0930{top:55.86%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time0945{top:57.33%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1000{top:58.8%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1015{top:60.27%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1030{top:61.74%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1045{top:63.21%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1100{top:64.68%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1115{top:66.15%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1130{top:67.62%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1145{top:69.09%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1200{top:70.56%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1215{top:72.03%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1230{top:73.5%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1245{top:74.97%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1300{top:76.44%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1315{top:77.91%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1330{top:79.38%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1345{top:80.85%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1400{top:82.32%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1415{top:83.79%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1430{top:85.26%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1445{top:86.73%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1500{top:88.2%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1515{top:89.67%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1530{top:91.14%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1545{top:92.61%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1600{top:94.08%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1615{top:95.55%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1630{top:97.02%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1645{top:98.49%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1700{top:99.96%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1715{top:101.43%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1730{top:102.9%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1745{top:104.37%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1800{top:105.84%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1815{top:107.31%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1830{top:108.78%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1845{top:110.25%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1900{top:111.72%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1915{top:113.19%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1930{top:114.66%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time1945{top:116.13%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2000{top:117.6%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2015{top:119.07%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2030{top:120.54%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2045{top:122.01%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2100{top:123.48%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2115{top:124.95%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2130{top:126.42%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2145{top:127.89%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2200{top:129.36%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2215{top:130.83%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2230{top:132.3%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2245{top:133.77%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2300{top:135.24%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2315{top:136.71%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2330{top:138.18%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2345{top:139.65%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.time2400{top:141.12%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length0{height:0%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length15{height:1.47%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length30{height:2.94%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length45{height:4.41%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length60{height:5.88%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length75{height:7.35%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length90{height:8.82%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length105{height:10.29%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length120{height:11.76%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length135{height:13.23%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length150{height:14.7%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length165{height:16.17%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length180{height:17.64%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length195{height:19.11%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length210{height:20.58%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length225{height:22.05%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length240{height:23.52%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length255{height:24.99%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length270{height:26.46%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length285{height:27.93%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length300{height:29.4%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length315{height:30.87%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length330{height:32.34%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length345{height:33.81%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length360{height:35.28%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length375{height:36.75%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length390{height:38.22%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length405{height:39.69%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length420{height:41.16%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length435{height:42.63%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length450{height:44.1%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length465{height:45.57%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length480{height:47.04%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length495{height:48.51%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length510{height:49.98%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length525{height:51.45%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length540{height:52.92%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length555{height:54.39%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length570{height:55.86%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length585{height:57.33%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length600{height:58.8%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length615{height:60.27%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length630{height:61.74%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length645{height:63.21%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length660{height:64.68%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length675{height:66.15%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length690{height:67.62%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length705{height:69.09%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length720{height:70.56%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length735{height:72.03%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length750{height:73.5%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length765{height:74.97%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length780{height:76.44%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length795{height:77.91%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length810{height:79.38%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length825{height:80.85%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length840{height:82.32%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length855{height:83.79%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length870{height:85.26%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length885{height:86.73%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length900{height:88.2%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length915{height:89.67%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length930{height:91.14%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length945{height:92.61%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length960{height:94.08%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length975{height:95.55%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length990{height:97.02%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1005{height:98.49%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1020{height:99.96%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1035{height:101.43%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1050{height:102.9%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1065{height:104.37%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1080{height:105.84%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1095{height:107.31%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1110{height:108.78%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1125{height:110.25%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1140{height:111.72%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1155{height:113.19%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1170{height:114.66%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1185{height:116.13%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1200{height:117.6%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1215{height:119.07%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1230{height:120.54%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1245{height:122.01%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1260{height:123.48%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1275{height:124.95%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1290{height:126.42%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1305{height:127.89%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1320{height:129.36%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1335{height:130.83%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1350{height:132.3%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1365{height:133.77%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1380{height:135.24%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1395{height:136.71%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1410{height:138.18%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1425{height:139.65%}.cal-scheduler-view .cal-scheduler .cal-scheduler-cols .cal-scheduler-col .cal-scheduler-event-container.length1440{height:141.12%}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }, { type: SchedulerConfig }, { type: CalendarSchedulerUtils }, { type: i1.DateAdapter }, { type: i4.MediaMatcher }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { viewDays: [{\n type: Input\n }], viewDate: [{\n type: Input\n }], responsive: [{\n type: Input\n }], events: [{\n type: Input\n }], hourSegments: [{\n type: Input\n }], hourSegmentHeight: [{\n type: Input\n }], excludeDays: [{\n type: Input\n }], startsWithToday: [{\n type: Input\n }], showEventContent: [{\n type: Input\n }], showEventActions: [{\n type: Input\n }], showEventStatus: [{\n type: Input\n }], showSegmentHour: [{\n type: Input\n }], zoomEventOnHover: [{\n type: Input\n }], dayModifier: [{\n type: Input\n }], hourModifier: [{\n type: Input\n }], segmentModifier: [{\n type: Input\n }], eventModifier: [{\n type: Input\n }], refresh: [{\n type: Input\n }], locale: [{\n type: Input\n }], eventSnapSize: [{\n type: Input\n }], snapDraggedEvents: [{\n type: Input\n }], weekStartsOn: [{\n type: Input\n }], headerTemplate: [{\n type: Input\n }], cellTemplate: [{\n type: Input\n }], eventTemplate: [{\n type: Input\n }], eventTitleTemplate: [{\n type: Input\n }], allDayEventTemplate: [{\n type: Input\n }], weekendDays: [{\n type: Input\n }], dayStartHour: [{\n type: Input\n }], dayStartMinute: [{\n type: Input\n }], dayEndHour: [{\n type: Input\n }], dayEndMinute: [{\n type: Input\n }], viewDaysChanged: [{\n type: Output\n }], dayHeaderClicked: [{\n type: Output\n }], hourClicked: [{\n type: Output\n }], segmentClicked: [{\n type: Output\n }], eventClicked: [{\n type: Output\n }], eventTimesChanged: [{\n type: Output\n }], onResize: [{\n type: HostListener,\n args: ['window:resize', ['$event']]\n }] } });\n\nclass CalendarSchedulerDatePipe {\n dateAdapter;\n dateFormatter;\n locale;\n constructor(dateAdapter, dateFormatter, locale) {\n this.dateAdapter = dateAdapter;\n this.dateFormatter = dateFormatter;\n this.locale = locale;\n }\n transform(date, method, locale = this.locale, weekStartsOn = 0, excludeDays = [], daysInWeek, startsWithToday) {\n if (typeof this.dateFormatter[method] === 'undefined') {\n const allowedMethods = Object.getOwnPropertyNames(Object.getPrototypeOf(CalendarDateFormatter.prototype)).filter(iMethod => iMethod !== 'constructor');\n throw new Error(`${method} is not a valid date formatter. Can only be one of ${allowedMethods.join(', ')}`);\n }\n return this.dateFormatter[method]({\n dateAdapter: this.dateAdapter,\n date,\n locale,\n weekStartsOn,\n excludeDays,\n daysInWeek,\n startsWithToday\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerDatePipe, deps: [{ token: i1.DateAdapter }, { token: i1.CalendarDateFormatter }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerDatePipe, name: \"calendarSchedulerDate\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: CalendarSchedulerDatePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'calendarSchedulerDate'\n }]\n }], ctorParameters: function () { return [{ type: i1.DateAdapter }, { type: i1.CalendarDateFormatter }, { type: undefined, decorators: [{\n type: Inject,\n args: [LOCALE_ID]\n }] }]; } });\n\nclass SchedulerDateFormatter extends CalendarDateFormatter {\n constructor(dateAdapter) {\n super(dateAdapter);\n }\n /**\n * The time formatting down the left hand side of the day view\n */\n dayViewHour({ date, locale }) {\n return new Intl.DateTimeFormat(locale, { hour: 'numeric', minute: 'numeric' }).format(date);\n }\n weekViewTitle({ dateAdapter, date, locale, weekStartsOn, excludeDays, daysInWeek, startsWithToday }) {\n // http://generatedcontent.org/post/59403168016/esintlapi\n const year = new Intl.DateTimeFormat(locale, { year: 'numeric' }).format(date);\n const month = new Intl.DateTimeFormat(locale, { month: 'short' }).format(date);\n const dateInner = startsWithToday || daysInWeek < DAYS_IN_WEEK\n ? date\n : dateAdapter.startOfWeek(date, { weekStartsOn: weekStartsOn });\n // var firstDay: number = date.getDate() - date.getDay() + 1; // First day is the day of the month - the day of the week\n let firstDay = dateInner.getDate();\n while (excludeDays.includes(firstDay)) {\n firstDay += 1;\n }\n let lastDay = firstDay + (daysInWeek - 1); // last day is the first day + (daysInWeek - 1)\n while (excludeDays.includes(lastDay)) {\n lastDay += 1;\n }\n let firstDayMonth = month;\n let lastDayMonth = month;\n let firstDayYear = year;\n let lastDayYear = year;\n if (firstDay < 1) {\n const prevMonthDate = new Date(dateInner.getFullYear(), dateInner.getMonth() - 1);\n firstDayMonth = new Intl.DateTimeFormat(locale, { month: 'short' }).format(prevMonthDate);\n const daysInPrevMonth = this.daysInMonth(prevMonthDate);\n let i = 0;\n let prevMonthDay = daysInPrevMonth;\n for (i = 0; i < Math.abs(firstDay); i++) {\n prevMonthDay--;\n }\n firstDay = prevMonthDay;\n const prevMonthYear = new Intl.DateTimeFormat(locale, { year: 'numeric' }).format(prevMonthDate);\n if (Number(prevMonthYear) < Number(year)) {\n firstDayYear = prevMonthYear;\n }\n }\n const daysInMonth = this.daysInMonth(dateInner);\n if (lastDay > daysInMonth) {\n const nextMonthDate = new Date(dateInner.getFullYear(), dateInner.getMonth() + 1);\n lastDayMonth = new Intl.DateTimeFormat(locale, { month: 'short' }).format(nextMonthDate);\n let i = 0;\n let nextMonthDay = 0;\n for (i = 0; i < (lastDay - daysInMonth); i++) {\n nextMonthDay++;\n }\n lastDay = nextMonthDay;\n const nextMonthYear = new Intl.DateTimeFormat(locale, { year: 'numeric' }).format(nextMonthDate);\n if (Number(nextMonthYear) > Number(year)) {\n lastDayYear = nextMonthYear;\n }\n }\n return `${firstDay}` + (firstDayMonth !== lastDayMonth || lastDay === firstDay ? ' ' + firstDayMonth : '') +\n (firstDayYear !== lastDayYear ? ' ' + firstDayYear : '') +\n (lastDay === firstDay ? '' : ` - ${lastDay} ${lastDayMonth} ${lastDayYear}`);\n }\n daysInMonth(anyDateInMonth) {\n return new Date(anyDateInMonth.getFullYear(), anyDateInMonth.getMonth() + 1, 0).getDate();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerDateFormatter, deps: [{ token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerDateFormatter });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerDateFormatter, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i1.DateAdapter }]; } });\n\nconst SCHEDULER_CONFIG = new InjectionToken('SchedulerConfig');\nfunction provideSchedulerConfig(config) {\n return new SchedulerConfig(config);\n}\n/**\n * The main module of this library. Example usage:\n *\n * ```typescript\n * import { CalendarModule, DateAdapter } from 'angular-calendar';\n * import { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\n * import { SchedulerModule } from 'angular-calendar-scheduler';\n *\n * @NgModule({\n * imports: [\n * CalendarModule.forRoot({\n * provide: DateAdapter,\n * useFactory: adapterFactory\n * }),\n * SchedulerModule.forRoot({ locale: 'en', headerDateFormat: 'daysRange' })\n * ]\n * })\n * class MyModule {}\n * ```\n *\n */\nclass SchedulerModule {\n static forRoot(config) {\n return {\n ngModule: SchedulerModule,\n providers: [\n { provide: SCHEDULER_CONFIG, useValue: config },\n { provide: SchedulerConfig, useFactory: provideSchedulerConfig, deps: [SCHEDULER_CONFIG] }\n ]\n };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerModule, declarations: [CalendarSchedulerViewComponent,\n CalendarSchedulerHourSegmentComponent,\n CalendarSchedulerHeaderComponent,\n CalendarSchedulerEventComponent,\n CalendarSchedulerEventTitleComponent,\n CalendarSchedulerEventContentComponent,\n CalendarSchedulerEventActionsComponent,\n SchedulerEventTitlePipe,\n CalendarSchedulerDatePipe], imports: [CommonModule, i1.CalendarModule], exports: [CalendarSchedulerDatePipe,\n CalendarSchedulerViewComponent,\n CalendarSchedulerHourSegmentComponent,\n CalendarSchedulerHeaderComponent,\n CalendarSchedulerEventComponent,\n CalendarSchedulerEventTitleComponent,\n CalendarSchedulerEventContentComponent,\n CalendarSchedulerEventActionsComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerModule, providers: [\n CalendarSchedulerUtils,\n SchedulerEventTitlePipe,\n CalendarSchedulerDatePipe,\n SchedulerEventTitleFormatter,\n SchedulerDateFormatter\n ], imports: [CommonModule,\n CalendarModule.forRoot({\n provide: DateAdapter,\n useFactory: adapterFactory\n })] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.7\", ngImport: i0, type: SchedulerModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n CalendarModule.forRoot({\n provide: DateAdapter,\n useFactory: adapterFactory\n })\n ],\n declarations: [\n CalendarSchedulerViewComponent,\n CalendarSchedulerHourSegmentComponent,\n CalendarSchedulerHeaderComponent,\n CalendarSchedulerEventComponent,\n CalendarSchedulerEventTitleComponent,\n CalendarSchedulerEventContentComponent,\n CalendarSchedulerEventActionsComponent,\n SchedulerEventTitlePipe,\n CalendarSchedulerDatePipe\n ],\n providers: [\n CalendarSchedulerUtils,\n SchedulerEventTitlePipe,\n CalendarSchedulerDatePipe,\n SchedulerEventTitleFormatter,\n SchedulerDateFormatter\n ],\n exports: [\n CalendarSchedulerDatePipe,\n CalendarSchedulerViewComponent,\n CalendarSchedulerHourSegmentComponent,\n CalendarSchedulerHeaderComponent,\n CalendarSchedulerEventComponent,\n CalendarSchedulerEventTitleComponent,\n CalendarSchedulerEventContentComponent,\n CalendarSchedulerEventActionsComponent\n ]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CalendarSchedulerDatePipe, CalendarSchedulerEventActionsComponent, CalendarSchedulerEventComponent, CalendarSchedulerEventContentComponent, CalendarSchedulerEventTitleComponent, CalendarSchedulerHeaderComponent, CalendarSchedulerHourSegmentComponent, CalendarSchedulerUtils, CalendarSchedulerViewComponent, DAYS_IN_WEEK, DAYS_OF_WEEK, DEFAULT_EVENT_WIDTH, DEFAULT_HOUR_SEGMENTS, DEFAULT_HOUR_SEGMENT_HEIGHT_PX, HOURS_IN_DAY, MINUTES_IN_HOUR$1 as MINUTES_IN_HOUR, SCHEDULER_CONFIG, SECONDS_IN_DAY, SchedulerDateFormatter, SchedulerEventTitleFormatter, SchedulerEventTitlePipe, SchedulerModule, addPeriod, endOfPeriod, getDefaultEventEnd$1 as getDefaultEventEnd, getMinimumEventHeightInMinutes, getMinutesMoved$1 as getMinutesMoved, getSchedulerView, getSchedulerViewDays, getSchedulerViewHourGrid, isDraggedWithinPeriod$1 as isDraggedWithinPeriod, provideSchedulerConfig, roundToNearest$1 as roundToNearest, shouldFireDroppedEvent$1 as shouldFireDroppedEvent, startOfPeriod, subPeriod, trackByDayOrEvent, trackByHour$1 as trackByHour, trackByHourColumn, trackByHourSegment$1 as trackByHourSegment };\n","export interface IExpenseCategory {\n CategoryID: number;\n CategoryName: string;\n}\nexport class ExpenseCategory implements IExpenseCategory {\n\n constructor(public CategoryID: number, public CategoryName: string) {\n this.CategoryID = CategoryID;\n this.CategoryName = CategoryName;\n }\n\n}\n","import { toDate } from \"./toDate.mjs\";\n\n/**\n * @name startOfHour\n * @category Hour Helpers\n * @summary Return the start of an hour for the given date.\n *\n * @description\n * Return the start of an hour for the given date.\n * The result will be in the local timezone.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The original date\n *\n * @returns The start of an hour\n *\n * @example\n * // The start of an hour for 2 September 2014 11:55:00:\n * const result = startOfHour(new Date(2014, 8, 2, 11, 55))\n * //=> Tue Sep 02 2014 11:00:00\n */\nexport function startOfHour(date) {\n const _date = toDate(date);\n _date.setMinutes(0, 0, 0);\n return _date;\n}\n\n// Fallback for modularized imports:\nexport default startOfHour;\n","import { addHours } from \"./addHours.mjs\";\n\n/**\n * @name subHours\n * @category Hour Helpers\n * @summary Subtract the specified number of hours from the given date.\n *\n * @description\n * Subtract the specified number of hours from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of hours to be subtracted.\n *\n * @returns The new date with the hours subtracted\n *\n * @example\n * // Subtract 2 hours from 11 July 2014 01:00:00:\n * const result = subHours(new Date(2014, 6, 11, 1, 0), 2)\n * //=> Thu Jul 10 2014 23:00:00\n */\nexport function subHours(date, amount) {\n return addHours(date, -amount);\n}\n\n// Fallback for modularized imports:\nexport default subHours;\n","import { addMinutes } from \"./addMinutes.mjs\";\n\n/**\n * @name subMinutes\n * @category Minute Helpers\n * @summary Subtract the specified number of minutes from the given date.\n *\n * @description\n * Subtract the specified number of minutes from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of minutes to be subtracted.\n *\n * @returns The new date with the minutes subtracted\n *\n * @example\n * // Subtract 30 minutes from 10 July 2014 12:00:00:\n * const result = subMinutes(new Date(2014, 6, 10, 12, 0), 30)\n * //=> Thu Jul 10 2014 11:30:00\n */\nexport function subMinutes(date, amount) {\n return addMinutes(date, -amount);\n}\n\n// Fallback for modularized imports:\nexport default subMinutes;\n","import { Injectable } from \"@angular/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { map, tap } from \"rxjs/operators\";\n//import { TUser, IUserResponse } from '../_models/user.class';\nimport {\n IExpenseCategory,\n ExpenseCategory,\n} from \"../../_models/claimant/expense-category\";\nimport {\n CalendarSchedulerEvent,\n CalendarSchedulerEventStatus,\n CalendarSchedulerEventAction,\n} from \"angular-calendar-scheduler\";\nimport { addDays } from \"date-fns/addDays\";\n\nimport { startOfHour } from \"date-fns/startOfHour\";\n\nimport { addHours } from \"date-fns/addHours\";\nimport { subHours } from \"date-fns/subHours\";\nimport { setHours } from \"date-fns/setHours\";\nimport { subMinutes } from \"date-fns/subMinutes\";\nimport { addMinutes } from \"date-fns/addMinutes\";\n\n@Injectable()\nexport class AppService {\n constructor(private http: HttpClient) {}\n\n search(filter: { name: string } = { name: \"\" }, page = 1): Observable {\n return this.http\n .get(\"http://localhost:58523/api/ExpenseCategory\")\n .pipe(\n tap((response: any) => {\n response.CategoryID = response.results\n .map(\n (expenseCategory) =>\n new ExpenseCategory(expenseCategory.id, expenseCategory.name)\n )\n .filter((expenseCategory) =>\n expenseCategory.name.includes(filter.name)\n );\n //.map(user => new TUser(user.id, user.name))\n //// Not filtering in the server since in-memory-web-api has somewhat restricted api\n //.filter(user => user.name.includes(filter.name))\n return response;\n })\n );\n }\n\n getEvents(\n actions: CalendarSchedulerEventAction[]\n ): Promise {\n const events = [\n {\n id: \"1\",\n start: addDays(startOfHour(new Date()), 1),\n end: addDays(addHours(startOfHour(new Date()), 1), 1),\n title: \"Event 1\",\n content: \"IMPORTANT EVENT\",\n color: { primary: \"#E0E0E0\", secondary: \"#EEEEEE\" },\n actions: actions,\n status: \"danger\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n draggable: true,\n resizable: {\n beforeStart: true,\n afterEnd: true,\n },\n },\n {\n id: \"12\",\n start: subHours(addDays(startOfHour(new Date()), 1), 1),\n end: subHours(addDays(addHours(startOfHour(new Date()), 1), 1), 1),\n title: \"Event 12\",\n content: \"IMPORTANT EVENT\",\n color: { primary: \"#E0E0E0\", secondary: \"#EEEEEE\" },\n actions: actions,\n status: \"danger\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n draggable: true,\n resizable: {\n beforeStart: true,\n afterEnd: true,\n },\n },\n {\n id: \"2\",\n start: addDays(startOfHour(new Date()), 2),\n end: subMinutes(addDays(addHours(startOfHour(new Date()), 2), 2), 15),\n title: \"Event 2\",\n content: \"LESS IMPORTANT EVENT\",\n color: { primary: \"#E0E0E0\", secondary: \"#EEEEEE\" },\n actions: actions,\n status: \"warning\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n },\n {\n id: \"22\",\n start: subHours(addDays(startOfHour(new Date()), 2), 1),\n end: subHours(addDays(addHours(startOfHour(new Date()), 1), 2), 1),\n title: \"Event 22\",\n content: \"LESS IMPORTANT EVENT\",\n color: { primary: \"#E0E0E0\", secondary: \"#EEEEEE\" },\n actions: actions,\n status: \"warning\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n },\n {\n id: \"3\",\n start: addDays(startOfHour(new Date()), 3),\n end: addDays(addHours(startOfHour(new Date()), 3), 3),\n title: \"Event 3\",\n content: \"NOT IMPORTANT EVENT\",\n color: { primary: \"#E0E0E0\", secondary: \"#EEEEEE\" },\n actions: actions,\n status: \"ok\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n },\n {\n id: \"32\",\n start: subHours(addDays(startOfHour(new Date()), 3), 1),\n end: subHours(addDays(addHours(startOfHour(new Date()), 1), 3), 1),\n title: \"Event 32\",\n content: \"NOT IMPORTANT EVENT\",\n color: { primary: \"#E0E0E0\", secondary: \"#EEEEEE\" },\n actions: actions,\n status: \"ok\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n },\n {\n id: \"4\",\n start: startOfHour(addHours(new Date(), 2)),\n end: addHours(startOfHour(addHours(new Date(), 2)), 2),\n title: \"Event 4\",\n content: \"TODAY EVENT\",\n color: { primary: \"#29b7e9 \", secondary: \"#FFF\" },\n actions: actions,\n status: \"ok\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n },\n {\n id: \"5\",\n start: addDays(startOfHour(setHours(new Date(), 6)), 2),\n end: addHours(addDays(startOfHour(setHours(new Date(), 6)), 2), 1),\n title: \"Event 5\",\n content: \"EARLY EVENT\",\n color: { primary: \"#E0E0E0\", secondary: \"#EEEEEE\" },\n actions: actions,\n status: \"ok\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n },\n {\n id: \"51\",\n start: addDays(startOfHour(setHours(new Date(), 6)), 2),\n end: addHours(addDays(startOfHour(setHours(new Date(), 6)), 2), 1),\n title: \"Event 51\",\n content: \"EARLY EVENT\",\n color: { primary: \"#E0E0E0\", secondary: \"#EEEEEE\" },\n actions: actions,\n status: \"ok\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n },\n {\n id: \"52\",\n start: addHours(addDays(startOfHour(setHours(new Date(), 6)), 2), 1),\n end: addHours(addDays(startOfHour(setHours(new Date(), 6)), 2), 2),\n title: \"Event 52\",\n content:\n \"EARLY EVENT WITH LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG LONG DESCRIPTION\",\n color: { primary: \"#E0E0E0\", secondary: \"#EEEEEE\" },\n actions: actions,\n status: \"ok\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n },\n {\n id: \"53\",\n start: addHours(addDays(startOfHour(setHours(new Date(), 6)), 2), 2),\n end: addMinutes(\n addHours(addDays(startOfHour(setHours(new Date(), 6)), 2), 2),\n 30\n ),\n title: \"Event 53\",\n content: \"EARLY EVENT\",\n color: { primary: \"#E0E0E0\", secondary: \"#EEEEEE\" },\n actions: actions,\n status: \"ok\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n },\n {\n id: \"6\",\n start: startOfHour(setHours(new Date(), 22)),\n end: addHours(startOfHour(setHours(new Date(), 22)), 10),\n title: \"Event 6\",\n content: \"TWO DAYS EVENT\",\n color: { primary: \"#FFFFFF\", secondary: \"#29b7e9\" },\n actions: actions,\n //status: \"ok\" as CalendarSchedulerEventStatus,\n isClickable: false,\n isDisabled: false,\n },\n {\n id: \"7\",\n start: addDays(startOfHour(setHours(new Date(), 14)), 4),\n end: addDays(addDays(startOfHour(setHours(new Date(), 14)), 4), 2),\n title: \"Event 7\",\n content: \"THREE DAYS EVENT\",\n color: { primary: \"#E0E0E0\", secondary: \"#EEEEEE\" },\n actions: actions,\n status: \"ok\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n },\n {\n id: \"8\",\n start: startOfHour(addHours(new Date(), 2)),\n end: addHours(startOfHour(addHours(new Date(), 2)), 3),\n title: \"Event 8\",\n content: \"CONCURRENT EVENT\",\n color: { primary: \"#E0E0E0\", secondary: \"#EEEEEE\" },\n actions: actions,\n status: \"ok\" as CalendarSchedulerEventStatus,\n isClickable: true,\n isDisabled: false,\n },\n ];\n\n return new Promise((resolve) => setTimeout(() => resolve(events), 100));\n }\n\n}\n","
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n

    \n Calendar\n

    \n
  • \n
  • \n
\n
\n
\n
\n
\n
\n
    \n
  • \n \n
  • \n
\n
\n
\n
\n
\n
\n
\n\n
\n\n\n\n\n
\n
\n
\n
\n
\n

{{ viewDate | calendarSchedulerDate:(view +\n 'ViewTitle'):locale:weekStartsOn:excludeDays:viewDays:startsWithToday }}

\n
\n
\n
\n \n \n \n
\n
\n
\n
\n \n \n
\n
","import {\n Component,\n OnInit,\n Inject,\n LOCALE_ID,\n HostListener,\n ChangeDetectorRef,\n} from \"@angular/core\";\n\nimport { addDays } from \"date-fns/addDays\";\nimport { subHours } from \"date-fns/subHours\";\nimport {\n DAYS_IN_WEEK,\n SchedulerViewDay,\n SchedulerViewHour,\n SchedulerViewHourSegment,\n CalendarSchedulerEvent,\n CalendarSchedulerEventAction,\n startOfPeriod,\n endOfPeriod,\n addPeriod,\n subPeriod,\n SchedulerDateFormatter,\n SchedulerEventTimesChangedEvent,\n} from \"angular-calendar-scheduler\";\nimport {\n CalendarView,\n CalendarDateFormatter,\n DateAdapter,\n} from \"angular-calendar\";\nimport { AppService } from \"../_services/common/app.service\";\nimport { Subject } from \"rxjs/internal/Subject\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { startOfHour } from \"date-fns/startOfHour\";\nimport { setHours } from \"date-fns/setHours\";\nimport { addHours } from \"date-fns/addHours\";\n\n@Component({\n selector: \"calander-scheduler\",\n templateUrl: \"./calander-scheduler.component.html\",\n styleUrls: [\"./calander-scheduler.component.scss\"],\n providers: [\n {\n provide: CalendarDateFormatter,\n useClass: SchedulerDateFormatter,\n },\n ],\n})\nexport class CalanderSchedulerComponent implements OnInit {\n title = \"Angular Calendar Scheduler Demo\";\n\n CalendarView = CalendarView;\n\n view: CalendarView = CalendarView.Week;\n viewDate: Date = new Date();\n viewDays: number = 1;\n refresh: Subject = new Subject();\n locale: string = \"en\";\n hourSegments: number = 2;\n weekStartsOn: number = 1;\n startsWithToday: boolean = true;\n activeDayIsOpen: boolean = true;\n excludeDays: number[] = []; // [0];\n dayStartHour: number = 6;\n dayEndHour: number = 22;\n\n minDate: Date = new Date('2024-01-01');\n maxDate: Date = new Date('2024-12-31');\n dayModifier: Function;\n hourModifier: Function;\n segmentModifier: Function;\n eventModifier: Function;\n prevBtnDisabled: boolean = false;\n nextBtnDisabled: boolean = false;\n\n actions: CalendarSchedulerEventAction[] = [\n {\n when: \"enabled\",\n label:\n 'cancel',\n title: \"Delete\",\n onClick: (event: CalendarSchedulerEvent): void => {\n},\n },\n {\n when: \"cancelled\",\n label:\n 'autorenew',\n title: \"Restore\",\n onClick: (event: CalendarSchedulerEvent): void => {\n},\n },\n ];\n\n events: CalendarSchedulerEvent[];\n\n @HostListener(\"window:resize\", [\"$event\"])\n onResize(event: any) {\n this.adjustViewDays();\n }\n\n constructor(\n @Inject(LOCALE_ID) locale: string,\n private appService: AppService,\n private dateAdapter: DateAdapter,\n private http: HttpClient,\n private changeDetectorRef: ChangeDetectorRef\n ) {\n this.locale = locale;\n\n this.segmentModifier = ((segment: SchedulerViewHourSegment): void => {\n segment.isDisabled = !this.isDateValid(segment.date);\n }).bind(this);\n\n this.eventModifier = ((event: CalendarSchedulerEvent): void => {\n event.isDisabled = !this.isDateValid(event.start);\n }).bind(this);\n\n this.adjustViewDays();\n this.dateOrViewChanged();\n }\n\n ngOnInit(): void {\n // this.appService\n // .getEvents(this.actions)\n // .then((events: CalendarSchedulerEvent[]) => {\n // this.events = events;\n // });\n // if (localStorage.getItem(\"calanderEvents\")) {\n // this.events = JSON.parse(localStorage.getItem(\"calanderEvents\"));\n // } else {\n // this.getCalendar();\n // }\n\n this.getCalendar();\n }\n\n getCalendar() {\n // set start and end dates to past 14 days in graph API calendar endpoint query.\n let startDate = new Date();\n\n // const startMonthNum = startDate.getMonth() + 1;\n\n // let startDateString =\n // startDate.getFullYear().toString() +\n // \"-\" +\n // startMonthNum.toString().padStart(2, \"0\") +\n // \"-\" +\n // startDate.getDate().toString().padStart(2, \"0\");\n\n let endDate = new Date();\n endDate.setDate(endDate.getDate() + 14);\n // const endMonthNum = endDate.getMonth() + 1;\n // let endDateString =\n // endDate.getFullYear().toString() +\n // \"-\" +\n // endMonthNum.toString().padStart(2, \"0\") +\n // \"-\" +\n // endDate.getDate().toString().padStart(2, \"0\");\n\n const calendarEndPointQuery =\n \"?startdatetime=2024-02-01&enddatetime=2024-03-31&%24$orderby=start/dateTime%20DESC&%24top=1000\";\n\n this.http\n .get(\n \"https://graph.microsoft.com/v1.0/me/calendarview\" +\n calendarEndPointQuery\n )\n .toPromise()\n .then((calendar) => {\n\n localStorage.setItem('calendarRawData', JSON.stringify(calendar));\n localStorage.removeItem(\"calanderEvents\");\n this.events = [];\n\n for (let index = 0; index < calendar[\"value\"].length; index++) {\n this.events.push({\n id: (index + 1).toString(),\n // start: startOfHour(\n // setHours(\n // new Date(calendar[\"value\"][index].start.dateTime+'Z'),\n // new Date(calendar[\"value\"][index].start.dateTime+'Z').getHours()\n // )\n // ),\n\n start: new Date(calendar[\"value\"][index].start.dateTime+'Z'),\n end: new Date(calendar[\"value\"][index].end.dateTime+'Z'),\n // end: addHours(\n // startOfHour(\n // setHours(\n // new Date(calendar[\"value\"][index].start.dateTime+'Z'),\n // new Date(calendar[\"value\"][index].end.dateTime+'Z').getHours()\n // )\n // ),\n // Math.abs(\n // new Date(calendar[\"value\"][index].start.dateTime+'Z').getTime() -\n // new Date(calendar[\"value\"][index].end.dateTime+'Z').getTime()\n // ) / 3600000\n // ),\n title: calendar[\"value\"][index].subject,\n content: calendar[\"value\"][index].subject,//calendar[\"value\"][index].body.content,\n color: { primary: \"#FFFFFF\", secondary: \"#29b7e9\" },\n actions: this.actions,\n isClickable: true,\n isDisabled: false,\n });\n }\n\n localStorage.setItem(\"calanderEvents\", JSON.stringify(this.events));\nthis.refresh.next(0);\n this.changeDetectorRef.detectChanges();\n });\n }\n\n adjustViewDays(): void {\n const currentWidth: number = window.innerWidth;\n if (currentWidth <= 450) {\n this.viewDays = 1;\n } else if (currentWidth <= 768) {\n this.viewDays = 3;\n } else {\n this.viewDays = 5;\n }\n }\n\n changeDate(date: Date): void {\n this.viewDate = date;\n this.dateOrViewChanged();\n }\n\n changeView(view: CalendarView): void {\n this.view = view;\n this.dateOrViewChanged();\n }\n\n dateOrViewChanged(): void {\n if (this.startsWithToday) {\n this.prevBtnDisabled = !this.isDateValid(\n subPeriod(\n this.dateAdapter,\n CalendarView.Day /*this.view*/,\n this.viewDate,\n 1\n )\n );\n this.nextBtnDisabled = !this.isDateValid(\n addPeriod(\n this.dateAdapter,\n CalendarView.Day /*this.view*/,\n this.viewDate,\n 1\n )\n );\n } else {\n this.prevBtnDisabled = !this.isDateValid(\n endOfPeriod(\n this.dateAdapter,\n CalendarView.Day /*this.view*/,\n subPeriod(\n this.dateAdapter,\n CalendarView.Day /*this.view*/,\n this.viewDate,\n 1\n )\n )\n );\n this.nextBtnDisabled = !this.isDateValid(\n startOfPeriod(\n this.dateAdapter,\n CalendarView.Day /*this.view*/,\n addPeriod(\n this.dateAdapter,\n CalendarView.Day /*this.view*/,\n this.viewDate,\n 1\n )\n )\n );\n }\n\n if (this.viewDate < this.minDate) {\n this.changeDate(this.minDate);\n } else if (this.viewDate > this.maxDate) {\n this.changeDate(this.maxDate);\n }\n }\n\n private isDateValid(date: Date): boolean {\n return /*isToday(date) ||*/ date >= this.minDate && date <= this.maxDate;\n }\n\n dayHeaderClicked(day: SchedulerViewDay): void {}\n\n hourClicked(hour: SchedulerViewHour): void {}\n\n segmentClicked(action: string, segment: SchedulerViewHourSegment): void {}\n\n eventClicked(action: string, event: CalendarSchedulerEvent): void {}\n\n eventTimesChanged({\n event,\n newStart,\n newEnd,\n type,\n }: SchedulerEventTimesChangedEvent): void {\n const ev: CalendarSchedulerEvent = this.events.find(\n (e) => e.id === event.id\n );\n ev.start = newStart;\n ev.end = newEnd;\n this.refresh.next(0);\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { RouterModule, Routes } from \"@angular/router\";\n\nimport { HomeComponent } from \"../home\";\nimport { AuthGuardService } from \"../_services/common/authguard.service\";\nimport { CalanderSchedulerComponent } from \"../calander-scheduler/calander-scheduler.component\";\n\nconst routes: Routes = [\n {\n path: \"\",\n component: HomeComponent,canActivate: [AuthGuardService]\n },\n {\n path: \"settings\",\n loadChildren: () =>\n import(\"../_modules/modules/org-setting.module\").then(\n (m) => m.OrgSettingModule\n ),\n },\n {\n path: \"onboard\",\n loadChildren: () =>\n import(\"../user/registration.module\").then((m) => m.RegistrationModule),\n },\n {\n path: \"export\",\n loadChildren: () =>\n import(\"../_modules/modules/accounting-integration.module\").then(\n (m) => m.AccountingIntegrationModule\n ),\n },\n\n {\n path: \"twostepapproval\",\n loadChildren: () =>\n import(\"../_modules/modules/twostep.module\").then((m) => m.TwoStepModule),\n },\n {\n path: \"cccustomer\",\n loadChildren: () =>\n import(\"../_modules/modules/costcentre.module\").then(\n (m) => m.CostCentreModule\n ),\n },\n {\n path: \"counterApp\",\n loadChildren: () =>\n import(\"../_modules/modules/counter-approver-module.module\").then(\n (m) => m.CounterApproverModuleModule\n ),\n },\n {\n path: \"fxRateSetup\",\n loadChildren: () =>\n import(\"../_modules/modules/fx-rate.module\").then((m) => m.FxRateModule),\n },\n {\n path: \"vendorSetup\",\n loadChildren: () =>\n import(\"../_modules/modules/vendor.module\").then(\n (m) => m.VendorModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/manage-employees.module\").then(\n (m) => m.ManageEmployeesModule\n ),\n },\n {\n path: \"setupyourorganisation\",\n loadChildren: () =>\n import(\"../_modules/modules/setup-org.module\").then(\n (m) => m.SetupOrgModule\n ),\n },\n {\n path: \"currency\",\n loadChildren: () =>\n import(\"../_modules/modules/currency.module\").then(\n (m) => m.CurrencyModule\n ),\n },\n {\n path: \"changepassword\",\n loadChildren: () =>\n import(\"../_modules/modules/change-password.module\").then(\n (m) => m.ChangePasswordModule\n ),\n },\n {\n path: \"billingplan\",\n loadChildren: () =>\n import(\"../_modules/modules/billing-plan.module\").then(\n (m) => m.BillingPlanModule\n ),\n },\n {\n path: \"referandearn\",\n loadChildren: () =>\n import(\"../_modules/modules/refer-and-earn.module\").then(\n (m) => m.ReferAndEarnModule\n ),\n },\n {\n path: \"deletedata\",\n loadChildren: () =>\n import(\"../_modules/modules/delete-data.module\").then(\n (m) => m.DeleteDataModule\n ),\n },\n {\n path: \"preapproval\",\n loadChildren: () =>\n import(\"../_modules/modules/preapproval.module\").then(\n (m) => m.PreapprovalModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/grade.module\").then((m) => m.GradeModule),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/creditcard.module\").then(\n (m) => m.CreditCardModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/manage-category.module\").then(\n (m) => m.ManageCategoryModule\n ),\n },\n {\n path: \"policydashboard\",\n loadChildren: () =>\n import(\"../_modules/modules/policydashboard.module\").then(\n (m) => m.PolicydashboardModule\n ),\n },\n {\n path: \"dashboard\",\n loadChildren: () =>\n import(\"../_modules/modules/policy.module\").then((m) => m.PolicyModule),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../advance-mileage/advance-mileage.module\").then(\n (m) => m.AdvanceMileageModule\n ),\n },\n {\n path: \"dashboard\",\n loadChildren: () =>\n import(\"../_modules/modules/dashboard.module\").then(\n (m) => m.DashboardModule\n ),\n },\n {\n path: \"card\",\n loadChildren: () =>\n import(\"../_modules/modules/creditcard.module\").then((m) => m.CreditCardModule),\n },\n {\n path: \"pay\",\n loadChildren: () =>\n import(\"../_modules/modules/pay.module\").then((m) => m.PayModule),\n },\n {\n path: \"financeapprover\",\n loadChildren: () =>\n import(\"../_modules/modules/finance-approve.module\").then(\n (m) => m.FinanceApproveModule\n ),\n },\n {\n path: \"approver\",\n loadChildren: () =>\n import(\"../_modules/modules/approver.module\").then(\n (m) => m.ApproverModule\n ),\n },\n {\n path: \"taxSetup\",\n loadChildren: () =>\n import(\"../_modules/modules/tax.module\").then((m) => m.TaxModule),\n },\n {\n path: \"yesbank\",\n loadChildren: () =>\n import(\"../_modules/modules/yes-bank.module\").then(\n (m) => m.YesBankModule\n ),\n },\n {\n path: \"ManageSubscription\",\n loadChildren: () =>\n import(\"../_modules/modules/manage-subscription.module\").then(\n (m) => m.ManageSubscriptionModule\n ),\n },\n {\n path: \"mysubscription\",\n loadChildren: () =>\n import(\"../_modules/modules/mysubscription.module\").then(\n (m) => m.MysubscriptionModule\n ),\n },\n {\n path: \"addtocart\",\n loadChildren: () =>\n import(\"../_modules/modules/add-to-cart.module\").then(\n (m) => m.AddToCartModule\n ),\n },\n {\n path: \"shoppingcartlist\",\n loadChildren: () =>\n import(\"../_modules/modules/shoppingcartlist.module\").then(\n (m) => m.ShoppingcartlistModule\n ),\n },\n {\n path: \"shoppingcartreview\",\n loadChildren: () =>\n import(\"../_modules/modules/shoppingcart-review.module\").then(\n (m) => m.ShoppingcartReviewModule\n ),\n },\n {\n path: \"shoppingcartConfirmed\",\n loadChildren: () =>\n import(\"../_modules/modules/shoppingcart-confirm.module\").then(\n (m) => m.ShoppingcartConfirmModule\n ),\n },\n {\n path: \"pricing\",\n loadChildren: () =>\n import(\"../_modules/modules/pricing.module\").then((m) => m.PricingModule),\n },\n {\n path: \"comingsoon\",\n loadChildren: () =>\n import(\"../_modules/modules/coming-soon.module\").then(\n (m) => m.ComingSoonModule\n ),\n },\n {\n path: \"export\",\n loadChildren: () =>\n import(\"../export/export.module\").then((m) => m.ExportModule),\n },\n {\n path: \"support\",\n loadChildren: () =>\n import(\"../_modules/modules/support.module\").then((m) => m.SupportModule),\n },\n {\n path: \"liabilityreport\",\n loadChildren: () =>\n import(\"../liability-report/liability-report.module\").then(\n (m) => m.LiabilityReportModule\n ),\n },\n {\n path: \"yearendrule\",\n loadChildren: () =>\n import(\"../_modules/modules/year-end-rule.module\").then(\n (m) => m.YearEndRuleModule\n ),\n },\n {\n path: \"carbonFPrint\",\n loadChildren: () =>\n import(\"../_modules/modules/carbon-footprint.module\").then(\n (m) => m.CarbonFootprintModule\n ),\n },\n\n {\n path: \"cccustomer\",\n loadChildren: () =>\n import(\"../_modules/modules/customer.module\").then(\n (m) => m.CustomerModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/business-purpose-module.module\").then(\n (m) => m.BusinessPurposeModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/duplicate.module\").then(\n (m) => m.DuplicateModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/overall-daily-limit.module\").then(\n (m) => m.OverallDailyLimitModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/expense-escalation.module\").then(\n (m) => m.ExpenseEscalationModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/expense-time-limit.module\").then(\n (m) => m.ExpenseTimeLimitModule\n ),\n },\n { path: \"orgsetting\", loadChildren: () => import(\"../_modules/modules/pernightlimit.module\").then((m) => m.PernightlimitModule), },\n { path: \"orgsetting\", loadChildren: () => import(\"../_modules/modules/perpersonlimit.module\").then((m) => m.PerpersonlimitModule), },\n { path: \"orgsetting\", loadChildren: () => import(\"../_modules/modules/daily-capping.module\").then((m) => m.DailyCappingModule), },\n { path: \"orgsetting\", loadChildren: () => import(\"../_modules/modules/monthly-capping.module\").then((m) => m.MonthlyCappingModule), },\n { path: \"orgsetting\", loadChildren: () => import(\"../_modules/modules/yearly-capping.module\").then((m) => m.YearlyCappingModule), },\n { path: \"orgsetting\", loadChildren: () => import(\"../_modules/modules/autoapproval.module\").then((m) => m.AutoapprovalModule), },\n { path: \"dutyofcare\", loadChildren: () => import(\"../_modules/modules/dutyofcaresetup.module\").then((m) => m.DutyofcaresetupModule), },\n {\n path: \"audittrail\",\n loadChildren: () =>\n import(\"../audit-trail/audit-trail.module\").then(\n (m) => m.AuditTrailModule\n ),\n },\n {\n path: \"manualvat\",\n loadChildren: () =>\n import(\"../_modules/modules/manual-vat.module\").then(\n (m) => m.ManualVatModule\n ),\n },\n {\n path: \"outofoffice\",\n loadChildren: () =>\n import(\"../out-of-office/out-of-office.module\").then(\n (m) => m.OutOfOfficeModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/additional-fields.module\").then(\n (m) => m.AdditionalFieldsModule\n ),\n },\n {\n path: \"secondaryfm\",\n loadChildren: () =>\n import(\"../_modules/modules/secondary-fm.module\").then(\n (m) => m.SecondaryFMModule\n ),\n },\n {\n path: \"advances\",\n loadChildren: () =>\n import(\"../advances/advances.module\").then((m) => m.AdvancesModule),\n },\n {\n path: \"openapi\",\n loadChildren: () =>\n import(\"../_modules/modules/open-api.module\").then(\n (m) => m.OpenApiModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/project-budget.module\").then(\n (m) => m.ProjectBudgetModule\n ),\n },\n {\n path: \"nrfc\",\n loadChildren: () =>\n import(\"../_modules/modules/nrfc-mileage.module\").then(\n (m) => m.NRFCMileageModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/multiple-companies.module\").then(\n (m) => m.MultipleCompaniesModule\n ),\n },\n {\n path: \"ahv\",\n loadChildren: () =>\n import(\"../_modules/modules/approver-historical-view.module\").then(\n (m) => m.ApproverHistoricalViewModule\n ),\n },\n {\n path: \"csm\",\n loadChildren: () =>\n import(\"../_modules/modules/compliance-statement.module\").then(\n (m) => m.ComplianceStatementModule\n ),\n },\n {\n path: \"amc\",\n loadChildren: () =>\n import(\"../_modules/modules/anti-fraud.module\").then(\n (m) => m.AntiFraudModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/location.module\").then(\n (m) => m.LocationModule\n ),\n },\n {\n path: \"claimant\",\n loadChildren: () =>\n import(\"../_modules/modules/claimant-on-web.module\").then(\n (m) => m.ClaimantOnWebModule\n ),\n },\n {\n path: \"attendeetype\",\n loadChildren: () =>\n import(\"../attendee-type/attendee-type.module\").then(\n (m) => m.AttendeeTypeModule\n ),\n },\n {\n path: \"leavemanagement\",\n loadChildren: () =>\n import(\"../leave-management/leave-management.module\").then(\n (m) => m.LeaveManagementModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/supplier.module\").then(\n (m) => m.SupplierModule\n ),\n },\n {\n path: \"universalimport\",\n loadChildren: () =>\n import(\"../universal-import/universal-import.module\").then(\n (m) => m.UniversalImportModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/multiple-countries.module\").then(\n (m) => m.MultipleCountriesModule\n ),\n },\n {\n path: \"orgsetting\",\n loadChildren: () =>\n import(\"../_modules/modules/delegate.module\").then(\n (m) => m.DelegateModule\n ),\n },\n {\n path: \"dashboard\",\n loadChildren: () =>\n import(\"../_modules/modules/mileage-analysis.module\").then(\n (m) => m.MileageAnalysisModule\n ),\n },\n\n {\n path: \"dashboard\",\n loadChildren: () =>\n import(\"../_modules/modules/policy.module\").then((m) => m.PolicyModule),\n },\n\n \n\n \n\n \n \n \n \n {\n path: \"essential-pack\",\n loadChildren: () =>\n import(\"../_modules/modules/essential-pack.module\").then((m) => m.EssentialPackModule),\n },\n {\n path: \"disappearingExpenses\",\n loadChildren: () =>\n import(\"../_modules/modules/disappearing-expenses.module\").then(\n (m) => m.DisappearingExpenseModule\n ),\n },\n {\n path: \"container\",\n loadChildren: () =>\n import(\"../_modules/modules/container.module\").then((m) => m.ContainerModule),\n },\n { path: \"calander\", component: CalanderSchedulerComponent },\n {\n path: \"split-categories\",\n loadChildren: () =>\n import(\"../_modules/modules/split-categories.module\").then((m) => m.SplitCategoriesModule),\n },\n {\n path: \"eod-template\",\n loadChildren: () =>\n import(\"../_modules/modules/eod-template.module\").then((m) => m.EodTemplateModule),\n },\n {\n path: \"container\",\n loadChildren: () =>\n import(\"../_modules/modules/container.module\").then((m) => m.ContainerModule),\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class PagesRoutingModule {}\n","import { CUSTOM_ELEMENTS_SCHEMA, LOCALE_ID, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { CountUpModule } from 'ngx-countup';\n\nimport { ScrollToModule } from '@nicky-lenaers/ngx-scroll-to';\nimport { NgApexchartsModule } from 'ng-apexcharts';\nimport { NgbDropdownModule, NgbAccordionModule, NgbNavModule, NgbProgressbarModule, NgbTooltipModule, NgbPopoverModule, NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';\nimport { GoogleMapsModule } from '@angular/google-maps';\n\n// Routings\nimport { PagesRoutingModule } from './pages-routing.modules';\n\n// Modules\nimport { WidgetModule } from '../shared/widget/widget.module';\n\n// Components\nimport { TranslateModule } from '@ngx-translate/core';\nimport { HomeComponent } from '../home';\nimport { SharedModule } from '../shared.module';\nimport { OrganisationSettingComponent } from '../organisation-setting/organisation-setting.component';\nimport { PresetExportComponent } from '../home/preset-export/preset-export.component';\nimport { GridModule } from '../_modules/modules/grid.module';\nimport { DynamicFormsModule } from '../_modules/modules/dynamic-forms.module';\nimport { ApprovalItemsPanelComponent } from '../manage-employees/approvers/approval-items-panel/approval-items-panel.component';\nimport {SetupPayStepPanelComponent} from \"src/app/home/setup-pay-step-panel/setup-pay-step-panel.component\";\nimport { FormsModule } from '@angular/forms';\nimport { CalanderSchedulerComponent } from \"src/app/calander-scheduler/calander-scheduler.component\";\nimport { CalendarModule, DateAdapter, MOMENT } from \"angular-calendar\";\nimport { adapterFactory } from \"angular-calendar/date-adapters/date-fns\";\nimport { SchedulerModule } from \"angular-calendar-scheduler\";\nimport { AppService } from '../_services/common/app.service';\nimport * as moment from 'moment';\nimport { FeedbackPanelComponent } from '../shared/panels/feedback-panel/feedback-panel.component';\nimport { GradeModule } from '../_modules/modules/grade.module';\n\n\n@NgModule({\n declarations: [\n HomeComponent,\n OrganisationSettingComponent,\n PresetExportComponent,\n ApprovalItemsPanelComponent,\n SetupPayStepPanelComponent,\n FeedbackPanelComponent,\n CalanderSchedulerComponent,\n ],\n imports: [\n CommonModule,\n WidgetModule,\n PagesRoutingModule,\n ScrollToModule.forRoot(),\n NgApexchartsModule,\n NgbDropdownModule,\n NgbAccordionModule,\n NgbNavModule,\n NgbProgressbarModule,\n NgbCollapseModule,\n NgbTooltipModule,\n NgbPopoverModule,\n CountUpModule,\n SharedModule,\n GoogleMapsModule,\n TranslateModule,\n GridModule,\n DynamicFormsModule,\n FormsModule, \n GradeModule, \n CalendarModule.forRoot({\n provide: DateAdapter,\n useFactory: adapterFactory,\n }),\n SchedulerModule.forRoot({\n locale: \"en\",\n headerDateFormat: \"daysRange\",\n logEnabled: true,\n })\n ],\n \n providers: [\n AppService,\n { provide: LOCALE_ID, useValue: 'en-US' },\n { provide: MOMENT, useValue: moment }\n\n ],\n schemas:[CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class PagesModule { }\n","import { NgModule } from \"@angular/core\";\nimport { NgbTooltipModule, NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MarketingPopupComponent } from \"./marketing-popup.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { AlertModule } from \"src/app/alert-panel/alert.module\";\n\n\n@NgModule({\n imports: [\n TranslateModule,\n CommonModule,\n FormsModule,\n NgbModule,\n NgbTooltipModule,\n AlertModule\n ],\n declarations: [\n MarketingPopupComponent\n ],\n providers: [],\n exports: [\n NgbTooltipModule,\n MarketingPopupComponent\n ]\n})\nexport class MarketingPopupModule {\n constructor() { }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NgbTooltipModule, NgbModule } from \"@ng-bootstrap/ng-bootstrap\";\nimport { CommonModule } from \"@angular/common\";\nimport { FormsModule } from \"@angular/forms\";\nimport { InformationAlertPanelComponent } from \"./information-alert-panel.component\";\nimport { TranslateModule } from \"@ngx-translate/core\";\n\n\n@NgModule({\n imports: [\n TranslateModule,\n CommonModule,\n FormsModule,\n NgbModule,\n NgbTooltipModule,\n ],\n declarations: [\n InformationAlertPanelComponent\n ],\n providers: [],\n exports: [\n NgbTooltipModule,\n InformationAlertPanelComponent\n ]\n})\nexport class InformationAlertPanelModule {\n constructor() { }\n}\n","import { NgModule } from \"@angular/core\";\nimport { VideoIconComponent } from \"./video-icon\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { EditIconForGridComponent } from \"./Icons/edit-icon-for-grid/edit-icon-for-grid.component\";\nimport { SaveIconComponent } from \"./Icons/save-icon/save-icon.component\";\nimport { BackToApprovalComponent } from \"./Icons/back-to-approval/back-to-approval.component\";\nimport { BackToSettingsComponent } from \"./Icons/back-to-settings/back-to-settings.component\";\nimport { FourWheelerIconComponent } from \"./Icons/four-wheeler-icon/four-wheeler-icon.component\";\nimport { TwoWheelerIconComponent } from \"./Icons/two-wheeler-icon/two-wheeler-icon.component\";\nimport { NoVehicleIconComponent } from \"./Icons/no-vehicle-icon/no-vehicle-icon.component\";\nimport { EditIconComponent } from \"./Icons/edit-icon/edit-icon.component\";\nimport { CloseIconComponent } from \"./Icons/close-icon/close-icon.component\";\nimport { ConfirmIconComponent } from \"./Icons/confirm-icon/confirm-icon.component\";\nimport { ImportIconComponent } from \"./Icons/import-icon/import-icon.component\";\nimport { AssignApproverIconComponent } from \"./Icons/assign-approver-icon/assign-approver-icon.component\";\nimport { InviteEmployeesIconComponent } from \"./Icons/invite-employees-icon/invite-employees-icon.component\";\nimport { ResendInviteIconComponent } from \"./Icons/resend-invite-icon/resend-invite-icon.component\";\nimport { DeactivateEmployeesIconComponent } from \"./Icons/deactivate-employees-icon/deactivate-employees-icon.component\";\nimport { UpdateVehicleIconComponent } from \"./Icons/update-vehicle-icon/update-vehicle-icon.component\";\nimport { UpdateRoleIconComponent } from \"./Icons/update-role-icon/update-role-icon.component\";\nimport { ActivateEmployeesIconComponent } from \"./Icons/activate-employees-icon/activate-employees-icon.component\";\nimport {\n SafeUrlPipeline,\n GrdFilterPipe,\n OrderByPipe,\n EODDateFormatPipe,\n DateFormatPipe,\n} from \"./_helpers/pipe.module\";\nimport { NgSelectModule } from \"@ng-select/ng-select\";\nimport { InfiniteScrollModule } from \"ngx-infinite-scroll\";\nimport {\n NgbProgressbarModule,\n NgbPopoverModule,\n NgbCarouselModule,\n NgbModule,\n NgbTooltipModule,\n} from \"@ng-bootstrap/ng-bootstrap\";\nimport { CommonModule } from \"@angular/common\";\nimport { BackToParentComponent } from \"./Icons/back-to-parent/back-to-parent.component\";\nimport { AddToCartComponent } from \"./Icons/add-to-cart/add-to-cart.component\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { VideoTutorialIconComponent } from \"./Icons/video-tutorial-icon/video-tutorial-icon.component\";\nimport { NoCommaPipe } from \"./_helpers/no-comman.pipe\";\nimport { BackManageEmployeeComponent } from \"./Icons/back-manage-employee/back-manage-employee.component\";\nimport { BackToImportComponent } from \"./Icons/back-to-import/back-to-import.component\";\nimport { AssignIconToClaimantsComponent } from \"./Icons/assign-icon-to-claimants/assign-icon-to-claimants.component\";\nimport { AddIconComponent } from \"./Icons/add-icon/add-icon.component\";\nimport { LogIconComponent } from \"./Icons/log-icon/log-icon.component\";\nimport { DeactivateMinusIconComponent } from \"./Icons/deactivate-minus-icon/deactivate-minus-icon.component\";\nimport { ActivatePlusIconComponent } from \"./Icons/activate-plus-icon/activate-plus-icon.component\";\nimport { DeactivateMinusIconFalComponent } from \"./Icons/deactivate-minus-icon-fal/deactivate-minus-icon-fal.component\";\nimport { ActivatePlusIconFalComponent } from \"./Icons/activate-plus-icon-fal/activate-plus-icon-fal.component\";\nimport { UpdatePlaceholderDirective } from \"./_directives/update-placeholder.directive\";\nimport { NumericDirective } from \"./_directives/commonnumber.directive\";\nimport { ScrollSpyDirective } from \"./_directives/scroll-spy.directive\";\nimport {\n MaxDirective,\n MinDirective,\n} from \"./_directives/commonnumber.directive\";\nimport { MarkAsteriskDirective } from \"./_directives/mark-asterisk.directive\";\nimport { EllipsisModule } from \"ngx-ellipsis\";\nimport { BlockCutCopyPasteDirective } from \"./_directives/block-cut-copy-paste.directive\";\nimport { NgxUiLoaderModule } from \"ngx-ui-loader\";\nimport { SetAccessRightsComponent } from \"./Icons/set-access-rights/set-access-rights.component\";\nimport { LoaderComponent } from \"./shared/loader/loader.component\";\nimport { AlphaNumericDirective } from \"./_directives/alphanumeric.directive\";\nimport { AlertModule } from \"./alert-panel/alert.module\";\nimport { MarketingPopupModule } from \"./shared/panels/marketing-popup/marketing-popup.module\";\nimport { XeroIconComponent } from \"./Icons/xero-icon/xero-icon.component\";\nimport { SecondaryFMIconComponent } from \"./Icons/seconday-fm-icon/seconday-fm-icon.component\";\nimport { TwoDigitDecimaNumberDirective } from \"./_directives/two-digit-decima-number.directive\";\nimport { ViewReceiptComponent } from \"./shared/panels/view-receipt/view-receipt.component\";\nimport { ViewDocumentComponent } from \"./shared/panels/view-document/view-document.component\";\nimport { PdfViewerComponent } from \"./shared/panels/pdf-viewer/pdf-viewer.component\";\nimport { PdfViewerSecondPanelComponent } from \"./shared/panels/pdf-viewer-second-panel/pdf-viewer-second-panel.component\";\nimport { NgxExtendedPdfViewerModule } from \"ngx-extended-pdf-viewer\";\nimport { CalendarComponent } from \"./Icons/calendar/calendar.component\";\nimport { GoToProjectBudgetIconComponent } from \"./Icons/goto-project-budget-icon/goto-project-budget-icon.component\";\nimport { InformationAlertPanelModule } from \"./shared/panels/information-alert-panel/information-alert-panel.module\";\nimport { CalendarInGridIconComponent } from \"./Icons/calendar-ingrid-icon/calendar-ingrid-icon.component\";\n\nimport { NRFuelComponent } from \"./Icons/nr-fuel/nr-fuel.component\";\nimport { FuelCardComponent } from \"./Icons/fuel-card/fuel-card.component\";\nimport { CategoryIconsComponent } from \"./Icons/WorkflowPanel/category-icons/category-icons.component\";\nimport { dynamicDigitBeforeAndDynamicDigitAfterDecimalNumberDirective } from \"./_directives/six-digit-before-and-two-digit-after-decimal-number\";\nimport { TwoDigitBeforeAndTwoDigitAfterDecimalNumberDirective } from \"./_directives/two-digit-before-and-two-digit-after-decimal-number\";\nimport { SixDigitBeforeAndAfterDecimalNumberDirective } from \"./_directives/six-digit-before-and-after-decimal-number\";\nimport { ThreeDigitBeforeAndTwoDigitAfterDecimalNumberDirective } from \"./_directives/three-digit-before-and-two-digit-after-decimal-number\";\nimport { FileUploaderComponent } from \"./shared/file-uploader/file-uploader.component\";\nimport { FileDirective } from \"./_directives/file.directive\";\nimport { MileageDetailComponent } from \"./shared/panels/mileage-detail/mileage-detail.component\";\nimport { ViewTagPanelComponent } from \"./shared/forms/selection-panels/view-tag-panel/view-tag-panel.component\";\nimport { InformationImagePanelComponent } from \"./shared/panels/information-image-panel/information-image-panel.component\";\nimport { FileDropDirective } from \"./_directives/file-drop.directive\";\nimport { SetupIconComponent } from \"./Icons/setup-icon/setup-icon.component\";\nimport { SelectForeignCurrencyPanelComponent } from \"./shared/forms/selection-panels/select-foreign-currency-panel/select-foreign-currency-panel.component\";\nimport { AttachReceiptOptionsPanelComponent } from \"./shared/forms/selection-panels/attach-receipt-options-panel/attach-receipt-options-panel.component\";\nimport { ExpenseMergePanelComponent } from \"./shared/forms/selection-panels/expense-merge-panel/expense-merge-panel.component\";\nimport { GoogleMapsModule } from \"@angular/google-maps\";\nimport { ViewAttendeeTypePanelComponent } from \"./shared/panels/view-attendee-type-panel/view-attendee-type-panel.component\";\nimport { AddPassengerLoadPanelComponent } from \"./shared/forms/selection-panels/add-passenger-load-panel/add-passenger-load-panel.component\";\nimport { WizardComponent } from \"src/app/shared/panels/wizard/wizard.component\";\nimport { InfoModelPopupComponent } from \"./shared/panels/info-model-popup/info-model-popup.component\";\nimport { StripeInvoiceFailedDetailsPanelComponent } from \"./shared/panels/stripe-invoice-failed-details-panel/stripe-invoice-failed-details-panel.component\";\nimport { EightDigitBeforeAndTwoDigitAfterDecimalNumberDirective } from \"./_directives/eight-digit-before-and-two-digit-after-decimal-number\";\nimport { ViewFormDocumentComponent } from \"./shared/panels/view-form-documents/view-form-documents.component\";\nimport { ImagePreviewDetailComponent } from \"./shared/panels/img-preview/img-preview.component\";\nimport { MovableDirective } from \"./_directives/movable.directive\";\nimport { DraggableDirective } from \"./_directives/draggable.directive\";\nimport { DragDropModule } from \"@angular/cdk/drag-drop\";\nimport { ReceiptViewerComponent } from \"src/app/shared/panels/receipt-viewer/receipt-viewer.component\";\nimport { BackToWizardComponent } from \"./Icons/back-to-wizard/back-to-wizard.component\";\nimport { MultiButtonAlertPanelComponent } from \"./shared/panels/multi-button-alert-panel/multi-button-alert-panel.component\";\nimport { PasswordStrengthMeterModule } from \"angular-password-strength-meter\";\nimport { PagetitleComponent } from \"./shared/pagetitle/pagetitle.component\";\nimport { WidgetModule } from \"./shared/widget/widget.module\";\nimport { ViewFormReceiptComponent } from \"./shared/panels/view-form-receipt/view-form-receipt.component\";\nimport { StripeAgreementPanelComponent } from \"src/app/shared/panels/stripe-agreement-panel/stripe-agreement-panel.component\";\nimport { BasicFunctionSubscribedPanelComponent } from \"src/app/shared/panels/basic-function-subscribed-panel/basic-function-subscribed-panel.component\";\nimport { BasicFunctionTrialEndsAlertPanelComponent } from \"src/app/shared/panels/basicFunctionTrialEndsAlertPanel/basicFunctionTrialEndsAlertPanel.component\";\nimport { BasicFunctionExploreAlertPanelComponent } from \"src/app/shared/panels/basic-function-explore-alert-panel/basic-function-explore-alert-panel.component\";\nimport { FlatpickrModule } from \"angularx-flatpickr\";\nimport { ViewReceiptDetialsComponent } from \"./shared/panels/view-receipt-new/view-receipt-new.component\";\nimport { DuplicateReceiptPanelComponent } from \"./two-step-approval/common/finance-approval/duplicate-receipt-panel/duplicate-receipt-panel.component\";\nimport { ApproverDetailComponent } from \"src/app/PreApprovalData/approver-panel/approver-detail.component\";\nimport { TaxSetupStep0Component } from './tax-rate-setup/tax-setup-step0/tax-setup-step0.component';\nimport {AutosizeModule} from 'ngx-autosize';\n\n\n@NgModule({\n imports: [\n TranslateModule,\n InfiniteScrollModule,\n AlertModule,\n MarketingPopupModule,\n NgbModule,\n NgbTooltipModule,\n NgbProgressbarModule,\n NgbPopoverModule,\n NgbCarouselModule,\n NgSelectModule,\n PasswordStrengthMeterModule,\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n EllipsisModule,\n NgxUiLoaderModule,\n NgxExtendedPdfViewerModule,\n InformationAlertPanelModule,\n GoogleMapsModule,\n DragDropModule,\n CommonModule,\n WidgetModule,\n AutosizeModule,\n FlatpickrModule.forRoot()\n ],\n declarations: [\n AttachReceiptOptionsPanelComponent,\n VideoIconComponent,\n SaveIconComponent,\n BackToSettingsComponent,\n BackToApprovalComponent,\n FourWheelerIconComponent,\n TwoWheelerIconComponent,\n NoVehicleIconComponent,\n CloseIconComponent,\n ConfirmIconComponent,\n ImportIconComponent,\n AssignApproverIconComponent,\n InviteEmployeesIconComponent,\n ResendInviteIconComponent,\n DeactivateEmployeesIconComponent,\n UpdateVehicleIconComponent,\n UpdateRoleIconComponent,\n ActivateEmployeesIconComponent,\n SafeUrlPipeline,\n BackToParentComponent,\n AddToCartComponent,\n SecondaryFMIconComponent,\n GrdFilterPipe,\n NoCommaPipe,\n OrderByPipe,\n VideoTutorialIconComponent,\n AssignIconToClaimantsComponent,\n AddIconComponent,\n LogIconComponent,\n DeactivateMinusIconComponent,\n ActivatePlusIconComponent,\n DeactivateMinusIconFalComponent,\n ActivatePlusIconFalComponent,\n EditIconForGridComponent,\n EditIconComponent,\n BackManageEmployeeComponent,\n BackToImportComponent,\n UpdatePlaceholderDirective,\n NumericDirective,\n MinDirective,\n MaxDirective,\n MarkAsteriskDirective,\n ScrollSpyDirective,\n MarkAsteriskDirective,\n BlockCutCopyPasteDirective,\n SetAccessRightsComponent,\n LoaderComponent,\n AlphaNumericDirective,\n XeroIconComponent,\n TwoDigitDecimaNumberDirective,\n GoToProjectBudgetIconComponent,\n ViewReceiptComponent,\n ViewReceiptDetialsComponent,\n ViewDocumentComponent,\n ViewFormDocumentComponent,\n PdfViewerComponent,\n PdfViewerSecondPanelComponent,\n CalendarComponent,\n CalendarInGridIconComponent,\n NRFuelComponent,\n FuelCardComponent,\n CategoryIconsComponent,\n dynamicDigitBeforeAndDynamicDigitAfterDecimalNumberDirective,\n TwoDigitBeforeAndTwoDigitAfterDecimalNumberDirective,\n SixDigitBeforeAndAfterDecimalNumberDirective,\n ThreeDigitBeforeAndTwoDigitAfterDecimalNumberDirective,\n FileUploaderComponent,\n FileDirective,\n MileageDetailComponent,\n ViewTagPanelComponent,\n FileDropDirective,\n InformationImagePanelComponent,\n SetupIconComponent,\n SelectForeignCurrencyPanelComponent,\n AttachReceiptOptionsPanelComponent,\n ExpenseMergePanelComponent,\n ViewAttendeeTypePanelComponent,\n AddPassengerLoadPanelComponent,\n WizardComponent,\n InfoModelPopupComponent,\n StripeInvoiceFailedDetailsPanelComponent,\n ReceiptViewerComponent,\n BackToWizardComponent,\n EightDigitBeforeAndTwoDigitAfterDecimalNumberDirective,\n MultiButtonAlertPanelComponent,\n ImagePreviewDetailComponent,\n MovableDirective,\n DraggableDirective,\n PagetitleComponent,\n EODDateFormatPipe,\n DateFormatPipe,\n ViewFormReceiptComponent,\n StripeAgreementPanelComponent,\n BasicFunctionSubscribedPanelComponent,\n BasicFunctionTrialEndsAlertPanelComponent,\n BasicFunctionExploreAlertPanelComponent,\n DuplicateReceiptPanelComponent,\n ApproverDetailComponent,\n TaxSetupStep0Component,\n ],\n providers: [EODDateFormatPipe, DateFormatPipe],\n\n exports: [\n NgbTooltipModule,\n VideoIconComponent,\n SaveIconComponent,\n BackToSettingsComponent,\n BackToApprovalComponent,\n FourWheelerIconComponent,\n TwoWheelerIconComponent,\n NoVehicleIconComponent,\n EditIconComponent,\n CloseIconComponent,\n ConfirmIconComponent,\n ImportIconComponent,\n AssignApproverIconComponent,\n InviteEmployeesIconComponent,\n ResendInviteIconComponent,\n DeactivateEmployeesIconComponent,\n UpdateVehicleIconComponent,\n UpdateRoleIconComponent,\n ActivateEmployeesIconComponent,\n ViewReceiptComponent,\n ViewReceiptDetialsComponent,\n ViewDocumentComponent,\n ViewFormDocumentComponent,\n PdfViewerComponent,\n PdfViewerSecondPanelComponent,\n SafeUrlPipeline,\n GrdFilterPipe,\n NoCommaPipe,\n InfiniteScrollModule,\n AutosizeModule,\n AlertModule,\n MarketingPopupModule,\n NgbProgressbarModule,\n NgbPopoverModule,\n NgbCarouselModule,\n NgSelectModule,\n BackToParentComponent,\n AddToCartComponent,\n SecondaryFMIconComponent,\n OrderByPipe,\n VideoTutorialIconComponent,\n AssignIconToClaimantsComponent,\n AddIconComponent,\n LogIconComponent,\n DeactivateMinusIconComponent,\n ActivatePlusIconComponent,\n DeactivateMinusIconFalComponent,\n BackManageEmployeeComponent,\n BackToImportComponent,\n ActivatePlusIconFalComponent,\n EditIconForGridComponent,\n PasswordStrengthMeterModule,\n UpdatePlaceholderDirective,\n NumericDirective,\n MinDirective,\n MaxDirective,\n MarkAsteriskDirective,\n ScrollSpyDirective,\n EllipsisModule,\n BlockCutCopyPasteDirective,\n NgxUiLoaderModule,\n LoaderComponent,\n SetAccessRightsComponent,\n AlphaNumericDirective,\n XeroIconComponent,\n TwoDigitDecimaNumberDirective,\n GoToProjectBudgetIconComponent,\n CalendarComponent,\n InformationAlertPanelModule,\n CalendarInGridIconComponent,\n NRFuelComponent,\n FuelCardComponent,\n CategoryIconsComponent,\n dynamicDigitBeforeAndDynamicDigitAfterDecimalNumberDirective,\n TwoDigitBeforeAndTwoDigitAfterDecimalNumberDirective,\n SixDigitBeforeAndAfterDecimalNumberDirective,\n ThreeDigitBeforeAndTwoDigitAfterDecimalNumberDirective,\n FileUploaderComponent,\n FileDirective,\n MileageDetailComponent,\n ViewTagPanelComponent,\n FileDropDirective,\n InformationImagePanelComponent,\n SetupIconComponent,\n SelectForeignCurrencyPanelComponent,\n AttachReceiptOptionsPanelComponent,\n ExpenseMergePanelComponent,\n ViewAttendeeTypePanelComponent,\n AddPassengerLoadPanelComponent,\n WizardComponent,\n InfoModelPopupComponent,\n StripeInvoiceFailedDetailsPanelComponent,\n ReceiptViewerComponent,\n BackToWizardComponent,\n EightDigitBeforeAndTwoDigitAfterDecimalNumberDirective,\n AttachReceiptOptionsPanelComponent,\n MultiButtonAlertPanelComponent,\n ImagePreviewDetailComponent,\n MovableDirective,\n DraggableDirective,\n ViewReceiptComponent,\n ViewDocumentComponent,\n PdfViewerComponent,\n PdfViewerSecondPanelComponent,\n MileageDetailComponent,\n ViewTagPanelComponent,\n InformationImagePanelComponent,\n ViewFormDocumentComponent,\n AttachReceiptOptionsPanelComponent,\n ReceiptViewerComponent,\n ImagePreviewDetailComponent,\n PagetitleComponent,\n WidgetModule,\n EODDateFormatPipe,\n DateFormatPipe,\n ViewFormReceiptComponent,\n StripeAgreementPanelComponent,\n BasicFunctionSubscribedPanelComponent,\n BasicFunctionTrialEndsAlertPanelComponent,\n BasicFunctionExploreAlertPanelComponent,\n DuplicateReceiptPanelComponent,\n ApproverDetailComponent,\n TaxSetupStep0Component,\n ],\n})\nexport class SharedModule {}\n","import { HostListener, Component } from \"@angular/core\";\n\n@Component({\n selector: 'base-component',\n template: '
'\n})\nexport abstract class BaseComponent {\n\n abstract canDeactivate(): boolean;\n\n @HostListener('window:beforeunload', ['$event'])\n unloadNotification($event: any) {\n if (!this.canDeactivate()) {\n $event.returnValue = true;\n }\n }\n}","import { HttpHeaders } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Claims } from 'src/app/_models/common/claims';\nimport { IDefaultParams, DefaultParams, ITimeZoneInfo, TimeZoneInfo } from 'src/app/_models/common/request-response/default-params';\nimport { IDeviceInfo, DeviceInfo } from 'src/app/_models/common/request-response/device-info';\nimport { environment } from 'src/environments/environment';\nimport { ClaimsService } from 'src/app/_services/common/claims.service';\nimport { DatePipe } from '@angular/common';\n@Injectable({ providedIn: \"root\" })\nexport class ClaimsHeaderService {\n currentUser: any;\n logintoken: any;\n claims: Claims;\n token: any;\n orgId: number = 0;\n userId: number = 0;\n organisationCurrency: string;\n defaultParams: IDefaultParams;\n deviceInfo: IDeviceInfo;\n timeZoneInfo: ITimeZoneInfo;\n constructor(private claimsService: ClaimsService,public datepipe: DatePipe) {\n\n }\n\n detectBrowserName() {\n const agent = window.navigator.userAgent.toLowerCase()\n switch (true) {\n case agent.indexOf('firefox') > -1:\n return 'firefox';\n case agent.indexOf('opr') > -1 && !!(window).opr:\n return 'opera'; \n case agent.indexOf('trident') > -1:\n return 'ie';\n case agent.indexOf('edg') > -1:\n return 'edge';\n case agent.indexOf('chrome') > -1 && !!(window).chrome:\n return 'chrome'; \n case agent.indexOf('safari') > -1:\n return 'safari';\n default:\n return 'other';\n }\n }\n\n detectBrowserVersion() {\n let userAgent = navigator.userAgent, tem,\n matchTest = userAgent.match(/(opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [];\n\n if (/trident/i.test(matchTest[1])) {\n tem = /\\brv[ :]+(\\d+)/g.exec(userAgent) || [];\n return 'IE ' + (tem[1] || '');\n }\n if (matchTest[1] === 'Chrome') {\n tem = userAgent.match(/\\b(OPR|Edge)\\/(\\d+)/);\n if (tem != null) return tem.slice(1).join(' ').replace('OPR', 'Opera');\n }\n matchTest = matchTest[2] ? [matchTest[1], matchTest[2]] : [navigator.appName, navigator.appVersion, '-?'];\n if ((tem = userAgent.match(/version\\/(\\d+)/i)) != null) matchTest.splice(1, 1, tem[1]);\n return matchTest.join(' ');\n }\n createLoginAuthorizationHeader(): HttpHeaders { \n this.logintoken = localStorage.getItem(\"loginToken\");\n this.claimsService.currentClaims.subscribe(a => this.claims = a);\n let appVersion = '' + this.claims?.appVersion;\n if (this.claims != undefined && this.claims != null) {\n this.token = this.claims.Token;\n this.orgId = this.claims.OrgId;\n this.userId = this.claims.UserId;\n this.organisationCurrency = this.claims.CurrentOrganisationCurrency;\n this.defaultParams = new DefaultParams(this.orgId, this.userId, this.claims.FinanceManager, Date.now());\n this.deviceInfo = new DeviceInfo(this.organisationCurrency, environment.platform,\n appVersion, environment.appId, environment.deviceId, this.detectBrowserName(), this.detectBrowserVersion());\n this.defaultParams.deviceInfo = this.deviceInfo;\n this.defaultParams.timeZoneInfo = this.fnGetTimeZoneInfo();\n }\n else {\n this.token = this.logintoken;\n }\n\n var headers: any = {\n \"Content-Type\": \"application/json\",\n \"DefaultParams\": JSON.stringify(this.defaultParams),\n \"Authorization\": `Bearer ${this.logintoken}`,\n 'Ocp-Apim-Subscription-Key': environment.apimSubscriptionKey,\n 'Ocp-Apim-Trace': environment.apimTraceEnabled,\n };\n\n return new HttpHeaders(headers);\n\n }\n\n createLoginAuthorizationHeaderWithoutContentTypeHeader(): HttpHeaders {\n this.logintoken = localStorage.getItem(\"loginToken\");\n this.claimsService.currentClaims.subscribe(a => this.claims = a);\n if (this.claims != undefined && this.claims != null) {\n let appVersion = '' + this.claims?.appVersion;\n this.token = this.claims.Token;\n this.orgId = this.claims.OrgId;\n this.userId = this.claims.UserId;\n this.organisationCurrency = this.claims.CurrentOrganisationCurrency;\n this.defaultParams = new DefaultParams(this.orgId, this.userId, this.claims.FinanceManager, Date.now());\n this.deviceInfo = new DeviceInfo(this.organisationCurrency, environment.platform,\n appVersion, environment.appId, environment.deviceId, this.detectBrowserName(), this.detectBrowserVersion());\n this.defaultParams.deviceInfo = this.deviceInfo;\n this.defaultParams.timeZoneInfo = this.fnGetTimeZoneInfo();\n }\n else {\n this.token = this.logintoken;\n }\n\n var headers: any = {\n \"DefaultParams\": JSON.stringify(this.defaultParams),\n \"Authorization\": `Bearer ${this.logintoken}`,\n 'Ocp-Apim-Subscription-Key': environment.apimSubscriptionKey,\n 'Ocp-Apim-Trace': environment.apimTraceEnabled,\n };\n\n return new HttpHeaders(headers);\n\n } \n fnGetTimeZoneInfo()\n {\n this.timeZoneInfo = new TimeZoneInfo();\n this.timeZoneInfo.localDateString = this.datepipe.transform(this.getUTCTimeStamp(new Date()), environment.dateFormat);\n this.timeZoneInfo.timeZoneOffset = this.fnClientTimeZoneOffset();\n return this.timeZoneInfo;\n }\n fnClientTimeZoneOffset() {\n const dt = new Date();\n return dt.getTimezoneOffset();\n}\n getUTCTimeStamp(date:Date) {\n let now_utc = Date.UTC(\n date.getUTCFullYear(),\n date.getUTCMonth(),\n date.getUTCDate(),\n date.getUTCHours(),\n date.getUTCMinutes(),\n date.getUTCSeconds(),\n date.getUTCMilliseconds()\n );\n\n return now_utc;\n}\n\n}\n","import { Component, Input, Output, EventEmitter, AfterViewInit } from \"@angular/core\";\nimport { UntypedFormGroup } from \"@angular/forms\";\nimport { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';\nimport { DynamicFormService } from './dynamic-form.service';\n\n@Component({\n selector: \"dynamic-form\",\n templateUrl: \"./dynamic-form.component.html\",\n styleUrls: [\"./dynamic-form.component.scss\"],\n})\nexport class DynamicFormComponent implements AfterViewInit {\n\n @Input(\"model\")\n model: any;\n @Input(\"fields\")\n fields: FormlyFieldConfig[];\n\n options: FormlyFormOptions = {};\n\n @Output()\n onSubmitForm = new EventEmitter();\n\n public form = new UntypedFormGroup({});\n\n initialValues: any;\n\n constructor(private dynamicFormService: DynamicFormService) {\n }\n\n ngAfterViewInit() {\n this.initialValues = this.model ? this.model : {};\n }\n\n onSubmit() {\n this.dynamicFormService.onFormSubmitted(true);\n this.onSubmitForm.emit(this.model);\n }\n}\n","\n
\n \n
","import { Injectable } from '@angular/core';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { Observable, Subject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DynamicFormService {\n\n private static isFormSubmittedSubject: Subject = new Subject();\n private static valueChangeSubject: Subject = new Subject();\n private static openPanelSubject: Subject = new Subject();\n\n constructor() {\n }\n\n public onFormSubmitted(isSubmitted: boolean) {\n DynamicFormService.isFormSubmittedSubject.next(isSubmitted);\n }\n\n public getFormSubmittedEvent(): Observable {\n return DynamicFormService.isFormSubmittedSubject.asObservable();\n }\n\n public getValueChangeEvent(): Observable {\n return DynamicFormService.valueChangeSubject.asObservable();\n }\n\n public onValueChange(data: any) {\n DynamicFormService.valueChangeSubject.next(data);\n }\n\n public getOpenPanelEvent(): Observable {\n return DynamicFormService.openPanelSubject.asObservable();\n }\n\n public onOpenPanel(key: string) {\n DynamicFormService.openPanelSubject.next(key);\n }\n\n getField(key: string, fields: FormlyFieldConfig[]): FormlyFieldConfig {\n for (let i = 0, len = fields.length; i < len; i++) {\n const f = fields[i];\n if (f.key === key) {\n return f;\n }\n\n if (f.fieldGroup && !f.key) {\n const cf = this.getField(key, f.fieldGroup);\n if (cf) {\n return cf;\n }\n }\n }\n }\n\n}\n","import { FormlyFieldConfig } from \"@ngx-formly/core\";\n\nexport function GetField(key: string, fields: FormlyFieldConfig[]): FormlyFieldConfig {\n for (let i = 0, len = fields.length; i < len; i++) {\n const f = fields[i];\n if (f.key === key) {\n return f;\n }\n\n if (f.fieldGroup && !f.key) {\n const cf = GetField(key, f.fieldGroup);\n if (cf) {\n return cf;\n }\n }\n }\n}","
\n
\n
\n
\n
\n

{{'select_passenger_load' | translate:param}}

\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n \"\"\n \n
\n
\n \n \n \n ({{item.allowanceDescription}})\n
\n
\n
\n
\n
4\">\n \n \"\"\n \n
\n
4\">\n \n \n \n ({{item.allowanceDescription}})\n
\n
\n
\n
\n
\n
\n
","import { OnInit, Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { DatePipe } from \"@angular/common\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { FormBuilder } from \"@angular/forms\";\nimport { MileageAllowance } from \"src/app/_models/claimant-on-web/claimant-on-web\";\n\n@Component({\n selector: \"add-passenger-load-panel\",\n templateUrl: \"./add-passenger-load-panel.component.html\"\n})\nexport class AddPassengerLoadPanelComponent extends BaseComponent implements OnInit {\n\n @Input()\n inputData: MileageAllowance[];\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n currentUserSubscription: Subscription;\n userActionEventSubscription: Subscription;\n claims: Claims;\n param: any;\n isCreateTagsFormSubmitted: boolean = false;\n disableSubmitButton: boolean = false;\n\n constructor(\n public datepipe: DatePipe,\n private claimsService: ClaimsService,\n private alertService: AlertService,\n public fb: FormBuilder,\n ) {\n super();\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n\n this.observeUnsavedChangesAlerts();\n }\n ngOnInit(): void {\n }\n canDeactivate(): boolean {\n return true;\n }\n\n observeUnsavedChangesAlerts() {\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n fnSelectPassengerLoad(item: MileageAllowance) {\n if (item) {\n this.selectItemEvent.emit(item)\n }\n }\n fnCheckForItems() {\n let items = this.inputData.filter(a => a.allowanceId > 3);\n if (items && items.length > 0) {\n return true;\n }\n else {\n return false;\n }\n }\n}\n","
\n
\n
\n
\n
\n

{{'policy_violation_2' | translate}}

\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n {{ \"advance_limit\" | translate }}\n \n {{ inputData.advanceLimit }}\n \n
  • \n
  • \n {{ \"advance_balance\" | translate }}\n \n {{ inputData.advanceBalance }}\n \n
  • \n
  • \n {{ \"advance_amount\" | translate }}\n \n {{ inputData.amount }}\n \n
  • \n
  • \n {{ \"advance_above_limit\" | translate }}\n \n {{ inputData.advanceOverLimit }}\n \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n {{'justification_notes' | translate}}\n \n
\n
\n \n \n
\n {{ \"label_Required\" | translate }}\n
\n
\n

\n \n 190 }\">\n {{inputData.justificationNotes?inputData.justificationNotes.length:0}}/200\n \n \n

\n
\n
\n
\n
\n
\n
\n","import { OnInit, Component, EventEmitter, Input, Output } from \"@angular/core\";\n\n@Component({\n selector: \"advance-policy-violation-panel\",\n templateUrl: \"./advance-policy-violation-panel.component.html\"\n})\nexport class AdvancePolicyViolationPanelComponent implements OnInit {\n @Input()\n inputData: any;\n @Output() closePanelEvent = new EventEmitter();\n\n showPolicyViolation: boolean = false;\n isNoteError: boolean = false;\n hasFormChanges: boolean = false;\n openSectionName = \"advanceCappingLimit\";\n advanceCappingLimit = false;\n\n ngOnInit() {\n this.advanceCappingLimit = true;\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit();\n }\n\n fnSubmitPanel() {\n if (this.inputData.justificationNotes && this.inputData.justificationNotes.trim()) {\n this.closePanelEvent.emit(this.inputData.justificationNotes.trim());\n } else {\n this.isNoteError = true;\n }\n }\n\n}\n","
\n
\n
\n
\n
\n

{{\"attach\" | translate}}

\n
\n
\n \n
\n
\n
\n
\n
\n
\n
    \n
  • \n \n \n \n {{ \"upload_receipt_and_pdf\" | translate:param }}\n \n \n \n \n {{ \"upload_document_and_pdf\" | translate:param }}\n \n
  • \n
  • \n \n \n {{ \"saved_and_emailed_receipts\" | translate:param }}\n \n
  • \n
\n
\n
\n
\n
\n
","import { OnInit, Component, EventEmitter, Input, Output, AfterViewInit } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"../../../../_models/common/claims\";\nimport { ClaimsService } from \"../../../../_services/common/claims.service\";\n\n@Component({\n selector: \"attach-receipt-options-panel\",\n templateUrl: \"./attach-receipt-options-panel.component.html\"\n})\nexport class AttachReceiptOptionsPanelComponent implements OnInit, AfterViewInit {\n // @Input()\n // inputData: AttachReceiptOptionsInputModel;\n @Output() closePanelEvent = new EventEmitter();\n @Output() showFilePickerEvent = new EventEmitter();\n @Output() showExpenseMergePanelEvent = new EventEmitter();\n @Input() hideSavedEmailReciepts: boolean;\n userType:number;\n param: any;\n claims: Claims;\n constructor(\n private translate: TranslateService,\n private claimsService: ClaimsService\n ) { \n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n this.userType = this.claims.userType??0;\n });\n }\n\n ngOnInit() { }\n\n ngAfterViewInit() { }\n\n fnCloseAttachReceiptOptionsPanel() {\n this.closePanelEvent.emit(null);\n }\n\n fnShowFilePicker() {\n this.showFilePickerEvent.emit(null);\n }\n\n fnShowExpenseMergePanel() {\n this.showExpenseMergePanelEvent.emit(null);\n }\n}\n","
\n\n
0)\" id=\"rightSideBar\">\n
\n
\n
\n

{{\"reciepts_email\" | translate}}

\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
    \n
  • \n

    {{'send_your_receipt_on_email_to'\n | translate:param}}:\n receipts@expenseondemand.com\n

    \n
  • \n\n
  • \n

    {{'view_and_review_all_receips_in_incomplete_expenses'\n | translate:param}}\n

    \n
  • \n\n
  • \n

    {{'attach_add_to_expenses_and_submit_note1'\n | translate:param}}\n \n {{'attach_add_to_expenses_and_submit_note2' | translate:param}}\n

    \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n\n\n\n
0\" id=\"rightSideBar\">\n
\n
\n
\n

{{'saved_and_emailed_receipts' | translate:param}}

\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n
\n

\n {{ \"no_data_available\" | translate: param }}

\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 {{'text_category' | translate:param}}\n {{'ExpenseDate' | translate:param}}Amount ({{localOrgCurrency}})\n {{'text_supplier' | translate:param}}{{'text_notes' | translate:param}}
\n {{getOrgCategoryName(item.orgExpenseCategoryId)}}{{item.expenseDate | date: 'dd-MMM-yyyy'}}{{ item.amount | number: '.2-2' | noComma }}\n {{item.supplier}}{{item.notes}}
\n \n\n \n
\n\n \n \n \n {{item.receiptInfo ? item.receiptInfo.length : 0}}\n \n \n\n \n \n \n {{item.tagList ? item.tagList.length : 0}}\n \n \n\n \n \n \n\n
\n \n
\n
\n
\n
\n
\n
\n\n\n\n\n\n\n\n\n\n\n\n \n\n","import { OnInit, Component, EventEmitter, Input, Output, AfterViewInit, ViewChild } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { first } from \"rxjs/operators\";\nimport { ViewReceiptComponent } from \"src/app/shared/panels/view-receipt/view-receipt.component\";\nimport { IApiresponse } from \"src/app/_models\";\nimport { ExpenseMergeInputModel, ExpenseMergePanelOutputModel, GetReceiptExpensesWithAttachmentRequest, IGetReceiptExpensesWithAttachmentRequest, IGetReceiptExpensesWithAttachmentResponse, ReceiptExpenseDetails, ViewVoiceMemoInputModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { ExpenseCategoryRequest, ExpenseCategoryRequestInfo } from \"src/app/_models/claimant/expense-category-request\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ApiRequest } from \"src/app/_models/common/request-response/api-request\";\nimport { IReceiptInfo } from \"src/app/_models/twostepapproval/claimant-expense-detail\";\nimport { ExpenseCategoryService } from \"src/app/_services\";\nimport { ClaimantOnWebService } from \"src/app/_services/claimant-on-web/claimant-on-web.service\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { environment } from \"src/environments/environment\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport { Subscription } from \"rxjs\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\n\n@Component({\n selector: \"expense-merge-panel\",\n templateUrl: \"./expense-merge-panel.component.html\"\n})\nexport class ExpenseMergePanelComponent implements OnInit, AfterViewInit {\n @Input()\n inputData: ExpenseMergeInputModel;\n @Output()\n closePanelEvent = new EventEmitter();\n @Output()\n savePanelEvent = new EventEmitter();\n param: any;\n localOrganisationId: any;\n localUserId: any;\n claims: Claims;\n receiptExpenseList: ReceiptExpenseDetails[];\n filteredReceiptExpenseList: ReceiptExpenseDetails[];\n gridFilterItems = [\n { id: 0, name: this.translate.instant(\"All\") },\n { id: 1, name: this.translate.instant(\"Emailed Receipts\") },\n { id: 2, name: this.translate.instant(\"Receipts created via App\") }\n ];\n statusValue: number = 0;\n localOrgCurrency: string = \"\";\n orgExpenseCategoryList = [];\n selectedExpenseIds = [];\n showViewVoiceMemoPanel: boolean = false;\n viewVoiceMemoInputModel: ViewVoiceMemoInputModel;\n viewTagList = [];\n showViewTagPanel: boolean = false;\n @ViewChild('viewReceiptComponent') viewReceiptComponent: ViewReceiptComponent;\n receiptCount: number = 1;\n viewReceiptsList = [];\n\n showMoreThanOneRecordAlert: boolean = false;\n moreThanOneRecordAlertModel: AlertPanelModel;\n isMoreThanOneRecordAlertDone: boolean = false\n\n receiptLimitAlertPopupModel: AlertPanelModel;\n showReceiptLimitAlertPopup: boolean = false;\n isSaveEnabled:boolean;\n hasFormChanges:boolean;\n userActionEventSubscription: Subscription;\n\n constructor(\n private translate: TranslateService,\n private claimsService: ClaimsService,\n private claimantOnWebService: ClaimantOnWebService,\n private expenseCategoryService: ExpenseCategoryService,\n private alertService: AlertService,\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n this.localUserId = this.claims.UserId;\n this.localOrganisationId = this.claims.OrgId;\n this.localOrgCurrency = this.claims.CurrentOrganisationCurrencyCode;\n });\n this.fnObserveUnsavedChangesAlerts();\n }\n\n ngOnInit() {\n this.selectedExpenseIds = this.inputData.mergeExpenseIds;\n this.fnGetOrgExpenseCategoryList();\n this.fnGetReceiptExpensesWithAttachment()\n }\n\n fnObserveUnsavedChangesAlerts() {\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(this.inputData);\n }\n });\n }\n\n canDeactivate(): boolean {\n return !this.hasFormChanges;\n }\n\n ngAfterViewInit() { }\n\n fnSavePanel() {\n\n let outputModel = this.generateOutputModel();\n\n let selectedReceiptCount = 0;\n let availableReceiptCount = 0;\n\n if (outputModel && outputModel.receiptList) {\n selectedReceiptCount = outputModel.receiptList.length;\n }\n if (this.inputData && this.inputData.receiptInfo) {\n availableReceiptCount = this.inputData.receiptInfo.length;\n }\n if ((selectedReceiptCount) > 5) //Not allowed more than 5 for an item.\n {\n this.fnShowReciptLimitAlert();\n return;\n }\n\n this.savePanelEvent.emit(outputModel);\n }\n\n fnClosePanel() {\n \n if (this.canDeactivate()) {\n this.closePanelEvent.emit(this.inputData);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n fnGetReceiptExpensesWithAttachment() {\n let request = new ApiRequest(\"GetReceiptExpensesWithAttachment\", environment.applicationVersion, environment.requestId);\n let requestInfo = new GetReceiptExpensesWithAttachmentRequest(this.inputData.orgId, this.inputData.userId, this.inputData.expenseId);\n request.requestInfo = requestInfo;\n\n this.claimantOnWebService.GetReceiptExpensesWithAttachment(request)\n .pipe(first())\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.receiptExpenseList = response.responseInfo.expenseList;\n this.filteredReceiptExpenseList = this.receiptExpenseList;\n }\n });\n }\n\n fnFilterChanged() {\n switch (this.statusValue) {\n case 0:\n this.filteredReceiptExpenseList = this.receiptExpenseList;\n break;\n case 1:\n this.filteredReceiptExpenseList = this.receiptExpenseList.filter(a => a.receiptInfo && a.receiptInfo.some(b => b.isEmailedReceipt == true));\n break;\n case 2:\n this.filteredReceiptExpenseList = this.receiptExpenseList.filter(a => a.receiptInfo && a.receiptInfo.some(b => b.isEmailedReceipt == false));\n break;\n default:\n break;\n }\n this.selectedExpenseIds = [];\n }\n\n fnGetOrgExpenseCategoryList() {\n let request = new ExpenseCategoryRequest();\n request.WebApiName = \"GetExpenseCategoryByID\";\n request.WebApiVersion = environment.applicationVersion;\n request.RequestId = Number(environment.requestId);\n\n request.RequestInfo = new ExpenseCategoryRequestInfo();\n request.RequestInfo.OrgId = this.claims.OrgId;\n request.RequestInfo.LastUpdatedTimeStamp = 0;\n\n this.expenseCategoryService\n .getOrgExpenseCategory(request)\n .pipe(first())\n .subscribe((response) => {\n if (response.responseInfo != null) {\n let resData = response.responseInfo;\n this.orgExpenseCategoryList = resData.categories;\n }\n });\n }\n\n getOrgCategoryName(catId: number) {\n return this.orgExpenseCategoryList.filter(a => a.orgExpenseCategoryId == catId).map(b => b.expenseCategoryName);\n }\n\n fnSelectExpenseId(expenseId: number) {\n this.hasFormChanges = true;\n this.isSaveEnabled = true;\n let isAvailable = this.selectedExpenseIds.includes(expenseId);\n if (isAvailable) {\n this.selectedExpenseIds = this.selectedExpenseIds.filter(a => a != expenseId);\n } else {\n this.selectedExpenseIds.push(expenseId);\n\n if (this.selectedExpenseIds.length > 1 && this.selectedExpenseIds.length < 3) {\n this.fnShowMoreThanOneRecordAlert();\n }\n }\n }\n\n isExpenseChecked(expenseId) {\n \n return this.selectedExpenseIds.includes(expenseId);\n }\n\n generateOutputModel() {\n let tagsList = [];\n let voiceMemoList = [];\n let receiptList = [];\n let notesList = [];\n this.selectedExpenseIds.forEach(element => {\n let selectedItem = this.receiptExpenseList.filter(a => a.expenseId == element);\n if (selectedItem && selectedItem.length > 0 && selectedItem[0].receiptInfo && selectedItem[0].receiptInfo.length > 0) {\n receiptList.push(...selectedItem[0].receiptInfo);\n }\n if (selectedItem && selectedItem.length > 0 && selectedItem[0].tagList && selectedItem[0].tagList.length > 0) {\n tagsList.push(...selectedItem[0].tagList);\n }\n if (selectedItem && selectedItem.length > 0 && selectedItem[0].memoInfo) {\n voiceMemoList.push(selectedItem[0].memoInfo);\n }\n if (selectedItem && selectedItem.length > 0 && selectedItem[0].notes && selectedItem[0].notes.trim().length > 0) {\n notesList.push(selectedItem[0].notes.trim());\n }\n });\n\n let outputModel = new ExpenseMergePanelOutputModel();\n outputModel.selectedExpenseIds = this.selectedExpenseIds;\n outputModel.tagsList = tagsList.filter((n, i) => tagsList.indexOf(n) === i);\n outputModel.receiptList = receiptList;\n outputModel.voiceMemoList = voiceMemoList;\n outputModel.notesList = notesList;\n return outputModel;\n }\n\n fnShowViewVoiceMemoPanel(memoName, memoURL) {\n this.viewVoiceMemoInputModel = new ViewVoiceMemoInputModel(memoName, memoURL);\n this.showViewVoiceMemoPanel = true;\n }\n\n fnShowViewTagPanel(tagList) {\n this.viewTagList = tagList;\n this.showViewTagPanel = true;\n }\n\n fnShowReceiptsPanel(items: IReceiptInfo[]) {\n this.receiptCount = items.length;\n this.viewReceiptsList = items;\n this.viewReceiptComponent.fnShowReceiptsPanel(items);\n }\n\n\n fnShowMoreThanOneRecordAlert() {\n\n if (!this.isMoreThanOneRecordAlertDone) {\n\n this.moreThanOneRecordAlertModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [this.translate.instant(\"more_than_one_expense_selected_msg\")],\n '',\n this.translate.instant(\"label_ok\"),\n true,\n ''\n );\n this.showMoreThanOneRecordAlert = true;\n }\n }\n\n fnThanOneRecordAlertPanelReceiver(returnValue) {\n this.showMoreThanOneRecordAlert = false;\n this.isMoreThanOneRecordAlertDone = true;\n }\n\n\n fnShowReciptLimitAlert() {\n this.receiptLimitAlertPopupModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [this.translate.instant(\"receipt_limit_alert\")],\n \"\",\n this.translate.instant(\"label_ok\"),\n true,\n \"\"\n );\n this.showReceiptLimitAlertPopup = true;\n }\n\n fnReceiptLimitPopupReceiver() {\n this.showReceiptLimitAlertPopup = false;\n }\n\n\n}\n","
\n
\n
\n
\n
\n

{{ panelHeader }}

\n
\n
\n
0\">\n \n
\n \n\t\t\t\t\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
0)\">\n
\n
\n \n

\n {{ 'multiple_legs_list' | translate }}\n {{ 'total_legs' | translate }}:  {{gridData.length}} | {{ 'total_distance' | translate }}: \n {{this.fnGetTotalDistanceOflegs()}} {{mileageUOMText}} \n {{ 'total_legs' | translate }}:  {{gridData.length}} | {{ 'total_distance' | translate }}: \n {{this.fnGetTotalDistanceOflegs()}} {{mileageUOMText}} | {{ 'carbon_emission' | translate }}: {{this.fnGetTotalCarbonEmission()}} {{carbonEmissionText}} \n

\n \n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n","import { OnInit, Component, ViewChild, Output, EventEmitter, Input } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { environment } from \"src/environments/environment\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { ApiRequest, IApiresponse, MileageUOMEnum, JourneyTypeEnum } from \"src/app/_models\";\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\nimport {\n CalculateMileageResponse, MultipleLegsPopupModel, MileageAllowance,\n IResourceMileageDetailsResponse, MileageData, CalculateMileageRequest,\n Mileage\n} from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { AlertPanelModel } from 'src/app/_models/common/alertPanelModel';\nimport { ClaimantOnWebService } from \"src/app/_services/claimant-on-web/claimant-on-web.service\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ColDef } from \"ag-grid-community\";\nimport { GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { ViewReceiptComponent } from \"src/app/shared/panels/view-receipt/view-receipt.component\";\nimport { BaseCategoryTypeEnum } from \"../../../../_models\";\nimport { KeyObject } from \"crypto\";\n\n@Component({\n selector: \"multiple-legs-panel\",\n templateUrl: \"./multiple-legs-panel.component.html\"\n})\nexport class MultipleLegsPanelComponent implements OnInit {\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n @ViewChild('viewReceiptComponent') viewReceiptComponent: ViewReceiptComponent;\n\n @Input() inputModel: MultipleLegsPopupModel;\n @Input() mileageAllowance: MileageAllowance[];\n @Input() resourceMileageDetails: IResourceMileageDetailsResponse;\n @Input() vehicleResponse: any;\n @Input() expenseModel: any;\n @Input() isCarbonFootprintReporting : boolean;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() submitEvent = new EventEmitter();\n\n claimsSubscription: Subscription;\n userActionEventSubscription: Subscription;\n claims: Claims;\n hasFormChanges: boolean;\n isMileageCategory : boolean;\n gridData: any[] = [];\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n gridFilterStatus: number = 0;\n defaultSortColumn: string = 'sequence';\n defaultSortOrder: string = 'asc';\n\n disableSaveButton: boolean = false;\n mileageUOMText: string;\n selectedMileageUniqueId: number;\n calculateMileageDetails: CalculateMileageResponse;\n\n showAddJourneyPanel: boolean = false;\n addJourneyInputModel: MultipleLegsPopupModel;\n\n showDeleteConfirmationAlert: boolean = false;\n deleteConfirmationAlertModel: AlertPanelModel;\n\n showOneAddJourneyAlert: boolean = false;\n oneAddJourneyAlertModel: AlertPanelModel;\n\n //View Receipts\n milesTravelled: any;\n triangulationMiles: any;\n detourMiles: any;\n receiptAmount: number;\n distance: any;\n mileageRate: string;\n mileageArray: any;\n panelHeader : string;\n legsCount:number;\n carbonEmissionText:string;\n isNotMileageCategory: boolean;\n constructor(\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private toastr: ToastrService,\n private alertService: AlertService,\n private ngxService: NgxUiLoaderService,\n private claimantOnWebService: ClaimantOnWebService,\n ) {\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n this.fnObserveUnsavedChangesAlerts();\n }\n\n ngOnInit(): void {\n this.fnGetPanelHeader(this.isCarbonFootprintReporting);\n if (this.inputModel) {\n this.mileageUOMText = this.inputModel.mileageUOM == MileageUOMEnum.Kilometre ? this.translate.instant(\"text_km\") : this.translate.instant(\"text_m\");\n this.carbonEmissionText = this.translate.instant('text_carbonemission');\n this.isMileageCategory = this.inputModel.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle;\n this.isNotMileageCategory = !(this.inputModel.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle\n || this.inputModel.baseCategoryId == BaseCategoryTypeEnum.Mileage ||\n this.inputModel.baseCategoryId == BaseCategoryTypeEnum.MileageGPS)\n this.fnInitialiseGrid();\n this.gridData = this.inputModel.multipleLegList;\n }\n this.fnRefreshMultipleLegsDetails();\n }\n\n fnGetPanelHeader(isCarbonFootprintReporting)\n {\n switch(isCarbonFootprintReporting)\n {\n case false : this.panelHeader = this.translate.instant('multiple_legs');\n this.legsCount = 12;\n break;\n case true : this.panelHeader = this.translate.instant('carbon_emission_footprint_details');\n this.legsCount = 5;\n break;\n } \n\n if(this.inputModel.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle\n || this.inputModel.baseCategoryId == BaseCategoryTypeEnum.Mileage ||\n this.inputModel.baseCategoryId == BaseCategoryTypeEnum.MileageGPS)\n { this.panelHeader = this.translate.instant('multiple_legs');\n this.legsCount = 12;\n }\n }\n\n fnObserveUnsavedChangesAlerts() {\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n }\n\n canDeactivate(): boolean {\n return !this.hasFormChanges;\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n\n fnInitialiseGrid() {\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n }\n\n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant('text_leg'),\n field: 'sequence',\n resizable: true,\n suppressMenu: true,\n minWidth: 25\n },\n {\n headerName: this.translate.instant('from_location'),\n field: 'fromAddress',\n resizable: true,\n suppressMenu: true,\n minWidth: 250\n },\n {\n headerName: this.translate.instant('to_location'),\n field: 'toAddress',\n resizable: true,\n suppressMenu: true,\n minWidth: 250\n },\n {\n headerName: `${this.translate.instant('text_distance')} (${this.mileageUOMText})`,\n field: 'distance',\n resizable: true,\n suppressMenu: true,\n minWidth: 100,\n headerClass: 'text-right',\n cellClass: 'text-right',\n cellRenderer: 'amountRenderer'\n }]\n if(this.isCarbonFootprintReporting)\n {\n this.gridColumnDefs.push(\n {\n headerName: `${this.translate.instant('carbon_emission')} (${this.carbonEmissionText})`,\n field: 'carbonFootprint',\n resizable: true,\n suppressMenu: true,\n minWidth: 100,\n headerClass: 'text-right',\n cellClass: 'text-right',\n cellRenderer: 'amountRenderer'\n });\n }\n if(this.expenseModel.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle)\n {\n this.gridColumnDefs.push(\n {\n headerName: `${this.translate.instant('detour')} (${this.mileageUOMText})`,\n field: 'detour',\n resizable: true,\n suppressMenu: true,\n minWidth: 100,\n headerClass: 'text-right',\n cellClass: 'text-right',\n cellRenderer: 'amountRenderer'\n },\n {\n headerName: this.translate.instant('text_passenger_load'),\n field: 'allowanceDescription',\n resizable: true,\n suppressMenu: true,\n minWidth: 150\n },\n {\n headerName: this.translate.instant('label_notes'),\n field: 'notes',\n resizable: true,\n suppressMenu: true,\n minWidth: 100\n });\n }\n\n this.gridColumnDefs.push({\n headerName: \"\",\n valueGetter: 'data.sequence',\n cellRenderer: 'actionRenderer',\n field: 'userActionField',\n resizable: true,\n suppressMenu: true,\n minWidth: 100,\n headerComponentParams:\n [\n {\n buttonClass: 'fas fa-level-down-alt fa-rotate-90 top-2px position-relative text-logo-blue',\n buttonTooltip: this.translate.instant('text_return'),\n userAction: \"return\",\n hideProperty: \"hideJourney\",\n },\n {\n buttonClass: 'fas fa-edit color-green',\n buttonTooltip: this.translate.instant('label_edit'),\n userAction: \"edit\"\n },\n {\n buttonClass: 'fal fa-trash-alt color-red',\n buttonTooltip: this.translate.instant('text_delete'),\n userAction: \"delete\",\n },\n\n ]\n }); \n }\n\n fnGetGridConfigItems() {\n this.gridConfigItems = new GridConfig(\n true,\n true,\n this.defaultSortColumn,\n \"sequence\",\n this.gridFilterStatus,\n false,\n [],\n true,\n true,\n false,\n null,\n this.defaultSortOrder,\n 40,\n this.translate.instant('no_data_availabe'),\n null,\n null,\n false,\n false,\n '',\n '',\n false\n );\n }\n\n fnMapGridList() {\n this.gridData = this.gridData.map(item => {\n\n //show return only in last\n if (item.sequence == this.gridData.length && item.sequence < this.legsCount) {\n item.hideJourney = false;\n }\n else {\n item.hideJourney = true;\n }\n //map some objects\n item.allowanceDescription = item.mileageAllowance?.allowanceDescription;\n item.fromAddress = item.fromLocation?.location;\n item.toAddress = item.toLocation?.location;\n return item;\n });\n }\n\n fnOnGridRefresh() {\n this.fnMapGridList();\n\n this.fnGetGridConfigItems();\n\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n\n fnRefreshMultipleLegsDetails() {\n //step 1\n this.fnRearranceLegsSequence();\n //step 2\n this.fnRearrangeLegsAddress();\n //step 3\n this.fnCalculateMileageMultipleLeg();\n }\n\n fnRearranceLegsSequence() {\n let sequence = 1;\n this.gridData.forEach((row) => {\n if (row) {\n row.sequence = sequence;\n sequence = sequence + 1;\n }\n });\n }\n\n fnRearrangeLegsAddress() {\n if (this.gridData && this.gridData.length > 1) {\n this.gridData.forEach((row, index) => {\n if (row && index > 0) {\n let previousAddress = this.gridData.find(item => item.sequence == row.sequence - 1);\n let nextAddress = this.gridData.find(item => item.sequence == row.sequence + 1);\n row.fromLocation = previousAddress ? previousAddress.toLocation : row.fromLocation;\n row.toLocation = nextAddress ? nextAddress.fromLocation : row.toLocation;\n }\n });\n }\n }\n\n fnCalculateMileageMultipleLeg() {\n\n // Start Loader\n\n this.ngxService.start();\n\n let vehicleId = 0;\n\n let defaultVehicle = this.vehicleResponse.find(it => it.isDefault);\n if (defaultVehicle) {\n vehicleId = defaultVehicle.vehicleId\n }\n\n let request = new ApiRequest(\"CalculateMileageMultipleLeg\", environment.applicationVersion, environment.requestId);\n let requestInfo = new CalculateMileageRequest();\n requestInfo.baseCategoryId = this.expenseModel.baseCategoryId;\n requestInfo.orgExpenseCategoryId = this.expenseModel.orgExpenseCategoryId;\n requestInfo.journeyType = JourneyTypeEnum.Multiple;\n let vehicleDetail = this.vehicleResponse.find(it => it.vehicleId == this.expenseModel.mileage.vehicleId);\n requestInfo.orgVehicleTypeMapId = (this.inputModel.isMultipleVehiclePurchase\n ? (vehicleDetail ? vehicleDetail.orgVehicleTypeMapId : 0)\n : this.resourceMileageDetails ? this.resourceMileageDetails.vehicleDetailResponse.orgVehicleTypeMapId : 0);\n\n requestInfo.vehicleTypeId = (this.inputModel.isMultipleVehiclePurchase\n ? (vehicleDetail ? vehicleDetail.vehicleTypeId : 0)\n : this.resourceMileageDetails ? this.resourceMileageDetails.vehicleDetailResponse.vehicleTypeId : 0);\n\n requestInfo.vehicleId = (this.inputModel.isMultipleVehiclePurchase ? this.expenseModel.mileage.vehicleId : vehicleId);\n requestInfo.mileageDateDetails = this.fnCalculateMileageMultipleLegRequest();\n requestInfo.userId = this.inputModel.claimantId;\n requestInfo.orgID = this.claims.OrgId;\n request.requestInfo = requestInfo;\n this.claimantOnWebService.CalculateMileageMultipleLeg(request).subscribe((response: IApiresponse) => {\n //Stop Loader\n this.ngxService.stop();\n\n if (response.responseInfo != null) {\n if (response.errorInfo && response.errorInfo.length > 0) {\n this.expenseModel.disabledCalculateBtn = false;\n this.ShowGoogleServiceErrorPanel();\n }\n else {\n\n this.calculateMileageDetails = response.responseInfo;\n if (this.calculateMileageDetails && this.calculateMileageDetails.mileageDetailList\n && this.calculateMileageDetails.mileageDetailList.length > 0 &&\n this.calculateMileageDetails.mileageDetailList[0].totalTriangulatedDistance) {\n for (let index = 0; index < this.calculateMileageDetails.mileageDetailList[0].sourceDestinationInformation.length; index++) {\n let journey = this.calculateMileageDetails.mileageDetailList[0].sourceDestinationInformation[index];\n journey.totalTriangulatedDistanceText = this.translate.instant(\"passenger_load_step_10_msg\")\n + '' + this.translate.instant(\"passenger_load_step_11_msg\")\n + journey.triangulatedDistance.toFixed(2).toString()\n + ' ' + (this.expenseModel.mileage.mileageUOM == MileageUOMEnum.Kilometre ? 'km' : 'm')\n + ''\n + this.translate.instant(\"passenger_load_step_12_msg\");\n \n }\n }\n this.fnBindCalculatedLegsDetails();\n this.fnOnGridRefresh();\n }\n }\n\n });\n }\n\n fnCalculateMileageMultipleLegRequest() {\n\n let vehicleId = 0;\n\n let defaultVehicle = this.vehicleResponse.find(it => it.isDefault);\n if (defaultVehicle) {\n vehicleId = defaultVehicle.vehicleId\n }\n let journeyType = JourneyTypeEnum.Multiple;\n let mileage = new MileageData();\n mileage.journeyType = journeyType;\n mileage.mileageDate = new Date(this.expenseModel.expenseDate).valueOf();\n mileage.operationalInformation = null;\n mileage.vehicleId = (this.inputModel.isMultipleVehiclePurchase ? this.expenseModel.mileage.vehicleId : vehicleId);\n mileage.customMileageRate = this.resourceMileageDetails ? this.resourceMileageDetails.customMileageRate : null;\n mileage.sourceDestinationInformation = this.gridData;\n let mileageData = [];\n mileageData.push(mileage);\n return mileageData;\n }\n\n fnBindCalculatedLegsDetails() {\n let sourceDestinationInformation = this.calculateMileageDetails.mileageDetailList[0].sourceDestinationInformation;\n if (sourceDestinationInformation && sourceDestinationInformation.length > 0) {\n this.gridData.forEach((row, index) => {\n if (row) {\n let calculatedDetails = sourceDestinationInformation[index];\n if (calculatedDetails) {\n row.distance = calculatedDetails.distance;\n row.totalDistance = calculatedDetails.totalDistance;\n row.carbonFootprint = calculatedDetails.carbonFootprint;\n }\n }\n });\n }\n }\n\n fnGetTotalDistanceOflegs() {\n let totalDistance = 0;\n if (this.gridData && this.gridData.length > 0) {\n this.gridData.forEach((row) => {\n if (row) {\n if (row.totalDistance) {\n totalDistance = Number(totalDistance) + Number(row.totalDistance);\n }\n }\n });\n }\n return Number(totalDistance).toFixed(2);\n }\n\n fnGetTotalCarbonEmission()\n {\n let carbonFootprint = 0;\n if (this.gridData && this.gridData.length > 0) {\n this.gridData.forEach((row) => {\n if (row) {\n if (row.carbonFootprint) {\n carbonFootprint = Number(carbonFootprint) + Number(row.carbonFootprint);\n }\n }\n });\n }\n return Number(carbonFootprint).toFixed(2);\n }\n\n fnOnGridCellClick(params) {\n if (params.column.colId && params.column.colId == 'userActionField') {\n switch (params.data.userAction) {\n case \"edit\":\n this.fnEditLegDetails(params.data);\n break;\n case \"delete\":\n this.fnShowDeleteConfirmationAlert(params.data);\n break;\n case \"return\":\n this.fnOnReturnJourney(params.data);\n break;\n }\n }\n }\n\n fnShowDeleteConfirmationAlert(data) {\n this.deleteConfirmationAlertModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [\n this.translate.instant(\"leg_delete_confirmation_note\"),\n ],\n this.translate.instant(\"label_cancel\"),\n this.translate.instant(\"label_confirm\"),\n true,\n this.translate.instant(\"leg_delete_confirmation_note\")\n );\n this.selectedMileageUniqueId = data.sequence;\n this.showDeleteConfirmationAlert = true;\n }\n\n fnDeleteConfirmationAlertReceiver(returnValue) {\n if (returnValue) {\n this.fnDeleteLeg(this.selectedMileageUniqueId)\n }\n this.selectedMileageUniqueId = 0;\n this.deleteConfirmationAlertModel = null;\n this.showDeleteConfirmationAlert = false;\n }\n\n fnDeleteLeg(selectedItemId) {\n this.hasFormChanges = true;\n if (selectedItemId) {\n this.gridData = this.gridData.filter(item => Number(item.sequence) != Number(selectedItemId));\n this.fnRefreshMultipleLegsDetails()\n }\n }\n\n fnDeleteAddJourneyPanel(selectedItemId) {\n this.fnDeleteLeg(selectedItemId);\n this.addJourneyInputModel = null;\n this.selectedMileageUniqueId = 0;\n this.showAddJourneyPanel = false;\n this.hasFormChanges = true;\n }\n\n fnShowAddJourneyPanel() {\n this.addJourneyInputModel = new MultipleLegsPopupModel();\n this.addJourneyInputModel = this.inputModel;\n this.addJourneyInputModel.multipleLegList = this.gridData;\n this.addJourneyInputModel.calculateMileageDetails = this.calculateMileageDetails;\n if (this.calculateMileageDetails && this.calculateMileageDetails.mileageDetailList\n && this.calculateMileageDetails.mileageDetailList.length > 0 &&\n this.calculateMileageDetails.mileageDetailList[0].totalTriangulatedDistance) {\n for (let index = 0; index < this.addJourneyInputModel.multipleLegList.length; index++) {\n let element = this.addJourneyInputModel.multipleLegList[index];\n let journey = this.calculateMileageDetails.mileageDetailList[0].sourceDestinationInformation[index];\n element.totalTriangulatedDistanceText = this.translate.instant(\"passenger_load_step_10_msg\")\n + '' + this.translate.instant(\"passenger_load_step_11_msg\")\n + journey.triangulatedDistance.toFixed(2).toString()\n + ' ' + (this.expenseModel.mileage.mileageUOM == MileageUOMEnum.Kilometre ? 'km' : 'm')\n + ''\n + this.translate.instant(\"passenger_load_step_12_msg\");\n\n }\n }\n this.addJourneyInputModel.isEditMode = false;\n this.addJourneyInputModel.selectedSequence = 0;\n this.addJourneyInputModel.isReturnJourney = false;\n this.showAddJourneyPanel = true;\n }\n\n fnCloseAddJourneyPanel(isClose: boolean) {\n if (isClose) {\n this.addJourneyInputModel = null;\n this.selectedMileageUniqueId = 0;\n this.showAddJourneyPanel = false;\n }\n }\n\n fnSubmitAddJourneyPanel(data) {\n this.hasFormChanges = true;\n if (data) {\n let isAlreadyAvailable = this.gridData.find(l => l.sequence == data.sequence);\n if (isAlreadyAvailable) {\n this.gridData.map(item => {\n if (item.sequence == data.sequence) {\n item.fromLocation = data.fromLocation;\n item.toLocation = data.toLocation;\n item.notes = data.notes;\n item.sequence = data.sequence;\n item.detour = data.detour ? Number(data.detour) : 0;\n item.detourJustificationNotes = data.detourJustificationNotes;\n item.mileageAllowance = data.mileageAllowance;\n item.tagList = data.tagList;\n item.carbonFootprint = data.carbonFootprint;\n }\n });\n }\n else {\n this.gridData.push(data);\n }\n }\n this.addJourneyInputModel = null;\n this.selectedMileageUniqueId = 0;\n this.showAddJourneyPanel = false;\n this.fnRefreshMultipleLegsDetails();\n }\n\n fnSaveMultiplLegDetails() {\n if (this.gridData.length == 0) {\n this.fnShowOneAddJourneyAlert();\n }\n else {\n let outputModel = new MultipleLegsPopupModel();\n outputModel.multipleLegList = this.gridData;\n outputModel.calculateMileageDetails = this.calculateMileageDetails;\n this.submitEvent.emit(outputModel);\n }\n }\n\n fnShowOneAddJourneyAlert() {\n this.oneAddJourneyAlertModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n \"\",\n this.translate.instant(\"text_ok\"),\n true,\n this.translate.instant(\"add_atleast_1_leg_to_save_the_expense\")\n );\n this.showOneAddJourneyAlert = true;\n }\n\n fnOneAddJourneyAlertReceiver(returnValue) {\n this.oneAddJourneyAlertModel = null;\n this.showOneAddJourneyAlert = false;\n }\n\n fnEditLegDetails(selectedData) {\n this.fnShowAddJourneyPanel();\n this.addJourneyInputModel.isEditMode = true;\n this.addJourneyInputModel.isReturnJourney = false;\n this.addJourneyInputModel.selectedSequence = selectedData.sequence;\n }\n\n fnOnReturnJourney(selectedData) {\n this.fnShowAddJourneyPanel();\n this.addJourneyInputModel.isEditMode = false;\n this.addJourneyInputModel.isReturnJourney = true;\n this.addJourneyInputModel.selectedSequence = selectedData.sequence;\n }\n\n fnViewMileageMapAndCalculations() {\n if(this.calculateMileageDetails)\n {\n this.fnOpenMap();\n }\n else\n {\n if(this.expenseModel && this.expenseModel.mileage && this.expenseModel.mileage.sourceDestinationInformation\n && this.expenseModel.mileage.sourceDestinationInformation.length > 0\n && !this.expenseModel.mileage.sourceDestinationInformation[0].route)\n {\n this.fnGetMileageMapDetail();\n }\n else\n {\n this.fnOpenMap();\n }\n }\n \n }\n\n fnGetMileageRateString(mileageRateInfo) {\n let str = \"\";\n let length = 1;\n let arraylength = mileageRateInfo.length;\n mileageRateInfo.forEach(itemMileage => {\n if (length == arraylength)\n str = str + itemMileage.mileageRate.toFixed(2) + \" \";\n else\n str = str + itemMileage.mileageRate.toFixed(2) + \" / \" + \" \";\n ++length;\n });\n return str;\n }\n showGoogleServiceErrorPopup: boolean = false;\n GoogleServiceErrorPopupModel = new AlertPanelModel(false, \"\", [\"\"], \"\", \"\", true, \"\");\n ShowGoogleServiceErrorPanel() {\n\n this.GoogleServiceErrorPopupModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n '',\n this.translate.instant(\"text_ok\"),\n true\n , this.translate.instant(\"google_service_down_msg\")\n );\n this.showGoogleServiceErrorPopup = true;\n }\n fnGoogleServiceErrorPopupReceiver() {\n this.showGoogleServiceErrorPopup = false;\n this.GoogleServiceErrorPopupModel = new AlertPanelModel(false, \"\", [\"\"], \"\", \"\", true, this.translate.instant(\"please_review_or_confirm\"));\n }\n fnGetMileageMapDetail()\n {\n this.ngxService.start();\n let request = new ApiRequest(\"GetMileageMapDetail\", environment.applicationVersion, environment.requestId);\n request.requestInfo = this.expenseModel.mileage;\n this.claimantOnWebService.GetMileageMapDetail(request)\n .subscribe((response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.expenseModel.mileage = response.responseInfo\n this.ngxService.stop();\n this.fnOpenMap();\n }\n\n });\n }\n fnOpenMap()\n {\n if (this.calculateMileageDetails) {\n let mileageMultipleDateDetails = this.calculateMileageDetails.mileageDetailList[0];\n\n let mileageLabel = this.mileageUOMText;\n this.milesTravelled = mileageMultipleDateDetails.totalMilesTraveled.toFixed(2) + \" \" + mileageLabel;\n this.triangulationMiles = mileageMultipleDateDetails.totalTriangulatedDistance.toFixed(2) + \" \" + mileageLabel;\n this.detourMiles = mileageMultipleDateDetails.detour.toFixed(2) + \" \" + mileageLabel;\n this.receiptAmount = mileageMultipleDateDetails.amount;\n this.distance = mileageMultipleDateDetails.totalDistance.toFixed(2) + \" \" + mileageLabel;\n this.mileageRate = mileageMultipleDateDetails.mileageRate.toString() + \" \" + this.inputModel.claimantHomeCurrencyCode + \" / \" + mileageLabel;\n this.mileageArray = mileageMultipleDateDetails.sourceDestinationInformation;\n if (mileageMultipleDateDetails.mileageRateInfo != null) {\n this.mileageRate = this.fnGetMileageRateString(mileageMultipleDateDetails.mileageRateInfo) + this.inputModel.claimantHomeCurrencyCode + \" / \" + mileageLabel;\n }\n setTimeout(() => {\n this.viewReceiptComponent.fnshowMileagemap(this.mileageArray, JourneyTypeEnum.Multiple, true, this.inputModel.claimantHomeCurrencyCode);\n }, 100);\n }\n }\n\n\n}\n","
\n
\n
\n
\n
\n

{{'policy_violation_2' | translate:param}}

\n
\n
\n\t\t\t\t\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
{{ \"more_than\" | translate: param }}\n {{\n getPolicyResponse.policyViolation\n .expenseTimeLimit.expenseTimeLimit\n }}\n {{ \"shopping_cart_label_days\" | translate: param }}
\n\n
\n
{{ 'policy_notes' | translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .expenseTimeLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n {{ \"novat_receipt_type\" | translate: param }}\n \n {{\n this.getPolicyResponse\n .policyViolation\n .vatNovatReceiptType\n .vatNoVatReceiptTypeName\n }}\n \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n \n\n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n {{\n \"daily_limit\" | translate: param\n }}\n \n \n {{\n this.getPolicyResponse.policyViolation\n .overallDailyLimit.limit\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.overallDailyLimit.currencyId)\n }}\n \n
  • \n
  • \n \n {{\n \"total_amount_spent_asondate\"\n | translate: param\n }}{{ this.getPolicyResponse.policyViolation\n .overallDailyLimit.violationDate | date :\n 'dd-MMM-yyyy'}}\n \n \n {{\n this.getPolicyResponse.policyViolation\n .overallDailyLimit.spentAmount\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.overallDailyLimit.currencyId)\n }}\n \n
  • \n
  • \n \n {{\n \"violation_on\"\n | translate: param\n }}{{ this.getPolicyResponse.policyViolation\n .overallDailyLimit.violationDate | date :\n 'dd-MMM-yyyy'}}\n \n \n {{\n this.getPolicyResponse.policyViolation\n .overallDailyLimit.violation\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.overallDailyLimit.currencyId)\n }}\n \n
  • \n
\n
\n
{{ 'policy_notes' | translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .overallDailyLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • {{\n \"daily_capping_limit\" | translate: param\n }} \n {{\n this.getPolicyResponse\n .policyViolation.dailyCappingLimit\n .limit\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.dailyCappingLimit.currencyId)\n }}
  • \n
  • {{'total_amount_spent_asondate'\n | translate:param}} {{ this.getPolicyResponse\n .policyViolation.dailyCappingLimit\n .violationDate | date :'dd-MMM-yyyy' }}\n \n {{\n this.getPolicyResponse\n .policyViolation.dailyCappingLimit\n .spentAmount\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.dailyCappingLimit.currencyId)\n }}\n
  • \n
  • {{\n \"total_violation_for\" | translate: param\n }} {{ this.getPolicyResponse\n .policyViolation.dailyCappingLimit\n .violationDate | date :'dd-MMM-yyyy' }}\n \n {{\n this.getPolicyResponse\n .policyViolation.dailyCappingLimit\n .violation\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.dailyCappingLimit.currencyId)\n }}\n
  • \n
\n
\n
{{ 'policy_notes' | translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .dailyCappingLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n {{\n \"monthly_capping_limit\" | translate: param\n }}\n \n \n {{\n this.getPolicyResponse\n .policyViolation.monthlyCappingLimit\n .limit\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.monthlyCappingLimit.currencyId)\n }}\n \n
  • \n
  • \n \n {{\n \"total_violation_spent_during\"\n | translate: param\n }} {{this.getPolicyResponse\n .policyViolation.monthlyCappingLimit\n .violationDate | date : 'MMM-yyyy'}}\n \n \n {{\n this.getPolicyResponse\n .policyViolation.monthlyCappingLimit\n .spentAmount\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.monthlyCappingLimit.currencyId)\n }}\n \n
  • \n
  • \n \n {{\n \"total_violation_during\" | translate: param\n }} {{this.getPolicyResponse\n .policyViolation.monthlyCappingLimit\n .violationDate | date : 'MMM-yyyy'}}\n \n \n {{\n this.getPolicyResponse\n .policyViolation.monthlyCappingLimit\n .violation\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.monthlyCappingLimit.currencyId)\n }}\n \n
  • \n
\n
\n
{{ 'policy_notes' | translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .monthlyCappingLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • {{\n \"yearly_capping_limit\" | translate: param\n }} \n {{\n this.getPolicyResponse\n .policyViolation.yearlyCappingLimit\n .limit\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.yearlyCappingLimit.currencyId)\n }}\n
  • \n
  • \n {{\n \"total_violation_spent_during\"\n | translate: param\n }} {{this.getPolicyResponse\n .policyViolation.yearlyCappingLimit\n .violationDate | date : 'yyyy'}}\n \n {{\n this.getPolicyResponse\n .policyViolation.yearlyCappingLimit\n .spentAmount\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.yearlyCappingLimit.currencyId)\n }}\n
  • \n
  • \n {{\n \"total_violation_during\" | translate: param\n }} {{this.getPolicyResponse\n .policyViolation.yearlyCappingLimit\n .violationDate | date : 'yyyy'}}\n \n {{\n this.getPolicyResponse\n .policyViolation.yearlyCappingLimit\n .violation\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.yearlyCappingLimit.currencyId)\n }}\n
  • \n
\n
\n
{{ 'policy_notes' | translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .yearlyCappingLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • {{\n \"per_person_limit\" | translate: param\n }} ({{this.getPolicyResponse\n .policyViolation.perPersonLimit.categoryName}})\n \n {{\n this.getPolicyResponse\n .policyViolation.perPersonLimit\n .limit\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.perPersonLimit.currencyId)\n }}\n
  • \n
  • {{\n \"per_person_spent\"\n | translate: param\n }} \n {{\n this.getPolicyResponse\n .policyViolation.perPersonLimit\n .spentAmount\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.perPersonLimit.currencyId)\n }}
  • \n
  • \n {{\n \"violation_on\" | translate: param\n }} {{this.getPolicyResponse\n .policyViolation.perPersonLimit\n .violationDate | date : 'dd-MMM-yyyy'}}\n \n {{\n this.getPolicyResponse\n .policyViolation.perPersonLimit\n .violation\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.perPersonLimit.currencyId)\n }}\n \n
  • \n
\n
\n
{{ 'policy_notes' | translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .perPersonLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • {{\n \"per_night_limit\" | translate: param\n }}\n ({{this.getPolicyResponse\n .policyViolation.perNightLimit.categoryName}})\n \n {{\n this.getPolicyResponse\n .policyViolation.perNightLimit\n .limit\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.perNightLimit.currencyId)\n }}\n \n
  • \n
  • {{\n \"per_night_spent\"\n | translate: param\n }} \n {{\n this.getPolicyResponse\n .policyViolation.perNightLimit\n .spentAmount\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.perNightLimit.currencyId)\n }}\n
  • \n
  • {{\n \"violation_on\" | translate: param\n }} {{this.getPolicyResponse\n .policyViolation.perNightLimit\n .violationDate | date: 'dd-MMM-yyyy'}}\n \n {{\n this.getPolicyResponse\n .policyViolation.perNightLimit\n .violation\n | number: \".2\"\n | noComma\n }}\n {{\n getCurrencyName(getPolicyResponse.policyViolation.perNightLimit.currencyId)\n }}\n \n
  • \n
\n
\n
{{ 'policy_notes' | translate: param }}:
\n

{{\n this.getPolicyResponse.policyViolation\n .perNightLimit.notes}}\n

\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n {{item.fieldTitle}}\n {{item.fieldValueString}}\n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    \n
  • \n {{\n \"default_vehicle\" | translate: param\n }}\n \n {{\n this.getPolicyResponse\n .policyViolation.defaultVehicleType\n .defaultVehicle\n }}\n \n
  • \n
  • \n {{\n \"non_default_vehicle_selected\" | translate:\n param\n }} \n \n {{\n this.getPolicyResponse\n .policyViolation.defaultVehicleType\n .selectedVehicle\n }}\n \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
{{'justification_notes'\n | translate:param}}\n \n
\n
\n \n \n\n
\n {{ \"label_Required\" | translate: param }}\n
\n\n
\n

\n 190 }\">{{inputData.justificationNotes?inputData.justificationNotes.length:0}}/200\n

\n
\n
\n
\n
\n
\n
\n\n 0\"\n #viewReceiptComponent [receiptInfo]=\"receiptInfo\" [receiptCount]=\"receiptCount\"\n [hasReturnJourney]=\"hasReturnJourney\" [milesTravelled]=\"milesTravelled\" [triangulationMiles]=\"triangulationMiles\"\n [detourMiles]=\"detourMiles\" [amount]=\"\" [distance]=\"distance\" [origin]=\"origin\" [destination]=\"destination\"\n [receiptLat]=\"receiptLat\" [receiptLong]=\"receiptLong\" [latLongArray]=\"latLongArray\" [mileageRate]=\"mileageRate\" [zindex_Class]=\"zindexClass\">\n\n\n","import { OnInit, Component, EventEmitter, Input, Output, ViewChild, ChangeDetectorRef } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { first } from \"rxjs/operators\";\nimport { MileageDetailComponent } from \"src/app/shared/panels/mileage-detail/mileage-detail.component\";\nimport { ViewReceiptComponent } from \"src/app/shared/panels/view-receipt/view-receipt.component\";\nimport { ApiRequest, IApiRequest, MileageUOMEnum } from \"src/app/_models\";\nimport { ExpenseCurrency, PolicyViolationInputModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { IReceiptInfo, IRequestPolicyViolation, IResponsePolicyViolation, RequestPolicyViolation } from \"src/app/_models/twostepapproval/claimant-expense-detail\";\nimport { CurrencyService } from \"src/app/_services/claimant/currency.service\";\nimport { PolicyDataService } from \"src/app/_services/policy/policy-data.service\";\nimport { Claims } from \"../../../../_models/common/claims\";\nimport { ClaimsService } from \"../../../../_services/common/claims.service\";\n\n@Component({\n selector: \"policy-violation-panel\",\n templateUrl: \"./policy-violation-panel.component.html\"\n})\nexport class PolicyViolationPanelComponent implements OnInit {\n @Input()\n inputData: PolicyViolationInputModel;\n @Input() isReceiptNumberSettingsEnabled:boolean;\n @Input()\n zindex_Class: string;\n @Output() closePanelEvent = new EventEmitter();\n param: any;\n getPolicyRequest: IApiRequest = new ApiRequest(\"\", 1, \"\");\n getPolicyResponse: IResponsePolicyViolation;\n isPolicyViolated: boolean = false;\n dailyCapVisible: boolean = false;\n monthlyCapVisible: boolean = false;\n yearlyCapVisible: boolean = false;\n duplicateVisible: boolean = false;\n vatNoVatVisible: boolean = false;\n overallVisible: boolean = false;\n perNightVisible: boolean = false;\n perItemVisible: boolean = false;\n expenseTimeLimitVisible: boolean = false;\n defaultVehicleTypeVisible:boolean=false;\n operationalInformationVisible:boolean=false;\n operationalInformationViolation: any;\n showPolicyViolation: boolean = false;\n currencytList: ExpenseCurrency[];\n @ViewChild('viewReceiptComponent') viewReceiptComponent: ViewReceiptComponent;\n receiptInfo: any;\n receiptCount: number = 0;\n hasReturnJourney: boolean = false;\n milesTravelled: any;\n mileageLabel: string;\n detourMiles: any;\n triangulationMiles: any;\n mileageRate: string;\n distance: any;\n origin: any;\n destination: any;\n receiptLat: number;\n receiptLong: number;\n latLongArray: any;\n currency: string;\n openSectionName: string;\n isNoteError: boolean = false;\n hasFormChanges: boolean = false;\n zindexClass:string=\"\";\n claims: Claims;\n @ViewChild('mileageDetailComponent') mileageDetailComponent: MileageDetailComponent;\n constructor(\n private translate: TranslateService,\n private toastr: ToastrService,\n private policyDataService: PolicyDataService,\n private currencyService: CurrencyService,\n private claimsService: ClaimsService,\n private cd:ChangeDetectorRef\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {\n if(this.zindex_Class)\n this.zindexClass = this.zindex_Class;\n this.getCurrrencyList();\n this.fnGetPolicyViolationDetails();\n\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(this.inputData.justificationNotes);\n }\n\n fnGetPolicyViolationDetails(){\n if(this.inputData.policyViolationDetails){\n this.getPolicyResponse = this.inputData.policyViolationDetails;\n this.fnMapPolicyData();\n }\n else{\n this.fnGetPolicyData(this.inputData.expenseId);\n }\n }\n\n fnGetPolicyData(expenseId: number) {\n \n this.getPolicyRequest.requestInfo = new RequestPolicyViolation();\n this.getPolicyRequest.requestInfo.expenseId = expenseId;\n\n this.policyDataService.GetPolicyData(this.getPolicyRequest)\n .pipe(first())\n .subscribe(\n data => {\n if (data.statusCode == 0) {\n this.getPolicyResponse = data.responseInfo;\n this.fnMapPolicyData();\n }\n },\n error => {\n this.toastr.error(this.translate.instant(\"failed\"));\n }\n );\n }\n\n\n fnMapPolicyData(){\n if (this.getPolicyResponse.policyViolation.dailyCappingLimit != null)\n this.dailyCapVisible = true;\n if (this.getPolicyResponse.policyViolation.duplicate!=null && this.getPolicyResponse.policyViolation.duplicate.length > 0) {\n if ((this.inputData.baseCategoryId == 4 ||\n this.inputData.baseCategoryId == 5 ||\n this.inputData.baseCategoryId == 6) &&\n this.getPolicyResponse.policyViolation.duplicate[0].receiptInfo.length > 0) {\n this.receiptInfo = this.getPolicyResponse.policyViolation.duplicate[0].receiptInfo;\n if (this.receiptInfo) {\n this.receiptCount = this.receiptInfo.length;\n }\n }\n this.duplicateVisible = true;\n }\n let operationalInfoViolation = this.getPolicyResponse.policyViolation.expenseOperationalInfo;\n this.operationalInformationViolation = operationalInfoViolation != null && operationalInfoViolation.length != 0 ? this.getPolicyResponse.policyViolation.expenseOperationalInfo.filter(it => it.fieldValue == false) : [];\n \n if (this.operationalInformationViolation.length != 0) {\n this.operationalInformationVisible=true; \n }\n if (this.getPolicyResponse.policyViolation.expenseTimeLimit != null)\n this.expenseTimeLimitVisible = true;\n if (this.getPolicyResponse.policyViolation.monthlyCappingLimit != null)\n this.monthlyCapVisible = true;\n if (this.getPolicyResponse.policyViolation.overallDailyLimit != null)\n this.overallVisible = true;\n if (this.getPolicyResponse.policyViolation.perNightLimit != null)\n this.perNightVisible = true;\n if (this.getPolicyResponse.policyViolation.perPersonLimit != null)\n this.perItemVisible = true;\n if (this.getPolicyResponse.policyViolation.vatNovatReceiptType != null)\n this.vatNoVatVisible = true;\n if (this.getPolicyResponse.policyViolation.yearlyCappingLimit != null)\n this.yearlyCapVisible = true;\n if(this.getPolicyResponse.policyViolation.defaultVehicleType!=null){\n this.defaultVehicleTypeVisible=true;\n }\n this.fnGetOpenSectionName();\n this.cd.detectChanges();\n }\n\n\n getCurrrencyList() {\n this.currencyService.getAllExpenseCurrency(this.claims.OrgId)\n .subscribe((data: any) => {\n if (data && data.length > 0) {\n this.currencytList = data;\n }\n });\n }\n\n getCurrencyName(currencyId: number) {\n if (this.currencytList) {\n return this.currencytList.filter(a => a.currencyId == currencyId).map(function (b) { return b.currencyCode })[0];\n }\n }\n\n fnShowReceiptsPanel(items: IReceiptInfo[]) {\n this.receiptInfo = items;\n if (this.receiptInfo) {\n this.receiptCount = this.receiptInfo.length;\n }\n this.viewReceiptComponent.fnShowReceiptsPanel(items);\n }\n\n fnShowmileageMapDetail() {\n this.mileageDetailComponent.fnMapData(true, 0, this.inputData.expenseDetailResponse);\n }\n\n fnSubmitPanel() {\n if (this.inputData.justificationNotes.trim()) {\n this.closePanelEvent.emit(this.inputData.justificationNotes.trim());\n } else {\n this.isNoteError = true;\n }\n }\n fnGetOpenSectionName() {\n if (this.expenseTimeLimitVisible) {\n this.openSectionName = \"expenseTimeLimitVisible\";\n return;\n } else if (this.vatNoVatVisible) {\n this.openSectionName = \"vatNoVatVisible\";\n return;\n } else if (this.duplicateVisible) {\n this.openSectionName = \"duplicateVisible\";\n return;\n } else if (this.overallVisible) {\n this.openSectionName = \"overallVisible\";\n return;\n } else if (this.dailyCapVisible) {\n this.openSectionName = \"dailyCapVisible\";\n return;\n } else if (this.monthlyCapVisible) {\n this.openSectionName = \"monthlyCapVisible\";\n return;\n }\n else if (this.yearlyCapVisible) {\n this.openSectionName = \"yearlyCapVisible\";\n return;\n } else if (this.perItemVisible) {\n this.openSectionName = \"perItemVisible\";\n return;\n } else if (this.perNightVisible) {\n this.openSectionName = \"perNightVisible\";\n return;\n }\n else if (this.defaultVehicleTypeVisible) {\n this.openSectionName = \"defaultVehicleTypeVisible\";\n return;\n }\n\n if (this.operationalInformationViolation.length != 0) {\n this.openSectionName = 'operationalInformationVisible';\n for (var i = 0; i < this.operationalInformationViolation.length; i++) {\n this.operationalInformationViolation[i].fieldValueString = \"NO\";\n }\n }\n }\n\n}\n","import { Directive, ElementRef, HostListener } from '@angular/core';\n\n@Directive({\n selector: '[sixDigitBeforeAndAfterDecimalNumber]'\n})\nexport class SixDigitBeforeAndAfterDecimalNumberDirective {\n // Allow decimal numbers and negative values\n private regex: RegExp = new RegExp(/^\\d{1,6}(\\.$|\\.\\d{1,6}$|$)/);\n // Allow key codes for special events. Reflect :\n // Backspace, tab, end, home\n private specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', 'ArrowLeft', 'ArrowRight', 'Del', 'Delete'];\n\n constructor(private el: ElementRef) {\n }\n @HostListener('keydown', ['$event'])\n onKeyDown(event: KeyboardEvent) {\n // Allow Backspace, tab, end, and home keys\n if (this.specialKeys.indexOf(event.key) !== -1) {\n return;\n }\n let current: string = this.el.nativeElement.value;\n const position = this.el.nativeElement.selectionStart;\n const next: string = [current.slice(0, position), event.key == 'Decimal' ? '.' : event.key, current.slice(position)].join('');\n if (next && !String(next).match(this.regex)) {\n event.preventDefault();\n }\n }\n}","
\n
\n
\n
\n
\n
\n

{{ \"select_currency\" | translate: param }}

\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n \n \"\"\n \n \n\n \n\n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n
\n
\n
\n
\n \n \n \"icon\"\n {{ item.currencyDescription }}\n \n \n
\n \"icon\"  \n {{ item.currencyDescription }}\n
\n
\n
\n
\n
\n {{ \"label_Required\" | translate: param }}\n
\n
\n
\n
\n
\n
\n
\n
\n 1\" sixDigitBeforeAndAfterDecimalNumber\n formControlName=\"conversionRate\" [ngClass]=\"{\n 'has-value':\n foreignCurrencyForm.controls.conversionRate.value\n }\" >\n \n\n
\n \n {{ \"label_Required\" | translate: param }}\n \n
\n
\n
\n
\n
\n
0 &&\n foreignCurrencyForm.controls.spentCurrencyId.value > 0\n \">\n
\n {{ \"exchange_rates\" | translate: param }}\n
\n
\n
\n \n
\n

\n \n {{ this.devideValue }}\n {{ foreignCurrencyForm.controls.currencyCode.value }}={{ this.fnCalculateConversionRates() }}\n {{\n foreignCurrencyForm.controls.spentCurrencyCode.value\n }}\n

\n

\n {{ this.devideValue }}\n {{\n foreignCurrencyForm.controls.spentCurrencyCode.value\n }} ={{ foreignCurrencyForm.controls.conversionRate.value }}\n {{ foreignCurrencyForm.controls.currencyCode.value }}\n

\n
\n
\n
\n
\n
\n {{ \"disclaimer\" | translate: param }}:\n
    \n
  • \n

    {{ \"disclaimer_msg\" | translate: param }}

    \n
  • \n
\n
\n
 
\n
\n
\n
\n
\n ** {{ \"currency_reminder\" | translate: param }} **\n
\n

\n {{ \"currency_text1\" | translate: param }}\n

\n

{{ \"thanks\" | translate: param }}

\n
\n
\n
\n
\n
\n
\n
","import { OnInit, Component, EventEmitter, Input, Output, OnDestroy, ChangeDetectorRef } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { Userresponsedto } from \"src/app/_models/user/userresponsedto\";\nimport { DatePipe } from \"@angular/common\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { HowDoIVideoLinks } from \"src/app/common/commonvariables\";\nimport { BaseComponent } from \"src/app/shared/base/base-component\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { SelectForignCurrencyPopupModel } from 'src/app/_models/claimant-on-web/claimant-on-web';\nimport { CurrencyService } from \"src/app/_services/claimant/currency.service\";\nimport { FormBuilder, UntypedFormGroup, Validators } from \"@angular/forms\";\nimport { ApiRequest, FxRateRule, IApiresponse } from \"../../../../_models\";\nimport { environment } from \"../../../../../environments/environment\";\nimport { OrganisationSettingService } from \"../../../../_services/organisation-setting/organisation-setting.service\";\n\n@Component({\n selector: \"select-foreign-currency-panel\",\n templateUrl: \"./select-foreign-currency-panel.component.html\",\n styleUrls: [\"./select-foreign-currency-panel.component.scss\"],\n})\nexport class SelectForeignCurrencyPanelComponent extends BaseComponent implements OnInit, OnDestroy {\n\n @Input()\n inputData: SelectForignCurrencyPopupModel;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() selectItemEvent = new EventEmitter();\n\n claimsSubscription: Subscription;\n userActionEventSubscription: Subscription;\n currentUser: Userresponsedto;\n claims: Claims;\n param: any;\n howDoIVideoLinks = HowDoIVideoLinks;\n\n foreignCurrencyList = [];\n foreignCurrencyForm: UntypedFormGroup; \n isForeignCurrencyFormSubmitted: boolean = false;\n disableSubmitButton: boolean = false;\n devideValue: number = 1;\n baseCurrency: any = {icon:''};\n fxRateRule:number;\n fxRateSubRule:number;\n \n get FxRateRule() {\n return FxRateRule;\n }\n constructor(\n public datepipe: DatePipe,\n private claimsService: ClaimsService,\n private alertService: AlertService,\n private currencyService: CurrencyService,\n public fb: FormBuilder,\n private organisationSettingService: OrganisationSettingService,\n private changeDetectorRef: ChangeDetectorRef,\n ) {\n super();\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n this.userActionEventSubscription = this.alertService.getUserActionEvent().subscribe(action => {\n if (action) {\n this.closePanelEvent.emit(true);\n }\n });\n \n this.GetOrganisationPreferences();\n \n }\n ngOnInit(): void {\n this.foreignCurrencyForm = this.fnCreateForeignCurrencyForm();\n this.getBaseCurrency();\n \n this.fnGetForeignCurrencyList(); \n \n }\n\n GetOrganisationPreferences() {\n let request = new ApiRequest(\n \"GetOrganisationPreferences\",\n environment.applicationVersion,\n environment.requestId\n );\n this.organisationSettingService\n .GetOrganisationPreferences(request)\n .subscribe((data: IApiresponse) => {\n if (data.statusCode == 0) { \n this.fxRateRule = data.responseInfo.fxRateRule;\n this.fxRateSubRule = data.responseInfo.fxRateSubRule;\n \n }\n });\n }\n\n ngOnDestroy(): void {\n this.claimsSubscription.unsubscribe();\n this.userActionEventSubscription.unsubscribe();\n }\n\n canDeactivate(): boolean {\n return !this.foreignCurrencyForm.dirty;\n }\n\n fnClosePanel() {\n if (this.canDeactivate()) {\n this.closePanelEvent.emit(true);\n }\n else {\n this.alertService.onFormClosed();\n }\n }\n getBaseCurrency() {\n this.currencyService.getAllExpenseCurrency(this.claims.OrgId)\n .subscribe((data: any) => {\n if (data && data.length > 0) {\n this.baseCurrency = data.filter(item => item.currencyId == this.inputData.currencyId)[0]; \n if(this.inputData.baseCurrencyIcon)\n {\n this.foreignCurrencyForm.controls.currencyCode.setValue(this.baseCurrency.description.split(' - ')[1] + ' - ' +this.baseCurrency.description.split(' - ')[0], {onlySelf: true}); \n } \n }\n });\n }\n\n fnGetForeignCurrencyList() {\n this.currencyService.getAllExpenseCurrency(this.claims.OrgId, this.inputData.expenseDate,true)\n .subscribe((dataForeign: any) => {\n if (dataForeign && dataForeign.length > 0) { \n this.foreignCurrencyList = dataForeign.filter(item => item.currencyId !== this.inputData.currencyId); \n this.foreignCurrencyList.forEach(element => {\n element.currencyDescription = element.description.split(' - ')[1] + ' - ' + element.description.split(' - ')[0]\n }); \n }\n this.changeDetectorRef.detectChanges();\n });\n }\n fnCreateForeignCurrencyForm() {\n let form = this.fb.group({\n currencyId: [this.inputData.currencyId ? this.inputData.currencyId : null, [Validators.required]],\n currencyCode: [this.inputData.currencyCode ? this.inputData.currencyCode : null, [Validators.required]],\n spentCurrencyId: [this.inputData.spentCurrencyId ? this.inputData.spentCurrencyId : null, [Validators.required]],\n spentCurrencyCode: [this.inputData.spentCurrencyCode ? this.inputData.spentCurrencyCode : null, [Validators.required]],\n conversionRate: [this.inputData.spentCurrencyId == null || this.inputData.spentCurrencyId == 0 ? null : this.inputData.conversionRate, [Validators.required]]\n });\n \n return form;\n }\n fnSubmitForeignCurrency() {\n this.disableSubmitButton = true;\n\n if (!Number(this.foreignCurrencyForm.value.conversionRate)) {\n this.foreignCurrencyForm.controls.conversionRate.setErrors({ 'required': true });\n }\n\n if (this.foreignCurrencyForm.invalid) {\n this.isForeignCurrencyFormSubmitted = true;\n this.disableSubmitButton = false;\n return;\n } else {\n //emit submit event\n let selectForignCurrencyOutputModel = new SelectForignCurrencyPopupModel();\n selectForignCurrencyOutputModel.currencyId = this.foreignCurrencyForm.value.currencyId;\n selectForignCurrencyOutputModel.currencyCode = this.foreignCurrencyForm.value.currencyCode;\n selectForignCurrencyOutputModel.spentCurrencyId = this.foreignCurrencyForm.value.spentCurrencyId;\n selectForignCurrencyOutputModel.spentCurrencyCode = this.foreignCurrencyForm.value.spentCurrencyCode;\n selectForignCurrencyOutputModel.conversionRate = this.foreignCurrencyForm.value.conversionRate;\n\n this.selectItemEvent.emit(selectForignCurrencyOutputModel);\n }\n\n }\n fnGetSpentCurrencyCode(currencyId) {\n if (currencyId) {\n let currecnyDetails = this.foreignCurrencyList.find(item => item.currencyId == currencyId);\n if (currecnyDetails) {\n this.foreignCurrencyForm.patchValue({\n spentCurrencyCode: currecnyDetails.currencyDescription,\n conversionRate :currecnyDetails.exchangeRate.replace(/,/g, '.') \n });\n }\n }\n }\n fnCalculateConversionRates() {\n let amount = '';\n if (Number(this.foreignCurrencyForm.value.conversionRate)) {\n amount = (this.devideValue / parseFloat(this.foreignCurrencyForm.value.conversionRate)).toFixed(6);\n }\n return amount;\n } \n}\n","
\n
\n
\n
\n
\n

{{expenseCategoryName}}{{'view_expense_policy' | translate:param}}

\n
\n
\n \n
\n
\n
\n
\n
\n
\n
    \n \n
  • \n
    \n {{policy.policyName}}\n ON\n OFF\n {{policy.policyValue.toFixed(2)}} \n {{policy.policyValue}} {{'days' |\n translate:param}}\n
    \n
    0\">\n
    {{ 'policy_notes' | translate: param }}:
    \n

    {{policy.notes}}\n

    \n
    \n
  • \n
\n
\n
\n
\n
\n
","import { OnInit, Component, EventEmitter, Input, Output, ChangeDetectorRef } from \"@angular/core\";\nimport { ApiRequest, IApiresponse } from \"src/app/_models\";\nimport { SelectExpenseCategoryPopupModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { IRequestGetPolicyDetail, IResponsePolicyDetail, PolicyDetail, RequestGetPolicyDetail } from \"src/app/_models/twostepapproval/claimant-expense-detail\";\nimport { PolicyDataService } from \"src/app/_services/policy/policy-data.service\";\nimport { environment } from \"src/environments/environment\";\n\n@Component({\n selector: \"view-exp-policy-panel\",\n templateUrl: \"./view-expense-policy-panel.component.html\"\n})\nexport class ViewExpensePolicyPanelComponent implements OnInit {\n @Input()\n inputData: SelectExpenseCategoryPopupModel;\n @Output() closePanelEvent = new EventEmitter();\n param: any;\n policyDetails = [];\n expDate: number;\n expenseCategoryName: string;\n constructor(private policyService: PolicyDataService, private cdRef: ChangeDetectorRef,) { }\n\n ngOnInit() {\n this.expenseCategoryName = this.inputData.expenseCategoryName;\n this.fnGetExpensePolicyData();\n }\n\n fnCloseExpensePolicyPanel() {\n this.closePanelEvent.emit(true);\n }\n\n fnGetExpensePolicyData() {\n let request = new ApiRequest(\"GetPolicyDetail\", environment.applicationVersion, environment.requestId);\n let requestInfo = new RequestGetPolicyDetail()\n requestInfo.orgExpenseCategoryId = this.inputData.orgExpenseCategoryId;\n requestInfo.expenseDate = this.inputData.expenseDate;\n requestInfo.userId = this.inputData.claimantId;\n request.requestInfo = requestInfo;\n this.policyService.GetPolicyDetail(request)\n .subscribe(\n (response: IApiresponse) => {\n if (response.statusCode == 0 && response.responseInfo != null) {\n this.policyDetails = response.responseInfo.policy != null ? response.responseInfo.policy : [];\n if (this.inputData.policyViolationForFM && this.policyDetails && this.policyDetails.length > 0) {\n this.inputData.policyViolationForFM.forEach(element => {\n this.policyDetails.forEach(item => {\n if (element == item.policyTypeForFM) {\n item.highlightedClass = 'color-red';\n }\n else\n {\n item.highlightedClass = '';\n }\n });\n });\n }\n }\n this.cdRef.detectChanges();\n }\n );\n }\n}\n","
\n
\n
\n
\n
\n

{{'view_tag' | translate:param}}

\n
\n
\n \n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
","import { OnInit, Component, EventEmitter, Input, Output, AfterViewInit } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ViewTagsInputModel } from \"src/app/_models/claimant-on-web/claimant-on-web\";\n\n@Component({\n selector: \"view-tag-panel\",\n templateUrl: \"./view-tag-panel.component.html\"\n})\nexport class ViewTagPanelComponent implements OnInit, AfterViewInit {\n @Input()\n inputData: ViewTagsInputModel;\n @Output() closePanelEvent = new EventEmitter();\n param: any;\n\n constructor(\n private translate: TranslateService,\n ) { }\n\n ngOnInit() { }\n\n ngAfterViewInit() { }\n\n fnCloseViewTagComponentPanel() {\n this.closePanelEvent.emit(null);\n }\n}\n","import { Component } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'log-cell',\n templateUrl: './log-icon-renderer.component.html'\n})\nexport class LogIconRendererComponent implements ICellRendererAngularComp {\n\n tooltipText = this.translate.instant('label_log');\n constructor(private translate: TranslateService) {\n\n }\n\n initilize(params: ICellRendererParams) {\n if (params && params.colDef && params.colDef.headerComponentParams && params.colDef.headerComponentParams.isComingSoon) {\n this.tooltipText = this.translate.instant('coming_soon');\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","\n \n \n","import { Component, ViewEncapsulation } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'checkbox-cell',\n templateUrl: './checkbox-renderer.component.html',\n styleUrls: ['./checkbox-renderer.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class CheckBoxRendererComponent implements ICellRendererAngularComp {\n isSelected: boolean;\n isCheckboxDisabled: boolean;\n params: any;\n\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.params = params;\n this.isSelected = params.getValue();\n this.isCheckboxDisabled = params.data.isCheckboxDisabled;\n }\n }\n\n onClick(event) {\n this.isSelected = event.target.checked;\n this.params.setValue(this.isSelected);\n\n if (this.params.onClick instanceof Function && event && event.target) {\n this.params.onClick(event.target.checked);\n }\n\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n\n\n\n\n","","
\n \n \n \n
","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'action-cell',\n templateUrl: './actions-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\n\nexport class ActionsRendererComponent implements ICellRendererAngularComp {\n actionButtons: any[] = [];\n params: ICellRendererParams;\n buttonAlignmentClass: string = 'text-right';\n constructor() {\n\n }\n\n onUserAction(action) {\n this.params.data.userAction = action;\n this.params.node.setData(this.params.data);\n this.params.eGridCell.click();\n }\n\n initilize(params: ICellRendererParams) {\n if (params && params.data) {\n this.params = params;\n this.actionButtons = JSON.parse(JSON.stringify(params.colDef.headerComponentParams)); \n for (let i = 0; i < this.actionButtons.length; i++) {\n this.actionButtons[i].isDisabled = this.actionButtons[i].disableProperty && this.params.data[this.actionButtons[i].disableProperty]\n this.actionButtons[i].isHidden = this.actionButtons[i].hideProperty && this.params.data[this.actionButtons[i].hideProperty]\n this.buttonAlignmentClass = this.actionButtons[i].buttonAlignmentClass ?? this.buttonAlignmentClass; \n }\n }\n else {\n this.actionButtons = [];\n }\n } \n\n showEditGradePanelFunction() {\n\n }\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n \n
\n\n
\n \n
\n
\n \n
\n
\n
\n\n\n
\n
\n\n\n
\n
\n","import { Component, ViewChild, ElementRef } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-grid-header',\n templateUrl: './custom-header.component.html',\n styleUrls: ['./custom-header.component.scss']\n})\nexport class CustomHeaderComponent implements ICellRendererAngularComp {\n params: any;\n sortOrder: string;\n ascSort: string;\n descSort: string;\n noSort: string;\n fieldKey: string;\n isRightAligned: boolean;\n sortIconClass: string;\n tooltipText: string;\n isGridEmpty: boolean = true;\n headerTooltip: string;\n headerTooltipIcon: string;\n headerTooltipPosition: string;\n headerEditIcon:string;\n constructor(private translate: TranslateService, private sanitizer: DomSanitizer) {\n this.tooltipText = this.translate.instant('bulk_action_text');\n }\n\n initilize(params: ICellRendererParams) { \n this.params = params;\n }\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n @ViewChild('menuButton', { read: ElementRef }) public menuButton;\n \n agInit(params): void { \n this.params = params;\n if (params.isCheckbox) {\n this.fieldKey = 'headcbx' + params.column.colDef.field;\n }\n else {\n this.fieldKey = 'head' + params.column.colDef.field;\n }\n\n if (params.column.colDef.headerClass) {\n let alignRightstr = params.column.colDef.headerClass.indexOf(\"text-right\")\n this.isRightAligned = alignRightstr > -1;\n }\n\n if (params.column.colDef.headerComponentParams) {\n this.isGridEmpty = !params.column.colDef.headerComponentParams.rowCount; \n this.headerEditIcon = params.column.colDef.headerComponentParams.headerEditIcon ? params.column.colDef.headerComponentParams.headerEditIcon: null;\n }\n\n if (params.column.colDef.tooltipComponentParams) {\n this.headerTooltip = params.column.colDef.tooltipComponentParams.headerTooltip ? params.column.colDef.tooltipComponentParams.headerTooltip: null;\n this.headerTooltipIcon = params.column.colDef.tooltipComponentParams.headerTooltipIcon ? params.column.colDef.tooltipComponentParams.headerTooltipIcon : null;\n this.headerTooltipPosition = params.column.colDef.tooltipComponentParams.headerTooltipPosition? params.column.colDef.tooltipComponentParams.headerTooltipPosition:'right';\n }\n\n params.column.addEventListener(\n 'sortChanged',\n this.onSortChanged.bind(this)\n );\n\n this.onSortChanged();\n }\n\n onMenuClicked(event) {\n this.params.showColumnMenu(this.menuButton.nativeElement);\n }\n\n onCheckboxChange(event) {\n this.params.onCheckAll(event);\n }\n\n onSortChanged() {\n\n this.ascSort = this.descSort = this.noSort = 'inactive';\n\n if (this.params.column.isSortAscending()) {\n this.ascSort = 'active';\n this.sortOrder = 'asc';\n this.sortIconClass = 'ascSort customSortDownLabel';\n } else if (this.params.column.isSortDescending()) {\n this.descSort = 'active';\n this.sortOrder = 'desc';\n this.sortIconClass = 'descSort customSortUpLabel';\n } else {\n this.noSort = 'active';\n this.sortOrder = '';\n this.sortIconClass = 'noSort customSortRemoveLabel';\n }\n\n }\n\n onSortRequested(event) {\n\n if (this.isGridEmpty) {\n return;\n }\n\n if (this.params.enableSorting) {\n if (!this.sortOrder) {\n this.sortOrder = 'asc';\n }\n else if (this.sortOrder == 'asc') {\n this.sortOrder = 'desc';\n }\n else {\n this.sortOrder = '';\n }\n this.params.setSort(this.sortOrder, event.shiftKey);\n }\n }\n\n sanitizerHtml(element) {\n let safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return safeText;\n }\n\n handleHeaderClick(_event) {\n this.params.onClick(this.params.column); \n }\n}\n","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'log-cell',\n templateUrl: './status-renderer.component.html'\n})\nexport class StatusRenderComponent implements ICellRendererAngularComp {\n public text: string;\n public statusValue: any;\n\n constructor() {\n\n }\n\n initilize(params: ICellRendererParams) {\n this.statusValue = params.getValue();\n if (this.statusValue) {\n this.text = this.statusValue.toString() == \"1\" ? \"Active\" : \"Inactive\";\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","{{text}}\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'chevron-cell',\n templateUrl: './chevron-renderer.component.html'\n})\nexport class ChevronRendererComponent implements ICellRendererAngularComp {\n hidechevron: boolean = false;\n constructor() {\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n initilize(params: ICellRendererParams) {\n if (params.data && params.data.hidechevron) {\n this.hidechevron = true;\n }\n }\n}\n","\n \n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-pre-approval-renderer',\n templateUrl: './pre-approval-renderer.component.html',\n styleUrls: ['./pre-approval-renderer.component.scss']\n})\nexport class PreApprovalRendererComponent implements ICellRendererAngularComp {\n preApprovalId: number;\n preApprovalName: any;\n preApprovalBalance: any;\n\n constructor() {\n\n }\n\n initilize(params: ICellRendererParams) {\n if (params && params.data) {\n this.preApprovalId = params.data.preApprovalId;\n if (params.data.preApprovalTag) {\n this.preApprovalName = params.data.preApprovalTag.name;\n this.preApprovalBalance = params.data.preApprovalTag.balance;\n }\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","\n \n {{ \"pre_approved\" | translate }}\n \n \n \n   {{ \"balance\" | translate }}: \n \n \n {{ preApprovalBalance | number: \"1.2-2\" }}\n \n \n  | {{ \"tag\" | translate }}: \n \n \n {{ preApprovalName }}\n \n \n","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'receipt-cell',\n templateUrl: './receipt-icon-renderer.component.html'\n})\nexport class ReceiptIconRendererComponent implements ICellRendererAngularComp {\n public hasReceipt: boolean = false;\n\n constructor() {\n\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.hasReceipt = params.data.hasReceipt\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","\"\"","import { Component, ViewEncapsulation } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'field-value-cell',\n templateUrl: './field-value-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\n\nexport class FieldValueRendererComponent implements ICellRendererAngularComp {\n\n text: string = '';\n class: string = '';\n \n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n let value = params.getValue();\n if (value && params.colDef.headerComponentParams) {\n let item = params.colDef.headerComponentParams.find(item => item.value == value);\n if (item) {\n this.class = item.class;\n this.text = item.text;\n }\n }\n else{\n this.class = \"\";\n this.text = \"\"; \n }\n\n \n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n}","{{text}}\n"," {{ text | date: \"dd-MMM-yyyy\" }}\n {{ text }}","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'date-cell',\n templateUrl: './date-renderer.component.html'\n})\nexport class DateRendererComponent implements ICellRendererAngularComp {\n public text: string;\n\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n this.text = params.getValue();\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n"," {{ text | date: \"dd-MMM-yyyy, hh:mm:ss a\" }}\n {{ text }}","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'date-time-cell',\n templateUrl: './date-time-renderer.component.html'\n})\nexport class DateTimeRendererComponent implements ICellRendererAngularComp {\n public text: string;\n\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n this.text = params.getValue();\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n"," {{ amount | number: \"1.2-2\" | noComma\n }}\n\n\n\n\n
\n

\n {{ buttonTooltip | translate }}\n

\n
\n
","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'amount-cell',\n templateUrl: './amount-renderer.component.html'\n})\nexport class AmountRendererComponent implements ICellRendererAngularComp {\n public amount: number;\n public displayAmount: boolean = true;\n public buttonClass: string = \"display-none\";\n public buttonTooltip: string;\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n this.amount = params.getValue();\n if (params && params.data) {\n if (params.data.buttonClass && params.colDef && params.colDef.headerComponentParams) {\n if (params.colDef.headerComponentParams.displayOnlyIcon) {\n this.buttonClass = params.data.buttonClass;\n this.buttonTooltip = params.data.buttonTooltip;\n this.displayAmount = false;\n }\n else {\n this.buttonClass = \"display-none\";\n }\n\n }\n else {\n this.buttonClass = \"display-none\";\n }\n }\n else {\n this.buttonClass = \"display-none\";\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","\n {{ claimantName }}\n \n {{ 'label_deputy' | translate }} \n \n \n
\n

\n {{ 'since_deputy_for' | translate }} {{actualApproverName}} {{ 'deputy_msg' | translate\n }}\n

\n
\n
\n
\n \n {{ 'counter_approver' | translate }} \n \n \n
\n

\n {{ 'counterapp_msg' | translate }} {{actualApproverName}}'s' {{ 'counter_approver' | translate\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 # {{ item | translate }}
\n

\n
\n
\n \n \n \n
\n\n 0\">\n {{ 'pre_approved' | translate }}\n \n\n
\n","import { Component } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\nimport { Claims } from '../../../../_models/common/claims';\nimport { ClaimsService } from '../../../../_services/common/claims.service';\n\n@Component({\n selector: 'app-policy-name-renderer',\n templateUrl: './policy-name-renderer.component.html',\n})\nexport class PolicyNameRendererComponent implements ICellRendererAngularComp {\n public isOtherPolicyDisplay: boolean = false;\n public isPolicyIconDisplay: boolean = false;\n public isPotentialFraudDisplay: boolean = false;\n public isPolicyViolated: boolean = false;\n public potentialFraud: boolean = false;\n public policyArray: string[] = [];\n public claimantName: string = '';\n public approverAsDeputy: boolean = false;\n public approverAsCA:boolean = false;\n public actualApproverName: string = '';\n violationTooltip: string;\n breachTooltip: string;\n claims: Claims;\n isExpenseEditedByFM: boolean = false;\n isExpenseEditedByFMIconDisplay: boolean= false;\n preApprovalId : number = 0;\n isPreApprovalDisplay: boolean = false;\n\n constructor(private translate: TranslateService,\n private claimsService: ClaimsService) {\n this.claimsService.currentClaims.subscribe(claims => this.claims = claims);\n }\n\n initilize(params: ICellRendererParams) {\n if (params.colDef && params.colDef.headerComponentParams) {\n this.isOtherPolicyDisplay = params.colDef.headerComponentParams.isOtherPolicyDisplay;\n this.isPolicyIconDisplay = params.colDef.headerComponentParams.isPolicyIconDisplay;\n this.isPotentialFraudDisplay = params.colDef.headerComponentParams.isPotentialFraudDisplay;\n this.isExpenseEditedByFMIconDisplay = params.colDef.headerComponentParams.isExpenseEditedByFMIconDisplay;\n this.isPreApprovalDisplay = params.colDef.headerComponentParams.isPreApprovalDisplay;\n }\n if (params.data) {\n this.isPolicyViolated = params.data.isPolicyViolated || (params.data.potentialFraud && this.isPotentialFraudDisplay);\n this.potentialFraud = params.data.potentialFraud;\n this.policyArray = params.data.policyArray;\n // this.claimantName = params.data.claimantName;\n this.claimantName = params.getValue();\n this.approverAsDeputy = params.data.approverAsDeputy;\n this.approverAsCA = params.data.approverAsCounterApprover;\n this.actualApproverName = params.data.actualApproverName != null ? params.data.actualApproverName.trim() : '';\n this.isExpenseEditedByFM = params.data.isExpenseEditedByFM;\n \n\n if(params.data.advanceId || params.data.advancesCount) {\n this.violationTooltip = this.translate.instant('advance_policy_violation');\n this.breachTooltip = this.translate.instant('advance_policy_breach');\n }\n else {\n if(params.data.isPolicyViolated && !this.potentialFraud)\n this.violationTooltip = this.translate.instant('expense_policy_violation');\n if(this.potentialFraud && !params.data.isPolicyViolated)\n this.violationTooltip = this.translate.instant('potential_fraud');\n if(this.potentialFraud && params.data.isPolicyViolated)\n this.violationTooltip = this.isPotentialFraudDisplay ?\n this.translate.instant('policy_violation_potential_fraud') :\n this.translate.instant('expense_policy_violation');\n\n this.breachTooltip = this.translate.instant('expense_policy_breach');\n }\n\n \n if (params.data.preApprovalId) {\n this.preApprovalId = params.data.preApprovalId;\n }\n\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","\n\n \n \n \n \n \n \n
{{ \"fm_edit_expense_for_msg12\" | translate }}
\n
\n\n \n \n \n \n \n
This expense (Export No: {{RecalledExportId}}) was Rolled Back on {{RecalledExpenseDate | date: \"dd-MMM-yyyy\"}}
\n
\n\n \n \n \n \n \n
{{ \"took_detour\" | translate }}
\n
\n \n \n \n\n \n
\n
\n\n \n \n \n \n \n \n \n \n
\n

\n # {{ item | translate }}
\n

\n
\n
\n \n \n \n
\n\n
\n\n {{ amount | number: \"1.2-2\" | noComma }}\n\n
\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { ClaimsService } from '../../../../_services/common/claims.service';\nimport { Claims } from '../../../../_models/common/claims';\n\n@Component({\n selector: 'app-policy-amount-renderer',\n templateUrl: './policy-amount-renderer.component.html',\n})\nexport class PolicyAmountRendererComponent implements ICellRendererAngularComp {\n public isOtherPolicyDisplay: boolean = false;\n public isPolicyIconDisplay: boolean = false; \n public isPolicyViolated: boolean = false;\n public policyArray: string[] = []; \n public amount: number;\n public exhangeRateTooltip: string;\n public hasDetour: boolean = false;\n violationTooltip: string;\n breachTooltip: string;\n claims: Claims;\n public potentialFraud :boolean = false;\n public iconDisplay : boolean = false;\n public violationDisplay : boolean = false;\n public isPotentialFraudDisplay: boolean = false;\n public isExpenseEditedByFM: boolean = false;\n public IsRecalledExpense: boolean = false;\n public RecalledExportId: number;\n public RecalledExpenseDate: any;\n\n constructor(private translate: TranslateService,\n private claimsService: ClaimsService,\n private sanitizer: DomSanitizer \n ) {\n this.claimsService.currentClaims.subscribe(claims => this.claims = claims);\n }\n\n initilize(params: ICellRendererParams) {\n if (params.colDef && params.colDef.headerComponentParams) {\n this.isPotentialFraudDisplay = params.colDef.headerComponentParams.isPotentialFraudDisplay;\n this.isOtherPolicyDisplay = params.colDef.headerComponentParams.isOtherPolicyDisplay;\n this.isPolicyIconDisplay = params.colDef.headerComponentParams.isPolicyIconDisplay; \n }\n if (params.data) { \n this.policyArray = params.data.policyArray;\n this.amount = params.data.amount;\n this.isPolicyViolated = params.data.isPolicyViolated || (params.data.potentialFraud && this.isPotentialFraudDisplay);\n this.potentialFraud = params.data.potentialFraud; \n if (params.data.exhangeRateTooltip) {\n this.exhangeRateTooltip = params.data.exhangeRateTooltip;\n }\n if (params.data.hasDetour) {\n this.hasDetour = params.data.hasDetour;\n }\n if (params.data.isExpenseEditedByFM) {\n this.isExpenseEditedByFM = params.data.isExpenseEditedByFM;\n }\n if (params.data.isRecalledExpense) {\n this.IsRecalledExpense = params.data.isRecalledExpense;\n this.RecalledExpenseDate = params.data.recalledExpenseDate;\n this.RecalledExportId = params.data.recalledExportId;\n }\n\n if(params.data.advanceId || params.data.advancesCount) {\n this.violationTooltip = this.translate.instant('advance_policy_violation');\n this.breachTooltip = this.translate.instant('advance_policy_breach');\n }\n else {\n if(this.potentialFraud && params.data.isPolicyViolated)\n this.violationTooltip = this.translate.instant('policy_violation_potential_fraud');\n if(params.data.isPolicyViolated && !this.potentialFraud)\n this.violationTooltip = this.translate.instant('expense_policy_violation');\n if(this.potentialFraud && !params.data.isPolicyViolated)\n this.violationTooltip = this.translate.instant('potential_fraud');\n this.breachTooltip = this.translate.instant('expense_policy_breach');\n }\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n sanitizerHtml(element) {\n let safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return safeText;\n }\n\n}\n","import { Component } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\nimport { param } from \"jquery\";\n\n@Component({\n selector: 'check-icon-cell',\n templateUrl: './check-icon-renderer.component.html'\n})\n\nexport class CheckIconRendererComponent implements ICellRendererAngularComp {\n\n showCheckIcon: boolean;\n\n constructor() {\n\n }\n\n initilize(params: ICellRendererParams) {\n\n if (params && params.data) {\n\n this.showCheckIcon = params.getValue();\n \n }\n\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","\n"," {{ functionPackageName }}\n\n\n \n \n\n\n\n
\n
","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\n\n@Component({\n selector: 'app-pricing-text-renderer',\n templateUrl: './pricing-text-renderer.component.html',\n})\nexport class PricingTextRendererComponent implements ICellRendererAngularComp {\n\n public functionPackageName: string = '';\n public functionPackageDescripition: string = '';\n\n constructor(private sanitizer: DomSanitizer) {\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.functionPackageName = params.data.functionPackageName;\n this.functionPackageDescripition = params.data.functionPackageDescripition;\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n sanitizerHtml(element) {\n let safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return safeText;\n }\n\n}\n","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'receipts-cell',\n templateUrl: './receipts-icon-renderer.component.html'\n})\nexport class ReceiptsIconRendererComponent implements ICellRendererAngularComp {\n public hasReceipt: boolean = false;\n\n constructor() {\n\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.hasReceipt = params.data.hasReceipt\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\n\n@Component({\n selector: 'app-safe-text-renderer',\n templateUrl: './safe-text-renderer.component.html',\n})\nexport class SafeTextRendererComponent implements ICellRendererAngularComp {\n\n public text: string;\n params: ICellRendererParams;\n constructor(private sanitizer: DomSanitizer) {\n }\n\n onUserAction() {\n this.params.node.setData(this.params.data);\n this.params.eGridCell.click();\n }\n\n initilize(params: ICellRendererParams) {\n this.params = params;\n this.text = params.getValue();\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n sanitizerHtml(element) {\n let safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return safeText;\n }\n\n}\n","
","\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\nimport { FunctionPackageTypeEnum } from \"src/app/_models/enum/solo-enum\";\n\n@Component({\n selector: 'app-starter-mobile-support-icon-renderer',\n templateUrl: './starter-mobile-support-icon-renderer.component.html',\n})\nexport class StarterMobileSupportIconRendererComponent implements ICellRendererAngularComp {\n\n public text: number;\n\n constructor() {\n }\n\n\n initilize(params: ICellRendererParams) {\n this.text = params.getValue();\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n isFunctionForMobile(type: number) {\n let isSupport = false;\n if (\n type == FunctionPackageTypeEnum.Both ||\n type == FunctionPackageTypeEnum.Mobile\n ) {\n isSupport = true;\n }\n return isSupport;\n }\n\n}\n","\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\nimport { FunctionPackageTypeEnum } from \"src/app/_models/enum/solo-enum\";\n\n@Component({\n selector: 'app-starter-web-support-icon-renderer',\n templateUrl: './starter-web-support-icon-renderer.component.html',\n})\nexport class StarterWebSupportIconRendererComponent implements ICellRendererAngularComp {\n\n public text: number;\n\n constructor() {\n }\n\n\n initilize(params: ICellRendererParams) {\n this.text = params.getValue();\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n isFunctionForWeb(type: number) {\n let isSupport = false;\n if (\n type == FunctionPackageTypeEnum.Both ||\n type == FunctionPackageTypeEnum.Web\n ) {\n isSupport = true;\n }\n return isSupport;\n }\n}\n","\n\n \n
\n {{ item.value }}\n
\n\n
\n\n
","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\nimport { param } from \"jquery\";\n\n@Component({\n selector: 'ng-select-renderer',\n templateUrl: './ng-select-renderer.component.html',\n styleUrls: [\"./ng-select-renderer.component.scss\"],\n})\n\nexport class NgSelectRendererComponent implements ICellRendererAngularComp {\n\n showCheckIcon: boolean;\n placeholder = \"\";\n items = [];\n value: any;\n params: any;\n\n constructor() {\n\n }\n\n initilize(params: ICellRendererParams) {\n if (params.colDef.headerComponentParams) {\n this.items = params.colDef.headerComponentParams.dropdownItems;\n this.placeholder = params.colDef.headerComponentParams.placeholder;\n\n }\n this.value = params.getValue();\n }\n\n agInit(params: any): void {\n this.params = params;\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onChange($event) {\n if (this.params.onChange instanceof Function) {\n const params = {\n event: $event,\n rowData: this.params.node.data\n }\n this.params.onChange(params);\n }\n }\n\n}\n","import { Component, ViewEncapsulation } from \"@angular/core\";\n\nimport { ICellRendererAngularComp, ITooltipAngularComp } from \"ag-grid-angular\";\nimport { ITooltipParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'tooltip-cell',\n templateUrl: './tooltip-renderer.component.html',\n styleUrls: ['./tooltip-renderer.component.scss']\n})\nexport class TooltipRenderComponent implements ITooltipAngularComp {\n public params: any;\n isTooltipDisplay: boolean;\n tooltipText: string;\n constructor() {\n //https://www.ag-grid.com/angular-grid/component-tooltip/\n }\n\n initilize(params: any) {\n if (params && params.data) {\n this.params = params;\n this.isTooltipDisplay = params.data.isTooltipDisplay;\n this.tooltipText = params.data.tooltipText;\n\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","
\n

\n {{ tooltipText | translate }}\n

\n\n
"," {{ text }}\n \n\n\n\n {{ text }}\n\n\n\n
\n
\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\n@Component({\n selector: 'app-text-tooltip-right-renderer',\n templateUrl: './text-tooltip-right-renderer.component.html',\n})\nexport class TextWithTooltipRightRendererComponent implements ICellRendererAngularComp {\n text: string;\n toolTipText: string;\n constructor(private sanitizer: DomSanitizer) {\n\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.text = params.getValue();\n this.toolTipText = params.data.tooltip;\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n sanitizerHtml(element) {\n return this.sanitizer.bypassSecurityTrustHtml(element);\n }\n\n}\n","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'card-number-cell',\n templateUrl: './card-number-renderer.component.html'\n})\nexport class CardNumberRendererComponent implements ICellRendererAngularComp {\n public cardNumber: number;\n\n constructor() {\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n initilize(params: ICellRendererParams) {\n this.cardNumber = this.getCardNoForDisplay(params.getValue());\n }\n\n getCardNoForDisplay(cardNo) {\n if (cardNo != null && cardNo != \"\") {\n var cardWithX = \"XXXXXXXXXXXXXXXX\" + cardNo;\n cardNo = cardWithX.substring(cardWithX.length - 16, cardWithX.length);\n }\n return cardNo;\n }\n\n\n}\n"," {{ cardNumber }}","{{ 'no_claimant_assigned' | translate }}\n 0\">{{ userName }}","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'card-assigned-username-cell',\n templateUrl: './card-assigned-username-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\n\nexport class CardAssignedUsernameRendererComponent implements ICellRendererAngularComp {\n public userId: number;\n public userName: string = \"\";\n\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n if (params && params.data) {\n this.userId = params.data.userId;\n this.userName = params.data.userName;\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n"," {{ text }}\n \n\n\n\n {{ text }}\n\n\n\n
\n
","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\n@Component({\n selector: 'app-text-tooltip-renderer',\n templateUrl: './text-tooltip-renderer.component.html',\n})\nexport class TextWithTooltipRendererComponent implements ICellRendererAngularComp {\n text: string;\n toolTipText: string;\n constructor(private sanitizer: DomSanitizer) {\n\n }\n\n initilize(params: ICellRendererParams) {\n let data = params.getValue();\n\n if (data) {\n this.text = data.text;\n this.toolTipText = data.tooltip;\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n sanitizerHtml(element) {\n return this.sanitizer.bypassSecurityTrustHtml(element);\n }\n\n}\n"," {{ text }}\n\n\n\n {{ text }}\n\n\n\n
{{ toolTipText }}
\n
\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-text-tooltip-renderer2',\n templateUrl: './text-tooltip-renderer2.component.html',\n})\nexport class TextWithTooltipRenderer2Component implements ICellRendererAngularComp {\n text: string;\n toolTipText: string;\n constructor() {\n\n }\n\n initilize(params: ICellRendererParams) {\n const text = params.getValue();\n\n if (text && params && params.data) {\n this.text = text;\n this.toolTipText = params.data.tooltipText\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","\n {{item.text}} \n \n \n\n","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'click-to-setup-cell',\n templateUrl: './click-to-setup-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\n\nexport class ClickToSetupRendererComponent implements ICellRendererAngularComp {\n text: string = '';\n class: string = '';\n actionButtons: any[] = [];\n params: ICellRendererParams;\n constructor() {\n }\n\n onUserAction(action) {\n this.params.data.userAction = action;\n this.params.node.setData(this.params.data);\n this.params.eGridCell.click();\n }\n\n initilize(params: ICellRendererParams) { \n if (params && params.data) { \n this.params = params;\n this.actionButtons = JSON.parse(JSON.stringify(params.colDef.headerComponentParams));\n for (let i = 0; i < this.actionButtons.length; i++) {\n this.actionButtons[i].isHidden = this.actionButtons[i].hideProperty && this.params.data[this.actionButtons[i].hideProperty]; \n if(this.params.data[this.actionButtons[i].showProperty] && this.actionButtons[i].isHidden==false)\n this.actionButtons[i].isHidden=true;\n else if(this.actionButtons[i].isHidden==undefined)\n this.actionButtons[i].isHidden=!this.params.data[this.actionButtons[i].showProperty];\n }\n }\n else {\n this.actionButtons = [];\n } \n}\n\n showEditGradePanelFunction() {\n\n }\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","
\n \n \n \n \n
\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'app-toggle-renderer',\n templateUrl: './toggle-renderer.component.html'\n})\nexport class ToggleRendererComponent implements ICellRendererAngularComp {\n informationId:number;\n isEnabled: boolean; \n params: ICellRendererParams;\n isHidden: boolean = false;\n showText: boolean=false;\n showSwitchText:string = \"\";\n toggleAlignClass:string = \"toggle-renderer\";\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.params = params;\n if(params.data.alignClass)\n {\n this.toggleAlignClass = params.data.alignClass;\n }\n if(params.data.informationId)\n {\n this.isEnabled = params.data.isSwitchedOn; \n this.informationId = params.data.informationId; \n this.isHidden = params.data.isHidden;\n this.showText = params.data.showText;\n this.showSwitchText = params.data.showSwitchText;\n }\n else if(params.data.vehicleId)\n {\n this.isEnabled = params.data.isDefault; \n this.informationId = params.data.vehicleId;\n }\n else if(params.data.userHomeOfficeSetupId)\n {\n this.isEnabled = params.data.isWorkFromHome;\n this.informationId = params.data.userHomeOfficeSetupId;\n }\n else if(params.data.orgExpenseCategoryId)\n {\n if(params.data.counterApproverRule)\n this.isEnabled = params.data.counterApproverRule;\n if(params.data.isCFPReporting)\n this.isEnabled = params.data.isCFPReporting;\n this.informationId = params.data.orgExpenseCategoryId;\n }\n else if(params.data.isSwitchedOn)\n {\n this.isEnabled = params.data.isSwitchedOn; \n this.informationId = params.data.columnSequence; \n }\n \n }\n else{\n this.isHidden = true;\n }\n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onChange(event) {\n this.isEnabled = event.target.checked;\n this.params.setValue(this.isEnabled);\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-textbox-renderer',\n templateUrl: './textbox-renderer.component.html'\n})\nexport class TextboxRendererComponent implements ICellRendererAngularComp {\n errDeriveName: boolean = false;\n deriveName: string;\n params: ICellRendererParams;\n\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n this.params = params;\n this.deriveName = params.getValue();\n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onChange(event) {\n \n this.deriveName = event.target.value;\n this.errDeriveName = this.deriveName == '' ? true : false;\n this.params.setValue(this.deriveName);\n this.params.eGridCell.click();\n }\n\n\n\n}\n","\n","{{text}}*\n","import { Component, OnInit } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-text-renderer',\n templateUrl: './text-renderer.component.html'\n})\nexport class TextRendererComponent implements ICellRendererAngularComp {\n\n text: string = '';\n isMandatory: boolean = false;\n params: ICellRendererParams;\n constructor() {\n }\n\n initilize(params: ICellRendererParams) { \n if (params.data) {\n this.isMandatory = params.data.isMandatory;\n this.text = params.data.setupName;\n } \n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-checkbox-ingrid-renderer',\n templateUrl: './checkbox-ingrid-renderer.component.html' \n})\nexport class CheckboxIngridRendererComponent implements ICellRendererAngularComp {\n isCheckboxDisabled:boolean = false\n accessToSettings: boolean; \n params: ICellRendererParams;\n isEnabled: boolean; \n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.params = params;\n this.accessToSettings = params.getValue(); \n this.isCheckboxDisabled = params.data.isCheckboxDisabled; \n }\n }\n \n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onChange(event) {\n this.isEnabled = event.target.checked;\n this.params.setValue(this.isEnabled);\n }\n\n}\n","\n","\n\n
\n {{ item.textBeforeBtn }}\n \n
\n","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'button-cell',\n templateUrl: './buttons-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\n\nexport class ButtonsRendererComponent implements ICellRendererAngularComp {\n actionButtons: any[] = [];\n params: ICellRendererParams;\n constructor() {\n\n }\n\n onUserAction(action) {\n this.params.data.userAction = action;\n this.params.node.setData(this.params.data);\n this.params.eGridCell.click();\n }\n\n initilize(params: ICellRendererParams) {\n if (params && params.data) {\n this.params = params;\n if(params.colDef && params.colDef.headerComponentParams)\n {\n this.actionButtons = JSON.parse(JSON.stringify(params.colDef.headerComponentParams));\n for (let i = 0; i < this.actionButtons.length; i++) {\n this.actionButtons[i].isHidden = this.actionButtons[i].hideProperty && this.params.data[this.actionButtons[i].hideProperty]\n }\n }\n }\n else {\n this.actionButtons = [];\n }\n }\n\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","import { Component } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\nimport { param } from \"jquery\";\n\n@Component({\n selector: 'import-errors-count',\n templateUrl: './import-errors-count-renderer.component.html'\n})\n\nexport class ImportErrorsCountRendererComponent implements ICellRendererAngularComp {\n\n errorCounts: boolean;\n\n constructor() {\n\n }\n\n initilize(params: ICellRendererParams) {\n\n if (params && params.data) {\n\n this.errorCounts = params.getValue();\n\n }\n\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","{{errorCounts}}","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'formatted-text-cell',\n templateUrl: './formatted-text-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class FormattedTextRenderer implements ICellRendererAngularComp {\n text: string = '';\n class: string = '';\n constructor(private translate: TranslateService) {\n }\n\n initilize(params: ICellRendererParams) {\n this.text = params.getValue();\n if(params.data && params.data.customClass)\n {\n this.class = this.text == this.translate.instant('not_applicable_string') || this.text == null ? '' : params.data.customClass;\n }\n else\n {\n if (params.colDef.headerComponentParams && params.colDef.headerComponentParams.class) {\n this.class = this.text == this.translate.instant('not_applicable_string') || this.text == null ? '' : params.colDef.headerComponentParams.class;\n }\n }\n \n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n}","{{text}}","
{{text}}\n \n
\n\n\n \n
\n

\n {{ popOverText }}\n

\n
\n
\n {{text}}\n
","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'approver-cell',\n templateUrl: './approver-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class ApproverRenderer implements ICellRendererAngularComp {\n text: string = '';\n class: string = '';\n popOverText: string = '';\n public isPopOverDisplay: boolean = false;\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n this.text = params.getValue();\n let classProp = '';\n if (params.colDef && params.colDef.headerComponentParams) {\n this.isPopOverDisplay = params.colDef.headerComponentParams.isPopOverDisplay;\n classProp = params.colDef.headerComponentParams.classPropertyName\n }\n if (params.data) {\n switch (params.data.approverCount) {\n case 0:\n this.class = 'cursor-pointer text-underline not-invited-state fw-700';\n break;\n case 1:\n this.class = 'cursor-pointer text-underline pending-state fw-700';\n break;\n default:\n this.class = 'cursor-pointer text-underline text-logo-blue fw-700';\n break;\n }\n\n if (params.data['popOverText']) {\n this.popOverText = params.data['popOverText'];\n }\n if (classProp) {\n this.class = params.data[classProp];\n }\n }\n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n}","\n {{ text }}\n","import { Component, OnInit } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-default-message-renderer',\n templateUrl: './default-message-renderer.component.html'\n})\nexport class DefaultMessageRendererComponent implements ICellRendererAngularComp {\n\n text: string = '';\n isComplete: boolean = false;\n params: ICellRendererParams;\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n \n if (params.data) {\n this.isComplete = params.data.isComplete;\n this.text = params.data.defaultMessage;\n }\n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-suspension-message-renderer',\n templateUrl: './suspension-message-renderer.component.html'\n})\nexport class SuspensionMessageRendererComponent implements ICellRendererAngularComp {\n informationId: number;\n isSuspended: boolean;\n suspensionMessage: string;\n params: ICellRendererParams;\n\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n \n this.params = params;\n this.isSuspended = params.data.isSuspended;\n this.informationId = params.data.informationId;\n this.suspensionMessage = params.data.supensionMessage;\n }\n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onChange(event) {\n this.isSuspended = event.target.checked;\n this.params.setValue(this.isSuspended);\n this.params.eGridCell.click();\n }\n\n}\n","
\n \n \n
","import { Component, OnInit } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-text-with-description-renderer',\n templateUrl: './text-with-description-renderer.component.html',\n styleUrls: ['./text-with-description-renderer.component.scss']\n})\nexport class TextWithDescriptionRendererComponent implements ICellRendererAngularComp {\n text: string;\n description: string;\n constructor() {\n\n }\n\n initilize(params: ICellRendererParams) {\n let data = params.getValue();\n \n if (data) {\n this.text = data.text;\n this.description = data.description;\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","{{ text }}\n{{ description }}","{{approverName}} (approved)on {{approvalData|date:'dd-MMM-yyy'}}\n{{approverName}} (rejected)on {{approvalData|date:'dd-MMM-yyy'}}\n{{approvalData}}","import { Component, OnInit } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-approval-data-renderer',\n templateUrl: './approval-data-renderer.component.html',\n styleUrls: ['./approval-data-renderer.component.scss']\n})\nexport class ApprovalDataRendererComponent implements ICellRendererAngularComp {\n\n status: number;\n approverName: string;\n approvalData: string;\n constructor() {\n\n }\n\n initilize(params: ICellRendererParams) {\n \n if (params && params.data) {\n this.status = params.data.status;\n this.approverName = params.data.approverName;\n this.approvalData = params.data.approvalData;\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","
\n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-info-step-renderer',\n templateUrl: './info-step-renderer.component.html',\n styleUrls: ['./info-step-renderer.component.scss']\n})\nexport class InfoStepRendererComponent implements ICellRendererAngularComp {\n public infoStep: boolean = false;\n\n constructor() {\n\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.infoStep = params.data.infoStep\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","{{text}}\n\n\n
{{ toolTipText }}
\n
\n","import { Component, ViewEncapsulation } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'privilege-count-cell',\n templateUrl: './privilege-count-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\n\nexport class PrivilegeCountRendererComponent implements ICellRendererAngularComp {\n\n text: string = '';\n class: string = '';\n toolTipText: string = '';\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n let value = params.getValue();\n if (value && params.data) {\n this.text = value;\n switch(params.data.fmRoleType) {\n case 1:\n this.class = 'text-left font-weight-bold color-green';\n break;\n case 3:\n this.class = 'text-left font-weight-bold color-red';\n break;\n default:\n this.class = 'text-left font-weight-bold ';\n break;\n }\n if (params.data.isTooltipTextDisplay) {\n this.toolTipText = params.data.tooltipText;\n }\n }\n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n}\n","\n {{data.statusData.statusText}}\n \n \n\n \n {{data.statusData.statusText}}\n \n\n \n
\n
\n
","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'status-data-cell',\n templateUrl: './status-data-renderer.component.html'\n})\nexport class StatusDataRenderComponent implements ICellRendererAngularComp {\n public data: any;\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.data = params.data;\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n}\n","\n\n \n
\n {{ item.value }}\n
\n\n
\n\n
\n\n\n\n {{ value }}","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'grid-ng-select-or-text-renderer',\n templateUrl: './grid-ng-select-or-text-renderer.component.html',\n styleUrls: [\"./grid-ng-select-or-text-renderer.component.scss\"],\n})\n\nexport class GridNgSelectOrTextRendererComponent implements ICellRendererAngularComp {\n\n showCheckIcon: boolean;\n placeholder = \"\";\n items = [];\n value: any;\n params: any;\n\n isShowText: boolean = false;\n\n\n initilize(params: ICellRendererParams) {\n\n if (params && params.data && params.data.isShowText) {\n this.isShowText = params.data.isShowText;\n }\n\n if (params.colDef.headerComponentParams) {\n this.items = params.colDef.headerComponentParams.dropdownItems;\n this.placeholder = params.colDef.headerComponentParams.placeholder;\n }\n\n this.value = params.getValue();\n }\n\n agInit(params: any): void {\n this.params = params;\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onChange($event) {\n if (this.params.onChange instanceof Function) {\n const params = {\n event: $event,\n rowData: this.params.node.data\n }\n this.params.setValue(params.event.id);\n this.params.onChange(params); \n }\n }\n\n}\n","\n\n\n {{ value }}","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'grid-textbox-or-text-renderer',\n templateUrl: './grid-textbox-or-text-renderer.component.html'\n})\n\nexport class GridTextBoxOrTextRendererComponent implements ICellRendererAngularComp {\n placeHolder = \"\";\n maxLength: number;\n value: any;\n params: any;\n isRequired: boolean = false;\n showValidator: boolean = false;\n isShowText: boolean = false;\n disabled: boolean = false;\n\n\n initilize(params: ICellRendererParams) {\n\n if (params && params.data && params.data.isShowText) {\n this.isShowText = params.data.isShowText;\n }\n\n if (params && params.data && params.data.disabled) {\n this.disabled = params.data.disabled;\n }\n\n if (params.colDef.headerComponentParams) {\n if (params.colDef.headerComponentParams.maxLength) {\n this.maxLength = params.colDef.headerComponentParams.maxLength;\n }\n\n if (params.colDef.headerComponentParams.placeHolder) {\n this.placeHolder = params.colDef.headerComponentParams.placeHolder;\n }\n\n if (params.colDef.headerComponentParams.isRequired) {\n this.isRequired = params.colDef.headerComponentParams.isRequired;\n }\n }\n\n this.value = params.getValue();\n }\n\n agInit(params: any): void {\n this.params = params;\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onInput($event) {\n if (this.params.onInput instanceof Function) {\n this.showValidator = false;\n\n let params = { event: $event, rowData: this.params.node.data }\n this.params.onInput(params);\n\n if (!this.NoWhitespaceValidator($event.target.value) && this.isRequired) {\n this.showValidator = true;\n return;\n }\n }\n }\n\n\n NoWhitespaceValidator(value: string): boolean {\n if (value == null) {\n value = \"\";\n }\n\n const isWhitespace = (value || \"\").trim().length === 0;\n\n return !isWhitespace;\n }\n\n}\n","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'check-box-with-text',\n templateUrl: './check-box-with-text.component.html'\n})\nexport class CheckBoxwithTextRenderComponent implements ICellRendererAngularComp {\n public data: any;\n public showCheckBoxWithText: boolean = false;\n text: string = '';\n params: any;\n\n\n initilize(params: ICellRendererParams) {\n if (params) {\n this.params = params;\n this.text = params.getValue();\n\n if (params.data) {\n this.data = params.data;\n if (this.data.showCheckBoxWithText) {\n this.showCheckBoxWithText = this.data.showCheckBoxWithText;\n }\n }\n }\n\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onClick($event) {\n\n if (this.params.onClick instanceof Function && $event && $event.target) {\n this.data.selected = $event.target.checked;\n this.params.onClick($event.target.checked);\n\n }\n }\n}\n"," {{text}}","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'percentage-renderer',\n templateUrl: './percentage-renderer.component.html'\n})\nexport class PercentageRendererComponent implements ICellRendererAngularComp {\n public amount: number;\n\n initilize(params: ICellRendererParams) {\n this.amount = params.getValue();\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n"," {{ amount | number: \"1.2-2\" | noComma }}%","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'discount-renderer',\n templateUrl: './discount-renderer.component.html'\n})\nexport class DiscountRendererComponent implements ICellRendererAngularComp {\n public amount: number;\n public percentage: number;\n public discountedAmount: number = 0;\n public currency: any;\n\n initilize(params: ICellRendererParams) {\n if (params.colDef.headerComponentParams) {\n this.amount = params.colDef.headerComponentParams.amount ? params.colDef.headerComponentParams.amount : 0;\n this.currency = params.colDef.headerComponentParams.currency ? params.colDef.headerComponentParams.currency: '';\n\n }\n this.percentage = params.getValue();\n if(this.amount && this.percentage){\n this.discountedAmount = this.amount - (this.amount * this.percentage) / 100;\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","\n
\n \n {{ discountedAmount | number: \"1.2-2\" | noComma }} {{this.currency}} \n \n \n {{ this.percentage | number: \"1.2-2\" | noComma }}% \n \n
\n\n","\n {{option.text}}\n \n \n
\n
\n
","import { Component } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-multi-color-text-renderer',\n templateUrl: './multi-color-text-renderer.component.html'\n})\nexport class MultiColorTextRendererComponent implements ICellRendererAngularComp {\n\n text: string = '';\n class: string = '';\n dataArray: any[] = [];\n constructor(private sanitizer: DomSanitizer) {\n\n }\n initilize(params: ICellRendererParams) {\n if (params.data) {\n if (params.data.pageType && params.data.pageType > 0\n && params.data.countArray && params.data.countArray.length > 0) {\n //Create array\n params.data.countArray.forEach(element => {\n this.dataArray.push({\n text: element.text,\n class: element.class,\n ngbPopover: element.ngbPopover,\n ngbPopoverClass: element.ngbPopoverClass\n })\n });\n }\n else {\n this.dataArray.push({\n text: params.data.text,\n class: params.data.class,\n ngbPopover: params.data.ngbPopover,\n ngbPopoverClass: params.data.ngbPopoverClass\n });\n }\n\n }\n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n sanitizerHtml(element) {\n return this.sanitizer.bypassSecurityTrustHtml(element);\n }\n}\n\n\n","\n\n\n\n\n ","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\nimport { CounterAppSeqType } from '../../../../_models';\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-text-two-decimal-number-renderer',\n templateUrl: './text-two-decimal-number-renderer.component.html'\n})\nexport class TextTwoDecimalNumberRendererComponent implements ICellRendererAngularComp {\n errReq: boolean = false;\n value: string;\n params: ICellRendererParams;\n isMandatory:boolean=false;\n isEnd:boolean=false;\n isVisible : boolean = false;\n placeholdertext: string = this.translate.instant('enter_amount_set_limit');\n\n constructor(private translate: TranslateService)\n {\n\n }\n\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.params = params;\n if(Number(params.data.allowanceRate)>0)\n this.value = params.data.allowanceRate;\n if(Number(params.data.caLimit)>0)\n this.value = params.data.caLimit; \n if(Number(params.data.carbonFootprint) > 0)\n this.value = params.data.carbonFootprint; \n \n if(Number(params.data.carbonFootprint) <= 0)\n { \n this.placeholdertext = this.translate.instant('enter_cev'); \n }\n \n if(Number(this.value)>0)\n this.placeholdertext = '';\n\n this.isMandatory = params.data.sequence == CounterAppSeqType.Mandatory ; \n this.isEnd = params.data.sequence == CounterAppSeqType.End;\n this.errReq = (this.value == '' || Number(this.value) <= 0)|| params.data.errorRecord? true : false;\n if(this.errReq)\n { \n this.placeholdertext = this.translate.instant('label_Required');\n this.value = '';\n }\n\n }\n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onChange(event) {\n \n if(event.target.value && event.target.value != ''){\n this.value = parseFloat(event.target.value).toFixed(2);\n }\n else{\n this.value = event.target.value;\n }\n this.errReq = (this.value == '' || Number(this.value) <= 0) ? true : false;\n this.params.setValue(this.value);\n this.params.node.setData(this.params.data);\n this.params.eGridCell.click();\n }\n\n}\n","\n\n\n {{ value }}","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'grid-textbox-renderer',\n templateUrl: './grid-textbox-renderer.component.html'\n})\n\nexport class GridTextBoxRendererComponent implements ICellRendererAngularComp {\n placeHolder = \"\";\n maxLength: number;\n value: any;\n params: any;\n isRequired: boolean = false;\n showValidator: boolean = false;\n isShowText: boolean = false;\n disabled: boolean = false;\n isShowValidationOnInit: boolean = false;\n\n\n initilize(params: ICellRendererParams) {\n\n if (params && params.data && params.data.isShowText) {\n this.isShowText = params.data.isShowText;\n }\n\n if (params && params.data && params.data.disabled) {\n this.disabled = params.data.disabled;\n }\n\n if (params && params.data && params.data.isRequired) {\n this.isRequired = params.data.isRequired;\n }\n\n if (params.colDef.headerComponentParams) {\n if (params.colDef.headerComponentParams.maxLength) {\n this.maxLength = params.colDef.headerComponentParams.maxLength;\n }\n\n if (params.colDef.headerComponentParams.placeHolder) {\n this.placeHolder = params.colDef.headerComponentParams.placeHolder;\n }\n\n if (params.colDef.headerComponentParams.isShowValidationOnInit) {\n this.isShowValidationOnInit = params.colDef.headerComponentParams.isShowValidationOnInit;\n }\n }\n \n this.value = params.getValue();\n\n if( this.isShowValidationOnInit && !this.value){\n this.showValidator = true;\n }\n }\n\n agInit(params: any): void {\n this.params = params;\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onInput($event) {\n if (this.params.onInput instanceof Function) {\n this.showValidator = false;\n\n this.params.setValue($event.target.value);\n\n let params = { event: $event, rowData: this.params.node.data }\n this.params.onInput(params);\n\n if (params.rowData.isRequired) {\n this.isRequired = params.rowData.isRequired;\n }\n \n if (!this.NoWhitespaceValidator($event.target.value) && this.isRequired) {\n this.showValidator = true;\n return;\n }\n }\n }\n\n\n NoWhitespaceValidator(value: string): boolean {\n if (value == null) {\n value = \"\";\n }\n\n const isWhitespace = (value || \"\").trim().length === 0;\n\n return !isWhitespace;\n }\n\n}\n","
\n \n \n \n \n
\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-toggle-renderer-second',\n templateUrl: './toggle-renderer-second.component.html'\n})\nexport class ToggleRendererSecondComponent implements ICellRendererAngularComp {\n\n informationId:number;\n isEnabled: boolean; \n params: ICellRendererParams;\n isHidden: boolean = false;\n showText:boolean=false;\n showSwitchText2:string = \"\";\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.params = params;\n if(params.data.informationId)\n {\n this.isEnabled = params.data.isSwitchedOn2; \n this.informationId = params.data.informationId; \n this.isHidden = params.data.isHidden;\n this.showText = params.data.showText;\n this.showSwitchText2 = params.data.showSwitchText2;\n } \n }\n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onChange(event) {\n this.isEnabled = event.target.checked;\n this.params.setValue(this.isEnabled);\n }\n\n}\n","
\n

\n \n \n

\n

\n \n \n

\n
","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'progress-bar-renderer',\n templateUrl: './progress-bar-renderer.component.html'\n})\nexport class ProgressBarRendererComponent implements ICellRendererAngularComp {\n public total: number = 0;\n public value: number = 0;\n public isCompleted: boolean = false;\n\n initilize(params: ICellRendererParams) {\n let data = params.getValue();\n if(data){\n if(data.total){\n this.total = data.total;\n }\n if(data.value){\n this.value = data.value;\n }\n if(this.value == this.total){\n this.isCompleted = true;\n }\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}","import { Component, ViewEncapsulation } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'count-with-checkbox-renderer',\n templateUrl: './count-with-checkbox-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class CountWithCheckBoxRendererComponent implements ICellRendererAngularComp {\n public data: any;\n text: string = '';\n params: any;\n isSelected: boolean;\n isDisabled: boolean;\n\n initilize(params: ICellRendererParams) {\n if (params) {\n this.params = params;\n this.text = params.getValue();\n\n if (params.data) {\n this.data = params.data;\n if(params.data.selected){\n this.isSelected = params.data.selected;\n } \n if(params.data.disabled){\n this.isDisabled = params.data.disabled;\n } \n }\n }\n\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onClick($event) {\n\n if (this.params.onClick instanceof Function && $event && $event.target) {\n this.data.selected = $event.target.checked;\n this.params.onClick(this.data);\n }\n }\n}\n","\n {{text}} \n \n \n \n","\n\n \n
\n

{{ item.value }}

\n

{{ item.description }}

\n
\n \n \n {{ item.value }}\n \n \n\n \n
\n
\n\n {{ value }}","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-ng-select-description-renderer',\n templateUrl: './ng-select-description-rendrer.component.html',\n styleUrls: ['./ng-select-description-rendrer.component.scss']\n})\nexport class NgSelectDescriptionRendrerComponent implements ICellRendererAngularComp {\n\n showCheckIcon: boolean;\n placeholder = \"\";\n items = [];\n value: any;\n params: any;\n\n isShowText: boolean = false;\n isShowBold: boolean = false;\n\n initilize(params: ICellRendererParams) {\n\n if (params && params.data && params.data.isShowText) {\n this.isShowText = params.data.isShowText;\n }\n\n if (params && params.data && params.data.isShowBold) {\n this.isShowBold = params.data.isShowBold;\n }\n\n if (params.colDef.headerComponentParams) {\n this.items = params.colDef.headerComponentParams.dropdownItems;\n this.placeholder = params.colDef.headerComponentParams.placeholder;\n }\n\n this.value = params.getValue();\n\n this.value = (this.value == 0) ? null : this.value;\n }\n\n agInit(params: any): void {\n this.params = params;\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onChange($event) {\n if (this.params.onChange instanceof Function) {\n const params = {\n event: $event,\n rowData: this.params.node.data\n }\n this.params.onChange(params);\n }\n }\n\n}","{{ 'label_yes' | translate}}\n{{ 'label_no' | translate}}","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'app-result-renderer',\n templateUrl: './result-renderer.component.html'\n})\nexport class ResultRendererComponent implements ICellRendererAngularComp {\n param:string;\n public result: number;\n constructor() {\n //Empty constructor\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.result = params.data.caResult\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}","\n\n \n
\n {{ item.value }}\n
\n\n
\n\n
\n","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'grid-dropdown-renderer',\n templateUrl: './grid-dropdown-renderer.component.html',\n styleUrls: [\"./grid-dropdown-renderer.component.scss\"],\n})\n\nexport class GridDropdownRendererComponent implements ICellRendererAngularComp {\n\n placeholder = \"\";\n items = [];\n value: any;\n params: any;\n\n initilize(params: ICellRendererParams) {\n\n if (params.colDef.headerComponentParams) {\n this.placeholder = params.colDef.headerComponentParams.placeholder;\n }\n\n if (params.data) {\n this.items = params.data.dropdownList ? params.data.dropdownList : [];\n }\n\n this.value = params.getValue();\n }\n\n agInit(params: any): void {\n this.params = params;\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onChange($event) {\n if (this.params.onChange instanceof Function) {\n const params = {\n event: $event,\n rowData: this.params.node.data\n }\n this.params.setValue(params.event.id);\n this.params.onChange(params);\n }\n }\n\n}\n","import { Component } from \"@angular/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'receipts-text',\n templateUrl: './receipts-text-renderer.component.html'\n})\nexport class ReceiptsTextRendererComponent implements ICellRendererAngularComp {\n public hasReceipt: boolean = false;\n text: string = this.translate.instant(\"text_view_receipts\");\n class: string = '';\n actionButtons: any[] = [];\n params: ICellRendererParams;\n \n constructor(private translate: TranslateService)\n {\n\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n if(params.data.invoice?.invoiceNumber)\n {\n this.text = this.translate.instant(\"text_view_invoice_receipt\");\n }\n this.hasReceipt = params.data.hasReceipt;\n this.params= params;\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n onUserAction(action) {\n this.params.data.userAction = action;\n this.params.node.setData(this.params.data);\n this.params.eGridCell.click();\n }\n}\n","{{text}}","\n \n \n {{ value }}","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'two-decimal-number-input-renderer',\n templateUrl: './two-decimal-number-input-renderer.component.html'\n})\n\nexport class TwoDecimalNumberInputRendererComponent implements ICellRendererAngularComp {\n placeHolder = \"\";\n maxLength: number;\n value: any;\n params: any;\n isRequired: boolean = false;\n showValidator: boolean = false;\n isShowText: boolean = false;\n disabled: boolean = false;\n isShowValidationOnInit: boolean = false;\n\n initilize(params: ICellRendererParams) {\n\n if (params && params.data && params.data.isShowText) {\n this.isShowText = params.data.isShowText;\n }\n\n if (params && params.data && params.data.disabled) {\n this.disabled = params.data.disabled;\n }\n\n if (params && params.data && params.data.isRequired) {\n this.isRequired = params.data.isRequired;\n }\n\n if (params.colDef.headerComponentParams) {\n \n if (params.colDef.headerComponentParams.isRequired) {\n this.isRequired = params.colDef.headerComponentParams.isRequired;\n }\n\n if (params.colDef.headerComponentParams.maxLength) {\n this.maxLength = params.colDef.headerComponentParams.maxLength;\n }\n\n if (params.colDef.headerComponentParams.placeHolder) {\n this.placeHolder = params.colDef.headerComponentParams.placeHolder;\n }\n\n if (params.colDef.headerComponentParams.isShowValidationOnInit) {\n this.isShowValidationOnInit = params.colDef.headerComponentParams.isShowValidationOnInit;\n }\n }\n \n this.value = params.getValue();\n\n if( this.isShowValidationOnInit && !this.value){\n this.showValidator = true;\n }\n }\n\n agInit(params: any): void {\n this.params = params;\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onInput($event) {\n if (this.params.onInput instanceof Function) {\n this.showValidator = false;\n\n this.params.setValue($event.target.value);\n\n let params = { event: $event, rowData: this.params.node.data }\n this.params.onInput(params);\n\n if (params.rowData.isRequired) {\n this.isRequired = params.rowData.isRequired;\n }\n \n if (!this.NoWhitespaceValidator($event.target.value) && this.isRequired) {\n this.showValidator = true;\n return;\n }\n }\n }\n\n\n NoWhitespaceValidator(value: string): boolean {\n if (value == null) {\n value = \"\";\n }\n\n const isWhitespace = (value || \"\").trim().length === 0;\n\n return !isWhitespace;\n }\n\n}\n","
\n {{ item.textBeforeBtn }}\n \n
","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'action-buttons-renderer',\n templateUrl: './action-buttons-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\n\nexport class ActionButtonsRendererComponent implements ICellRendererAngularComp {\n actionButtons: any[] = [];\n params: ICellRendererParams;\n\n\n onUserAction(action) {\n this.params.data.userAction = action;\n this.params.node.setData(this.params.data);\n this.params.eGridCell.click();\n }\n\n initilize(params: ICellRendererParams) {\n if (params && params.data) {\n this.params = params;\n this.actionButtons = JSON.parse(JSON.stringify(params.colDef.headerComponentParams));\n for (let i = 0; i < this.actionButtons.length; i++) {\n this.actionButtons[i].disableProperty = this.actionButtons[i].disableProperty && this.params.data[this.actionButtons[i].disableProperty]\n this.actionButtons[i].hideProperty = this.actionButtons[i].hideProperty && this.params.data[this.actionButtons[i].hideProperty] \n }\n }\n else {\n this.actionButtons = [];\n }\n }\n\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'rate-renderer-cell',\n templateUrl: './rate-renderer.component.html'\n})\nexport class RateRendererComponent implements ICellRendererAngularComp {\n public rate: number;\n\n initilize(params: ICellRendererParams) {\n this.rate = params.getValue();\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n"," {{ rate }}","0\" class=\"d-inline-block text-logo-blue cursor-pointer text-underline lH-12\"> \n {{ count }}\n\n\n \n {{ count }}\n","import { Component } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'count-link-renderer',\n templateUrl: './count-link-renderer.component.html'\n})\nexport class CountLinkRendererComponent implements ICellRendererAngularComp {\n public count: number;\n\n initilize(params: ICellRendererParams) {\n this.count = params.getValue();\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Component({\n selector: 'translated-text-renderer',\n templateUrl: './translated-text-renderer.component.html',\n})\nexport class TranslatedTextTendererComponent implements ICellRendererAngularComp {\n\n public text: string;\n\n constructor(\n private translate: TranslateService,\n ) {\n }\n\n initilize(params: ICellRendererParams) {\n let text = params.getValue();\n if(text){\n this.text = this.translate.instant(text);\n } \n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","
{{text}}
","
\n
\n \n\n {{displayText}}\n \n
\n
","import { Component, ViewEncapsulation } from \"@angular/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'radio-cell',\n templateUrl: './radio-renderer.component.html'\n})\nexport class RadioRendererComponent implements ICellRendererAngularComp {\n isSelected: boolean;\n isCheckboxDisabled: boolean;\n params: any;\n isHideText: boolean;\n\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.params = params;\n this.isSelected = params.data.selected;\n\n if (params.data.isHideText) {\n this.isHideText = params.data.isHideText;\n }\n\n }\n }\n\n onClick(event) {\n if (this.params.onClick instanceof Function) {\n let params = { event: event, rowData: this.params.node.data }\n this.params.onClick(params);\n }\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n\n\n\n\n","
\n \n
\n","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'multiple-button-renderer',\n templateUrl: './multiple-button-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\n\nexport class MultipleButtonRendererComponent implements ICellRendererAngularComp {\n actionButtons: any[] = [];\n params: ICellRendererParams;\n constructor() {\n\n }\n\n onUserAction(action) {\n this.params.data.userAction = action;\n this.params.node.setData(this.params.data);\n this.params.eGridCell.click();\n }\n\n initilize(params: ICellRendererParams) {\n if (params && params.data) {\n this.params = params;\n this.actionButtons = JSON.parse(JSON.stringify(params.colDef.headerComponentParams));\n }\n else {\n this.actionButtons = [];\n }\n }\n\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","\n

{{text}}\n {{aboutToExpirytext}}\n {{suspensionText}}\n {{secondDocumentPart3}}\n \n \n

\n

({{secondDocumentPart1}} \n

\n

{{ 'grade_status' | translate}} : \n {{secondDocumentPart2}})\n

\n
\n \n

\n\n\n\n\n","import { DatePipe } from \"@angular/common\";\nimport { Component, ViewEncapsulation } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'status-supporting-text-renderer',\n templateUrl: './status-supporting-text-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\n\nexport class StatusSupportingTextRendererComponent implements ICellRendererAngularComp {\n\n text: string = '';\n class: string = '';\n aboutToExpirytext: string = '';\n suspensionText: string = '';\n secondDocumentPart1 : string = '';\n secondDocumentPart2 : string = '';\n secondDocumentPart3 : string = '';\n colorStatusBeforeExpiry : string = '';\n status:number;\n isStatusChange: boolean;\n constructor(public datePipe: DatePipe,\n private translate: TranslateService) {\n }\n\n initilize(params: ICellRendererParams) {\n let value = params.getValue();\n if (value && params.colDef.headerComponentParams) {\n let item = params.colDef.headerComponentParams.find(item => item.value == value);\n if (item) {\n this.class = item.class;\n this.text = item.text;\n }\n }\n else{\n this.class = \"\";\n this.text = \"\"; \n } \n \n if(params.data)\n { \n this.isStatusChange=false;\n this.status = params.data.status;\n if(params.data.status == 9)\n { this.suspensionText = params.data.suspensionStartDate > 0 && params.data.suspensionEndDate > 0 ?\n \" (\" + this.datePipe.transform(new Date(parseInt(params.data.suspensionStartDate.toString())),\"dd-MMM-yyyy\") +\" to \" +\n this.datePipe.transform(new Date(parseInt(params.data.suspensionEndDate.toString())),\"dd-MMM-yyyy\") + \")\" : \"\";\n }\n if(params.data.status != params.data.statusBeforeExpiry && params.data.status != 9)\n { \n this.isStatusChange = true;\n this.secondDocumentPart3 = \"(\" + this.translate.instant('new_document_submitted') + \")\";\n\n this.secondDocumentPart1=\"

({{secondDocumentPart1}}\" \n +\"

Status :\"\n +\"{{secondDocumentPart2}})

\";\n\n this.secondDocumentPart1 = this.translate.instant('new_document_submitted_on') + \" \" + this.datePipe.transform(new Date(parseInt(params.data.submissionDateBeforeExpiry.toString())),\"dd-MMM-yyyy\");\n this.secondDocumentPart2 = this.fnGetStatus(params.data.statusBeforeExpiry);\n this.colorStatusBeforeExpiry = params.data.colorStatusBeforeExpiry;\n }\n else if(params.data.status == 6)\n this.aboutToExpirytext = params.data.remainingDaysExpiry > 0 ? \" (\" + this.translate.instant('document_will_expire') +\" \"+ params.data.remainingDaysExpiry + this.translate.instant('days') + \")\" : \"\";\n }\n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n fnGetStatus(status: number)\n {\n var string = \"\";\n switch(status)\n {\n case 1 : string = this.translate.instant('please_complete');\n break;\n case 2 : string = this.translate.instant('incomplete');\n break;\n case 3 : string = this.translate.instant('pending_submission');\n break;\n case 4 : string = this.translate.instant('pending_for_approval');\n break;\n case 5 : string = this.translate.instant('label_rejected');\n break;\n case 6 : string = this.translate.instant('approved');\n break;\n case 7 : string = this.translate.instant('expired');\n break;\n case 10 : string = this.translate.instant('about_to_expire');\n break;\n case 9 : string = this.translate.instant('suspended');\n break;\n case 11 : string = this.translate.instant('not_required');\n break;\n }\n return string;\n }\n}","\n\n","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'custom-actions-renderer',\n templateUrl: './custom-actions-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\n\nexport class CustomActionsRendererComponent implements ICellRendererAngularComp {\n actionButtons: any[] = [];\n params: ICellRendererParams;\n buttonAlignmentClass: string = 'text-right';\n constructor() {\n\n }\n\n onUserAction(action) {\n this.params.data.userAction = action;\n this.params.node.setData(this.params.data);\n this.params.eGridCell.click();\n }\n\n initilize(params: ICellRendererParams) {\n if (params && params.data) {\n this.params = params;\n this.actionButtons = JSON.parse(JSON.stringify(params.colDef.headerComponentParams)); \n for (let i = 0; i < this.actionButtons.length; i++) {\n this.actionButtons[i].isDisabled = this.actionButtons[i].disableProperty && this.params.data[this.actionButtons[i].disableProperty]\n this.actionButtons[i].isHidden = this.actionButtons[i].hideProperty && this.params.data[this.actionButtons[i].hideProperty]\n this.buttonAlignmentClass = this.actionButtons[i].buttonAlignmentClass ?? this.buttonAlignmentClass; \n }\n }\n else {\n this.actionButtons = [];\n }\n } \n\n showEditGradePanelFunction() {\n\n }\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n}\n","
\n \n \n \n
","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'grid-toggle-renderer',\n templateUrl: './grid-toggle-renderer.component.html'\n})\nexport class GridToggleRendererComponent implements ICellRendererAngularComp {\n\n isEnabled: boolean; \n params: any;\n showText: boolean;\n showSwitchText:string = \"\";\n sequence: number;\n\n constructor() {\n }\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n this.params = params;\n this.isEnabled = params.data.isActive;\n this.sequence = params.data.sequence; \n this.showText = params.data.showText; \n this.showSwitchText = params.data.showSwitchText; \n }\n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n onChange(event) {\n this.isEnabled = event.target.checked;\n this.params.setValue(this.isEnabled);\n this.params.onChange(this.params);\n }\n\n}\n","{{text}}\n{{text}}\n\n","import { Component } from \"@angular/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\nimport { TranslateService } from '@ngx-translate/core';\n\n@Component({\n selector: 'multiple-card-number-renderer',\n templateUrl: './multiple-card-number-renderer.component.html'\n})\nexport class MultipleCardNumberRendererComponent implements ICellRendererAngularComp {\n\n params: ICellRendererParams;\n isMultipleCard: boolean;\n public text: string;\n \n constructor(private translate: TranslateService){}\n\n initilize(params: ICellRendererParams) {\n if (params.data) {\n if(params.data.isMultipleCard)\n {\n this.isMultipleCard = true;\n }\n else{\n this.isMultipleCard = false;\n }\n this.text = params.getValue();\n this.params= params;\n }\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n \n // called on init\n agInit(params: any): void {\n this.initilize(params);\n\n }\n}\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'view-renderer',\n templateUrl: './view-renderer.component.html'\n})\nexport class ViewRendererComponent implements ICellRendererAngularComp {\n hideLink: boolean = false;\n constructor() {\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n initilize(params: ICellRendererParams) {\n if (params.data && params.data.hideLink) {\n this.hideLink = true;\n }\n }\n}\n","\n \n View\n ","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\n\n@Component({\n selector: 'day-policy-renderer',\n templateUrl: './day-policy-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class DayPolicyRenderer implements ICellRendererAngularComp {\n data: any;\n violationTooltip: string;\n\n constructor(private translate: TranslateService) {\n }\n\n initilize(params: ICellRendererParams) {\n this.data = params.getValue();\n this.violationTooltip = this.translate.instant('expense_policy_violation');\n }\n\n agInit(params: any): void {\n this.initilize(params);\n }\n\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n}","\n \n \n\n {{ data }}\n\n\n\n","
\n

{{name}}

\n
\n\n
0 && preApprovalTag\">\n

{{name}} \n | \n \n {{ 'label_expired' | translate }}\n \n 0\">\n {{preApprovalTag.remainingDays}} {{ 'day_left' | translate }}\n \n

\n
\n

\n {{ 'approval_date' | translate }}: {{ preApprovalTag.approvalDate | date: \"dd-MMM-yyyy\" }}|\n \n {{ 'balance' | translate }}: {{ preApprovalTag.balance | number: \"1.2-2\" | noComma }} {{preApprovalTag.currencyCode}}\n

\n

0\">\n \n \n {{ 'pre_approval_note1' | translate }} \n {{preApprovalTag.overDue}} {{ 'pre_approval_note2' | translate }} \n \n

\n
\n
","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'pre-approval-tag-renderer',\n templateUrl: './pre-approval-tag-renderer.component.html'\n})\nexport class PreApprovalTagRendererComponent implements ICellRendererAngularComp {\n name: string = \"\";\n preApprovalId: number = 0;\n preApprovalTag: any;\n\n constructor() {\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n initilize(params: ICellRendererParams) {\n \n this.name = params.getValue();\n if (params.data && params.data.preApprovalId) {\n this.preApprovalId = params.data.preApprovalId;\n }\n\n if (params.data && params.data.preApprovalId) {\n this.preApprovalTag = params.data.preApprovalTag;\n }\n\n\n }\n}\n","
\n {{count}}\n 0\">\n {{ 'preApprovalTag' | translate }}\n \n
\n\n\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'pre-approval-count-renderer',\n templateUrl: './pre-approval-count-renderer.component.html'\n})\nexport class PreApprovalCountRendererComponent implements ICellRendererAngularComp {\n count: number = 0;\n preApprovalId : number = 0;\n\n constructor() {\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n initilize(params: ICellRendererParams) { \n this.count = params.getValue();\n\n if (params.data && params.data.preApprovalId) {\n this.preApprovalId = params.data.preApprovalId;\n }\n \n }\n}\n","\n {{name}}\n\n 0\">\n {{tagName}}\n\n\n\n","import { Component } from '@angular/core';\nimport { ICellRendererAngularComp } from 'ag-grid-angular';\nimport { ICellRendererParams } from 'ag-grid-community';\n\n@Component({\n selector: 'pre-approval-link-renderer',\n templateUrl: './pre-approval-link-renderer.component.html'\n})\n\nexport class PreApprovalLinkRendererComponent implements ICellRendererAngularComp {\n name: string = \"\";\n preApprovalId : number = 0;\n tagName: string = '';\n\n constructor() {\n }\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n\n initilize(params: ICellRendererParams) { \n this.name = params.getValue();\n \n if (params.data && params.data.preApprovalId) {\n this.preApprovalId = params.data.preApprovalId;\n }\n\n if (params.colDef && params.colDef.headerComponentParams) {\n this.tagName = params.colDef.headerComponentParams.tagName;\n }\n\n }\n}\n","
\n
\n

{{ \"success\" | translate: param }}

\n

{{ \"fail\" | translate: param }}

\n
\n
\n
0 &&\n data?.failCount > 0 \">\n

{{ \"success\" | translate: param }} ({{ data?.successCount }}),

\n

{{ \"fail\" | translate: param }} ({{ data?.failCount }})

\n
\n\n

\n {{ \"success\" | translate: param }}\n

\n

0 \">\n {{ \"fail\" | translate: param }} ({{ data?.failCount }})\n

\n

0 &&\n data?.failCount == 0\">\n {{ \"success\" | translate: param }} ({{ data?.successCount }})\n

\n\n \n
0\">\n \n Exporting {{data?.successCount}} of {{data?.inQueueCount +\n data?.successCount +\n data?.failCount }}\n
\n\n
\n
\n\n\n\n","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\nimport { param } from \"jquery\";\n\n@Component({\n selector: 'app-export-log-status-renderer',\n templateUrl: './export-log-status-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class ExportLogStatusRendererComponent implements ICellRendererAngularComp{\n downloadaction : string = \"viewdetaildownload\";\n actionButtons: any[] = [];\n params: ICellRendererParams;\n data : any ={};\n constructor() {\n\n }\n\n onUserAction(action) {\n this.params.data.userAction = action;\n this.params.node.setData(this.params.data);\n this.params.eGridCell.click();\n }\n\n\n initilize(params: ICellRendererParams) {\n if (params && params.data) {\n this.params = params;\n this.data = params.data;\n this.actionButtons = JSON.parse(JSON.stringify(params.colDef?.headerComponentParams));\n }\n else {\n this.actionButtons = [];\n }\n }\n\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n}\n","
\n
\n \n \n \n
\n \n
\n \n
\n
\n","import { Component, ViewEncapsulation } from \"@angular/core\";\nimport { ICellRendererAngularComp } from \"ag-grid-angular\";\nimport { ICellRendererParams } from \"ag-grid-community\";\nimport { param } from \"jquery\";\n\n@Component({\n selector: 'app-export-log-action-renderer',\n templateUrl: './export-log-action-renderer.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class ExportLogActionRendererComponent {\n Xeroaction : string = \"XeroAction\";\n viewdetailaction : string = \"ViewDetailAction\";\n multiformatdownloadaction : string = \"MultiFormatDownloadAction\";\n actionButtons: any[] = [];\n params: ICellRendererParams;\n data : any ={};\n constructor() {\n\n }\n\n onUserAction(action) {\n this.params.data.userAction = action;\n this.params.node.setData(this.params.data);\n this.params.eGridCell.click();\n }\n\n\n initilize(params: ICellRendererParams) {\n if (params && params.data) {\n this.params = params;\n this.data = params.data;\n this.actionButtons = JSON.parse(JSON.stringify(params.colDef?.headerComponentParams));\n }\n else {\n this.actionButtons = [];\n }\n }\n\n\n // called on init\n agInit(params: any): void {\n this.initilize(params);\n }\n\n // called when the cell is refreshed\n refresh(params: any): boolean {\n this.initilize(params);\n return true;\n }\n}\n","
\n
\n
\n
\n
\n \n \n \n
\n
\n
0\"\n [ngClass]=\"dropDownClass\">\n
0 ? '' : 'none'}\">\n \n \n
\n
\n
\n {{\"filter_by\"| translate }}\n
\n \n \n \n
\n
\n
0\"\n [ngClass]=\"dropDownClass\">\n
0 ? '' : 'none'}\">\n \n \n
\n
\n
\n\n
\n \n \n \n
\n\n
\n
\n\n

\n {{\"advance_search\" | translate}}

\n

\n \n ({{\"letter_filter\" | translate}} \"{{advanceSearchAlphabet}}\" - {{\"clear_filter\" | translate}})\n

\n\n\n\n
\n
\n
0 ? '' : 'none'}\"\n *ngFor=\"let item of gridConfigItems.countByStatus\"\n [ngClass]=\"item.className\">\n {{item.label | translate:param}}:\n {{item.count}}\n
\n \n
\n
\n
\n
\n
\n
{{gridConfigItems.gridTitle | translate:param}}
\n
\n\n
\n
\n \n \n
\n
\n\n\n\n\n
\n
\n
\n
\n
\n

{{\"advance_search\" | translate}}

\n
\n
\n \n
\n
\n
\n
\n
\n
{{\"name_search_text\" | translate}}
\n ({{\"contacts_count_text\" | translate}})\n
\n
\n
\n
\n
    \n
  • 0&&filterWithAdvanceFilter('A')\">A ({{startsWith_A}})
  • \n
  • 0&&filterWithAdvanceFilter('B')\">B ({{startsWith_B}})
  • \n
  • 0&&filterWithAdvanceFilter('C')\">C ({{startsWith_C}})
  • \n
  • 0&&filterWithAdvanceFilter('D')\">D ({{startsWith_D}})
  • \n
  • 0&&filterWithAdvanceFilter('E')\">E ({{startsWith_E}})
  • \n
  • 0&&filterWithAdvanceFilter('F')\">F ({{startsWith_F}})
  • \n
\n
    \n
  • 0&&filterWithAdvanceFilter('G')\">G ({{startsWith_G}})
  • \n
  • 0&&filterWithAdvanceFilter('H')\">H ({{startsWith_H}})
  • \n
  • 0&&filterWithAdvanceFilter('I')\">I ({{startsWith_I}})
  • \n
  • 0&&filterWithAdvanceFilter('J')\">J ({{startsWith_J}})
  • \n
  • 0&&filterWithAdvanceFilter('K')\">K ({{startsWith_K}})
  • \n
  • 0&&filterWithAdvanceFilter('L')\">L ({{startsWith_L}})
  • \n
\n
    \n
  • 0&&filterWithAdvanceFilter('M')\">M ({{startsWith_M}})
  • \n
  • 0&&filterWithAdvanceFilter('N')\">N ({{startsWith_N}})
  • \n
  • 0&&filterWithAdvanceFilter('O')\">O ({{startsWith_O}})
  • \n
  • 0&&filterWithAdvanceFilter('P')\">P ({{startsWith_P}})
  • \n
  • 0&&filterWithAdvanceFilter('Q')\">Q ({{startsWith_Q}})
  • \n
  • 0&&filterWithAdvanceFilter('R')\">R ({{startsWith_R}})
  • \n
\n
    \n
  • 0&&filterWithAdvanceFilter('S')\">S ({{startsWith_S}})
  • \n
  • 0&&filterWithAdvanceFilter('T')\">T ({{startsWith_T}})
  • \n
  • 0&&filterWithAdvanceFilter('U')\">U ({{startsWith_U}})
  • \n
  • 0&&filterWithAdvanceFilter('V')\">V ({{startsWith_V}})
  • \n
  • 0&&filterWithAdvanceFilter('W')\">W ({{startsWith_W}})
  • \n
  • 0&&filterWithAdvanceFilter('X')\">X ({{startsWith_X}})
  • \n
\n
    \n
  • 0&&filterWithAdvanceFilter('Y')\">Y ({{startsWith_Y}})
  • \n
  • 0&&filterWithAdvanceFilter('Z')\">Z ({{startsWith_Z}})
  • \n
  •  (20)
  • \n
  •  (20)
  • \n
  •  (20)
  • \n
  •  (20)
  • \n
\n
\n
\n
\n
\n
\n
\n
\n","import { AfterViewInit, Component, ElementRef, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild, ViewEncapsulation } from \"@angular/core\";\nimport { fromEvent, of, Subscription } from \"rxjs\";\nimport { ColumnApi, GridApi, GridOptions, IGetRowsParams, IDatasource } from \"ag-grid-community\";\nimport { LogIconRendererComponent } from \"../controls/log-icon-renderer/log-icon-renderer.component\";\nimport { CheckBoxRendererComponent } from \"../controls/checkbox-renderer/checkbox-renderer.component\";\nimport { ActionsRendererComponent } from \"../controls/actions-renderer/actions-renderer.component\";\nimport { CustomHeaderComponent } from \"../controls/header-component/custom-header.component\";\nimport { StatusRenderComponent } from \"../controls/status-renderer/status-renderer.component\";\nimport { GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { ChevronRendererComponent } from \"../controls/chevron-renderer/chevron-renderer.component\";\nimport { PreApprovalRendererComponent } from \"../controls/pre-approval-renderer/pre-approval-renderer.component\";\nimport { ReceiptIconRendererComponent } from \"../controls/receipt-icon-renderer/receipt-icon-renderer.component\";\nimport { FieldValueRendererComponent } from \"../controls/field-value-renderer/field-value-renderer.component\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { DateRendererComponent } from \"../controls/date-renderer/date-renderer.component\";\nimport { DateTimeRendererComponent } from \"../controls/date-time-renderer/date-time-renderer.component\";\nimport { AmountRendererComponent } from \"../controls/amount-renderer/amount-renderer.component\";\nimport { PolicyNameRendererComponent } from \"../controls/policy-name-renderer/policy-name-renderer.component\";\nimport { PolicyAmountRendererComponent } from \"../controls/policy-amount-renderer/policy-amount-renderer.component\";\nimport { CheckIconRendererComponent } from \"../controls/check-icon-renderer/check-icon-renderer.component\";\nimport { PricingTextRendererComponent } from \"../controls/pricing-text-renderer/pricing-text-renderer.component\";\nimport { ReceiptsIconRendererComponent } from \"../controls/receipts-icon-renderer/receipts-icon-renderer.component\";\nimport { SafeTextRendererComponent } from \"../controls/safe-text-renderer/safe-text-renderer.component\";\nimport { StarterMobileSupportIconRendererComponent } from \"../controls/starter-mobile-support-icon-renderer/starter-mobile-support-icon-renderer.component\";\nimport { StarterWebSupportIconRendererComponent } from \"../controls/starter-web-support-icon-renderer/starter-web-support-icon-renderer.component\";\nimport { NgSelectRendererComponent } from \"../controls/ng-select-renderer/ng-select-renderer.component\";\nimport { TooltipRenderComponent } from \"../controls/tooltip-renderer/tooltip-renderer.component\";\nimport { TextWithTooltipRightRendererComponent } from \"../controls/text-tooltip-right-renderer/text-tooltip-right-renderer.component\";\nimport { CardNumberRendererComponent } from \"../controls/card-number-renderer/card-number-renderer.component\";\nimport { CardAssignedUsernameRendererComponent } from \"../controls/card-assigned-username-renderer/card-assigned-username-renderer.component\";\nimport { TextWithTooltipRendererComponent } from \"../controls/text-tooltip-renderer/text-tooltip-renderer.component\";\nimport { TextWithTooltipRenderer2Component } from \"../controls/text-tooltip-renderer2/text-tooltip-renderer2.component\";\nimport { ClickToSetupRendererComponent } from \"../controls/click-to-setup-renderer/click-to-setup-renderer.component\";\nimport { ToggleRendererComponent } from \"../controls/toggle-renderer/toggle-renderer.component\";\nimport { TextboxRendererComponent } from \"../controls/textbox-renderer/textbox-renderer.component\";\nimport { TextRendererComponent } from \"../controls/text-renderer/text-renderer.component\";\nimport { CheckboxIngridRendererComponent } from \"../controls/checkbox-ingrid-renderer/checkbox-ingrid-renderer.component\";\nimport { ButtonsRendererComponent } from \"../controls/buttons-renderer/buttons-renderer.component\";\nimport { ImportErrorsCountRendererComponent } from \"../controls/import-errors-count-renderer/import-errors-count-renderer.component\";\nimport { FormattedTextRenderer } from \"../controls/formatted-text-renderer/formatted-text-renderer.component\";\nimport { ApproverRenderer } from \"../controls/approver-renderer/approver-renderer.component\";\nimport { DefaultMessageRendererComponent } from \"../controls/default-message-renderer/default-message-renderer.component\";\nimport { SuspensionMessageRendererComponent } from \"../controls/suspension-message-renderer/suspension-message-renderer.component\";\nimport { TextWithDescriptionRendererComponent } from \"../controls/text-with-description-renderer/text-with-description-renderer.component\";\nimport { ApprovalDataRendererComponent } from \"../controls/approval-data-renderer/approval-data-renderer.component\";\nimport { InfoStepRendererComponent } from \"../controls/info-step-renderer/info-step-renderer.component\";\nimport { PrivilegeCountRendererComponent } from \"../controls/privilege-count-renderer/privilege-count-renderer.component\";\nimport { StatusDataRenderComponent } from \"src/app/shared/grid/controls/status-data-renderer/status-data-renderer.component\";\nimport { GridNgSelectOrTextRendererComponent } from \"src/app/shared/grid/controls/grid-ng-select-or-text-renderer/grid-ng-select-or-text-renderer.component\";\nimport { GridTextBoxOrTextRendererComponent } from \"src/app/shared/grid/controls/grid-textbox-or-text-renderer/grid-textbox-or-text-renderer.component\";\nimport { CheckBoxwithTextRenderComponent } from \"src/app/shared/grid/controls/check-box-with-text/check-box-with-text.component\";\nimport { PercentageRendererComponent } from \"src/app/shared/grid/controls/percentage-renderer/percentage-renderer.component\";\nimport { DiscountRendererComponent } from \"src/app/shared/grid/controls/discount-renderer/discount-renderer.component\";\nimport { MultiColorTextRendererComponent } from \"../controls/multi-color-text-renderer/multi-color-text-renderer.component\";\nimport { TextTwoDecimalNumberRendererComponent } from \"../controls/text-two-decimal-number-renderer/text-two-decimal-number-renderer.component\";\nimport { GridTextBoxRendererComponent } from \"src/app/shared/grid/controls/grid-textbox-renderer/grid-textbox-renderer.component\";\nimport { ToggleRendererSecondComponent } from \"../controls/toggle-renderer-second/toggle-renderer-second.component\";\nimport { NRFCConfigModel } from \"src/app/_models/NrFc/nrfcconfig-model\";\nimport { formatDate } from \"@angular/common\";\nimport { ProgressBarRendererComponent } from \"src/app/shared/grid/controls/progress-bar-renderer/progress-bar-renderer.component\";\nimport { CountWithCheckBoxRendererComponent } from \"src/app/shared/grid/controls/count-with-checkbox-renderer/count-with-checkbox-renderer.component\";\nimport { NgSelectDescriptionRendrerComponent } from \"../controls/ng-select-description-rendrer/ng-select-description-rendrer.component\";\nimport { ResultRendererComponent } from \"../controls/result-renderer/result-renderer.component\";\nimport { GridDropdownRendererComponent } from \"src/app/shared/grid/controls/grid-dropdown-renderer/grid-dropdown-renderer.component\";\nimport { ReceiptsTextRendererComponent } from \"../controls/receipts-text-renderer/receipts-text-renderer.component\";\nimport { TwoDecimalNumberInputRendererComponent } from \"src/app/shared/grid/controls/two-decimal-number-input-renderer/two-decimal-number-input-renderer.component\";\nimport {ActionButtonsRendererComponent} from \"src/app/shared/grid/controls/action-buttons-renderer/action-buttons-renderer.component\";\nimport { RateRendererComponent } from \"../controls/rate-renderer/rate-renderer.component\";\nimport {CountLinkRendererComponent} from \"src/app/shared/grid/controls/count-link-renderer/count-link-renderer.component\";\nimport {TranslatedTextTendererComponent} from \"src/app/shared/grid/controls/translated-text-renderer/translated-text-renderer.component\";\nimport {RadioRendererComponent} from \"src/app/shared/grid/controls/radio-renderer/radio-renderer.component\";\nimport {MultipleButtonRendererComponent} from \"src/app/shared/grid/controls/multiple-button-renderer/multiple-button-renderer.component\";\nimport {StatusSupportingTextRendererComponent} from \"src/app/shared/grid/controls/status-supporting-text-renderer/status-supporting-text-renderer.component\";\nimport {CustomActionsRendererComponent} from \"src/app/shared/grid/controls/custom-actions-renderer/custom-actions-renderer.component\";\n\nimport {GridToggleRendererComponent} from \"src/app/shared/grid/controls/grid-toggle-renderer/grid-toggle-renderer.component\";\nimport {MultipleCardNumberRendererComponent} from \"src/app/shared/grid/controls/multiple-card-number-renderer/multiple-card-number-renderer.component\";\nimport {ViewRendererComponent} from \"src/app/shared/grid/controls/view-renderer/view-renderer.component\";\nimport {DayPolicyRenderer} from \"src/app/shared/grid/controls/day-policy-renderer/day-policy-renderer.component\";\nimport {PreApprovalTagRendererComponent} from \"src/app/shared/grid/controls/pre-approval-tag-renderer/pre-approval-tag-renderer.component\";\nimport {PreApprovalCountRendererComponent} from \"src/app/shared/grid/controls/pre-approval-count-renderer/pre-approval-count-renderer.component\";\nimport {PreApprovalLinkRendererComponent} from \"src/app/shared/grid/controls/pre-approval-link-renderer/pre-approval-link-renderer.component\";\n\n\n \nimport {ExportLogStatusRendererComponent} from \"src/app/shared/grid/controls/export-log-status-renderer/export-log-status-renderer.component\";\nimport {ExportLogActionRendererComponent} from \"src/app/shared/grid/controls/export-log-action-renderer/export-log-action-renderer.component\";\n\n\n@Component({\n selector: 'app-grid',\n templateUrl: './grid.component.html',\n styleUrls: ['./grid.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class AppGridComponent implements OnInit, OnDestroy, AfterViewInit {\n\n @Input(\"columns\")\n columnDefs: any[];\n\n @Input(\"data\")\n allGridData: any;\n\n @Input(\"gridFilterItems\")\n gridFilterItems: string;\n\n @Input(\"gridConfigItems\")\n gridConfigItems: GridConfig;\n\n @Input(\"pinnedBottomRowData\")\n pinnedBottomRowData: any;\n @Input(\"fromDateFilter\")\n fromDateFilter: any;\n\n @Input(\"showAdvancedSearch\")\n showAdvancedSearch = false;\n\n @Input(\"dataFilterItems\")\n dataFilterItems: string;\n\n @Input(\"buttonFilterItem\")\n buttonFilterItem: boolean = false;\n\n @Output()\n onCellClick = new EventEmitter();\n\n @Output()\n onCheckAll = new EventEmitter();\n\n @Output()\n filterChanged = new EventEmitter();\n\n @Output()\n advanceSearchChanged = new EventEmitter();\n\n @Output()\n dataFilterChanged = new EventEmitter();\n\n @ViewChild('searchTotalRow', { read: ElementRef }) searchElement: ElementRef;\n @ViewChild(\"fFrmDate\") fFrmDate: any;\n\n gridData: any;\n gridOptions: GridOptions;\n gridApi: GridApi;\n gridColumnApi: ColumnApi;\n gridstyle: any;\n gridWrapperstyle: any = {\n width: '100%',\n height: '100%',\n };\n rowClassRules;\n gridlastRowIndex: number;\n private gridSortColumn: string;\n private gridSortOrder: string;\n private group_MIN_HEIGHT = 40;\n private header_MIN_HEIGHT = 40;\n private isAllChecked: boolean = false;\n searchText: string;\n filters: any = null;\n param: string;\n resizeSubscription$: Subscription\n\n overlayLoadingTemplate: string;\n overlayNoRowsTemplate: string;\n isDataLoading: boolean = false;\n isRefresh: boolean = false;\n searchClass: string = 'col-lg-2 col-md-2 col-sm-2';\n dropDownClass: string = 'col-lg-2 col-md-2 col-sm-2';\n calendarClass: string = 'col-lg-2 col-md-2 col-sm-2';\n counterDivClass: string = 'col-lg-10 col-md-10 col-sm-10';\n\n gridWrapperClass: string = '';\n nrfcConfigModel: NRFCConfigModel = new NRFCConfigModel();\n constructor(private translate: TranslateService) {\n this.overlayNoRowsTemplate = `\n
\n ${this.translate.instant(\"no_data_availabe\")}\n
\n `;\n this.overlayLoadingTemplate = `\n
\n ${this.translate.instant(\"data_loading\")}\n
\n `;\n }\n\n selectedFilter: number = 8;\n\n ngOnInit() {\n const resizeObservable$ = fromEvent(window, 'resize')\n this.resizeSubscription$ = resizeObservable$.subscribe(evt => {\n this.setWidthAndHeight();\n });\n }\n ngAfterViewInit() {\n //Initialize datePicker\n if (this.fFrmDate) {\n this.fFrmDate.nativeElement.flatpickr(this.nrfcConfigModel.datePickerOptionsFromDate);\n }\n\n }\n \n onFromDateChange(name: string) {\n this.nrfcConfigModel.fromDate = new Date(name);\n this.nrfcConfigModel.pageNumber = 1;\n this.nrfcConfigModel.datePickerOptionsFromDate = {\n mode: \"single\",\n defaultDate: this.nrfcConfigModel.fromDate,\n minDate: this.nrfcConfigModel.fromDate,\n maxDate: new Date(),\n altInput: true,\n altFormat: \"d-M-Y\",\n dateFormat: \"d-M-Y\",\n };\n this.nrfcConfigModel.isDateFilterApplied = true;\n this.nrfcConfigModel.compliantType = 0;\n let model = {\n type: 'calendar',\n value: this.nrfcConfigModel.fromDate.toISOString()\n }\n this.filterChanged.emit(model);\n }\n fnSetDateCalender(dateFilter) {\n let effdateShort = formatDate(dateFilter, 'dd-MMM-yyyy', 'en-US');\n let effDateFormat = new Date(effdateShort);\n this.fFrmDate.nativeElement\n .flatpickr({\n mode: \"single\",\n dateFormat: \"d-M-Y\",\n defaultDate: effDateFormat,\n altInput: true,\n altFormat: \"d-M-Y\"\n });\n }\n ngOnDestroy() {\n if (this.resizeSubscription$) {\n this.resizeSubscription$.unsubscribe();\n }\n }\n\n private setWidthAndHeight() {\n setTimeout(() => {\n if (this.gridFilterItems && this.gridFilterItems.length > 0) {\n this.dropDownClass = 'col-lg-3 col-md-2 col-sm-2';\n } else {\n this.dropDownClass = 'col-md-0';\n }\n\n if (this.fromDateFilter) {\n this.calendarClass = 'col-lg-2 col-md-2 col-sm-2';\n } else {\n this.calendarClass = 'col-md-0';\n }\n\n\n if (this.gridFilterItems && this.gridFilterItems.length > 0 && this.fromDateFilter) {\n if (this.showAdvancedSearch) {\n this.counterDivClass = 'col-lg-5 col-md-5 col-sm-5';\n }\n else {\n this.counterDivClass = 'col-lg-6 col-md-6 col-sm-6';\n }\n }\n else if ((this.gridFilterItems && this.gridFilterItems.length > 0 && !this.fromDateFilter)\n || (this.gridFilterItems && this.gridFilterItems.length == 0 && this.fromDateFilter)\n ) {\n if (this.showAdvancedSearch) { \n this.counterDivClass = 'col-lg-5 col-md-5 col-sm-5'; \n } \n else { \n this.counterDivClass = 'col-lg-7 col-md-8 col-sm-8'; \n } \n }\n else if (this.gridFilterItems && this.gridFilterItems.length == 0 && !this.fromDateFilter) {\n this.counterDivClass = 'col-lg-10 col-md-10 col-sm-10';\n }\n\n if(this.dataFilterItems && this.dataFilterItems.length > 0){\n this.counterDivClass = 'col-lg-6 col-md-6 col-sm-6';\n }\n\n const searchRowRect = this.searchElement.nativeElement.getBoundingClientRect();\n let height = parseInt(((window.innerHeight - searchRowRect.bottom) * 95 / 100).toString());\n if (height < 400) {\n height = 400;\n }\n if (this.gridConfigItems && this.gridConfigItems.gridTitle) {\n height = height - 20;\n }\n this.gridWrapperClass = this.gridConfigItems?.gridWrapperClass ?? this.gridWrapperClass;\n\n this.gridstyle = {\n marginTop: '0px',\n width: '100%',\n height: (height) + 'px',\n boxSizing: 'border-box'\n };\n if (this.pinnedBottomRowData) {\n\n this.gridWrapperstyle = {\n width: '100%',\n height: this.pinnedBottomRowData[0].gridHeight + '%',\n };\n }\n if (this.gridConfigItems.searchBarClass) {\n this.searchClass = this.gridConfigItems.searchBarClass.searchClass;\n this.dropDownClass = this.gridConfigItems.searchBarClass.dropDownClass;\n this.calendarClass = this.gridConfigItems.searchBarClass.calendarClass;\n this.counterDivClass = this.gridConfigItems.searchBarClass.counterDivClass;\n }\n\n }, 100);\n }\n\n private sortGrid(sortColumn, sortDirection) {\n // Sort column and clear sort on all other columns\n this.gridColumnApi.applyColumnState({\n state: [\n {\n colId: sortColumn,\n sort: sortDirection\n }\n ],\n defaultState: {\n // important to say 'null' as undefined means 'do nothing'\n sort: null\n }\n });\n }\n\n public setDataLoading(isDataLoading) {\n this.isDataLoading = isDataLoading;\n if (this.gridlastRowIndex > 0) {\n this.isDataLoading = false;\n this.gridApi.hideOverlay();\n }\n else if (this.isDataLoading) {\n this.gridApi.showLoadingOverlay();\n }\n else {\n this.gridApi.showNoRowsOverlay();\n }\n }\n\n public initializeGrid(isDataLoading = true) {\n let self = this;\n this.isDataLoading = isDataLoading;\n if (this.columnDefs && this.columnDefs.length > 0) {\n this.fnAddCheckboxColumn(this.columnDefs);\n\n this.overlayNoRowsTemplate = `\n
\n ${this.translate.instant(this.gridConfigItems.noDataMessage)}\n
\n `;\n\n this.columnDefs.forEach(columnDef => {\n columnDef.tooltipComponent = 'customTooltip';\n columnDef.tooltipField = columnDef.field;\n if (!columnDef.headerComponentParams) {\n columnDef.headerComponentParams = {};\n }\n columnDef.headerComponentParams.rowCount = this.allGridData.length;\n });\n\n this.gridOptions = {\n rowSelection: 'multiple',\n rowHeight: self.gridConfigItems.rowHeight,\n headerHeight: 0,\n groupHeaderHeight: 0,\n cacheBlockSize: 100,\n maxBlocksInCache: 3,\n rowModelType: 'infinite',\n pagination: false,\n paginationAutoPageSize: true,\n components: {\n cbxRenderer: CheckBoxRendererComponent,\n logRenderer: LogIconRendererComponent,\n actionRenderer: ActionsRendererComponent,\n agColumnHeader: CustomHeaderComponent,\n statusRenderer: StatusRenderComponent,\n ChevronRenderer: ChevronRendererComponent,\n PreApprovalRenderer: PreApprovalRendererComponent,\n PolicyNameRenderer: PolicyNameRendererComponent,\n PolicyAmountRenderer: PolicyAmountRendererComponent,\n ReceiptIconRender: ReceiptIconRendererComponent,\n fieldValueRenderer: FieldValueRendererComponent,\n dateRenderer: DateRendererComponent,\n dateTimeRenderer: DateTimeRendererComponent,\n amountRenderer: AmountRendererComponent,\n checkboxIconRenderer: CheckIconRendererComponent,\n pricingTextRendererComponent: PricingTextRendererComponent,\n receiptsIconRenderer: ReceiptsIconRendererComponent,\n receiptsTextRenderer: ReceiptsTextRendererComponent,\n safeTextRendererComponent: SafeTextRendererComponent,\n starterMobileSupportIconRendererComponent: StarterMobileSupportIconRendererComponent,\n starterWebSupportIconRendererComponent: StarterWebSupportIconRendererComponent,\n customTooltip: TooltipRenderComponent,\n cardNumberRenderer: CardNumberRendererComponent,\n cardAssignedUsernameRenderer: CardAssignedUsernameRendererComponent,\n textWithTooltipRenderer: TextWithTooltipRendererComponent,\n textWithTooltipRightRenderer: TextWithTooltipRightRendererComponent,\n multiColorTextRenderer: MultiColorTextRendererComponent,\n textTwoDecimalNumber: TextTwoDecimalNumberRendererComponent,\n clickToSetupRenderer: ClickToSetupRendererComponent,\n toggleRenderer: ToggleRendererComponent,\n toggleRendererSecond: ToggleRendererSecondComponent,\n textBoxRenderer: TextboxRendererComponent,\n textRenderer: TextRendererComponent,\n checkboxInGrid: CheckboxIngridRendererComponent,\n textWithTooltipRenderer2: TextWithTooltipRenderer2Component,\n ngSelectRenderer: NgSelectRendererComponent,\n buttonRenderer: ButtonsRendererComponent,\n errorsCountRenderer: ImportErrorsCountRendererComponent,\n approverRenderer: ApproverRenderer,\n formattedTextRenderer: FormattedTextRenderer,\n defaultMsgRenderer: DefaultMessageRendererComponent,\n suspensionMsgRenderer: SuspensionMessageRendererComponent,\n textWithDescriptionRenderer: TextWithDescriptionRendererComponent,\n approvalWithDataRenderer: ApprovalDataRendererComponent,\n infoStepRenderer: InfoStepRendererComponent,\n privilegeRendererComponent: PrivilegeCountRendererComponent,\n statusDataRender: StatusDataRenderComponent,\n gridNgSelectOrTextRender: GridNgSelectOrTextRendererComponent,\n gridTextBoxOrTextRender: GridTextBoxOrTextRendererComponent,\n checkBoxwithTextRender: CheckBoxwithTextRenderComponent,\n percentageRenderer: PercentageRendererComponent,\n discountRenderer: DiscountRendererComponent,\n gridTextBoxRenderer: GridTextBoxRendererComponent,\n progressBarRenderer: ProgressBarRendererComponent,\n countWithCheckBoxRenderer: CountWithCheckBoxRendererComponent,\n ngSelectDescriptionRenderer: NgSelectDescriptionRendrerComponent,\n resultRenderer: ResultRendererComponent,\n gridDropdownRenderer: GridDropdownRendererComponent,\n twoDecimalNumberInputRenderer: TwoDecimalNumberInputRendererComponent,\n actionButtonsRenderer: ActionButtonsRendererComponent,\n fxRateRenderer : RateRendererComponent,\n countLinkRenderer: CountLinkRendererComponent,\n translatedTextTenderer: TranslatedTextTendererComponent,\n radioRenderer: RadioRendererComponent,\n multipleButtonRenderer:MultipleButtonRendererComponent,\n statusSupportingTextRenderer: StatusSupportingTextRendererComponent,\n customActionsRenderer: CustomActionsRendererComponent,\n multipleCardNumberRenderer: MultipleCardNumberRendererComponent,\n viewRenderer: ViewRendererComponent,\n dayPolicyRenderer: DayPolicyRenderer,\n preApprovalTagRenderer: PreApprovalTagRendererComponent,\n preApprovalCountRenderer: PreApprovalCountRendererComponent,\n preApprovalLinkRenderer: PreApprovalLinkRendererComponent,\n exportlogstatusrenderer: ExportLogStatusRendererComponent,\n exportlogactionrenderer: ExportLogActionRendererComponent,\n gridToggleRenderer: GridToggleRendererComponent\n },\n suppressCellFocus: self.gridConfigItems.suppressCellSelection,\n suppressRowClickSelection: self.gridConfigItems.suppressRowClickSelection,\n defaultColDef: {\n flex: 1,\n sortable: true,\n resizable: true,\n filter: 'agTextColumnFilter',\n autoHeight: true\n\n },\n //tooltipMouseTrack: true,\n tooltipShowDelay: 0,\n suppressRowTransform: true,\n // getRowNodeId: (params) => {\n // if (params) {\n // return params[self.gridConfigItems.rowKey].toString();\n // }\n // else {\n // return '';\n // }\n // },\n rowClassRules: {\n 'disabled': function (params) { return params && params.data && params.data.isDisabled; },\n\n 'cursor-pointer': function (params) {\n return !self.gridConfigItems.suppressRowClickSelection;\n },\n 'row-highlight': function (params) {\n return params && params.data && params.data.isRowHighlighted;\n },\n 'ag-row-highlight-even': function (params) {\n if (params && params.data && params.data.isRowHighlighted) {\n return false;\n }\n else {\n if (params && params.data && !params.data.customeRowClass)\n return params.node.rowIndex % 2 === 0;\n }\n },\n 'ag-row-highlight-odd': function (params) {\n if (params && params.data && params.data.isRowHighlighted) {\n return false;\n }\n else {\n if (params && params.data && !params.data.customeRowClass)\n return params.node.rowIndex % 2 != 0;\n }\n },\n ...self.gridConfigItems.rowClassRules,\n },\n columnDefs: this.columnDefs\n };\n\n this.setWidthAndHeight();\n }\n }\n\n public updateGridColumnDefinitions(columnDefs) {\n if (this.gridApi) {\n if (columnDefs && columnDefs.length > 0) {\n this.columnDefs = columnDefs;\n this.fnAddCheckboxColumn(columnDefs);\n }\n\n this.columnDefs.forEach(columnDef => {\n columnDef.tooltipComponent = 'customTooltip';\n columnDef.tooltipField = columnDef.field;\n if (!columnDef.headerComponentParams) {\n columnDef.headerComponentParams = {};\n }\n columnDef.headerComponentParams.rowCount = this.allGridData.length;\n });\n\n this.gridApi.setColumnDefs([]);\n this.gridApi.setColumnDefs(this.columnDefs);\n\n }\n }\n\n public fnAddCheckboxColumn(columnDefs) {\n let self = this;\n if (self.gridConfigItems.enableRowSelection) {\n if (!this.columnDefs.find(c => c.field == 'selected')) {\n const cbxColumn = {\n headerName: \"\",\n field: \"selected\",\n cellRenderer: 'cbxRenderer',\n sortable: false,\n resizable: false,\n maxWidth: 60,\n pinned: true,\n headerComponentParams: {\n isCheckbox: true,\n isAllChecked: false,\n isCheckAllAllowed: self.gridConfigItems.isCheckAllAllowed,\n onCheckAll: (event) => this.onAllChecked(event.target.checked)\n },\n suppressMovable: true,\n lockPosition: true,\n lockPinned: true,\n tooltipField: 'selected',\n };\n this.columnDefs.unshift(cbxColumn);\n }\n }\n }\n\n\n public refreshGridData() {\n this.overlayNoRowsTemplate = `\n
\n ${this.translate.instant(this.gridConfigItems.noDataMessage)}\n
\n `;\n if (this.gridApi) {\n this.isDataLoading = false;\n this.isRefresh = true;\n this.resetSortModel();\n this.resetDataSource();\n\n this.columnDefs.forEach(columnDef => {\n if (!columnDef.headerComponentParams) {\n columnDef.headerComponentParams = {};\n }\n columnDef.headerComponentParams.rowCount = this.allGridData.length;\n });\n this.updateGridColumnDefinitions(null);\n }\n else {\n this.initializeGrid();\n }\n if(this.gridConfigItems.headerHeight)\n {\n this.header_MIN_HEIGHT = this.gridConfigItems.headerHeight;\n this.setHeaderHeight(this.header_MIN_HEIGHT);\n }\n }\n\n public resetSortModel() {\n this.sortGrid(this.gridConfigItems.defaultSortColumn, this.gridConfigItems.defaultSortOrder);\n }\n\n public setSortModel(sortColumn, sortDirection) {\n this.sortGrid(sortColumn, sortDirection);\n }\n\n public unsetRowHighlighted(data) {\n let self = this;\n if (data) {\n data.forEach(element => {\n const row = self.gridApi.getRowNode(element[self.gridConfigItems.rowKey].toString());\n if (row) {\n row.setData(element);\n }\n });\n }\n }\n\n public applyFilters(filters) {\n if (filters && Object.keys(filters).length > 0) {\n this.filters = filters;\n }\n else {\n this.filters = null;\n }\n this.refreshData();\n }\n\n public fnAppendAllDataInGrid(gridDataForAppend) {\n this.allGridData = this.allGridData.concat(gridDataForAppend);\n this.allGridData = this.sortByKey(this.allGridData, this.gridSortColumn, this.gridSortOrder);\n this.refreshData();\n }\n\n public removeRow(data) {\n const rowNode = this.gridApi.getRowNode(data[this.gridConfigItems.rowKey].toString());\n this.gridData.splice(rowNode.rowIndex, 0, rowNode);\n this.gridApi.refreshInfiniteCache();\n }\n\n public uncheckItems(checkedItemIds) {\n if (this.gridData && this.gridData.length > 0) {\n const checkedRows = this.gridData.filter(g => checkedItemIds.indexOf(g[this.gridConfigItems.rowKey]) > -1);\n for (let i = 0; i < checkedRows.length; i++) {\n checkedRows[i].selected = false;\n }\n this.checkUncheckAll();\n }\n }\n\n public checkItems(checkedItemIds) {\n if (this.gridData && this.gridData.length > 0) {\n const checkedRows = this.gridData.filter(g => checkedItemIds.indexOf(g[this.gridConfigItems.rowKey]) > -1);\n for (let i = 0; i < checkedRows.length; i++) {\n checkedRows[i].selected = true;\n }\n this.checkUncheckAll();\n }\n }\n\n checkUncheckAll() {\n if (this.gridApi && this.gridConfigItems.enableRowSelection) {\n if (this.gridData && this.gridData.length > 0) {\n let checkedcount = this.gridData.filter(r => r.selected).length;\n if (checkedcount == this.gridData.length) {\n this.isAllChecked = true;\n }\n else {\n this.isAllChecked = false;\n }\n // this.gridApi.refreshHeader();\n this.refreshCheckbox();\n }\n }\n }\n\n public refreshCheckbox() {\n if (this.gridApi) {\n if (this.gridConfigItems.enableRowSelection) {\n var cbxColumn = this.columnDefs.find(c => c.field == 'selected');\n if (cbxColumn) {\n cbxColumn.headerComponentParams.isCheckAllAllowed = this.gridConfigItems.isCheckAllAllowed;\n cbxColumn.headerComponentParams.isAllChecked = this.isAllChecked;\n }\n this.updateGridColumnDefinitions(null);\n }\n }\n }\n\n public uncheckAll() {\n if (this.gridData) {\n for (let i = 0; i < this.gridData.length; i++) {\n this.gridData[i].selected = false;\n }\n this.checkUncheckAll();\n }\n }\n\n setDataInGrid(data) {\n if (data) {\n const rowNode = this.gridApi.getRowNode(data[this.gridConfigItems.rowKey].toString());\n const newData = data;\n rowNode.setData(newData);\n if (data.IsRowOnTop) {\n this.allGridData.splice(rowNode.rowIndex, 1);\n this.allGridData.splice(0, 0, rowNode.data);\n }\n else {\n this.allGridData.splice(rowNode.rowIndex, 1, rowNode.data);\n }\n this.refreshData();\n }\n }\n\n reorderUpdatedRecords(dataArray: any[]) {\n dataArray.forEach(data => {\n const rowNode = this.gridApi.getRowNode(data[this.gridConfigItems.rowKey].toString());\n const newData = data;\n rowNode.setData(newData);\n this.allGridData.splice(rowNode.rowIndex, 1);\n this.allGridData.splice(0, 0, rowNode.data);\n });\n this.refreshData();\n }\n\n onGridSearchTextChange(searchText) {\n this.searchText = searchText;\n this.refreshData();\n }\n\n statusChange(value, item) {\n if (value !== '') {\n this.filterChanged.emit(value);\n }\n else {\n if (item.isClickEvent) {\n this.filterChanged.emit(item.value);\n }\n }\n }\n\n oncolumnResized(params) {\n this.autosizeHeaders(params);\n }\n\n onCellClicked(params) {\n if (params.column.colId === 'selected') {\n if (params.data.isCheckboxDisabled) {\n return;\n }\n params.data.selected = params.event.target.checked;\n this.checkUncheckAll();\n }\n this.onCellClick.emit(params);\n }\n\n onAllChecked(isChecked) {\n for (let i = 0; i < this.allGridData.length; i++) {\n if (!this.searchText && !this.filters) {\n if (!this.allGridData[i].isEditDisabled && !this.allGridData[i].isCheckboxDisabled) {\n this.allGridData[i]['selected'] = isChecked;\n }\n }\n if (this.gridData.length > i) {\n if (!this.gridData[i].isEditDisabled && !this.gridData[i].isCheckboxDisabled) {\n this.gridData[i]['selected'] = isChecked;\n }\n }\n }\n this.isAllChecked = isChecked;\n this.checkUncheckAll();\n this.onCheckAll.emit(isChecked);\n }\n\n refreshData() {\n if (this.gridApi) {\n this.isDataLoading = false;\n if (this.gridlastRowIndex > 0) {\n this.gridApi.refreshInfiniteCache();\n }\n else {\n this.resetDataSource();\n }\n }\n }\n\n resetDataSource() {\n this.gridApi.setDatasource(this.getDataSource());\n }\n\n onDataLoadStart() {\n this.gridApi.showLoadingOverlay();\n }\n\n onGridReady(params: GridOptions) {\n this.gridApi = params.api;\n this.gridColumnApi = params.columnApi;\n this.resetSortModel();\n\n this.gridApi.setDatasource(this.getDataSource());\n }\n\n private getDataSource(): IDatasource {\n return {\n getRows: (params: IGetRowsParams) => {\n this.getRowData(params).subscribe(data => {\n this.gridlastRowIndex = 0;\n if (this.searchText || this.filters || this.advanceSearchAlphabet) {\n this.gridlastRowIndex = this.gridData.length;\n }\n else {\n this.gridlastRowIndex = this.allGridData.length;\n }\n\n if (this.gridlastRowIndex > 0) {\n this.isDataLoading = false;\n this.gridApi.hideOverlay();\n }\n else if (this.isDataLoading) {\n this.gridApi.showLoadingOverlay();\n }\n else {\n this.gridApi.showNoRowsOverlay();\n }\n params.successCallback(data, this.gridlastRowIndex)\n });\n }\n };\n }\n\n private getRowData(params: IGetRowsParams) {\n this.sortAllRows(params);\n this.gridData = [];\n if (this.searchText || this.filters || this.advanceSearchAlphabet != '') {\n this.gridData = this.filterRows();\n }\n else {\n this.gridData = this.allGridData;\n }\n const rowsForBlock = this.gridData.slice(params.startRow, params.endRow);\n return of(rowsForBlock);\n }\n\n private sortAllRows(params) {\n if (params.sortModel && params.sortModel.length > 0) {\n if (this.gridSortColumn != params.sortModel[0].colId\n || this.gridSortOrder != params.sortModel[0].sort\n || this.isRefresh) {\n params.startRow = 0;\n params.endRow = this.gridOptions.cacheBlockSize;\n this.gridSortColumn = params.sortModel[0].colId;\n this.gridSortOrder = params.sortModel[0].sort;\n this.allGridData = this.sortByKey(this.allGridData, this.gridSortColumn, this.gridSortOrder);\n }\n }\n else {\n if (!this.gridSortColumn || !this.gridSortOrder || this.isRefresh) {\n params.startRow = 0;\n params.endRow = this.gridOptions.cacheBlockSize;\n this.gridSortColumn = this.gridConfigItems.defaultSortColumn;\n this.gridSortOrder = this.gridConfigItems.defaultSortOrder;\n this.allGridData = this.sortByKey(this.allGridData, this.gridSortColumn, this.gridSortOrder);\n }\n }\n this.isRefresh = false;\n }\n\n private filterRows() {\n const rows = [];\n for (let i = 0; i < this.allGridData.length; i++) {\n for (let j = 0; j < this.columnDefs.length; j++) {\n const key = this.columnDefs[j].field;\n if (this.allGridData[i][key]) {\n let isRowVisible = false;\n if (this.searchText) {\n if (this.allGridData[i][key].toString().toLowerCase().indexOf(this.searchText.toLowerCase()) > -1) {\n isRowVisible = true;\n }\n }\n if (this.filters && this.filters[key]) {\n if (this.allGridData[i][key] == this.filters[key]) {\n isRowVisible = true;\n }\n else {\n isRowVisible = false;\n }\n }\n\n if (this.advanceSearchAlphabet != '') {\n if (this.allGridData[i][\"contactName\"].toString().toLowerCase().startsWith(this.advanceSearchAlphabet.toLowerCase())) {\n isRowVisible = true;\n }\n else {\n isRowVisible = false;\n }\n }\n\n if (isRowVisible) {\n rows.push(this.allGridData[i]);\n break;\n }\n }\n }\n\n\n }\n return rows;\n }\n\n private sortByKey(array, key, order) {\n let result;\n\n if (order == 'asc') {\n result = array.sort((a, b) => {\n let x = a[key]; let y = b[key];\n if (typeof x === 'string' || x instanceof String) {\n x = x ? x.toString().toLowerCase() : null;\n y = y ? y.toString().toLowerCase() : null;\n }\n return !x ? -1 : ((x < y) ? -1 : ((x > y) ? 1 : 0));\n });\n }\n else {\n result = array.sort((a, b) => {\n let x = a[key]; let y = b[key];\n if (typeof x === 'string' || x instanceof String) {\n x = x ? x.toString().toLowerCase() : null;\n y = y ? y.toString().toLowerCase() : null;\n }\n return !y ? -1 : ((x > y) ? -1 : ((x < y) ? 1 : 0));\n });\n }\n return result;\n }\n\n private autosizeHeaders(event) {\n if (event.finished !== false) {\n event.api.setHeaderHeight(this.header_MIN_HEIGHT);\n const headerCells = document.querySelectorAll('#myGrid .ag-header-cell-label');\n let minHeight = this.header_MIN_HEIGHT;\n headerCells.forEach(cell => {\n minHeight = Math.max(minHeight, cell.scrollHeight);\n });\n event.api.setHeaderHeight(minHeight);\n event.api.setGroupHeaderHeight(this.group_MIN_HEIGHT);\n }\n }\n public setHeaderHeight(value?: number) {\n this.gridApi.setHeaderHeight(value);\n }\n\n public refreshGridCells(columnList: string[]) {\n if (columnList) {\n this.gridApi.refreshCells({\n columns: columnList,\n force: true,\n suppressFlash: true\n });\n }\n }\n\n public redrawGridRows() {\n this.gridApi.redrawRows();\n }\n\n showAdvancedFilters = false;\n\n showAdvanceSearchPanel() {\n this.bindAdvanceFilterData();\n this.showAdvancedFilters = true;\n\n }\n\n closeAdvanceSearchPanel() {\n\n this.showAdvancedFilters = false;\n\n }\n\n\n startsWith_A = 0;\n startsWith_B = 0;\n startsWith_C = 0;\n startsWith_D = 0;\n startsWith_E = 0;\n startsWith_F = 0;\n startsWith_G = 0;\n startsWith_H = 0;\n startsWith_I = 0;\n startsWith_J = 0;\n startsWith_K = 0;\n startsWith_L = 0;\n startsWith_M = 0;\n startsWith_N = 0;\n startsWith_O = 0;\n startsWith_P = 0;\n startsWith_Q = 0;\n startsWith_R = 0;\n startsWith_S = 0;\n startsWith_T = 0;\n startsWith_U = 0;\n startsWith_V = 0;\n startsWith_W = 0;\n startsWith_X = 0;\n startsWith_Y = 0;\n startsWith_Z = 0;\n\n bindAdvanceFilterData() {\n this.startsWith_A = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"a\")).length;\n this.startsWith_B = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"b\")).length;\n this.startsWith_C = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"c\")).length;\n this.startsWith_D = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"d\")).length;\n this.startsWith_E = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"e\")).length;\n this.startsWith_F = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"f\")).length;\n this.startsWith_G = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"g\")).length;\n this.startsWith_H = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"h\")).length;\n this.startsWith_I = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"i\")).length;\n this.startsWith_J = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"j\")).length;\n this.startsWith_K = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"k\")).length;\n this.startsWith_L = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"l\")).length;\n this.startsWith_M = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"m\")).length;\n this.startsWith_N = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"n\")).length;\n this.startsWith_O = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"o\")).length;\n this.startsWith_P = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"p\")).length;\n this.startsWith_Q = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"q\")).length;\n this.startsWith_R = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"r\")).length;\n this.startsWith_S = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"s\")).length;\n this.startsWith_T = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"t\")).length;\n this.startsWith_U = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"u\")).length;\n this.startsWith_V = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"v\")).length;\n this.startsWith_W = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"w\")).length;\n this.startsWith_X = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"x\")).length;\n this.startsWith_Y = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"y\")).length;\n this.startsWith_Z = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(\"z\")).length;\n }\n\n\n advanceSearchAlphabet: string = '';\n filterWithAdvanceFilter(alphabet) {\n //this.allGridData = this.allGridData.filter((x) => x.contactName.toLowerCase().startsWith(alphabet.toLowerCase()));\n //this.filterRowsWithAdvancedSearch(alphabet);\n this.advanceSearchAlphabet = alphabet;\n this.showAdvancedFilters = false;\n this.refreshData();\n //this.advanceSearchChanged.emit(alphabet);\n\n }\n\n\n clearAdvanceSearch() {\n this.advanceSearchAlphabet = '';\n this.showAdvancedFilters = false;\n this.refreshData();\n }\n\n onDataFilterChange(value, item) {\n if (value !== '') {\n this.selectedFilter = value;\n this.dataFilterChanged.emit(value);\n }\n else {\n if (item.isClickEvent) {\n this.dataFilterChanged.emit(item.value);\n }\n }\n }\n\n}\n\nfunction setIdText(id: string, value: string | number | undefined) {\n if(document.getElementById(id))\n {\n document.getElementById(id)!.innerHTML =\n value == undefined ? 'undefined' : value + '';\n }\n \n}\n","
\n
\n
\n
\n
\n
\n

{{ title }}

\n \n ({{selectedCount}} {{ sub_title }})\n \n
\n

\n {{ title }}: {{\"label_selected\" | translate}}\n {{ selectedCount }}\n

\n
\n
\n \n \n
\n
\n \n
\n \n \n
\n
","import { Component, EventEmitter, Input, OnChanges, OnDestroy, OnInit, Output, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { DynamicFormComponent } from \"src/app/shared/forms/dynamic-form/dynamic-form.component\";\nimport { ActionButtonConfig, ActionPanelConfig, ActionPanelOutput } from 'src/app/_models/common/form/form';\nimport { DynamicFormService } from '../../forms/dynamic-form/dynamic-form.service';\n@Component({\n selector: 'app-action-panel',\n templateUrl: './action-panel.component.html',\n styleUrls: ['./action-panel.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class ActionPanelComponent implements OnInit, OnChanges, OnDestroy {\n\n @ViewChild(DynamicFormComponent) dynamicForm: DynamicFormComponent;\n\n @Input(\"model\")\n model: any;\n\n @Input(\"config\")\n config: ActionPanelConfig;\n @Input(\"z_index_class\")\n z_index_class: any;\n\n @Input(\"hideActionButtons\")\n hideActionButtons: boolean;\n\n @Output()\n onSubmitPanel = new EventEmitter();\n\n valueSubscription: Subscription;\n isFormInvalid: boolean = true;\n isFormDirty: boolean = false;\nlink = \"https://www.youtube.com/embed?list=PLugzlMICZR8hcvfcGEtf9plQjk8_k_qNF\";\n title: string = '';\n sub_title: string = '';\n selectedCount: number = 0;\n buttonModel: ActionButtonConfig[];\n notesRequired: boolean = false;\n formData: any;\n formModel: any;\n disableButtonsOnInvalid: boolean;\n isOverlay?: boolean = false;\n headerClass : string ='';\n\n constructor(private translate: TranslateService,\n private dynamicFormService: DynamicFormService) {\n }\n ngOnInit(): void {\n }\n\n ngOnDestroy() {\n if (this.valueSubscription) {\n this.valueSubscription.unsubscribe();\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.initialize();\n }\n\n initialize() {\n if (this.config && this.config.headerTitle) {\n this.title = this.translate.instant(this.config.headerTitle);\n this.sub_title = this.config.subtitle != '' ? this.translate.instant(this.config.subtitle) : '';\n this.buttonModel = this.config.buttonConfig;\n\n this.disableButtonsOnInvalid = this.config.disableButtonsOnInvalid;\n this.isOverlay = this.config.isOverlay;\n this.headerClass = this.config.headerClass;\n if (this.config.isMultipleSelected) {\n this.selectedCount = this.config.selectedItemCount;\n }\n else {\n this.selectedCount = 0;\n }\n\n this.formData = this.config.formData;\n this.formModel = this.model;\n\n if (this.valueSubscription) {\n this.valueSubscription.unsubscribe();\n }\n\n setTimeout(() => {\n this.valueSubscription = this.dynamicForm.form.valueChanges.subscribe(value => {\n this.isFormInvalid = !this.dynamicForm.form.dirty || this.dynamicForm.form.invalid;\n this.isFormDirty = this.dynamicForm.form.dirty;\n });\n }, 100);\n }\n else {\n this.title = '';\n this.selectedCount = 0;\n this.buttonModel = [];\n this.notesRequired = false;\n this.formData = null;\n this.formModel = null;\n this.isFormInvalid = true;\n this.isFormDirty = false;\n }\n }\n\n onSubmit(buttonKey) {\n if(buttonKey != 'close' && buttonKey != 'delete' && buttonKey != 'log'){\n if (this.dynamicForm.form.invalid) {\n this.dynamicFormService.onFormSubmitted(true);\n this.disableButtonsOnInvalid = true;\n this.isFormInvalid = true;\n return;\n }\n\n if (buttonKey == 'save') {\n this.dynamicFormService.onFormSubmitted(true);\n this.disableButtonsOnInvalid = true;\n this.isFormInvalid = true;\n }\n }\n\n let returnItems: ActionPanelOutput = {\n panelKey: this.config.panelKey,\n buttonKey: buttonKey,\n formModel: this.dynamicForm.form.value\n }\n this.onSubmitPanel.emit(returnItems);\n }\n}\n","import { Component, OnInit, Input, Output, EventEmitter, ElementRef, ViewChild } from \"@angular/core\";\nimport { DatePipe, KeyValue } from \"@angular/common\";\nimport { CdkDragStart,CdkDragEnd, CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\nimport { PreviewOutputModel } from \"../../../_models/claimant-on-web/claimant-on-web\";\n\n@Component({\n selector: \"app-img-preview-panel\",\n templateUrl: \"./img-preview.component.html\"\n})\n\nexport class ImagePreviewDetailComponent implements OnInit {\n @Input() scannedText : any;\n @Input() previewImageUrl : string;\n @Input() selectedItem : any;\n @ViewChild('canvas', { static: true }) canvasRef: ElementRef;\n param:string;\n date: string = \"\";\n amount: string = \"\";\n receiptNumber : string;\n supplier: string;\n hasFormChanges:boolean = false;\n @Output() closePanelEvent = new EventEmitter();\n @Output() savePanelEvent = new EventEmitter();\n rect:any;\n constructor(private datepipe: DatePipe) {}\n \n ngOnInit()\n {\n this.hasFormChanges = false;\n this.amount = \"Not clear enough for scanning\";\n this.date = \"Not clear enough for scanning\";\n this.receiptNumber = \"Not clear enough for scanning\";\n this.supplier = \"Not clear enough for scanning\";\n if(this.scannedText)\n {\n this.hasFormChanges= true;\n this.supplier = this.scannedText.find(it=>it.key == \"MerchantName\").value;\n this.amount = this.scannedText.find(it=>it.key == \"Total\").value; \n this.date = this.scannedText.find(it=>it.key == \"TransactionDate\").value;\n this.drawPolygonOnImage(); \n }\n }\n\n \n drawPolygonOnImage(): void {\n const canvas = document.getElementById('canvas') as HTMLCanvasElement;\n const ctx = canvas.getContext('2d');\n \n const image = new Image();\n image.src = this.previewImageUrl; // Replace with the path to your image\n \n image.onload = () => {\n // Set canvas size to match the image size\n canvas.width = image.width;\n canvas.height = image.height;\n \n // Draw the image on the canvas\n ctx.drawImage(image, 0, 0);\n \n // Define the polygon coordinates\n //Draw polygon for supplier\n const polygon=[];\n let supplierPolygon = this.scannedText.find(it=>it.key == \"MerchantName\").coordinatesList;\n supplierPolygon.forEach(element => {\n polygon.push({x: element.xCoordinate, y: element.yCoordinate});\n }); \n \n // Draw the polygon on the canvas\n this.drawPolygon(ctx, polygon, '1');\n const polygon1=[];\n let expenseDatePolygon = this.scannedText.find(it=>it.key == \"TransactionDate\").coordinatesList;\n expenseDatePolygon.forEach(element => {\n polygon1.push({x: element.xCoordinate, y: element.yCoordinate});\n }); \n \n // Draw the polygon on the canvas\n this.drawPolygon(ctx, polygon1, '2');\n const polygon2=[];\n let amountPolygon = this.scannedText.find(it=>it.key == \"Total\").coordinatesList;\n amountPolygon.forEach(element => {\n polygon2.push({x: element.xCoordinate, y: element.yCoordinate});\n }); \n \n // Draw the polygon on the canvas\n this.drawPolygon(ctx, polygon2, '3');\n };\n\n this.rect = canvas.getBoundingClientRect();\n }\n \n drawPolygon(ctx: CanvasRenderingContext2D, points: { x: number, y: number }[], type:string): void {\n ctx.beginPath();\n ctx.moveTo(points[0].x, points[0].y);\n for (let i = 1; i < points.length; i++) {\n ctx.lineTo(points[i].x, points[i].y);\n }\n ctx.closePath();\n ctx.lineWidth = 7;\n ctx.strokeStyle = this.getStrokeColor(type);\n ctx.stroke();\n }\n\n getStrokeColor(elementType : string)\n {\n var string = '';\n switch(elementType)\n {\n case '3': string = 'red';\n break;\n case '2': string = 'green'\n break;\n case '1': string = 'blue'\n break;\n }\n return string;\n }\n\n onMouseMove(event: MouseEvent): void {\n const canvas = document.getElementById('canvas') as HTMLCanvasElement;\n const rect = canvas.getBoundingClientRect();\n \n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n }\n \n\n fnSaveReceipt()\n {\n\n } \n\n fnClosePanel(){\n this.closePanelEvent.emit(false);\n }\n\n fnSavePreview()\n {\n let previewOutModel = new PreviewOutputModel();\n previewOutModel.amount = this.amount;\n previewOutModel.date = this.date;\n previewOutModel.receiptNumber = this.receiptNumber == \"Not clear enough for scanning\" ? \"\" : this.receiptNumber;\n previewOutModel.supplier = this.supplier;\n previewOutModel.receipt = this.selectedItem;\n this.savePanelEvent.emit(previewOutModel);\n }\n\n droppedItems: string[] = [];\n\n drop(event: CdkDragDrop) {\n \n }\n\n fnGetDate(_event)\n {\n this.date=_event;\n }\n\n fnGetAmount(_event)\n {\n this.amount=_event;\n }\n\n fnGetSupplier(_event)\n {\n this.supplier=_event;\n }\n \n fnGetReceiptNumber(_event)\n {\n this.receiptNumber=_event;\n }\n}","
\n
\n
\n
\n
\n

{{ 'preview' | translate }}

\n
\n
\n
\n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
","
\n
\n
\n
\n
\n

\n \n \n {{ data.title }}\n \n \n
\n {{ data.title }}\n
\n
\n

\n
\n
\n
\n
\n
\n {{ data.description1 }}\n
\n
\n
\n
\n
\n \"image\"\n
\n
\n
\n
\n \n\n \n {{ data.description3 }}\n \n
    1\">\n

    {{data.descListHeader}}

    \n
  • \n {{i+1}}.\n

    \n {{item}}\n

    \n
  • \n
\n {{data.descListFooter}}\n
\n {{\n \"liabilityReport_available_for_trial_now\" | translate\n }}\n
\n
\n
\n\n
\n

\n \n \n \n \n \n \n

\n
\n
\n
\n
\n\n
\n \n
\n For the {{ data.title | uppercase }}\n {{ \"to_work_effectively\" | translate }}\n {{ dependentFunctionList | uppercase }} is required.\n
\n\n
\n
\n
\n
\n
    \n
  • \n \n
  • \n
  • \n
    \n

    \n {{ pack.functionPackageName }}\n

    \n

    \n \n \n

    \n \n
    \n {{\n \"subscribed\" | translate\n }}\n\n \n\n

    \n \n

    \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

\n {{ data.title }}\n

\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n\n","import { Component, OnInit, Input, EventEmitter, Output } from \"@angular/core\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { MarketingPopup } from \"src/app/_models/common/marketing-popup\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Router } from \"@angular/router\";\nimport { RSAHelper } from \"src/app/_helpers/RSAHelper\";\nimport { OrganisationSettingService } from \"src/app/_services/organisation-setting/organisation-setting.service\";\nimport { ApiRequest, FunctionPackageEnum, IApiresponse } from \"src/app/_models\";\nimport { GetOrgDependentFunctionListRequest, CartDetailsRequest, ICartDetailsRequest, GetCartDetailsRequest, IPurchaseFunctionListRequest, PurchaseFunctionListRequest } from \"src/app/_models/organisation-setting/organisation-setting\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { environment } from \"src/environments/environment\";\nimport { OrgSubscriptionFunctionService } from \"src/app/_services/billing-pricing/Org-Subscription-Function.service\";\nimport { AccountingIntegrationService } from \"src/app/_services/Accounting/accounting-integration.service\";\nimport { ISoloCheckFuncPurchaseListRequest, SoloCheckFuncPurchaseListRequest } from \"src/app/_models/common/solo-check-func-purchase-list-request\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\nimport { Subject } from \"rxjs\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport { OrgBasicFunctionSubscriptionService } from \"src/app/_services/billing-pricing/Org-BasicFunction-Subscription.service\";\n\n@Component({\n selector: \"marketing-popup\",\n templateUrl: \"./marketing-popup.component.html\",\n styleUrls: [\"./marketing-popup.component.scss\"],\n})\nexport class MarketingPopupComponent implements OnInit {\n @Input(\"data\")\n data: MarketingPopup;\n\n @Output()\n closePanel = new EventEmitter();\n\n claims: Claims;\n showImagePopup: boolean = false;\n dependentFunction: any = [];\n isFunctionAddedToCart: boolean = false;\n isDependentFunctionPurchased: boolean = false;\n\n constructor(\n private translate: TranslateService,\n private router: Router,\n private organisationSettingService: OrganisationSettingService,\n private claimsService: ClaimsService,\n private sanitizer: DomSanitizer,\n private orgBasicFunctionSubscriptionService: OrgBasicFunctionSubscriptionService\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {\n this.isDependentFunctionPurchased = true;\n if(this.claims.BandId > 0)\n {\n this.getOrgBasicFunctionSubscriptionTrialDetails();\n }\n this.getMySubscriptionSettings();\n //this.getOrgTrialingFunctionList(); // getOrgPurchaseFunctionList this function giving both record so no need of this. Nitesh\n this.getOrgPurchaseFunctionList();\n this.getCartDetails();\n }\n\n getCartDetails(): any {\n let getCartDetailsRequest = new ApiRequest(\n \"SoloGetCartDetails\",\n 1,\n \"111\"\n );\n getCartDetailsRequest.requestInfo = new GetCartDetailsRequest(\n this.claims.UserId,\n this.claims.OrgId\n );\n\n this.organisationSettingService\n .getCartDetailsList(getCartDetailsRequest)\n .subscribe((data) => {\n if (data.responseInfo != null) {\n this.claims.CartCount = data.responseInfo.listCartDetails.length;\n this.claimsService.updateClaims(this.claims);\n\n this.isFunctionAddedToCart = this.isFunctionInCart(\n this.data.functionPackageId,\n data.responseInfo.listCartDetails\n );\n }\n });\n }\n\n getOrgPurchaseFunctionList() {\n let request = new ApiRequest(\n \"SoloPurchaseFunctionList\",\n environment.applicationVersion,\n environment.requestId\n );\n request.requestInfo = new PurchaseFunctionListRequest(this.claims.UserId, this.claims.OrgId);\n this.organisationSettingService\n .soloPurchaseFunctionList(request)\n .subscribe((data: IApiresponse) => {\n if (data.statusCode == 0) {\n if (data.responseInfo.orgPaidFunctionList.length > 0 && this.data.dependentFunctionId > 0) {\n let purchaseFuncListDetails = data.responseInfo.orgPaidFunctionList[0].paidFunctions;\n if (this.data.dependentFunction2Id == 0) {\n let functionSubscribed = purchaseFuncListDetails.find(\n (x) => x.functionId == this.data.dependentFunctionId\n );\n\n if (functionSubscribed) {\n this.isDependentFunctionPurchased = true;\n } else {\n this.isDependentFunctionPurchased = false;\n }\n } else {\n let mileagePurchaseResult = purchaseFuncListDetails.find(\n (x) => x.functionId == this.data.dependentFunctionId\n );\n let taxPackage = purchaseFuncListDetails.find(\n (x) => x.functionId == this.data.dependentFunction2Id\n );\n if (\n taxPackage == undefined ||\n mileagePurchaseResult == undefined\n ) {\n\n this.isDependentFunctionPurchased = false;\n } else {\n this.isDependentFunctionPurchased = true;\n }\n }\n }\n else {\n\n switch (this.data.functionPackageId) {\n case FunctionPackageEnum.NonReimbursableFuel:\n case FunctionPackageEnum.FuelCard:\n case FunctionPackageEnum.LiabilityReport:\n case FunctionPackageEnum.AuditTrail:\n this.isDependentFunctionPurchased = false;\n break;\n\n }\n }\n }\n });\n\n }\n\n // getOrgTrialingFunctionList() {\n // let OrgTrialingFunctionRequest = new ApiRequest(\n // \"SoloTrialingFunctionListDetail\",\n // 0,\n // environment.requestId\n // );\n // OrgTrialingFunctionRequest.requestInfo = new OrgSubscription(\n // this.claims.OrgId\n // );\n // this.orgSubscriptionFunctionService\n // .getOrgSubscriptionTrialingFunctionList(OrgTrialingFunctionRequest)\n // .subscribe((data) => {\n // if (data.statusCode == 0) {\n // if (\n // data.responseInfo.length > 0 &&\n // this.data.dependentFunctionId > 0\n // ) {\n // let functionSubscribed = data.responseInfo.find(\n // (x) => x.functionID == this.data.dependentFunctionId\n // );\n // if (functionSubscribed) {\n // this.isDependentFunctionPurchased = true;\n // } else {\n // this.isDependentFunctionPurchased = false;\n // }\n // }\n // }\n // });\n // }\n\n getMySubscriptionSettings() {\n let functionDetails = [];\n this.organisationSettingService\n .GetOrganisationSettingList()\n .subscribe((functionCategories) => {\n if (functionCategories.statusCode == 0) {\n functionCategories.responseInfo.functionCategoryDetail.forEach((x) =>\n x.functionPackageDetail.forEach((y) => {\n functionDetails.push(y);\n })\n );\n this.getDependentFunction(\n this.data.functionPackageId,\n functionDetails\n );\n }\n });\n }\n\n dependentFunctionList: string;\n\n getDependentFunction(FunctionPackageId: number, functionDetailss: any[]) {\n this.dependentFunction = [];\n this.dependentFunctionList = \"\";\n\n let getOrgDependentFunctionListRequest = new ApiRequest<\n GetOrgDependentFunctionListRequest\n >(\"SoloGetOrgDependentFunctionList\", 1, \"111\");\n getOrgDependentFunctionListRequest.requestInfo = new GetOrgDependentFunctionListRequest(\n FunctionPackageId.toString(),\n this.claims.OrgId\n );\n\n this.organisationSettingService\n .getOrgDependentFunctionList(getOrgDependentFunctionListRequest)\n .subscribe((data) => {\n if (data.responseInfo != null) {\n data.responseInfo.orgDependentFunctionList.forEach((x) => {\n if (x.functionID == FunctionPackageId) {\n functionDetailss.forEach((items) => {\n if (items.functionPackageId == x.dependentFunctionID) {\n this.dependentFunction.push({\n functionPackageId: items.functionPackageId,\n functionPackageName: items.functionPackageName,\n functionPackageDescripition:\n items.functionPackageDescripition,\n dependentFunctionAmount: \"\",\n dependentFunctionIcon: items.iconUrl,\n dependentFunctionVideoURL: items.videoUrl,\n functionURL: items.packagePath,\n isSubscribed: x.isSubscribed\n });\n }\n });\n }\n });\n for (let index = 0; index < this.dependentFunction.length; index++) {\n if (this.dependentFunction.length == 1) {\n this.dependentFunctionList += this.dependentFunction[index].functionPackageName;\n }\n else {\n if (index == this.dependentFunction.length - 1) {\n this.dependentFunctionList += this.dependentFunction[index].functionPackageName\n }\n else if (index == this.dependentFunction.length - 2) {\n this.dependentFunctionList += this.dependentFunction[index].functionPackageName + ' & '\n }\n else {\n this.dependentFunctionList += this.dependentFunction[index].functionPackageName + \", \";\n }\n }\n\n }\n }\n });\n }\n\n openImagePopupEvent() {\n this.showImagePopup = true;\n }\n\n closeImagePopupEvent() {\n this.showImagePopup = false;\n }\n\n closeMarketingPopup() {\n this.closePanel.emit();\n }\n\n routerNavigate() {\n let isFree = \"false\";\n let packagePath = this.data.packagePath;\n let functionPackageName = this.data.functionPackageName;\n let functionPackageId = this.data.functionPackageId.toString();\n let functionStatus = \"0\";\n this.router.navigate([\"/addtocart\"], {\n queryParams: {\n isFree: this.EncryptParameters(isFree),\n packagePath: this.EncryptParameters(packagePath),\n functionPackageName: this.EncryptParameters(functionPackageName),\n functionPackageId: this.EncryptParameters(functionPackageId),\n functionStatus: this.EncryptParameters(functionStatus),\n },\n });\n }\n\n fnAddToCart() {\n\n if (!this.isFunctionAddedToCart) {\n this.isFunctionAddedToCart = true;\n this.fnSaveCartDetails();\n this.saveDependentFunction(); \n // if (this.data.functionPackageId == FunctionPackageEnum.SetupAdvancedMileage) {\n // this.router.navigate([\"/orgsetting/mileagewizard\"]);\n // } else {\n // this.isFunctionAddedToCart = true;\n // this.fnSaveCartDetails();\n // this.saveDependentFunction();\n // }\n }\n else {\n this.router.navigate([\"/shoppingcartlist\"]);\n }\n\n }\n\n fnSaveCartDetails() {\n let request = new ApiRequest(\n \"SaveCartDetails\",\n environment.applicationVersion,\n environment.requestId\n );\n request.requestInfo = new CartDetailsRequest(\n this.claims.UserId,\n this.claims.OrgId,\n false,\n this.data.functionPackageId,\n this.data.functionPackageName\n );\n this.organisationSettingService\n .SaveCartDetails(request)\n .subscribe((data) => {\n if (data.statusCode == 0) {\n this.claims.CartCount += 1;\n this.claimsService.updateClaims(this.claims);\n this.closePanel.emit();\n this.router.navigate([\"/shoppingcartlist\"]);\n }\n });\n }\n\n private saveDependentFunction() {\n if (this.dependentFunction.length > 0) {\n let saveCartDetailsRequest = new ApiRequest(\n \"SaveCartDetails\",\n 1,\n \"1111\"\n );\n this.dependentFunction.filter(x => !x.isSubscribed).forEach((depend) => {\n saveCartDetailsRequest.requestInfo = new CartDetailsRequest(\n this.claims.UserId,\n this.claims.OrgId,\n false,\n depend.functionPackageId,\n depend.functionPackageName\n );\n this.organisationSettingService\n .SaveCartDetails(saveCartDetailsRequest)\n .subscribe((data) => {\n if (data.statusCode == 0) {\n this.claims.CartCount += 1;\n this.claimsService.updateClaims(this.claims);\n }\n });\n });\n }\n }\n\n isFunctionInCart(functionPackageId, cartList) {\n return cartList.some((item) => item.functionPackageId == functionPackageId);\n }\n\n EncryptParameters(encryptValue) {\n let rsaHelper = new RSAHelper();\n let encrypt = rsaHelper.Encrypt(encryptValue);\n return encrypt;\n }\n safeText: SafeHtml;\n sanitizerHtml(element) {\n this.safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return this.safeText;\n }\n\n dependentFunctionVideoURL: string;\n\n eventsSubject: Subject = new Subject();\n\n showDependentVideo(videoLink) {\n this.dependentFunctionVideoURL = videoLink;\n this.eventsSubject.next();\n }\n navigateToFunction(url) {\n this.router.navigate([url]);\n }\n alertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n alertPanelReceiver(event) {\n this.alertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n this.translate.instant(\"please_review_or_confirm\")\n );\n if(event)\n {\n localStorage.setItem(\"isEssentialPackSubscribeDisplay\", \"1\");\n this.router.navigate([\"/essential-pack\"]); \n }\n else\n {\n localStorage.removeItem(\"isEssentialPackSubscribeDisplay\");\n }\n }\n isEssentialPackAlertRequired: boolean;\n getOrgBasicFunctionSubscriptionTrialDetails() {\n this.orgBasicFunctionSubscriptionService\n .GetOrgBasicFunctionSubscriptionTrialDetails(this.claims.OrgId)\n .subscribe((res: any) => {\n if (res.responseInfo) {\n if (!res.responseInfo.isBasicFunctionPurchased) {\n this.isEssentialPackAlertRequired = true;\n }\n else {\n this.isEssentialPackAlertRequired = false;\n }\n }\n });\n }\n fnEssentialPackAlert() {\n\n this.alertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant('label_alert'),\n [],\n this.translate.instant('label_cancel'),\n this.translate.instant('label_ok'),\n true,\n this.translate.instant('duty_of_care_compliance_subtext')\n );\n let panelMsg = [];\n panelMsg.push({\n iconClass: 'fas fa-exclamation-circle color-red align-middle',\n textHtml: this.translate.instant(\"ess_pack_alert_msg1\")\n });\n panelMsg.push({\n iconClass: 'fas fa-exclamation-circle text-mustard align-middle',\n textHtml: this.translate.instant(\"ess_pack_alert_msg2\")\n });\n this.alertPanelModel.htmlMessage = panelMsg;\n }\n}\n","
\n
\n
\n
\n
\n

{{multipleLegsPanelHeading}}

\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n {{ 'label_amount' | translate: param }}:\n \n \n {{ this.expenseDetailResponse.spentAmount | number: \".2\" | noComma }} {{currency}}\n \n \n \n \n {{ 'miles_paid_multipleleg' | translate: param }}:\n \n \n {{ this.expenseDetailResponse.mileage.totalDistance | number: \".2\" | noComma }}\n {{mileageLabel}}\n \n \n \n \n {{ 'total_carbon_emission' | translate: param }}:\n \n \n {{ this.expenseDetailResponse.mileage.carbonFootprint | number: \".2\" | noComma }}\n {{ carbonEmissionLabel}}\n \n \n
\n
\n\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
    \n
  • \n {{ innerItem.name }}
  • \n
\n
\n
\n
    \n
  • \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n\n \n \n {{item.tagList?.length}}\n \n
\n\n
0}\" *ngIf=\"!(isCFPReporting && !isMileageCategory)\"> \n {{\"view_map\" | translate: param }}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n
\n
\n\n\n\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output, ViewChild } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { JourneyTypeEnum, MileageRateTypeEnum, MileageUOMEnum,BaseCategoryTypeEnum, ProjectBudgetEntityType } from 'src/app/_models';\nimport { Claims } from 'src/app/_models/common/claims';\nimport { AuthenticationService } from 'src/app/_services';\nimport { ClaimantOnWebService } from 'src/app/_services/claimant-on-web/claimant-on-web.service';\nimport { ClaimsService } from 'src/app/_services/common/claims.service';\nimport { ViewReceiptComponent } from '../view-receipt/view-receipt.component';\nimport { CurrencyService } from \"src/app/_services/claimant/currency.service\";\nimport { ExpenseCurrency } from '../../../_models/claimant-on-web/claimant-on-web';\n@Component({\n selector: 'app-mileage-detail',\n templateUrl: './mileage-detail.component.html',\n //styleUrls: ['./mileage-detail.component.scss']\n})\nexport class MileageDetailComponent implements OnInit, OnDestroy {\n @ViewChild('viewReceiptComponent') viewReceiptComponent: ViewReceiptComponent;\n isPanelDisplay: boolean = false;\n @Input() expenseDetailResponse: any;\n @Input() showMapSectionOnly: boolean = false;\n mileageRate: string;\n claims: Claims;\n detourMiles: any;\n triangulationMiles: any;\n milesTravelled: any;\n amount: any;\n distance: any;\n showViewTagPanel: boolean = false;\n tagList: any = [];\n currency: string;\n mileageLabel: string;\n isAdvancedMileageEnabled: boolean;\n resizeSubscription$: Subscription\n claimsSubscription: Subscription;\n multipleLegsPanelHeading: string = \"\";\n constructor(private claimsService: ClaimsService, private translate: TranslateService,\n private authenticationService: AuthenticationService, private claimantOnWebService: ClaimantOnWebService,\n private currencyService: CurrencyService) {\n this.claimsSubscription = this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n this.currency = this.claims.CurrentOrganisationCurrencyCode;\n });\n\n }\n currencytList: ExpenseCurrency[];\n fromTextLength: number;\n toTextLength: number;\n origin: any;\n destination: any;\n receiptLat: number;\n receiptLong: number;\n latLongArray: any;\n isCFPReporting:boolean;\n isMileageCategory: boolean;\n carbonEmissionLabel: string;\n ngOnInit() {\n const resizeObservable$ = fromEvent(window, 'resize')\n this.getTextLength();\n this.resizeSubscription$ = resizeObservable$.subscribe(evt => {\n this.getTextLength();\n })\n this.getOrganisationData();\n this.getCurrrencyList();\n }\n getTextLength() {\n if (window.innerWidth >= 1535) {\n this.toTextLength = 22;\n this.fromTextLength = 52;\n }\n else {\n this.toTextLength = 18;\n this.fromTextLength = 45;\n }\n }\n ngOnDestroy() {\n this.resizeSubscription$.unsubscribe();\n this.claimsSubscription.unsubscribe();\n }\n fnShowMileageDetailPanel(expenseDetailResponse) {\n if(!(expenseDetailResponse.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle || expenseDetailResponse.baseCategoryId == BaseCategoryTypeEnum.MileageGPS ||\n expenseDetailResponse.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle\n )){\n this.multipleLegsPanelHeading = this.translate.instant('cfp_msg_6');\n }\n else{\n this.multipleLegsPanelHeading = this.translate.instant('multiple_legs');\n }\n this.expenseDetailResponse = expenseDetailResponse;\n this.isCFPReporting = this.expenseDetailResponse.isCFPReporting;\n this.isMileageCategory = this.expenseDetailResponse.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle;\n this.mileageLabel = (this.expenseDetailResponse.mileage.mileageUOM == MileageUOMEnum.Kilometre ? \"km\" : \"m\");\n this.carbonEmissionLabel = this.translate.instant('text_carbonemission');\n this.fnGetMileageRate();\n this.isPanelDisplay = true;\n }\n fnCloseMileageDetailPanel() {\n this.isPanelDisplay = false;\n //this.closePanelEvent.emit(true);\n }\n\n getCurrrencyList() {\n this.currencyService.getAllExpenseCurrency(this.claims.OrgId)\n .subscribe((data: any) => {\n if (data && data.length > 0) {\n this.currencytList = data;\n }\n });\n }\n\n getCurrencyName(currencyId: number) {\n if (this.currencytList) {\n return this.currencytList.filter(a => a.currencyId == currencyId).map(function (b) { return b.currencyCode })[0];\n }\n }\n\n fnGetMileageRate() {\n let mileageLabel = (this.expenseDetailResponse.mileage.mileageUOM == MileageUOMEnum.Kilometre ? \"km\" : \"m\");\n this.mileageRate = this.expenseDetailResponse.mileage.mileageRate.toFixed(2)\n + \" \" + this.getCurrencyName(this.expenseDetailResponse.currencyId) + \" / \" + mileageLabel;\n\n if (this.expenseDetailResponse.mileage.mileageRateInfo != null) {\n let str = \"\";\n let length = 1;\n let arraylength = this.expenseDetailResponse.mileage.mileageRateInfo.length;\n this.expenseDetailResponse.mileage.mileageRateInfo.forEach(itemMileage => {\n if (length == arraylength) { str = str + itemMileage.mileageRate.toFixed(2) + \" \"; }\n else { str = str + itemMileage.mileageRate.toFixed(2) + \" / \" + \" \"; }\n ++length;\n });\n this.mileageRate = str + this.getCurrencyName(this.expenseDetailResponse.currencyId) + \" / \" + mileageLabel;\n }\n }\n closeMultipleJourneyGroups(rowIndex) {\n const elements = document.querySelectorAll(\"[aria-expanded='true']\");\n elements.forEach(element => {\n const multipleJourneyroupHeader = element.id;\n if ('multipleJourney' + rowIndex != multipleJourneyroupHeader) {\n if (element.id.includes('multipleJourney')) {\n (element as HTMLElement).click();\n }\n }\n });\n }\n fnMapData(isWholeJournew, sequence, expenseDetailResponse) {\n if (expenseDetailResponse != null) {\n this.expenseDetailResponse = expenseDetailResponse;\n this.isMileageCategory = this.expenseDetailResponse.baseCategoryId == BaseCategoryTypeEnum.MileageGoogle;\n }\n if (this.expenseDetailResponse.mileage.journeyType == JourneyTypeEnum.Return) {\n this.fnMapForReturnJourney();\n }\n else {\n let mileageArray = [];\n this.fnGetMileageRate();\n let mileageLabel = (this.expenseDetailResponse.mileage.mileageUOM == MileageUOMEnum.Kilometre ? \"km\" : \"m\");\n if (isWholeJournew) {\n this.amount = this.expenseDetailResponse.spentAmount;\n this.detourMiles = this.expenseDetailResponse.mileage.detour.toFixed(2) + \" \" + mileageLabel;\n this.triangulationMiles = this.expenseDetailResponse.mileage.totalTriangulatedDistance.toFixed(2) + \" \" + mileageLabel;\n this.milesTravelled = this.expenseDetailResponse.mileage.totalMilesTraveled.toFixed(2) + \" \" + mileageLabel;\n this.distance = this.expenseDetailResponse.mileage.totalDistance.toFixed(2) + \" \" + mileageLabel;\n mileageArray = this.expenseDetailResponse.mileage.sourceDestinationInformation;\n this.viewReceiptComponent.fnshowMileagemap(mileageArray, this.expenseDetailResponse.mileage.journeyType, true, this.getCurrencyName(this.expenseDetailResponse.currencyId) );\n }\n else {\n let sourceDestinatination = this.expenseDetailResponse.mileage.sourceDestinationInformation\n .find(a => a.sequence == sequence);\n this.amount = sourceDestinatination.amount;\n this.detourMiles = sourceDestinatination.detour.toFixed(2) + \" \" + mileageLabel;\n this.triangulationMiles = \"0.00\" + \" \" + mileageLabel;\n this.milesTravelled = sourceDestinatination.milesTraveled.toFixed(2) + \" \" + mileageLabel;\n this.distance = sourceDestinatination.distance.toFixed(2) + \" \" + mileageLabel;\n sourceDestinatination.mileageLabel = mileageLabel;\n mileageArray.push(sourceDestinatination);\n this.viewReceiptComponent.fnshowMileagemap(mileageArray, this.expenseDetailResponse.mileage.journeyType, false, this.getCurrencyName(this.expenseDetailResponse.currencyId) );\n }\n }\n\n\n }\n hasReturnJourney: boolean = false;\n mileageArray: any;\n fnMapForReturnJourney() {\n this.fnGetMileageRate();\n let mileageLabel = (this.expenseDetailResponse.mileage.mileageUOM == MileageUOMEnum.Kilometre ? \"km\" : \"m\");\n this.amount = this.expenseDetailResponse.spentAmount;\n this.hasReturnJourney = this.expenseDetailResponse.mileage.journeyType == JourneyTypeEnum.Return ? true : false;\n this.detourMiles = this.expenseDetailResponse.mileage.detour.toFixed(2) + \" \" + mileageLabel;\n this.triangulationMiles = this.expenseDetailResponse.mileage.totalTriangulatedDistance.toFixed(2) + \" \" + mileageLabel;\n this.milesTravelled = this.expenseDetailResponse.mileage.totalMilesTraveled.toFixed(2) + \" \" + mileageLabel;\n this.distance = this.expenseDetailResponse.mileage.totalDistance.toFixed(2) + \" \" + mileageLabel;\n this.origin = {\n lat: parseFloat(this.expenseDetailResponse.mileage.sourceDestinationInformation[0].route[0].latitude.toString()),\n lng: parseFloat(this.expenseDetailResponse.mileage.sourceDestinationInformation[0].route[0].longitude.toString())\n };\n this.destination = {\n lat: parseFloat(this.expenseDetailResponse.mileage.sourceDestinationInformation[0].route[this.expenseDetailResponse.mileage.sourceDestinationInformation[0].route.length - 1].latitude.toString()),\n lng: parseFloat(this.expenseDetailResponse.mileage.sourceDestinationInformation[0].route[this.expenseDetailResponse.mileage.sourceDestinationInformation[0].route.length - 1].longitude.toString())\n };\n this.receiptLat = parseFloat(this.expenseDetailResponse.mileage.sourceDestinationInformation[0].route[0].latitude.toString());\n this.receiptLong = parseFloat(this.expenseDetailResponse.mileage.sourceDestinationInformation[0].route[0].longitude.toString());\n this.latLongArray = this.expenseDetailResponse.mileage.sourceDestinationInformation[0].route;\n this.mileageArray = [];\n this.mileageArray.push(this.expenseDetailResponse.mileage.sourceDestinationInformation[0])\n setTimeout(() => {\n this.viewReceiptComponent.fnshowMileage(this.getCurrencyName(this.expenseDetailResponse.currencyId));\n }, 100);\n }\n\n getOrganisationData() {\n this.authenticationService\n .organisationdetails(this.claims.UserId.toString(), this.claims.LoginId, this.claims.Token)\n .subscribe(orgData => {\n if (orgData.statusCode == 0) {\n this.isAdvancedMileageEnabled = orgData.responseInfo[0].rateType > MileageRateTypeEnum.FreeForLife ? true : false;\n }\n });\n }\n fnShowViewTagPanel(sequence) {\n this.tagList = [];\n let sourceDestinatination = this.expenseDetailResponse.mileage.sourceDestinationInformation\n .find(a => a.sequence == sequence);\n if (sourceDestinatination.tagList != null || sourceDestinatination.tagList.length > 0) {\n sourceDestinatination.tagList.forEach(item => {\n this.tagList.push(item);\n });\n this.showViewTagPanel = true;\n }\n\n }\n\n fnBindMileageSequence(item) {\n let seqObjectArray = [];\n let milesTraveled = item.milesTraveled.toFixed(2);\n seqObjectArray.push({\n name: this.translate.instant(\"miles_travelled\"),\n value: milesTraveled.toString() + \" \" + this.mileageLabel,\n class: 'w-100pc d-block lH-25',\n valueClass: 'w-100pc d-block text-right lH-25'\n });\n\n if (this.isAdvancedMileageEnabled && this.isMileageCategory) {\n if (item.allowanceId) {\n seqObjectArray.push({\n name: 'B. ' + this.translate.instant(\"passenger_load\"),\n value: this.translate.instant(this.fnSetAllowanceText(item.allowanceId)),\n class: 'w-100pc d-block lH-25',\n valueClass: 'w-100pc d-block text-right lH-25'\n });\n let detour = item.detour.toFixed(2);\n seqObjectArray.push({\n name: 'C. ' + this.translate.instant(\"detour_miles\"),\n value: detour.toString() + \" \" + this.mileageLabel,\n class: 'w-100pc d-block lH-25 color-green',\n valueClass: 'w-100pc d-block text-right lH-25 color-green'\n });\n let totalMiles = Number(detour) + Number(milesTraveled);\n seqObjectArray.push({\n name: this.translate.instant(\"total_miles_claimed_a_c\"),\n value: ' ' + totalMiles.toFixed(2).toString() + ' ' + this.mileageLabel + '',\n class: 'w-100pc d-block lH-25 fw-700 text-logo-blue padding-TB-5',\n valueClass: 'w-100pc d-block text-right lH-25 padding-TB-5 fw-700'\n });\n if(this.isCFPReporting)\n seqObjectArray.push({\n name: 'D. ' + this.translate.instant(\"total_carbon_emission\"),\n value: item.carbonFootprint + \" \" + this.carbonEmissionLabel,\n class: 'w-100pc d-block lH-25',\n valueClass: 'w-100pc d-block text-right lH-25'\n });\n }\n else {\n let detour = item.detour.toFixed(2);\n seqObjectArray.push({\n name: 'B. ' + this.translate.instant(\"detour_miles\"),\n value: detour.toString() + \" \" + this.mileageLabel,\n class: 'w-100pc d-block lH-25 color-green',\n valueClass: 'w-100pc d-block text-right lH-25 color-green'\n });\n let totalMiles = Number(detour) + Number(milesTraveled);\n seqObjectArray.push({\n name: this.translate.instant(\"total_miles_claimed\"),\n value: ' ' + totalMiles.toFixed(2).toString() + ' ' + this.mileageLabel + '',\n class: 'w-100pc d-block lH-25 fw-700 text-logo-blue padding-TB-5',\n valueClass: 'w-100pc d-block text-right lH-25 padding-TB-5 fw-700'\n });\n\n if(this.isCFPReporting)\n seqObjectArray.push({\n name: 'C. ' + this.translate.instant(\"total_carbon_emission\"),\n value: item.carbonFootprint + \" \" + this.carbonEmissionLabel,\n class: 'w-100pc d-block lH-25',\n valueClass: 'w-100pc d-block text-right lH-25'\n });\n }\n }\n\n if(!this.isMileageCategory && this.isCFPReporting)\n seqObjectArray.push({\n name: 'B. ' + this.translate.instant(\"total_carbon_emission\"),\n value: item.carbonFootprint + \" \" + this.carbonEmissionLabel,\n class: 'w-100pc d-block lH-25',\n valueClass: 'w-100pc d-block text-right lH-25'\n });\n\n return seqObjectArray;\n\n }\n\n fnSetAllowanceText(allowanceId) {\n return this.claimantOnWebService.fnSetAllowanceText(true, allowanceId)\n }\n}\n","
\n
\n
\n
\n
\n

{{pdfName}}

\n
\n
\n \n
\n \n \n
\n \n
\n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
","import { Component, OnInit, Input, ElementRef, Output, EventEmitter } from \"@angular/core\";\n\n@Component({\n selector: \"app-pdf-viewer\",\n templateUrl: \"./pdf-viewer.component.html\",\n styleUrls: ['./pdf-viewer.component.scss']\n})\n\nexport class PdfViewerComponent implements OnInit {\n\n @Input() pdfUrl: string;\n @Input() pdfName: string;\n @Input() pdfExpenseReceiptId: number;\n @Input() showPdfViewerPanel: boolean;\n @Input() showDeleteButton: boolean = false;\n @Input() isOverLayHide: boolean = false;\n @Input() panelWidth: string = \"w-80pc\";\n \n @Input() claimType: number = 1;\n @Input() isClaimPage: boolean = false;\n\n constructor() { }\n\n ngOnInit() {}\n\n @Output() callbackEvent = new EventEmitter();\n @Output() deletePdfEvent = new EventEmitter();\n\n\n dismiss() {\n this.showPdfViewerPanel = false;\n this.pdfUrl = \"\";\n this.pdfName = \"\";\n this.pdfExpenseReceiptId = 0;\n this.callbackEvent.emit(false);\n }\n\n delete() {\n this.showPdfViewerPanel = false;\n this.pdfUrl = \"\";\n this.pdfName = \"\";\n this.deletePdfEvent.emit(this.pdfExpenseReceiptId);\n }\n\n downloadReceipt() {\n // window.open(this.pdfUrl);\n let pdfWindow = window.open(\"\");\n pdfWindow.document.write(\"'\"+this.pdfName+\"'\" + \"\");\n \n }\n} \n","\n
\n
\n
\n
\n
\n

{{ \"strip_title\" | translate }}

\n
\n
\n \n
\n
\n
\n
\n
\n {{ \"strip_heading1\" | translate }} {{this.basicFunctionTrialDays}} {{ \"strip_heading1_1\" | translate }} \n {{ \"strip_heading2\" | translate }} {{ \"strip_heading3\" | translate }}\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n

{{ \"strip_footer_note\" | translate }}

\n
\n
\n\n \n
\n
\n
\n
\n
\n

\n {{ \"stripe_redirect_message\" | translate }}\n

\n
\n
\n
\n
\n
\n \n
\n\n
\n
\n\n\n","import { Component, OnInit, Output, EventEmitter, ElementRef } from \"@angular/core\";\nimport { Location } from \"@angular/common\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { DateFormatPipe } from \"src/app/_helpers/pipe.module\";\nimport { IApiRequest,ApiRequest, IApiresponse } from \"src/app/_models\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { environment } from \"src/environments/environment\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { termsOfServiceURl } from \"src/app/common/commonvariables\";\nimport { StripeSessionRequest, IStripeSessionRequest } from \"src/app/_models/stripe/stripe\";\ndeclare var Stripe: any;\nimport { parse } from \"url\";\nimport { StripeService } from \"src/app/_services/stripe/stripe.service\";\nimport { ISubscriptionCardDetailsRequest, SubscriptionCardDetailsRequest } from \"src/app/_models/stripe/SubscriptionCardDetailsRequest\";\nimport { SaveOrderCartDetailsService } from \"src/app/_services/cart-order/SaveOrder-Cart-Details.service\";\nimport { OrgBasicFunctionSubscriptionService } from \"src/app/_services/billing-pricing/Org-BasicFunction-Subscription.service\";\n\n@Component({\n selector: 'stripe-agreement-panel',\n templateUrl: './stripe-agreement-panel.component.html'\n})\n\nexport class StripeAgreementPanelComponent implements OnInit {\n @Output() closePanelEvent = new EventEmitter();\n\n claims: Claims;\n termsOfService = termsOfServiceURl;\n isDisabled: boolean = true;\n stripeSessionId: any;\n stripeSessionIdFromUrl: string;\n showRedirectText: boolean = false;\n basicFunctionTrialDays: number;\n\n constructor(\n private claimsService: ClaimsService,\n private location: Location,\n private toastr: ToastrService,\n private router: Router,\n private route: ActivatedRoute,\n private datePipe: DateFormatPipe,\n private translate: TranslateService,\n private elRef: ElementRef,\n private stripeService: StripeService,\n private saveOrderCartDetailsService: SaveOrderCartDetailsService,\n private orgBasicFunctionSubscriptionService: OrgBasicFunctionSubscriptionService,\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {\n\n if (this.route.snapshot.queryParams[\"sessionId\"]) {\n\n this.stripeSessionIdFromUrl = this.route.snapshot.queryParams[\"sessionId\"];\n this.fnResetUrl();\n this.fnRegisterUserCardOnStripe();\n }\n else{\n this.fnLoadStripe();\n this.fnGetOrgBasicFunctionSubscriptionTrialDetails();\n }\n }\n\n fnClose(){\n this.closePanelEvent.emit(true);\n } \n \n fnAgreeOnTerms(values: any) {\n this.isDisabled = values.currentTarget.checked == false ? true : false;\n }\n\n fnShowStripeCheckout() {\n this.fnLoadStripeSession();\n }\n\n fnLoadStripe() {\n let stripeImport = document.createElement(\"script\");\n stripeImport.type = \"text/javascript\";\n stripeImport.src = \"https://js.stripe.com/v3/\";\n this.elRef.nativeElement.appendChild(stripeImport);\n }\n\n fnResetUrl() {\n this.showRedirectText = true;\n let myUrl = parse(window.location.href);\n\n if (!(!myUrl || null) && !(!myUrl.pathname || null)) {\n let urlPath = myUrl.pathname;\n this.location.go(urlPath);\n } else {\n this.location.go(\"/\");\n }\n }\n\n fnLoadStripeSession() {\n let userEmail = this.claims.EmailId && this.claims.EmailId != \"\" ? this.claims.EmailId : this.claims.LoginId;\n let sessionRequestData = new StripeSessionRequest(window.location.href,userEmail,this.claims.CurrentOrganisationCurrencyCode);\n let sessionRequest = new ApiRequest(\"CreateStripeSession\",environment.applicationVersion, environment.requestId);\n sessionRequest.requestInfo = sessionRequestData;\n\n this.stripeService.CreateStripeSession(sessionRequest)\n .subscribe(\n (sessionData) => {\n if (sessionData.statusCode == 0 && sessionData.responseInfo) {\n this.stripeSessionId = sessionData.responseInfo;\n this.fnShowStripeCheckoutWindow();\n }\n },\n (error) => {\n alert(error);\n }\n );\n }\n\n fnShowStripeCheckoutWindow() {\n let stripe = Stripe(environment.StripePublicKey);\n\n stripe.redirectToCheckout({ sessionId: this.stripeSessionId }).then(function (result) {\n this.toastr.error(result.error.message);\n });\n }\n\n fnRegisterUserCardOnStripe() {\n this.stripeService.RegisterUserCardOnStripe(this.stripeSessionIdFromUrl)\n .subscribe((registerCardData) => {\n\n if (registerCardData.statusCode == 0 && registerCardData.responseInfo) {\n\n this.fnSaveOrganisationCardInformation(\n registerCardData.responseInfo.customerId,\n registerCardData.responseInfo.paymentMethodId,\n registerCardData.responseInfo.cardBrand,\n registerCardData.responseInfo.cardType,\n registerCardData.responseInfo.cardExpirationMonth,\n registerCardData.responseInfo.cardExpirationYear,\n registerCardData.responseInfo.cardLastFourDigits\n );\n \n } else {\n this.toastr.error(this.translate.instant(\"failed\"));\n }\n },\n (error) => {\n alert(error);\n }\n );\n }\n\n fnSaveOrganisationCardInformation(\n customerId: string,\n paymentMethodId: string, \n cardBrand: string, \n cardType: string, \n cardExpirationMonth: string, \n cardExpirationYear: string,\n cardLastFourDigits: string) {\n\n let cardMonth = \"\";\n if (cardExpirationMonth != null && cardExpirationMonth != \"\" && cardExpirationMonth != undefined) {\n cardMonth = parseInt(cardExpirationMonth).toLocaleString(\"en-US\", {minimumIntegerDigits: 2, useGrouping: false});\n }\n let request = new ApiRequest(\"AddCardDetails\", environment.applicationVersion, environment.requestId);\n let requestInfo = new SubscriptionCardDetailsRequest(\n cardBrand,\n cardType,\n cardMonth + \"/\" + cardExpirationYear,\n cardLastFourDigits,\n cardBrand != null ? \"assets/svg-icons/\" + cardBrand.toLowerCase() + \".svg\" : \"\",\n this.claims.OrgId,\n this.claims.UserId,\n \"1\",\n customerId,\n paymentMethodId);\n\n request.requestInfo = requestInfo;\n\n this.saveOrderCartDetailsService.AddCardDetails(request)\n .subscribe(\n (data) => {\n if (data.statusCode == 0) {\n\n if (localStorage.getItem(\"IsFromBasicFunctionSubscription\")) {\n localStorage.removeItem(\"IsFromBasicFunctionSubscription\");\n localStorage.setItem(\"IsFromBasicFunctionSubscriptionStrip\",JSON.stringify(true));\n this.router.navigate([\"/settings\"]);\n } \n else {\n this.router.navigate([\"/shoppingcartConfirmed\"]);\n }\n\n } else {\n this.toastr.error(data.errorInfo[0].message);\n }\n },\n (error) => {\n this.toastr.error(error);\n }\n );\n }\n\n fnGetOrgBasicFunctionSubscriptionTrialDetails() {\n this.orgBasicFunctionSubscriptionService.GetOrgBasicFunctionSubscriptionTrialDetails(this.claims.OrgId)\n .subscribe((res: any) => {\n if (res.responseInfo != null) {\n this.basicFunctionTrialDays = res.responseInfo.basicFunctionTrialDays;\n }\n });\n }\n\n}\n","
\n 0\"\n style=\"height: 100% !important\">\n 0\n \"\n id=\"{{ seletedItem.expenseReceiptId }}\"\n [src]=\"seletedItem.receiptUrl\"\n (load)=\"stopSpinner()\"\n (dblclick)=\"showImgPopup()\"\n data-bs-toggle=\"modal\"\n data-bs-target=\"#receiptPopup\" />\n\n \n
\n

\n {{ seletedItem.receiptName }}\n

\n \n {{ \"view_pdf\" | translate }}\n \n
\n
\n
\n \n \n \n \n {{ \"text_add_receipt\" | translate : param }}\n \n \n {{ \"text_add_invoice_receipt\" | translate : param }}\n \n \n\n \n\n \n \n \n\n 0\">\n
\n \n \n \n
\n \n \n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n
\n \n \n ×\n \n
\n
\n \n
\n \n \n\n\n\n\n
\n
\n
\n
\n
\n

{{ \"upload_receipt_pdf\" | translate }}

\n
\n
\n \n {{ \"delete\" | translate }}\n \n\n \n {{ \"scan_receipt\" | translate }}\n \n\n \n {{ \"save_receipt\" | translate }}\n \n
\n
\n
\n
\n \n \n\n \n
\n
\n
\n
\n\n\n\n\n","import {\n Component,\n Input,\n ElementRef,\n ViewChild,\n QueryList,\n ViewChildren,\n Renderer2,\n Output,\n EventEmitter,\n} from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\nimport {\n AttachmentTypeEnum,\n DeleteExpenseEnum,\n ApiRequest,\n IApiresponse,\n} from \"src/app/_models\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { IReceiptInfo } from \"src/app/_models/twostepapproval/claimant-expense-detail\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { EODDateFormatPipe } from \"src/app/_helpers/pipe.module\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport {\n ReceiptsInfo,\n ReceiptLocationInfo,\n DeleteReceiptShortRequest,\n} from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { ClaimantOnWebService } from \"src/app/_services/claimant-on-web/claimant-on-web.service\";\nimport { environment } from \"../../../../environments/environment\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Observable, Observer } from \"rxjs\";\nimport { KeyValue } from \"../../../_models/common/key-value\";\nimport { NgxImageCompressService } from \"ngx-image-compress\";\nimport {\n ExpenseRequest,\n IExpenseRequest,\n PreviewOutputModel,\n ReceiptSaveRequest,\n} from \"../../../_models/claimant-on-web/claimant-on-web\";\nimport { ExpenseStatusEnum } from \"../../../_models\";\nimport { ClaimType } from \"../../../_models/enum/solo-enum\";\n@Component({\n selector: \"app-view-form-receipt\",\n templateUrl: \"./view-form-receipt.component.html\",\n})\nexport class ViewFormReceiptComponent {\n @Input() totalReceipts = [];\n @Input() closePanel: boolean = false;\n @Input() readOnlyMode: boolean = false;\n @Input() showScanOption: boolean = false;\n @Input() isCreditCardExpense: boolean = false;\n @Input() claimType: number;\n @Input() createType: number = 1;\n @Input() isClaimPage: boolean = false;\n @Input() isHideDefaultPdfPanel: boolean = false;\n @Input() showDeleteButton: boolean = false;\n @Output() matchReceiptEvent = new EventEmitter<{\n addReceipt: ReceiptsInfo[];\n receiptFiles: any[];\n previewOutputModel: PreviewOutputModel;\n scanReceipt: boolean;\n }>();\n @Output() addReceiptEvent = new EventEmitter<{\n addReceipt: ReceiptsInfo[];\n receiptFiles: any[];\n previewOutputModel: PreviewOutputModel;\n scanReceipt: boolean;\n }>();\n @Output() showExpenseMergePanelEvent = new EventEmitter();\n @Output() newExpenseDeleteReceiptEvent = new EventEmitter();\n\n receiptInfo = [];\n showAttachReceiptOptionsPanel: boolean = false;\n receiptFormatAlertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n \"\"\n );\n showReceiptFormatAlertPanel: boolean = false;\n receiptSizeLimitPopupModel: AlertPanelModel;\n receiptTypeResp: any;\n showReceiptSizeLimitPopup: boolean = false;\n capturedReceipts = [];\n capturedLat: number;\n capturedLng: number;\n capturedReceiptsInfo = [];\n editReceiptsInfo = [];\n mergedReceiptsInfo = [];\n seletedItem: ReceiptsInfo = new ReceiptsInfo();\n @ViewChildren(\"receiptImage\") receiptImages: QueryList;\n @ViewChildren(\"receiptContainer\") receiptContainer: QueryList;\n @ViewChild(\"receiptImageContainer\", { read: ElementRef })\n receiptImageContainer: ElementRef;\n alertPanelModelForDeleteReceipt = new AlertPanelModel(\n false,\n \"\",\n [],\n \"\",\n \"\",\n true,\n \"\"\n );\n pdfSrc: any;\n pdfName: string;\n pdfExpenseReceiptId: number = 0;\n showPdfViewer = false;\n attachmentTypeEnum = AttachmentTypeEnum;\n receiptCount: number = 1;\n imgPopup: boolean = false;\n claims: Claims;\n selectedAttachmentType: number;\n isPageLoad: boolean = true;\n\n get expenseStatusEnum() {\n return ExpenseStatusEnum;\n }\n\n showScanOverrideAlertPanel = false;\n receiptScanOverrideAlertPanelModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n \"\"\n );\n\n constructor(\n private claimsService: ClaimsService,\n private renderer: Renderer2,\n private ngxService: NgxUiLoaderService,\n private translate: TranslateService,\n public eodDatePipe: EODDateFormatPipe,\n private imageCompress: NgxImageCompressService,\n private claimantOnWebService: ClaimantOnWebService,\n private toastr: ToastrService\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {}\n\n ngAfterViewInit() {\n this.registerDragElement();\n }\n\n fnShowAttachReceiptOptionsPanel() {\n this.showAttachReceiptOptionsPanel = true;\n }\n\n fnShowFilePicker() {\n this.showAttachReceiptOptionsPanel = false;\n document.getElementById(\"receiptUpload\").click();\n return false;\n }\n ngOnChanges() {\n if (this.closePanel) {\n this.fnResetReceiptPanel();\n }\n if (this.totalReceipts?.length > 0) {\n this.seletedItem = this.totalReceipts[0];\n this.fnShowSelectedReceipt(this.totalReceipts[0], 0);\n }\n }\n\n fnResetReceiptPanel() {\n this.capturedReceipts = [];\n this.seletedItem = {};\n this.totalReceipts = [];\n this.capturedReceiptsInfo = [];\n this.showPdfViewer = false;\n }\n\n fnShowExpenseMergePanel() {\n this.showExpenseMergePanelEvent.emit(this.capturedReceiptsInfo);\n this.showAttachReceiptOptionsPanel = false;\n }\n\n isPdfReceipt = false;\n scanReceiptPDFUrl = \"\";\n showReceiptScanInfoPanel = false;\n fileSaveEvent: any[] = [];\n fileInputEvent: any;\n\n readUploadedFile(fileInput: Event) {\n this.fileInputEvent = fileInput;\n this.rotationDegree = 0;\n let attachmentCount = this.totalReceipts?.length ?? 0;\n let newUploadCount = 0;\n newUploadCount = (fileInput.target).files?.length;\n\n if (attachmentCount + newUploadCount > 5) {\n //Not allowed more than 5 for an item.\n this.fnShowReciptLimitAlert();\n } else {\n let filesToUpload = (fileInput.target).files;\n\n for (let i = 0; i < filesToUpload.length; i++) {\n let tempFile = filesToUpload[i];\n\n if (tempFile) {\n let fileExtension = tempFile.type.split(\"/\")[1];\n if (\n !fileExtension ||\n (fileExtension.toLowerCase() != \"png\" &&\n fileExtension.toLowerCase() != \"jpg\" &&\n fileExtension.toLowerCase() != \"jpeg\" &&\n fileExtension.toLowerCase() != \"pdf\")\n ) {\n this.receiptFormatAlertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n \"\",\n this.translate.instant(\"text_ok\"),\n true,\n this.translate.instant(\"upload_pdf_or_image_only\")\n );\n this.showReceiptFormatAlertPanel = true;\n return;\n }\n\n let fileName =\n \"receipt_\" + new Date().valueOf() + \".\" + fileExtension;\n let file = new File([tempFile], fileName, { type: tempFile.type });\n\n let receiptUrl = \"\";\n var reader = new FileReader();\n this.fileSaveEvent = [];\n reader.onload = (event: any) => {\n this.isPdfReceipt = fileExtension == \"pdf\";\n this.scanReceiptPDFUrl = event.target?.result;\n this.showReceiptScanInfoPanel = true;\n this.fileSaveEvent.push(event);\n\n // if (fileExtension != \"pdf\") {\n // let image = new Image();\n // image.src = event.target?.result;\n\n // this.getImageDimensions(image.src)\n // .then(({ width, height }) => {\n\n // const filesize = (file.size / 1024 / 1024).toFixed(2);\n // if (Number(filesize) > 1) {\n // this.imageCompress.compressFile(event.target?.result, -1, 20, 90, 1280, 720).then(\n // result => {\n // const imageBlob = this.dataURItoBlob(result.split(',')[1]);\n // file = new File([imageBlob], fileName, { type: tempFile.type });\n // receiptUrl = result;\n // const uploadedFilesize = (file.size / 1024 / 1024).toFixed(2);\n\n // if (Number(uploadedFilesize) > 3) {\n // this.fnShowReceiptSizeLimitPopupReceiver();\n // return;\n // }\n\n // this.fnCreateReceiptArray(file, fileExtension, receiptUrl);\n // });\n // }\n // else\n // this.fnCreateReceiptArray(file, fileExtension, event.target?.result);\n // });\n // }\n // else {\n // this.fnCreateReceiptArray(file, fileExtension, event.target?.result);\n // }\n };\n reader.readAsDataURL(file);\n }\n }\n }\n }\n\n SaveImageWithoutScan(scanReceipt) {\n if (\n this.totalReceipts.length >= 1 &&\n scanReceipt &&\n !this.showScanOverrideAlertPanel\n ) {\n this.receiptScanOverrideAlertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n \"Do not Scan\",\n this.translate.instant(\"Scan\"),\n true,\n this.translate.instant(\n \"Please note, this Scan will overwrite the previous scanned receipt.\"\n )\n );\n this.showScanOverrideAlertPanel = true;\n return;\n }\n\n this.showScanOverrideAlertPanel = false;\n this.showReceiptScanInfoPanel = false;\n\n let fileInput = this.fileInputEvent;\n let filesToUpload = (fileInput.target).files;\n\n for (let i = 0; i < filesToUpload.length; i++) {\n let tempFile = filesToUpload[i];\n\n let event = this.fileSaveEvent[i];\n if (tempFile) {\n let fileExtension = tempFile.type.split(\"/\")[1];\n if (\n !fileExtension ||\n (fileExtension.toLowerCase() != \"png\" &&\n fileExtension.toLowerCase() != \"jpg\" &&\n fileExtension.toLowerCase() != \"jpeg\" &&\n fileExtension.toLowerCase() != \"pdf\")\n ) {\n this.receiptFormatAlertPanelModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n \"\",\n this.translate.instant(\"text_ok\"),\n true,\n this.translate.instant(\"upload_pdf_or_image_only\")\n );\n this.showReceiptFormatAlertPanel = true;\n return;\n }\n\n let fileName = \"receipt_\" + new Date().valueOf() + \".\" + fileExtension;\n let file = new File([tempFile], fileName, { type: tempFile.type });\n\n let receiptUrl = \"\";\n if (fileExtension != \"pdf\") {\n let image = new Image();\n image.src = event.target?.result;\n\n this.getImageDimensions(image.src).then(({ width, height }) => {\n const filesize = (file.size / 1024 / 1024).toFixed(2);\n if (Number(filesize) > 1) {\n this.imageCompress\n .compressFile(event.target?.result, -1, 20, 90, 1280, 720)\n .then((result) => {\n const imageBlob = this.dataURItoBlob(result.split(\",\")[1]);\n file = new File([imageBlob], fileName, {\n type: tempFile.type,\n });\n receiptUrl = result;\n const uploadedFilesize = (file.size / 1024 / 1024).toFixed(2);\n\n if (Number(uploadedFilesize) > 3) {\n this.fnShowReceiptSizeLimitPopupReceiver();\n return;\n }\n\n this.fnCreateReceiptArray(\n file,\n fileExtension,\n receiptUrl,\n scanReceipt\n );\n });\n } else\n this.fnCreateReceiptArray(\n file,\n fileExtension,\n event.target?.result,\n scanReceipt\n );\n });\n } else {\n this.fnCreateReceiptArray(\n file,\n fileExtension,\n event.target?.result,\n scanReceipt\n );\n }\n }\n }\n }\n\n showPreviewPanel: boolean = false;\n scannedText: KeyValue[];\n previewImageUrl: any;\n previewOutputModel: PreviewOutputModel;\n\n fnScanReceipt() {\n //this.ngxService.start();\n let receipt = this.totalReceipts.filter(\n (it) => it.expenseReceiptId == this.seletedItem.expenseReceiptId\n );\n this.previewImageUrl = receipt[0].receiptUrl;\n this.extractInvoiceReceipts(\n false,\n receipt,\n this.expenseStatusEnum.PendingForSubmission,\n []\n );\n }\n\n extractInvoiceReceipts(\n hasVoiceMemo,\n receiptsInfo,\n saveStatus,\n expenseIds: number[]\n ) {\n let recSaveReq = new ReceiptSaveRequest();\n recSaveReq.createdOn = new Date().valueOf();\n recSaveReq.expenseIds = expenseIds;\n recSaveReq.orgId = 1223;\n recSaveReq.userId = 24323;\n recSaveReq.platformID = 1;\n recSaveReq.saveStatus = saveStatus;\n recSaveReq.hasReceipt =\n receiptsInfo && receiptsInfo.length > 0 ? true : false;\n recSaveReq.hasVoiceMemo = hasVoiceMemo;\n recSaveReq.currencyId = 0;\n recSaveReq.receiptsInfo = receiptsInfo;\n\n let receiptSaveRequest = new ApiRequest(\n \"ExtractInvoiceReceipt\",\n 3.8,\n \"1\"\n );\n receiptSaveRequest.requestInfo = recSaveReq;\n let recSaveReqString = JSON.stringify(receiptSaveRequest);\n let expReq = new ExpenseRequest(\n recSaveReqString,\n this.capturedReceipts,\n null\n );\n let receiptRequest = new ApiRequest(\n \"ScanReceiptData\",\n environment.applicationVersion,\n environment.requestId\n );\n receiptRequest.requestInfo = expReq;\n this.addReceiptEvent.emit({\n addReceipt: this.totalReceipts,\n receiptFiles: this.capturedReceipts,\n previewOutputModel: this.previewOutputModel,\n scanReceipt: false,\n });\n // this.claimantOnWebService\n // .ScanExpenseReceipts(receiptRequest)\n // .subscribe((response: IApiresponse) => {\n // if (response.statusCode == 0) {\n // this.ngxService.stop();\n // // this.showPreviewPanel = true;\n // // this.scannedText = response.responseInfo;\n // this.addReceiptEvent.emit({ addReceipt: this.totalReceipts, receiptFiles: this.capturedReceipts, previewOutputModel : this.previewOutputModel });\n // }\n // });\n }\n\n fnClosePreviewPanel(_event) {\n this.showPreviewPanel = false;\n this.previewOutputModel = new PreviewOutputModel();\n }\n\n fnSavePreviewPanel(_event) {\n this.showPreviewPanel = false;\n this.previewOutputModel = _event;\n this.seletedItem = this.previewOutputModel.receipt;\n this.addReceiptEvent.emit({\n addReceipt: this.totalReceipts,\n receiptFiles: this.capturedReceipts,\n previewOutputModel: this.previewOutputModel,\n scanReceipt: false,\n });\n }\n\n resetFileControl(event) {\n event.target.value = \"\";\n }\n\n receiptLimitAlertPopupModel = new AlertPanelModel(\n false,\n \"\",\n [\"\"],\n \"\",\n \"\",\n true,\n \"\"\n );\n showReceiptLimitAlertPopup = false;\n fnShowReciptLimitAlert() {\n this.receiptLimitAlertPopupModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [this.translate.instant(\"receipt_limit_alert\")],\n \"\",\n this.translate.instant(\"label_ok\"),\n true,\n \"\"\n );\n this.showReceiptLimitAlertPopup = true;\n }\n\n fnReceiptLimitPopupReceiver() {\n this.showReceiptLimitAlertPopup = false;\n }\n\n fnShowReceiptSizeLimitPopupReceiver() {\n this.receiptSizeLimitPopupModel = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n \"\",\n this.translate.instant(\"label_ok\"),\n true,\n this.translate.instant(\"receipt_upload_size_limit_alert\")\n );\n this.showReceiptSizeLimitPopup = true;\n }\n\n fnReceiptSizeLimitPopupReceiver() {\n this.showReceiptSizeLimitPopup = false;\n }\n\n getImageDimensions(base64Image) {\n return new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = function () {\n const { naturalHeight, naturalWidth } = img;\n resolve({ height: naturalHeight, width: naturalWidth });\n };\n img.onerror = function () {\n reject(new Error(this.translate.instant(\"image_load_fail\")));\n };\n img.src = base64Image;\n });\n }\n\n fnCreateReceiptArray(file, fileExtension, receiptUrl, scanReceipt) {\n this.capturedReceipts.push(file);\n let receiptLocationInfo = new ReceiptLocationInfo();\n receiptLocationInfo.latitude = this.capturedLat;\n receiptLocationInfo.longitude = this.capturedLng;\n if (this.capturedLat && this.capturedLng)\n receiptLocationInfo.location = localStorage.getItem(\n \"GoogleCurrentLocationName\"\n );\n\n let receiptsInfo = new ReceiptsInfo();\n receiptsInfo.action = 1;\n receiptsInfo.isDeletable = true;\n receiptsInfo.isEmailedReceipt = false;\n receiptsInfo.receiptDate = new Date().valueOf();\n receiptsInfo.receiptLocationInfo = receiptLocationInfo;\n receiptsInfo.receiptFormatId = this.getReceiptFormatId(file.type);\n receiptsInfo.receiptSize = file.size;\n receiptsInfo.receiptName = file.name;\n receiptsInfo.expenseReceiptId = new Date().valueOf() % 100000;\n receiptsInfo.receiptUrl = receiptUrl;\n receiptsInfo.rotationDegree = 0;\n\n let newReceipt = receiptsInfo;\n\n this.capturedReceiptsInfo.push(newReceipt);\n this.totalReceipts.push(newReceipt);\n this.createType = this.createType ? this.createType : 1;\n if (this.createType == 1 || this.createType == 2)\n this.addReceiptEvent.emit({\n addReceipt: this.totalReceipts,\n receiptFiles: this.capturedReceipts,\n previewOutputModel: null,\n scanReceipt: scanReceipt,\n });\n this.seletedItem = receiptsInfo;\n // if (this.seletedItem.receiptFormatId == this.attachmentTypeEnum.Pdf) {\n // this.fnShowSelectedReceipt(this.seletedItem, null);\n // }\n this.rotationDegree = 0;\n this.rotateImg(0, this.totalReceipts.length - 1);\n // if (this.createType == 2 && this.totalReceipts.length < 2)\n // this.fnScanReceipt();\n this.removeZoom();\n }\n\n stopSpinner() {\n this.ngxService.stop();\n }\n\n dataURItoBlob(dataURI) {\n const byteString = window.atob(dataURI);\n const arrayBuffer = new ArrayBuffer(byteString.length);\n const int8Array = new Uint8Array(arrayBuffer);\n for (let i = 0; i < byteString.length; i++) {\n int8Array[i] = byteString.charCodeAt(i);\n }\n const blob = new Blob([int8Array], { type: \"image/jpeg\" });\n return blob;\n }\n\n getReceiptFormatId(type: string) {\n let receiptType = 0;\n switch (type) {\n case \"image/png\":\n case \"image/jpg\":\n case \"image/jpeg\":\n receiptType = 1;\n break;\n case \"application/pdf\":\n receiptType = 2;\n break;\n default:\n break;\n }\n return receiptType;\n }\n\n fnReceiptFormatAlertPanelReceiver(returnValue) {\n this.showReceiptFormatAlertPanel = false;\n }\n\n rotationDegree = 0;\n rotateImg(degree: number, index: number) {\n this.rotationDegree += degree;\n if (this.receiptImages?.first) {\n this.receiptImages.forEach((div: ElementRef) => {\n this.renderer.setStyle(\n div.nativeElement,\n \"transform\",\n `rotate(${this.rotationDegree}deg)`\n );\n });\n }\n\n if (index) {\n let item = this.totalReceipts[index];\n item.rotationDegree = this.rotationDegree;\n } else if (this.totalReceipts.length > 0 && this.seletedItem) {\n let item = this.totalReceipts.filter(\n (x) => x.expenseReceiptId == this.seletedItem.expenseReceiptId\n )[0];\n item.rotationDegree = this.rotationDegree;\n }\n }\n\n zoomOut() {\n if (this.receiptImages?.first) {\n this.receiptImages.forEach((div: ElementRef) => {\n const rect = div.nativeElement.getBoundingClientRect();\n if (rect.height != 0 && rect.width != 0) {\n let newwidth = rect.width - 100;\n let newheight = (rect.height / rect.width) * newwidth;\n this.renderer.setStyle(div.nativeElement, \"width\", newwidth + \"px\");\n this.renderer.setStyle(div.nativeElement, \"height\", newheight + \"px\");\n }\n });\n }\n }\n\n zoomIn() {\n let containerRect =\n this.receiptImageContainer.nativeElement.getBoundingClientRect();\n if (this.receiptImages?.first) {\n this.receiptImages.forEach((div: ElementRef) => {\n const rect = div.nativeElement.getBoundingClientRect();\n if (rect.height != 0 && rect.width != 0) {\n let newwidth = rect.width + 100;\n let newheight = (rect.height / rect.width) * newwidth;\n if (containerRect.width > newwidth) {\n this.renderer.setStyle(div.nativeElement, \"width\", newwidth + \"px\");\n this.renderer.setStyle(\n div.nativeElement,\n \"height\",\n newheight + \"px\"\n );\n }\n }\n });\n }\n }\n fnShowSelectedReceipt(item: ReceiptsInfo, index: number) {\n this.seletedItem = item;\n this.removeZoom();\n if (item.receiptFormatId == this.attachmentTypeEnum.Pdf) {\n this.pdfSrc = item.receiptUrl;\n this.pdfName = item.receiptName;\n this.pdfExpenseReceiptId = item.expenseReceiptId;\n\n if (this.isPageLoad && this.isHideDefaultPdfPanel) {\n this.showPdfViewer = false;\n this.isPageLoad = false;\n } else {\n this.showPdfViewer = true;\n this.isPageLoad = false;\n }\n } else {\n this.rotationDegree = 0;\n this.rotateImg(item.rotationDegree ?? 0, index);\n }\n }\n\n removeZoom() {\n if (this.receiptImages?.first) {\n this.receiptImages.forEach((div: ElementRef) => {\n const rect = div.nativeElement.getBoundingClientRect();\n if (rect.height != 0 && rect.width != 0) {\n this.renderer.removeStyle(div.nativeElement, \"width\");\n this.renderer.removeStyle(div.nativeElement, \"height\");\n }\n });\n }\n }\n\n deleteReceipt() {\n this.totalReceipts = this.totalReceipts.filter(\n (x) => x.expenseReceiptId != this.seletedItem.expenseReceiptId\n );\n this.capturedReceiptsInfo = this.capturedReceiptsInfo.filter(\n (x) => x.expenseReceiptId != this.seletedItem.expenseReceiptId\n );\n this.addReceiptEvent.emit({\n addReceipt: this.totalReceipts,\n receiptFiles: this.capturedReceipts,\n previewOutputModel: this.previewOutputModel,\n scanReceipt: false,\n });\n if (this.totalReceipts.length > 0) {\n this.seletedItem = this.totalReceipts[0];\n } else {\n this.seletedItem = new ReceiptsInfo();\n }\n }\n\n fnShowDeleteReceiptAlert() {\n let action = this.seletedItem.action;\n let msg = this.translate.instant(\"do_you_want_to_delete_receipt\");\n if (action == 1) {\n if (this.claimType == ClaimType.Invoice) {\n msg = this.translate.instant(\"do_you_want_to_delete_invoice\");\n }\n } else {\n msg =\n this.claimType == ClaimType.Expense\n ? this.translate.instant(\"delete_incomplete_receipt_expense\")\n : this.translate.instant(\"do_you_want_to_delete_invoice\");\n }\n\n this.alertPanelModelForDeleteReceipt = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n this.translate.instant(\"label_cancel\"),\n this.translate.instant(\"label_confirm\"),\n true,\n msg\n );\n\n this.alertPanelModelForDeleteReceipt.btnArray = [\n {\n btnMarginClass: \"margin-right-15\",\n btnClass: \"btn btn-outline-primary bg-white fw-600 height-38px\",\n btnAction: DeleteExpenseEnum[DeleteExpenseEnum.Cancel],\n btnText: this.translate.instant(\"label_cancel\"),\n },\n {\n btnMarginClass: \"margin-right-15\",\n btnClass: \"btn eod-btn-danger\",\n btnAction: DeleteExpenseEnum[DeleteExpenseEnum.Delete],\n btnText: this.translate.instant(\"label_delete\"),\n },\n ];\n\n if (this.seletedItem.action == 0 && this.claimType == ClaimType.Expense) {\n this.alertPanelModelForDeleteReceipt.btnArray.push({\n btnMarginClass: \"margin-right-0\",\n btnClass: \"btn eod-btn-primary\",\n btnAction: DeleteExpenseEnum[DeleteExpenseEnum.New],\n btnText: this.translate.instant(\"create_incomplete_receipt_expense\"),\n });\n }\n }\n\n fnCloseDeleteReceiptAlert(returnValue) {\n if (returnValue) this.deleteReceipt();\n this.alertPanelModelForDeleteReceipt = new AlertPanelModel(\n false,\n \"\",\n [],\n \"\",\n \"\",\n true,\n \"\"\n );\n }\n\n fnPdfViewerReceiver() {\n this.showPdfViewer = false;\n this.pdfSrc = \"\";\n this.pdfName = \"\";\n this.pdfExpenseReceiptId = 0;\n }\n\n showImgPopup() {\n this.imgPopup = true;\n }\n\n multiBtnAlertPanelReceiver(returnValue) {\n switch (returnValue) {\n case DeleteExpenseEnum[DeleteExpenseEnum.Cancel]: {\n this.alertPanelModelForDeleteReceipt = new AlertPanelModel(\n false,\n \"\",\n [],\n \"\",\n \"\",\n true,\n \"\"\n );\n break;\n }\n case DeleteExpenseEnum[DeleteExpenseEnum.Delete]: {\n this.alertPanelModelForDeleteReceipt = new AlertPanelModel(\n false,\n \"\",\n [],\n \"\",\n \"\",\n true,\n \"\"\n );\n this.fnExpenseByDeleteReceipt(this.seletedItem.expenseReceiptId, false);\n break;\n }\n case DeleteExpenseEnum[DeleteExpenseEnum.New]: {\n this.alertPanelModelForDeleteReceipt = new AlertPanelModel(\n false,\n \"\",\n [],\n \"\",\n \"\",\n true,\n \"\"\n );\n this.fnExpenseByDeleteReceipt(this.seletedItem.expenseReceiptId, true);\n this.newExpenseDeleteReceiptEvent.emit(true);\n break;\n }\n }\n }\n\n fnExpenseByDeleteReceipt(receiptId: any, isSoftDelete: boolean) {\n if (this.seletedItem?.action == 1) {\n this.deleteReceipt();\n return;\n }\n let request = new ApiRequest(\n \"DeleteReceipt\",\n environment.applicationVersion,\n environment.requestId\n );\n\n request.requestInfo = new DeleteReceiptShortRequest();\n request.requestInfo.isSoftDelete = isSoftDelete;\n request.requestInfo.receiptIds = [receiptId];\n\n this.claimantOnWebService\n .DeleteReceipts(request)\n .subscribe((response: IApiresponse) => {\n if (response.statusCode != 1) {\n this.toastr.success(this.translate.instant(\"success\"));\n this.deleteReceipt();\n } else {\n this.toastr.error(this.translate.instant(\"create_expense_fail\"));\n }\n });\n }\n\n downloadReceipt() {\n let item = this.totalReceipts.filter(\n (x) => x.expenseReceiptId == this.seletedItem.expenseReceiptId\n )[0];\n this.getBase64ImageFromURL(item?.receiptUrl?.toString()).subscribe(\n (base64data) => {\n let base64Image = \"data:image/jpg;base64,\" + base64data;\n // save image to disk\n let link = document.createElement(\"a\");\n link.style.display = \"none\";\n document.body.appendChild(link);\n\n link.setAttribute(\"href\", base64Image);\n link.setAttribute(\"download\", item.receiptName);\n\n link.click();\n setTimeout(() => {\n link.remove();\n }, 100);\n }\n );\n }\n\n closeScanReceiptPanel() {\n this.showReceiptScanInfoPanel = false;\n this.addReceiptEvent.emit({\n addReceipt: this.totalReceipts,\n receiptFiles: this.capturedReceipts,\n previewOutputModel: this.previewOutputModel,\n scanReceipt: false,\n });\n }\n\n getBase64ImageFromURL(url: string) {\n return Observable.create((observer: Observer) => {\n const img: HTMLImageElement = new Image();\n img.crossOrigin = \"Anonymous\";\n img.src = url;\n if (!img.complete) {\n img.onload = () => {\n observer.next(this.getBase64Image(img));\n observer.complete();\n };\n img.onerror = (err) => {\n observer.error(err);\n };\n } else {\n observer.next(this.getBase64Image(img));\n observer.complete();\n }\n });\n }\n\n getBase64Image(img: HTMLImageElement) {\n const canvas: HTMLCanvasElement = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx: CanvasRenderingContext2D = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n const dataURL: string = canvas.toDataURL(\"image/png\");\n\n return dataURL.replace(/^data:image\\/(png|jpg);base64,/, \"\");\n }\n\n registerDragElement() {\n const elmnt = document.getElementById(\"exampleModal\");\n\n let pos1 = 0,\n pos2 = 0,\n pos3 = 0,\n pos4 = 0;\n\n const dragMouseDown = (e) => {\n e = e || window.event;\n // get the mouse cursor position at startup:\n pos3 = e.clientX;\n pos4 = e.clientY;\n document.onmouseup = closeDragElement;\n // call a function whenever the cursor moves:\n document.onmousemove = elementDrag;\n };\n\n const elementDrag = (e) => {\n e = e || window.event;\n // calculate the new cursor position:\n pos1 = pos3 - e.clientX;\n pos2 = pos4 - e.clientY;\n pos3 = e.clientX;\n pos4 = e.clientY;\n // set the element's new position:\n elmnt.style.top = elmnt.offsetTop - pos2 + \"px\";\n elmnt.style.left = elmnt.offsetLeft - pos1 + \"px\";\n };\n\n const closeDragElement = () => {\n /* stop moving when mouse button is released:*/\n document.onmouseup = null;\n document.onmousemove = null;\n };\n\n if (elmnt) {\n if (document.getElementById(elmnt.id + \"header\")) {\n /* if present, the header is where you move the DIV from:*/\n document.getElementById(elmnt.id + \"header\").onmousedown =\n dragMouseDown;\n } else {\n /* otherwise, move the DIV from anywhere inside the DIV:*/\n elmnt.onmousedown = dragMouseDown;\n }\n }\n }\n\n matchReceipt() {\n this.matchReceiptEvent.emit({\n addReceipt: this.totalReceipts,\n receiptFiles: this.capturedReceipts,\n previewOutputModel: this.previewOutputModel,\n scanReceipt: false,\n });\n }\n\n fnReceiptScanOverrideAlertPanelReceiver(returnValue) {\n if (returnValue) {\n this.SaveImageWithoutScan(true);\n } else {\n this.SaveImageWithoutScan(false);\n }\n this.showScanOverrideAlertPanel = false;\n }\n}\n","
\n\n
\n
\n
\n
\n

\n {{ \"invoice_receipt\" | translate: param }}\n {{ \"label_invoice\" | translate: param }}\n

\n

\n {{ \"receipt_panel_title\" | translate: param }}\n {{ \"invoice_receipt_panel_title\" | translate: param }}\n

\n
\n
\n \n
\n
\n
\n
\n
\n
\n

\n \n \n \n \n \n \n \n {{item.receiptName}}\n \n {{fnFormatBytes(item.receiptSize)}}\n \n \n

\n
\n\n
\n

\n \n {{this.eodDatePipe.transform(item.receiptDate)}}\n \n \n \n \n

\n
\n
\n
\n\n
\n
\n
\n\n
\n
\n
\n
\n

\n {{ \"invoice_receipt\" | translate: param }}\n {{ \"label_invoice\" | translate: param }}\n

\n

{{ \"map\" | translate: param }}

\n
\n
\n \n \n \n \n \n \n
\n
\n
\n
\n \n
\n \n
\n \n
\n \n \n
\n
1\">\n \n {{(currentIndex + 1) + ' / ' + imageReceiptInfo.length }}\n \n
\n\n
\n
\n \n \n \n \n
\n
\n \n {{ \"linked_expense_id\" | translate: param }}: {{strExpenseIds}}\n \n
\n\n
\n \n
\n
\n\n
\n
\n
\n
\n

{{ \"map\" | translate: param }}

\n
\n
\n \n
\n
\n
\n
\n \n \n \n \n \n
\n\n
\n
\n
\n
    \n
  • \n {{ item.name }}\n
  • \n
\n
\n
\n
    \n
  • \n {{ item.value }}\n
  • \n
\n
\n
\n\n
\n
\n

\n {{ amountDynamicText }}\n

\n

\n {{ amount | number: \".2\" | noComma }} {{ currency }}\n

\n
\n
\n
\n
\n

\n {{ amountDynamicText }}\n

\n

\n {{ amount | number: \".2\" | noComma }} {{ currency }}\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
","import { Component, OnInit, Input, HostListener, ElementRef, ViewChild, QueryList, ViewChildren, Renderer2, Output, EventEmitter } from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\nimport { AttachmentTypeEnum, JourneyTypeEnum, MileageRateTypeEnum, \n ApiRequest, IApiresponse } from \"src/app/_models\";\nimport { AlertPanelModel} from \"src/app/_models/common/alertPanelModel\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { IReceiptInfo } from \"src/app/_models/twostepapproval/claimant-expense-detail\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { fileSizeService } from 'src/app/_services/common/file-size.service';\nimport { EODDateFormatPipe } from \"src/app/_helpers/pipe.module\";\nimport { Observable, Observer } from \"rxjs\";\nimport { ExpenseRequest, IExpenseRequest, ReceiptSaveRequest } from \"src/app/_models/claimant-on-web/claimant-on-web\";\nimport { KeyValue } from \"src/app/_models/common/key-value\";\nimport { ClaimantOnWebService } from \"src/app/_services/claimant-on-web/claimant-on-web.service\";\nimport { environment } from \"../../../../environments/environment\";\nimport {\n ExpenseStatusEnum\n } from \"../../../_models\";\nimport { PreviewOutputModel, ReceiptOutputModel } from \"../../../_models/claimant-on-web/claimant-on-web\";\n\nimport { ToastrService } from \"ngx-toastr\";\n@Component({\n selector: \"app-view-receipt\",\n templateUrl: \"./view-receipt.component.html\",\n styleUrls: ['./view-receipt.component.scss']\n})\n\nexport class ViewReceiptComponent implements OnInit {\n @Input() orgRoleId: number;\n @Input() capturedReceipts = [];\n @Input() receiptInfo = [];\n @Input() receiptCount: number;\n @Input() hasReturnJourney: boolean = false;\n @Input() milesTravelled: any;\n @Input() triangulationMiles: string;\n @Input() detourMiles: any;\n @Input() amount: any;\n @Input() distance: string;\n @Input() origin: any;\n @Input() destination: any;\n @Input() receiptLat: number;\n @Input() receiptLong: number;\n @Input() latLongArray: any;\n @Input() mileageRate: string;\n @Input() strExpenseIds: string = '';\n @Input() isImageOnly: boolean = false;\n @Input() showDeleteButton: boolean = false;\n @Output() closePanelEvent = new EventEmitter();\n @Input() mileageArray: any;\n @Input() mileage: any;\n @Input() zindex_Class:string;\n @Input() isMileageCategory:boolean;\n @Input() claimType: any;\n @Input() isClaimPage: boolean = false;\n @Input() showMapSectionOnly: boolean = false;\n \n claims: Claims;\n currency: string;\n zindexClass: string;\n currentReceiptId: number = 0;\n currentIndex = 0;\n attachmentTypeEnum = AttachmentTypeEnum;\n showReceipt: boolean;\n selectedReceiptInfo = [];\n imageReceiptInfo = [];\n receiptLocation: string = \"\";\n showReceiptsPanel: boolean = false;\n mapObjectArray: any[] = [];\n receiptDate: any;\n showScanDetails:boolean;\n isAdvancedMileageEnabled: boolean;\n pdfSrc: any;\n pdfName: string;\n pdfExpenseReceiptId: number = 0;\n showPdfViewer = false;\n hideUseReceipt: boolean = false;\n mapShow: boolean = false;\n lat: any;\n long: any;\n zoom: number = 1500;\n param: string;\n showMileageMap: boolean;\n showMileageMapFromWeb: boolean;\n showCommonMileageMap: boolean;\n mileagemapHeight: string = '';\n mapHeight: string = '';\n imageHeight: string = '';\n mapWidth: string;\n amountDynamicText: string;\n @ViewChildren('imageContainer') imageContainers: QueryList;\n @ViewChildren('receiptImage') receiptImages: QueryList;\n @ViewChild('receiptImageContainer', { read: ElementRef }) receiptImageContainer: ElementRef;\n @ViewChild('receiptImageFooter', { read: ElementRef }) receiptImageFooter: ElementRef;\n alertPanelModelForDeleteReceipt = new AlertPanelModel(false, \"\", [], \"\", \"\", true, \"\");\n alertPanelModelForDeletePdf = new AlertPanelModel(false, \"\", [], \"\", \"\", true, \"\");\n journeyType: number;\n isCompleteJourney: boolean;\n showMileageMapBasedOnCategory: boolean;\n labelList = [\"A\", \"B\", \"C\", \"D\", \"E\", \"F\", \"G\", \"H\", \"I\", \"J\", \"K\", \"L\", \"M\"]//Max 12 Leg allowed\n labelOptions = {\n color: '#eee',\n fontFamily: '',\n fontSize: '14px',\n fontWeight: 'bold',\n text: 'Some Text',\n backgroundColor: \"#FFF\"\n }\n insertedLabel = [];\n markers: any[] = [];\n selectedAttachmentType: number;\n //For styles on Map\n //https://mapstyle.withgoogle.com/\n styles: any[] = [\n {\n \"featureType\": \"poi\",\n \"elementType\": \"labels.text\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"poi.business\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"road\",\n \"elementType\": \"labels.icon\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n },\n {\n \"featureType\": \"transit\",\n \"stylers\": [\n {\n \"visibility\": \"off\"\n }\n ]\n }\n ];\n constructor(private claimsService: ClaimsService,\n private renderer: Renderer2,\n private authenticationService: AuthenticationService,\n private ngxService: NgxUiLoaderService,\n private translate: TranslateService,\n public eodDatePipe: EODDateFormatPipe,\n private claimantOnWebService: ClaimantOnWebService,\n private toastr: ToastrService\n ) {\n this.claimsService.currentClaims.subscribe(claims => {\n this.claims = claims;\n //this.currency = this.claims.CurrentOrganisationCurrencyCode;\n });\n }\n\n ngOnInit() {\n\n if(this.zindex_Class)\n this.zindexClass = this.zindex_Class;\n this.showScanDetails = this.orgRoleId == 1 ? true : false;\n this.getOrganisationData(); \n }\n\n @HostListener('window:resize', ['$event'])\n onResize(event) {\n var currentContext = this;\n currentContext.adjustImageSize();\n currentContext.adjustMapSize();\n }\n\n adjustMapSize() {\n const docEl = document.documentElement;\n if (this.isAdvancedMileageEnabled) {\n this.mileagemapHeight = (docEl.clientHeight - 390) + \"px !important\";\n }\n else {\n this.mileagemapHeight = (docEl.clientHeight - 280) + \"px !important\";\n }\n }\n\n stopSpinner() {\n this.ngxService.stop();\n }\n\n adjustImageSize() {\n if (this.receiptImages && this.receiptImages.first) {\n let footerRect = this.receiptImageFooter.nativeElement.getBoundingClientRect();\n const containerHeight = (footerRect.top - 85);\n var dynamicHeight = 70;\n if (this.strExpenseIds != '') {\n dynamicHeight = this.receiptCount > 1 ? 90 : 70;\n }\n const imageHeight = (containerHeight - dynamicHeight);\n this.renderer.setStyle(this.receiptImageContainer.nativeElement, 'height', containerHeight + \"px\");\n this.receiptImages.forEach((div: ElementRef) => {\n const existingImageRect = div.nativeElement.getBoundingClientRect();\n if (existingImageRect.height > imageHeight) {\n this.renderer.removeStyle(div.nativeElement, 'width');\n this.renderer.setStyle(div.nativeElement, 'height', imageHeight + \"px\");\n }\n });\n this.imageHeight = imageHeight + 'px !important';\n this.mapHeight = (imageHeight + 80) + 'px !important';\n }\n }\n\n zoomOut() {\n if (this.receiptImages && this.receiptImages.first) {\n this.receiptImages.forEach((div: ElementRef) => {\n const rect = div.nativeElement.getBoundingClientRect();\n if (rect.height != 0 && rect.width != 0) {\n var newwidth = rect.width - 100;\n var newheight = rect.height / rect.width * newwidth;\n this.renderer.setStyle(div.nativeElement, 'width', newwidth + \"px\");\n this.renderer.setStyle(div.nativeElement, 'height', newheight + \"px\");\n }\n });\n }\n }\n\n zoomIn() {\n var containerRect = this.receiptImageContainer.nativeElement.getBoundingClientRect();\n if (this.receiptImages && this.receiptImages.first) {\n this.receiptImages.forEach((div: ElementRef) => {\n const rect = div.nativeElement.getBoundingClientRect();\n if (rect.height != 0 && rect.width != 0) {\n var newwidth = rect.width + 100;\n var newheight = rect.height / rect.width * newwidth;\n if (containerRect.width > newwidth) {\n this.renderer.setStyle(div.nativeElement, 'width', newwidth + \"px\");\n this.renderer.setStyle(div.nativeElement, 'height', newheight + \"px\");\n }\n }\n });\n }\n }\n\n nextImageClick() {\n this.currentIndex += 1;\n if (this.currentIndex >= this.imageReceiptInfo.length) {\n this.currentIndex = 0;\n }\n var item = this.imageReceiptInfo[this.currentIndex];\n this.currentReceiptId = item.expenseReceiptId;\n this.cycleItems();\n }\n\n prevImageClick() {\n this.currentIndex -= 1;\n if (this.currentIndex < 0) {\n this.currentIndex = this.imageReceiptInfo.length - 1;\n }\n var item = this.imageReceiptInfo[this.currentIndex];\n this.currentReceiptId = item.expenseReceiptId;\n this.cycleItems();\n }\n\n downloadReceipt() {\n var item = this.receiptInfo.filter(x => x.expenseReceiptId == this.currentReceiptId)[0]\n this.getBase64ImageFromURL(item?.receiptUrl).subscribe(base64data => {\n let base64Image = \"data:image/jpg;base64,\" + base64data;\n // save image to disk\n var link = document.createElement(\"a\");\n link.style.display = 'none';\n document.body.appendChild(link);\n\n link.setAttribute(\"href\", base64Image);\n link.setAttribute(\"download\", item.receiptName);\n\n link.click();\n setTimeout(() => {\n link.remove();\n }, 100);\n\n });\n }\n\n getBase64ImageFromURL(url: string) {\n return Observable.create((observer: Observer) => {\n const img: HTMLImageElement = new Image();\n img.crossOrigin = \"Anonymous\";\n img.src = url;\n if (!img.complete) {\n img.onload = () => {\n observer.next(this.getBase64Image(img));\n observer.complete();\n };\n img.onerror = err => {\n observer.error(err);\n };\n } else {\n observer.next(this.getBase64Image(img));\n observer.complete();\n }\n });\n }\n\n getBase64Image(img: HTMLImageElement) {\n const canvas: HTMLCanvasElement = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx: CanvasRenderingContext2D = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0);\n const dataURL: string = canvas.toDataURL(\"image/png\");\n\n return dataURL.replace(/^data:image\\/(png|jpg);base64,/, \"\");\n }\n\n getOrganisationData() {\n this.authenticationService\n .organisationdetails(this.claims.UserId.toString(), this.claims.LoginId, this.claims.Token)\n .subscribe(orgData => {\n if (orgData.statusCode == 0) {\n this.isAdvancedMileageEnabled = orgData.responseInfo[0].rateType > MileageRateTypeEnum.FreeForLife ? true : false;\n }\n });\n }\n\n\n\n showGoogleMileageMap() {\n this.markers = [];\n this.markerPositions = [];\n this.vertices = [];\n let i = 0;\n\n this.markers.push({\n position: {\n lat: this.origin.lat,\n lng: this.origin.lng,\n },\n label: {\n color: '#096094',\n text: \" \",\n },\n options: {\n animation: google.maps.Animation.DROP,\n icon: {\n url: this.hasReturnJourney ? '../../assets/svg-icons/startandend.svg' : '../../assets/svg-icons/start.svg',\n scaledSize: {\n height: 50,\n width: 50\n }\n }\n },\n })\n\n this.latLongArray.forEach(routeElement => {\n this.vertices.push(\n {\n lat: routeElement.latitude,\n lng: routeElement.longitude,\n }\n );\n });\n\n this.markers.push({\n position: {\n lat: this.destination.lat,\n lng: this.destination.lng,\n },\n label: {\n color: '#096094',\n text: \" \",\n },\n options: {\n animation: google.maps.Animation.DROP,\n icon: {\n url: this.hasReturnJourney ? '../../assets/svg-icons/return.svg' : '../../assets/svg-icons/end.svg',\n scaledSize: {\n height: 50,\n width: 50\n }\n }\n },\n })\n\n\n this.center = { lat: this.origin.lat, lng: this.origin.lng };\n this.zoom = 10;\n\n\n }\n fnshowMileage(currency) {\n if(this.isMileageCategory == undefined)\n this.showMileageMapBasedOnCategory = true \n else \n this.showMileageMapBasedOnCategory = this.isMileageCategory;\n this.currency = currency;\n this.adjustMapSize();\n this.showGoogleMileageMap();\n this.showMileageMapFromWeb = true;\n setTimeout(() => {\n this.fnBindMileageSequence();\n }, 100);\n\n this.toggleChatbot(!this.showMileageMapFromWeb);\n }\n \n fnshowMileagemap(mileageArray, journeyType, isCompleteJourney, currency) {\n if(this.isMileageCategory == undefined)\n this.showMileageMapBasedOnCategory = true \n else \n this.showMileageMapBasedOnCategory = this.isMileageCategory;\n this.currency = currency;\n if (journeyType == 3 && isCompleteJourney) {\n this.isCompleteJourney = isCompleteJourney;\n }\n else { this.isCompleteJourney = false; }\n\n this.journeyType = journeyType;\n this.mileageArray = mileageArray;\n this.adjustMapSize();\n if (this.journeyType == JourneyTypeEnum.Multiple && this.isCompleteJourney) {\n this.fnBindMarkerMultipleLeg(this.mileageArray)\n }\n else {\n this.fnBindMarker(this.mileageArray);\n }\n\n this.showMileageMap = true;\n setTimeout(() => {\n this.fnBindMileageSequence();\n }, 100);\n this.toggleChatbot(!this.showMileageMap);\n }\n fnBindMileageSequence() {\n let seqObjectArray = [];\n seqObjectArray.push({\n name: this.translate.instant(\"miles_travelled\"),\n value: this.milesTravelled,\n class: 'w-100pc d-block lH-25 color-green',\n valueClass: 'w-100pc d-block text-right lH-25 color-green fw-700'\n });\n if (this.showMileageMap) {\n this.mapWidth = '750px';\n if (this.journeyType == 3 && !this.isCompleteJourney) {\n if (this.isAdvancedMileageEnabled) {\n seqObjectArray.push({\n name: 'B. ' + this.translate.instant(\"detour_miles\"),\n value: this.detourMiles,\n class: 'w-100pc d-block lH-25 color-green',\n valueClass: 'w-100pc d-block text-right lH-25 color-green fw-700'\n });\n let miles = Number(this.mileageArray[0].detour.toFixed(2)) + Number(this.mileageArray[0].milesTraveled.toFixed(2));\n seqObjectArray.push({\n name: this.translate.instant(\"total_miles_claimed\"),\n value: miles.toFixed(2).toString() + \" \" + this.mileageArray[0].mileageLabel,\n class: 'w-100pc d-block lH-25 text-logo-blue',\n valueClass: 'w-100pc d-block text-right lH-25 text-logo-blue fw-700'\n });\n }\n else {\n seqObjectArray.push({\n name: this.translate.instant(\"mileage_rates_per_leg_ffl\"),\n value: this.mileageRate,\n class: 'w-100pc d-block lH-25',\n valueClass: 'w-100pc d-block text-right lH-25 fw-700'\n });\n }\n }\n else if (!(this.journeyType == 3 && !this.isCompleteJourney)) {\n seqObjectArray = this.fnBindConditionally(seqObjectArray);\n }\n }\n if (this.showMileageMapFromWeb) {\n this.mapWidth = 'auto';\n seqObjectArray = this.fnBindConditionally(seqObjectArray);\n }\n this.mapObjectArray = seqObjectArray;\n setTimeout(() => {\n this.showCommonMileageMap = true;\n }, 50);\n\n }\n\n fnBindConditionally(seqObjectArray) {\n if (this.isAdvancedMileageEnabled) {\n seqObjectArray.push({\n name: this.translate.instant(\"mileage_triangulation\"),\n value: this.triangulationMiles,\n class: 'w-100pc d-block lH-25 color-red',\n valueClass: 'w-100pc d-block text-right lH-25 color-red fw-700'\n });\n seqObjectArray.push({\n name: this.translate.instant(\"mileage_detour_miles\"),\n value: this.detourMiles,\n class: 'w-100pc d-block lH-25 color-green',\n valueClass: 'w-100pc d-block text-right lH-25 color-green fw-700'\n });\n seqObjectArray.push({\n name: this.translate.instant(\"miles_paid\"),\n value: this.distance,\n class: 'w-100pc d-block lH-25 text-logo-blue',\n valueClass: 'w-100pc d-block text-right lH-25 text-logo-blue fw-700'\n });\n seqObjectArray.push({\n name: this.translate.instant(\"mileage_rates\"),\n value: this.mileageRate,\n class: 'w-100pc d-block lH-25',\n valueClass: 'w-100pc d-block text-right lH-25 fw-700'\n });\n let amountWithPassenger = this.amount.toFixed(2);\n let passengerLoadAmount = this.mileage.passengerLoadAmount ? this.mileage.passengerLoadAmount.toFixed(2) : 0;\n let amountWithoutPassenger = Number(amountWithPassenger) - Number(passengerLoadAmount);\n seqObjectArray.push({\n name: this.translate.instant(\"map_amount\"),\n value: amountWithoutPassenger.toFixed(2) + ' ' + this.currency,\n class: 'w-100pc d-block lH-25',\n valueClass: 'w-100pc d-block text-right lH-25 fw-700'\n });\n let PassengerLoadArray = this.mileageArray ? this.mileageArray.filter(a => a.allowanceRate && a.allowanceRate > 0) : false;\n if (PassengerLoadArray && PassengerLoadArray.length > 0) {\n let PassengerLoadRate = '';\n let countP = 0;\n let passengerRateInt = 0.0;\n PassengerLoadArray.forEach(item => {\n passengerRateInt = Number(passengerRateInt) + Number(item.allowanceRate.toFixed(2))\n PassengerLoadRate = PassengerLoadRate + (countP == 0 ? '' : ' / ') + item.allowanceRate.toFixed(2);\n countP++;\n });\n\n seqObjectArray.push({\n name: this.translate.instant(\"passenger_load_amount\"),\n value: Number(passengerLoadAmount).toFixed(2) + ' ' + this.currency,\n class: 'w-100pc d-block lH-25',\n valueClass: 'w-100pc d-block text-right lH-25 fw-700'\n });\n this.amountDynamicText = this.translate.instant(\"mileage_paid_with_passenger\");\n }\n else {\n seqObjectArray.push({\n name: this.translate.instant(\"passenger_load_amount\"),\n value: '0.00 ' + this.currency,\n class: 'w-100pc d-block lH-25',\n valueClass: 'w-100pc d-block text-right lH-25 fw-700'\n });\n this.amountDynamicText = this.translate.instant(\"mileage_paid_with_passenger\");\n }\n\n\n }\n else {\n seqObjectArray.push({\n name: this.translate.instant(\"mileage_rates_ffl\"),\n value: this.mileageRate,\n class: 'w-100pc d-block lH-25',\n valueClass: 'w-100pc d-block text-right lH-25 fw-700'\n });\n this.amountDynamicText = this.translate.instant(\"mileage_paid_ffl\");\n }\n return seqObjectArray;\n }\n closeMileagePopup() {\n this.showMileageMap = false;\n this.showMileageMapFromWeb = false;\n this.showCommonMileageMap = false;\n this.toggleChatbot(!this.showMileageMap);\n }\n\n vertices: google.maps.LatLngLiteral[] = [];\n fnBindMarkerMultipleLeg(mileageArray) {\n this.markers = [];\n this.markerPositions = [];\n this.vertices = [];\n let i = 0;\n mileageArray.forEach(item => {\n\n item.route.forEach(routeElement => {\n this.vertices.push(\n {\n lat: routeElement.latitude,\n lng: routeElement.longitude,\n }\n );\n });\n\n this.markers.push({\n position: {\n lat: item.route[0].latitude,\n lng: item.route[0].longitude,\n },\n label: {\n color: '#ffffff',\n fontWeight: 'bold',\n text: this.labelList[i],\n fillColor: '#eee'\n },\n options: {\n animation: google.maps.Animation.DROP,\n },\n })\n if (i == (mileageArray.length - 1)) {\n i++;\n\n\n this.vertices.push(\n {\n lat: item.route[item.route.length - 1].latitude,\n lng: item.route[item.route.length - 1].longitude,\n }\n );\n\n let StartLat = mileageArray[0].route[0].latitude;\n let EndLat = mileageArray[mileageArray.length - 1].route[mileageArray[mileageArray.length - 1].route.length - 1].latitude\n if (StartLat == EndLat) {\n this.markers.splice(0, 1);\n }\n\n this.markers.push({\n position: {\n lat: item.route[item.route.length - 1].latitude,\n lng: item.route[item.route.length - 1].longitude,\n },\n label: {\n color: '#ffffff',\n fontWeight: 'bold',\n text: this.labelList[i],\n fillColor: '#eee'\n },\n options: {\n animation: google.maps.Animation.DROP,\n },\n })\n\n }\n i++;\n\n\n });\n\n\n this.center = { lat: mileageArray[0].route[0].latitude, lng: mileageArray[0].route[0].longitude };\n this.zoom = 10;\n\n\n\n }\n fnBindMarker(mileageArray) {\n this.markers = [];\n this.markerPositions = [];\n this.vertices = [];\n let i = 0;\n mileageArray.forEach(item => {\n\n item.route.forEach(routeElement => {\n this.vertices.push(\n {\n lat: routeElement.latitude,\n lng: routeElement.longitude,\n }\n );\n });\n\n this.markers.push({\n position: {\n lat: item.route[0].latitude,\n lng: item.route[0].longitude,\n },\n label: {\n color: '#096094',\n },\n options: {\n animation: google.maps.Animation.DROP,\n icon: {\n url: '../../assets/svg-icons/start.svg',\n scaledSize: {\n height: 50,\n width: 50\n }\n }\n },\n })\n if (i == (mileageArray.length - 1)) {\n i++;\n\n\n this.vertices.push(\n {\n lat: item.route[item.route.length - 1].latitude,\n lng: item.route[item.route.length - 1].longitude,\n }\n );\n\n let StartLat = mileageArray[0].route[0].latitude;\n let EndLat = mileageArray[mileageArray.length - 1].route[mileageArray[mileageArray.length - 1].route.length - 1].latitude\n if (StartLat == EndLat) {\n this.markers.splice(0, 1);\n }\n\n this.markers.push({\n position: {\n lat: item.route[item.route.length - 1].latitude,\n lng: item.route[item.route.length - 1].longitude,\n },\n label: {\n color: '#096094',\n },\n options: {\n animation: google.maps.Animation.DROP,\n icon: {\n url: StartLat == EndLat ? '../../assets/svg-icons/startandend.svg' : '../../assets/svg-icons/end.svg',\n scaledSize: {\n height: 50,\n width: 50\n }\n }\n },\n })\n\n }\n i++;\n\n\n });\n\n\n this.center = { lat: mileageArray[0].route[0].latitude, lng: mileageArray[0].route[0].longitude };\n this.zoom = 10;\n\n\n\n }\n\n fnReturnFloat(value) {\n return parseFloat(value);\n }\n fnGetJourneyIcon(isOrigin: boolean, rowIndex, mileage) {\n\n let url = '';\n if (this.journeyType == 2) {\n if (isOrigin && rowIndex == 0) {\n url = '../../assets/svg-icons/startandend.svg'\n }\n if (!isOrigin && rowIndex == 0) {\n url = '../../assets/svg-icons/return.svg'\n }\n if (isOrigin && rowIndex == 1) {\n url = '';\n }\n }\n else {\n if (isOrigin && rowIndex == 0) {\n url = '../../assets/svg-icons/start.svg'\n }\n\n if (!isOrigin && rowIndex == (this.mileageArray.length - 1)) {\n url = '../../assets/svg-icons/end.svg'\n if (this.journeyType == 3) {\n let origen = this.mileageArray[0].route[0].latitude;\n let currentLocation = mileage.route[mileage.route.length - 1].longitude;\n if (origen == currentLocation) {\n url = '../../assets/svg-icons/startandend.svg'\n }\n }\n }\n }\n return url;\n }\n\n\n\n receiptsInfoDetails : IReceiptInfo[];\n fnShowReceiptsPanel(items: IReceiptInfo[] , fromgrid:boolean=false, createType : number = 1) {\n \n this.receiptsInfoDetails = items; \n this.selectedReceiptInfo = items;\n this.imageReceiptInfo = this.selectedReceiptInfo.filter((r) => r.receiptFormatId != this.attachmentTypeEnum.Pdf);\n this.receiptCount = items.length;\n if(fromgrid ==false && createType == 1)\n {\n this.showReceiptsPanel = true; \n }\n else{\n if(items.length >1 && createType == 1)\n {\n this.receiptInfo=items;\n this.showReceiptsPanel = true; \n }\n else\n {\n this.receiptInfo=items;\n this.fnShowSelectedReceipt(items[0] , 0, createType);\n } \n }\n\n }\n\n\n fnShowReceiptsPanelFromGrid(items: IReceiptInfo[]) {\n this.selectedReceiptInfo = items;\n this.imageReceiptInfo = this.selectedReceiptInfo.filter((r) => r.receiptFormatId != this.attachmentTypeEnum.Pdf);\n this.receiptCount = items.length;\n if (items.length > 1) {\n this.showReceiptsPanel = true;\n }\n else\n {\n this.fnShowSelectedReceipt(items[0] , 1, 1);\n } \n }\n\n fnShowReceiptsPanelfromGrid(items: IReceiptInfo[]) {\n this.selectedReceiptInfo = items;\n this.imageReceiptInfo = this.selectedReceiptInfo.filter((r) => r.receiptFormatId != this.attachmentTypeEnum.Pdf);\n this.receiptCount = items.length;\n if (items.length > 1) {\n this.showReceiptsPanel = true;\n }\n else\n {\n this.fnShowSelectedReceipt(items[0] , 1, 1);\n } \n }\n\n fnToggleReceipt() {\n if (this.mapShow) {\n this.mapShow = false;\n }\n else {\n this.showReceipt = false;\n this.toggleChatbot(true);\n }\n\n this.receiptOutputModel = new ReceiptOutputModel();\n this.receiptOutputModel.receiptModel = this.selectedReceiptInfo;\n this.receiptOutputModel.previewModel = this.previewOutputModel;\n this.closePanelEvent.emit(this.receiptOutputModel);\n }\n\n fnshowReceipt(item: IReceiptInfo[]) {\n\n this.currentIndex = 0;\n this.receiptInfo = item;\n this.receiptCount = item.length;\n if (this.receiptCount == 0) {\n this.showReceipt = false;\n }\n else {\n this.showReceipt = true;\n }\n this.toggleChatbot(!this.showReceipt);\n this.cycleItems();\n }\n\n showPreviewPanel:boolean = false;\n scannedText : KeyValue[];\n previewImageUrl : string;\n previewOutputModel : PreviewOutputModel;\n\n fnClosePreviewPanel(_event)\n {\n this.showPreviewPanel = false;\n this.showScanDetails = true;\n this.hideUseReceipt = false;\n this.previewOutputModel = new PreviewOutputModel();\n }\n\n fnSavePreviewPanel(_event)\n {\n this.showPreviewPanel = false;\n this.previewOutputModel = _event;\n this.showReceiptsPanel = false;\n this.fnToggleReceipt();\n }\n\n fnScanReceipt()\n { \n this.ngxService.start();\n let receipt = this.receiptsInfoDetails.filter(it=>it.expenseReceiptId == this.currentReceiptId);\n this.previewImageUrl = receipt[0].receiptUrl;\n this.hideUseReceipt = true; \n this.extractInvoiceReceipts(false,receipt,this.expenseStatusEnum.PendingForSubmission,[]); \n }\n\n get expenseStatusEnum() {\n return ExpenseStatusEnum;\n }\n \n \n fnShowSelectedReceipt(item: IReceiptInfo, index: number, createType:number) {\n\n if (item.receiptFormatId == this.attachmentTypeEnum.Pdf) {\n this.selectedAttachmentType = this.attachmentTypeEnum.Pdf;\n this.pdfSrc = item.receiptUrl;\n this.pdfName = item.receiptName;\n this.pdfExpenseReceiptId = item.expenseReceiptId;\n this.showPdfViewer = true;\n } else {\n this.ngxService.start();\n this.selectedAttachmentType = this.attachmentTypeEnum.Image;\n if (this.receiptCount == 0) {\n this.showReceipt = false;\n }\n else {\n this.showScanDetails = this.orgRoleId == 1 ? true : false;\n this.hideUseReceipt=false;\n this.showReceipt = true;\n this.currentIndex = index;\n this.currentReceiptId = item.expenseReceiptId;\n }\n this.toggleChatbot(!this.showReceipt);\n this.cycleItems();\n }\n }\n options: google.maps.MapOptions;\n center: google.maps.LatLngLiteral = { lat: 24, lng: 12 };\n markerOptions: google.maps.MarkerOptions = { draggable: false };\n markerPositions: google.maps.LatLngLiteral[] = [];\n\n cycleItems() {\n this.mapShow = false;\n this.receiptLocation = null;\n this.receiptDate = null;\n\n setTimeout(() => {\n this.adjustImageSize();\n }, 100);\n\n if (this.showReceipt == true && this.receiptInfo[this.currentIndex].receiptLocationInfo.location != null) {\n var items = $('.imgContainer div');\n items.hide();\n $('.imgContainer div').eq(this.currentIndex).css('display', 'inline-block');\n this.receiptLocation = this.receiptInfo[this.currentIndex].receiptLocationInfo.location;\n this.lat = parseFloat(this.receiptInfo[this.currentIndex].receiptLocationInfo.latitude.toString());\n this.long = parseFloat(this.receiptInfo[this.currentIndex].receiptLocationInfo.longitude.toString());\n this.receiptDate = new Date(this.receiptInfo[this.currentIndex].receiptDate);\n this.zoom = 15;\n this.center = { lat: this.lat, lng: this.long };\n this.markerPositions.push(this.center);\n }\n }\n\n toggleChatbot(visible: boolean) {\n var el1 = document.getElementsByClassName('iticks-notif-msg') as HTMLCollectionOf;\n var el2 = document.getElementsByClassName('iticks-pop-button') as HTMLCollectionOf;\n\n var style = visible ? \"block\" : \"none\";\n if (el1 && el1.length > 0) {\n el1[0].style.display = style;\n }\n if (el2 && el2.length > 0) {\n el2[0].style.display = style;\n }\n }\n\n fnPdfViewerReceiver() {\n this.showPdfViewer = false;\n this.pdfSrc = \"\";\n this.pdfName = \"\";\n this.pdfExpenseReceiptId = 0;\n }\n\n fnDeletePdf(pdfExpenseReceiptId) {\n this.pdfExpenseReceiptId = pdfExpenseReceiptId;\n \n this.fnShowDeletePdfAlert();\n }\n\n fnDeleteReceipt() {\n this.fnShowDeleteReceiptAlert();\n }\n\n fnDeletePdfAction() {\n this.showPdfViewer = false;\n this.selectedReceiptInfo = this.selectedReceiptInfo.filter(a => a.expenseReceiptId != this.pdfExpenseReceiptId);\n this.receiptCount = this.selectedReceiptInfo.length;\n if (this.receiptCount > 0) {\n this.fnShowReceiptsPanel(this.selectedReceiptInfo);\n }\n else {\n this.fnCloseReceiptsPanel()\n }\n }\n\n fnDeleteReceiptAction() {\n this.selectedReceiptInfo = this.selectedReceiptInfo.filter(a => a.expenseReceiptId != this.currentReceiptId);\n this.showReceipt = false;\n this.receiptCount = this.selectedReceiptInfo.length;\n if (this.receiptCount > 0) {\n this.fnShowReceiptsPanel(this.selectedReceiptInfo);\n }\n else {\n this.fnCloseReceiptsPanel()\n }\n\n }\n\n fnFormatBytes(bytes: number) {\n return fileSizeService.GetFileSizeFromBytes(bytes);\n }\n receiptOutputModel : ReceiptOutputModel;\n fnCloseReceiptsPanel() {\n this.showReceiptsPanel = false;\n this.imageReceiptInfo = [];\n this.receiptOutputModel = new ReceiptOutputModel();\n this.receiptOutputModel.receiptModel = this.selectedReceiptInfo;\n this.receiptOutputModel.previewModel = this.previewOutputModel;\n this.closePanelEvent.emit(this.receiptOutputModel);\n }\n\n fnShowDeleteReceiptAlert() {\n this.alertPanelModelForDeleteReceipt = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n this.translate.instant(\"label_cancel\"),\n this.translate.instant(\"label_confirm\"),\n true,\n this.translate.instant(\"do_you_want_to_delete_receipt\")\n );\n }\n\n fnCloseDeleteReceiptAlert(returnValue) {\n if (returnValue)\n this.fnDeleteReceiptAction();\n this.alertPanelModelForDeleteReceipt = new AlertPanelModel(false, \"\", [], \"\", \"\", true, \"\");\n }\n\n fnShowDeletePdfAlert() {\n this.alertPanelModelForDeletePdf = new AlertPanelModel(\n true,\n this.translate.instant(\"label_alert\"),\n [],\n this.translate.instant(\"label_cancel\"),\n this.translate.instant(\"label_confirm\"),\n true,\n this.translate.instant(\"do_you_want_to_delete_receipt\")\n );\n }\n\n fnCloseDeletePdfAlert(returnValue) {\n if (returnValue)\n this.fnDeletePdfAction();\n this.alertPanelModelForDeletePdf = new AlertPanelModel(false, \"\", [], \"\", \"\", true, \"\");\n }\n\n fnSetZoomOnMap() {\n let miles = Number(this.milesTravelled.split(' ')[0]);\n if (miles <= 30) {\n return this.fnFindJourneTypeAndSetZoom(30);\n }\n else if (miles > 30 && miles <= 50) {\n return this.fnFindJourneTypeAndSetZoom(50);\n }\n else if (miles > 50 && miles < 70) {\n return this.fnFindJourneTypeAndSetZoom(70);\n }\n else if (miles > 70 && miles < 100) {\n return this.fnFindJourneTypeAndSetZoom(100);\n }\n else if (miles >= 100) {\n return this.fnFindJourneTypeAndSetZoom(150);\n }\n else {\n return this.fnFindJourneTypeAndSetZoom(30);\n }\n\n\n }\n fnFindJourneTypeAndSetZoom(range) {\n let zoom = 8;\n switch (range) {\n case 30:\n zoom = (this.journeyType == 1 ? 10 : (this.journeyType == 2 ? 10 : (this.isCompleteJourney ? 10 : 10)))\n break;\n case 50:\n zoom = (this.journeyType == 1 ? 9 : (this.journeyType == 2 ? 10 : (this.isCompleteJourney ? 10 : 9)))\n break;\n case 70:\n zoom = (this.journeyType == 1 ? 8 : (this.journeyType == 2 ? 9 : (this.isCompleteJourney ? 10 : 8)))\n break;\n case 100:\n zoom = (this.journeyType == 1 ? 7 : (this.journeyType == 2 ? 9 : (this.isCompleteJourney ? 8 : 7)))\n break;\n case 150:\n zoom = (this.journeyType == 1 ? 7 : (this.journeyType == 2 ? 8 : (this.isCompleteJourney ? 8 : 7)))\n break;\n }\n return zoom;\n }\n fnUpdateReceiptPanelForDeleteButton(showDeleteButton: boolean) {\n this.showDeleteButton = showDeleteButton;\n }\n \n\n\n extractInvoiceReceipts(hasVoiceMemo, receiptsInfo, saveStatus, expenseIds: number[]) {\n \n let recSaveReq = new ReceiptSaveRequest();\n recSaveReq.createdOn = new Date().valueOf();\n recSaveReq.expenseIds = expenseIds;\n recSaveReq.orgId = 1223;\n recSaveReq.userId = 24323;\n recSaveReq.platformID = 1;\n recSaveReq.saveStatus = saveStatus;\n recSaveReq.hasReceipt = receiptsInfo && receiptsInfo.length > 0 ? true : false;\n recSaveReq.hasVoiceMemo = hasVoiceMemo;\n recSaveReq.currencyId = 0;\n recSaveReq.receiptsInfo = receiptsInfo;\n \n //Modeling for saving receipts\n let receiptSaveRequest = new ApiRequest(\"ExtractInvoiceReceipt\", 3.8, '1');\n receiptSaveRequest.requestInfo = recSaveReq;\n let recSaveReqString = JSON.stringify(receiptSaveRequest);\n let expReq = new ExpenseRequest(recSaveReqString, this.capturedReceipts, null);\n let receiptRequest = new ApiRequest(\"ScanReceiptData\", environment.applicationVersion, environment.requestId);\n receiptRequest.requestInfo = expReq;\n this.ngxService.start();\n this.claimantOnWebService\n .ScanExpenseReceipts(receiptRequest)\n .subscribe((response: IApiresponse) => {\n if (response.statusCode == 0) {\n this.ngxService.stop();\n this.showPreviewPanel = true;\n this.scannedText = response.responseInfo; \n } \n });\n }\n\n \n}\n\n","
\n
\n
\n
    \n
  • \n
    \n {{\n item.stepName}} {{item.stepNum}}\n
    \n
  • \n
  • \n

    \n {{ item.stepDesc }}*\n \n \n \n \n\n \n

    \n \n\n\n \n

    \n
    \n
    \n
    \n

    \n
    \n
  • \n
  • \n
      \n
    • \n \n \n \n \n
    • \n
    • \n
      \n \n \n
      \n
      \n \n \n \n
      \n
    • \n \n
    \n
  • \n
  • \n \n \"new\"\n \n
  • \n
\n
\n
\n
","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, AfterViewInit, HostListener, ViewChildren, QueryList } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { fromEvent, Subscription } from 'rxjs';\nimport { Wizard, wizardConfig } from \"src/app/_models/common/wizard\";\n\n\n@Component({\n selector: 'app-wizard',\n templateUrl: './wizard.component.html'\n})\nexport class WizardComponent implements OnInit, AfterViewInit {\n @ViewChild('wizardDiv', { read: ElementRef }) wizardDivElement: ElementRef;\n @Output() StepClickEvent = new EventEmitter();\n @Output() OnScroll = new EventEmitter();\n @Output() openGoogleInvoicesEvent = new EventEmitter();\n\n param: string;\n @Input() wizardDetails: Wizard[] = [];\n @Input() wizardConfig: wizardConfig;\n @Input() isEssential: boolean;\n divClass: string;\n resizeSubscription$: Subscription;\n isFirstLoad: boolean;\n \n\n constructor(private sanitizer: DomSanitizer) {\n this.isFirstLoad = true;\n }\n\n ngOnInit() {\n const resizeObservable$ = fromEvent(window, 'resize')\n this.resizeSubscription$ = resizeObservable$.subscribe(evt => {\n this.setWidthAndHeight();\n });\n if(this.isEssential == null)\n {\n this.isEssential=false;\n }\n //default scroll step\n if(this.wizardConfig?.defaultScrollId > 1){\n setTimeout(() => {\n let el = document.getElementById(this.wizardConfig.defaultScrollId.toString());\n el.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n }, 600); \n }\n\n }\n\n @ViewChild('testDiv', { static: false })\n private testDiv: ElementRef;\n isTestDivScrolledIntoView: boolean;\n @ViewChildren(\"stepsDiv\") private stepsDivs: QueryList;\n\n\n\n @HostListener('window:scroll', ['$event']) // for window scroll events\n onScrollDiv(event) {\n\n for (let index = 0; index < this.stepsDivs?.length; index++) {\n const rect = this.stepsDivs.toArray()[index].nativeElement.getBoundingClientRect();\n const topShown = rect.top >= 0;\n const bottomShown = rect.bottom <= window.innerHeight;\n this.isTestDivScrolledIntoView = topShown && bottomShown;\n\n if (this.isTestDivScrolledIntoView) {\n this.OnScroll.emit(index + 1);\n }\n\n }\n }\n\n ngAfterViewInit() {\n setTimeout(() => {\n this.setWidthAndHeight();\n this.onScrollDiv('');\n }, 200);\n\n\n }\n\n public setWidthAndHeight() {\n setTimeout(() => {\n const searchRowRect = this.wizardDivElement.nativeElement.getBoundingClientRect();\n if (this.wizardConfig && this.wizardConfig.mainScrollConditionRequired) {\n if (window.innerHeight < searchRowRect.bottom) {\n this.divClass = \"overflow-auto scrollbar-visible heightCalc-11\";\n\n }\n else {\n this.divClass = '';\n }\n }\n else {\n this.divClass = \"overflow-auto scrollbar-visible heightCalc-10\";\n }\n\n\n\n }, 100);\n }\n navigateToStep(stepData: any) { \n\n if (stepData.stepNum >= 5) {\n setTimeout(() => {\n this.stepsDivs.toArray()[this.stepsDivs.length-1].nativeElement.scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n }, 500 );\n \n }\n this.StepClickEvent.emit(stepData);\n }\n\n sanitizerHtml(element) {\n if (element) {\n let safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return safeText;\n }\n else {\n return ' ';\n }\n\n }\n fnCloseMessage(item: Wizard, e: Event) {\n e.stopPropagation();\n this.isFirstLoad = false;\n let step = this.wizardDetails.find(a => a.stepNum == item.stepNum);\n if (step) {\n step.stepExtraMessage = '';\n }\n }\n\n onButtonClick(event) { \n event.stopPropagation();\n this.openGoogleInvoicesEvent.emit();\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\n\nimport { TransactionComponent } from './transaction/transaction.component';\nimport { OrderComponent } from './order/order.component';\nimport { UserComponent } from './user/user.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n declarations: [\n TransactionComponent,\n OrderComponent,\n UserComponent\n ],\n imports: [\n CommonModule,\n NgbDropdownModule,\n TranslateModule\n ],\n exports: [TransactionComponent, OrderComponent, UserComponent]\n})\nexport class WidgetModule { }\n","import { Component, OnInit, ViewChild, Output,Input, EventEmitter } from \"@angular/core\";\nimport { Subscription } from \"rxjs\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { DatePipe } from \"@angular/common\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { FormlyFieldConfig } from \"@ngx-formly/core\";\nimport { AlertService } from \"src/app/alert-panel/alert.service\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ColDef } from \"ag-grid-community\";\nimport { GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { DynamicFormComponent } from \"src/app/shared/forms/dynamic-form/dynamic-form.component\";\nimport { DynamicFormService } from \"src/app/shared/forms/dynamic-form/dynamic-form.service\";\nimport { IManualVatDetail, ManualVatDetail} from 'src/app/_models/twostepapproval/manual-vat-detail';\nimport { ReceiptViewerComponent } from \"src/app/shared/panels/receipt-viewer/receipt-viewer.component\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport { ClaimantOnWebService } from 'src/app/_services/claimant-on-web/claimant-on-web.service';\nimport { DateFormatPipe, EODDateFormatPipe, TimeFormatPipe, TimeFormatPipeNew } from \"src/app/_helpers/pipe.module\";\nimport { MileageDetailComponent } from 'src/app/shared/panels/mileage-detail/mileage-detail.component';\nimport { IReceiptInfo, IResponsePolicyViolation, RequestPolicyViolation } from 'src/app/_models/twostepapproval/claimant-expense-detail';\n\n@Component({\n selector: \"duplicate-receipt-panel\",\n templateUrl: \"./duplicate-receipt-panel.component.html\"\n})\n\nexport class DuplicateReceiptPanelComponent implements OnInit {\n @Input() originalReceiptInfo: IReceiptInfo[] = [];\n @Input() duplicateReceiptInfo: IReceiptInfo[] = [];\n @Input() claimType: any;\n @Output() closePanelEvent = new EventEmitter();\n\n claims: Claims;\n\n constructor(\n private authenticationService: AuthenticationService,\n private claimsService: ClaimsService,\n private translate: TranslateService,\n private alertService: AlertService,\n private claimantOnWebService: ClaimantOnWebService,\n public datepipe: EODDateFormatPipe,\n public dateFormatPipe: DateFormatPipe,\n public timeFormatPipeNew: TimeFormatPipeNew\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit(): void {\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n\n}\n","
\n
\n
\n
\n
\n

{{ \"receipt\" | translate }}

\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
{{ 'original_receipt' | translate }}
\n
{{\"submitted_date\" | translate}}: {{originalReceiptInfo[0]?.receiptDate|date:'dd-MMM-yyy'}}
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
{{\"duplicate_receipts\" | translate}}
\n
{{\"submitted_date\" | translate}}: {{duplicateReceiptInfo[0]?.receiptDate|date:'dd-MMM-yyy'}}
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n
","
\n
\n
\n
\n
\n

{{inputData.title}}

\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n
\n \n
\n
\n
\n \n {{ \"emp_imp_exp_msg11\" | translate }}\n {{ \"label_manageemp\" | translate }}\n {{ \"emp_imp_exp_msg12\" | translate }}\n \n
\n
\n
\n \n
\n
\n
    \n
  • \n \n \n \n \n \n \n \n
  • \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from \"@angular/core\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Location } from \"@angular/common\";\nimport { AlertPanelModel } from \"src/app/_models/common/alertPanelModel\";\nimport { ActionPanelConfig, ActionPanelOutput } from 'src/app/_models/common/form/form';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { CheckListPanelModel } from \"src/app/_models/universal-importer/universal-importer\";\nimport { CheckListData } from \"src/app/_models/universal-importer/universal-importer\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { ColDef } from \"ag-grid-community\";\nimport { ImportEmployeesResponseEnum } from \"src/app/_models\";\n\n@Component({\n selector: \"import-checklist-panel\",\n templateUrl: \"./import-checklist-panel.component.html\",\n styleUrls: [\"./import-checklist-panel.component.scss\"],\n})\n\nexport class ImportChecklistPanelComponent implements OnInit {\n @Input() inputData: CheckListPanelModel;\n @Output() onCloseActionPanel = new EventEmitter();\n @Output() onSubmitBulkAction = new EventEmitter();\n param: any;\n claims: Claims;\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n gridData: any = [];\n gridConfigItems: GridConfig;\n gridColumnDefs: ColDef[];\n gridFilterStatus: number = 0;\n gridFilterItems: any;\n noDataAvailableMessage: string;\n\n constructor(\n private toastr: ToastrService,\n private claimsService: ClaimsService,\n private router: Router,\n private location: Location,\n private translate: TranslateService,\n private sanitizer: DomSanitizer\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {\n if (this.inputData && this.inputData.isGridPanel) {\n this.gridData = this.inputData.data;\n\n this.fnInitialiseGrid();\n }\n\n }\n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: '',\n headerClass: \"d-none\",\n field: 'text',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n maxWidth: 500,\n cellClass: 'text-left',\n cellRenderer: 'safeTextRendererComponent'\n },\n {\n headerName: \"\",\n headerClass: \"d-none\",\n field: 'value',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n maxWidth: 80,\n }\n ,\n {\n headerName: '',\n headerClass: \"d-none\",\n field: 'iconClass',\n resizable: true,\n sortable: true,\n suppressMenu: true,\n maxWidth: 80,\n cellClass: 'text-left',\n cellRenderer: 'safeTextRendererComponent'\n },\n {\n headerName: \"\",\n headerClass: \"d-none\",\n cellRenderer: 'buttonRenderer',\n field: 'userActionField',\n suppressMovable: true,\n suppressMenu: true,\n sortable: false,\n maxWidth: 100,\n cellClass: 'text-center',\n headerComponentParams:\n [\n {\n buttonClass: 'btn-primary',\n buttonText: this.translate.instant('label_view'),\n disableProperty: '',\n hideProperty: 'isButtonHide',\n userAction: 'edit',\n textBeforeBtn: ''\n },\n\n ]\n }\n\n\n\n\n ];\n }\n\n fnGetGridConfigItems() {\n let countByStatusArray = [];\n\n this.gridConfigItems = new GridConfig(\n true,\n false,\n \"sequence\",\n \"id\",\n this.gridFilterStatus,\n false,\n countByStatusArray,\n true,\n true,\n false,\n null,\n 'asc',\n 40,\n 'no_data_availabe',\n null,\n null, false, false,\n '',\n '',\n false\n );\n }\n\n fnInitialiseGrid() {\n\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid(false);\n }, 100);\n\n }\n fnOnGridCellClick(params) {\n if (params.column.colId == 'userActionField') {\n switch (params.data.id) {\n case ImportEmployeesResponseEnum.Grade:\n\n break;\n case ImportEmployeesResponseEnum.CostCentre:\n\n break;\n case ImportEmployeesResponseEnum.EmployeeErrorsList:\n\n break;\n\n\n }\n }\n this.onSubmitBulkAction.emit(params.data);\n }\n closePanelData()\n {\n let returnData = {\n close: true,\n route:\"\"\n }\n this.onClosePanel(returnData);\n }\n\n onClosePanel(returnData) {\n this.onCloseActionPanel.emit(returnData);\n }\n\n onSubmitPanel(data: CheckListData) {\n if (data) {\n this.onSubmitBulkAction.emit(data);\n }\n }\n\n sanitizerHtml(element) {\n return this.sanitizer.bypassSecurityTrustHtml(element);\n }\n goToManEmp()\n {\n let returnData = {\n close: true,\n route:\"/orgsetting/manageemployee\"\n }\n this.onClosePanel(returnData);\n \n }\n\n}\n","import { Component, OnInit, ViewChild, Input, Output, EventEmitter } from \"@angular/core\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Location } from \"@angular/common\";\nimport { AppGridComponent } from \"src/app/shared/grid/grid-component/grid.component\";\nimport { ColDef } from \"ag-grid-community\";\nimport { CountByStatus, GridConfig } from \"src/app/_models/common/grid/grid-config\";\nimport { ExcelExportService } from \"src/app/_services/common/excel-export.service\";\nimport { UserTypeEnum } from \"src/app/_models/common/manage-emp-enum.enum\";\n\n@Component({\n selector: \"import-employee-error-panel\",\n templateUrl: \"./import-employee-error-panel.component.html\"\n})\n\nexport class ImportEmployeeErrorPanelComponent implements OnInit {\n @ViewChild(AppGridComponent) gridComponent: AppGridComponent;\n\n @Input() employeeErrorList: any[] = [];\n\n @Output() closePanelEvent = new EventEmitter();\n\n param: any;\n claims: Claims;\n\n //ag-grid definitions\n gridColumnDefs: ColDef[];\n gridConfigItems: GridConfig;\n gridData: any[] = [];\n\n constructor(\n private toastr: ToastrService,\n private claimsService: ClaimsService,\n private router: Router,\n private location: Location,\n private translate: TranslateService,\n private excelExportService: ExcelExportService\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n\n ngOnInit() {\n this.fnInitialiseGrid();\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n\n fnInitialiseGrid() {\n this.fnCreateColumnDefs();\n this.fnGetGridConfigItems();\n setTimeout(() => {\n this.gridComponent.initializeGrid();\n }, 100);\n }\n\n fnCreateColumnDefs() {\n this.gridColumnDefs = [\n {\n headerName: this.translate.instant(\"label_employee_code\"),\n field: 'EmployeeCode',\n suppressMenu: true,\n minWidth: 50,\n width:50\n },\n {\n headerName: this.translate.instant(\"first_name\"),\n field: 'FirstName',\n suppressMenu: true,\n minWidth: 80,\n width:80\n },\n {\n headerName: this.translate.instant(\"last_name\"),\n field: 'LastName',\n suppressMenu: true,\n minWidth: 80,\n width:80\n },\n {\n headerName: this.translate.instant(\"approver_email\"),\n field: 'ApproverEmail',\n suppressMenu: true,\n minWidth: 100,\n width:100\n },\n {\n headerName: this.translate.instant(\"label_errors\"),\n field: 'FailedErrors',\n cellClass: 'color-amber',\n cellStyle: { 'font-weight': 'bold' },\n suppressMenu: true,\n minWidth: 300\n },\n {\n headerName: this.translate.instant(\"label_warnings\"),\n field: 'FailedWarnings',\n cellClass: 'text-mustard',\n cellStyle: { 'font-weight': 'bold' },\n suppressMenu: true,\n minWidth: 300\n }\n ];\n \n }\n\n fnGetGridConfigItems() {\n let totalEmployeeCount = this.employeeErrorList.length;\n let countByStatusArray = [];\n\n countByStatusArray.push(new CountByStatus(\"d-block\", this.translate.instant('label_employee_count'), totalEmployeeCount, false, 0));\n\n this.gridConfigItems = new GridConfig(\n false,\n false,\n \"EmployeeId\",\n \"UniqueRowId\",\n 0,\n false,\n countByStatusArray,\n false,\n false,\n true,\n null,\n 'asc',\n 40,\n this.translate.instant('no_data_availabe'),\n null,\n null,\n false, \n false,\n '',\n '',\n false\n );\n\n this.gridData = this.employeeErrorList;\n\n setTimeout(() => {\n this.gridComponent.refreshGridData();\n }, 100);\n }\n\n fnOnExportClick() {\n let exportData = [];\n\n let headerRow = [\n this.translate.instant('label_errors'),\n this.translate.instant('label_warnings'),\n this.translate.instant('employee_id1'),\n this.translate.instant('employee_id2'),\n this.translate.instant('employee_id3'),\n this.translate.instant('employee_id4'),\n this.translate.instant('label_first_name'),\n this.translate.instant('label_last_name'),\n this.translate.instant('label_email'),\n this.translate.instant('label_role'),\n this.translate.instant('approver_email')\n ];\n if (this.claims.IsCostCentrePackagePurchasedOrTrial) {\n headerRow.push( this.translate.instant('cost_centre_name'));\n headerRow.push( this.translate.instant('cost_centre_code'));\n }\n\n exportData.push(headerRow);\n\n if(this.employeeErrorList && this.employeeErrorList.length > 0){\n this.employeeErrorList.forEach(data => {\n let row = [];\n row.push(data.FailedErrors ? data.FailedErrors: \"\");\n row.push(data.FailedWarnings ? data.FailedWarnings: \"\");\n row.push(data.EmployeeCode ? data.EmployeeCode:\"\");\n row.push(data.EmployeeCode2 ? data.EmployeeCode2: \"\");\n row.push(data.EmployeeCode3 ? data.EmployeeCode3:\"\");\n row.push(data.EmployeeCode4 ? data.EmployeeCode4:\"\");\n row.push(data.FirstName ? data.FirstName:\"\");\n row.push(data.LastName ? data.LastName:\"\");\n row.push(data.Email? data.Email: \"\");\n if (Number(data.EmployeeRole) == UserTypeEnum.Approver || Number(data.EmployeeRole) == UserTypeEnum.FinanceManager){\n row.push(\"A\");\n }\n else {\n row.push(\"\");\n }\n row.push(data.ApproverEmail);\n \n if (this.claims.IsCostCentrePackagePurchasedOrTrial) {\n row.push(data.CostCentreName ? data.CostCentreName: \"\");\n row.push(data.CostCentreCode1 ? data.CostCentreCode1: \"\");\n }\n exportData.push(row); \n \n });\n }\n this.excelExportService.exportToCsv(\"EmployeeErrorExport.csv\", exportData);\n }\n\n}\n","
\n
\n
\n
\n
\n

{{ \"errors_warnings_employee_list\" | translate }}

\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n\n
\n
","import { Injectable } from '@angular/core';\nimport { Observable, BehaviorSubject, timer } from 'rxjs';\nimport { BuildDetailsService } from './build-details.service';\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\nimport { BuildDetails } from './build-details';\n\n@Injectable({ providedIn: 'root' })\nexport class UpToDateBuildService {\n\n public buildNumberAtStartup: string;\n\n constructor(buildDetailsService: BuildDetailsService, private httpClient: HttpClient) {\n this.buildNumberAtStartup = buildDetailsService.buildDetails.buildNumber;\n }\n\n public pollForBuildNumber(): Observable {\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Cache-Control': 'no-cache'\n })\n };\n return this.httpClient.get('build-details.json', httpOptions)\n }\n}","

\n {{ \"login\" | translate }}\n

\n\n
\n
\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n \n
\n \n \n \n\n \n {{ \"invalid_captcha_text\" | translate : param }}\n \n\n \n

\n \n \n

\n \n {{ \"ten_filed_login_attempts\" | translate : param }}\n

\n \n
\n

\n {{ \"dont_have_expenseondemand_account\" | translate }}\n {{ \"register_now\" | translate }}\n

\n \n {{\n \"please_use_chrome\" | translate\n }}\n \n
\n \n \n\n\n\n\n {{ \"modal_open\" | translate }}\n\n\n\n\n
\n
\n
\n
\n \n \n
\n {{ \"we_have_sent_email_at\" | translate }}\n {{\n this.username.value\n }}\n {{ \"with_a_code_otp\" | translate }}\n
\n
\n {{\n \"open_your_translator_app_to_view_authentication\"\n | translate\n }}\n
\n
\n
\n \n \n \n \n \n \n
\n
\n \n
\n
\n\n\n\n\n\n Options of Authenticate\n\n\n\n
\n
\n
\n
\n

\n {{\"select_one_of_the_options_to_authenticate\" | translate}}\n

\n
\n {{\"this_is_to_conform_that_it_is_you\" | translate}}\n
\n
\n \n
\n
\n
\n
\n
\n
\n
{{\"use_email_to_verify\" | translate }}
\n \n
\n
\n

\n {{\"we_will_send_otp_code_to_email\" | translate}}\n

\n \n {{\"verify_using_email\" | translate}}\n \n
\n
\n
\n
\n
\n
\n
{{\"use_authenticator_app\"| translate}}
\n
\n \n \n
\n
\n
\n

\n {{\"authenticator_app_provides\" | translate}}\n

\n \n {{\"verify_using_authenticator\" | translate}}\n \n
\n
\n
\n
\n
\n
\n
\n\n\n\n\n\n\n Enter Code\n\n\n\n
\n
\n
\n
\n

\n Enter Code\n

\n

\n We have sent you an email at sanity@yopmail.com with a verification CODE / OTP\n

\n
\n \n
\n
\n
\n \n \n \n \n \n \n
\n \n
\n
\n
\n {{\n \"Having Problems?\" | translate\n }}\n {{ \"please\" | translate }}\n {{ \"click here\" | translate }}\n {{ \"to verify using Authenticator instead\" | translate }}\n
\n
\n
\n
\n\n\n\n\n\n\n Enter Code\n\n\n\n
\n
\n
\n
\n

\n {{\"authenticate_by_following_these_steps_on_phone\" | translate}}\n

\n
\n \n
\n
\n
\n {{\"authenticator_step_1\"| translate}}\n {{\"scan_below_qr_code_with_any\" | translate}}\n
\n
\n
\n Step 2 :\n {{\"add_your_account_to_the_app\"| translate}}\n
\n
\n \n
\n
\n
\n Step 3 :\n {{\"enter_six_digit_code\"| translate}}\n
\n \n \n {{\"verify_login\" | translate}}\n \n
\n
\n
\n {{\"having_problems\" | translate}}\n {{\"verify_using_email_instead\"| translate}}\n
\n
\n
\n
\n\n\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n ViewChild,\n} from \"@angular/core\";\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { Meta, Title } from \"@angular/platform-browser\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { OAuthService } from \"angular-oauth2-oidc\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { first } from \"rxjs/operators\";\nimport { RSAHelper } from \"src/app/_helpers/RSAHelper\";\nimport { ApiRequest, UserTypeEnum } from \"src/app/_models\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport {\n UserRequestBase,\n Userrequestdto,\n} from \"src/app/_models/user/userrequestdto\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { VersionHistoryService } from \"src/app/_services/common/version-history.service\";\nimport { emailValidator } from \"src/app/validators/email-validator\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { RecaptchaErrorParameters } from \"ng-recaptcha\";\nimport { UpToDateBuildService } from \"../../../up-to-date.service\";\nimport { environment } from \"src/environments/environment\";\nimport { ConvertNonAsciiToAscii } from \"src/app/common/commonvariables\";\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\nimport { EmailModel } from \"src/app/_models/common/EmailModel\";\nimport { EmailService } from \"src/app/_services/common/email.service\";\n\n@Component({\n selector: \"app-login-new\",\n templateUrl: \"./login-new.component.html\",\n styleUrls: [\"./login-new.component.scss\"],\n})\nexport class LoginNewComponent implements OnInit, AfterViewInit {\n loginForm: FormGroup;\n\n params: any;\n submitted = false;\n claims: Claims;\n showCaptcha = false;\n caprchaResult = \"\";\n disableLoginButton = true;\n rsaHelper: RSAHelper;\n userrequest: UserRequestBase;\n registrationsubmitted = false;\n isOnboardingProcessComplete = false;\n showCaptchaMessage = false;\n showPassword = false;\n referralCode: string = \"\";\n impersonate: string = \"\";\n cookieValue: string;\n claimValue: string;\n impersonationResponse: any;\n impersonationUserClaim: any;\n loading = false;\n\n @Output() gotoNextStepEvent = new EventEmitter();\n interval: any;\n\n isChrome: boolean =\n navigator.userAgent.toLowerCase().indexOf(\"chrome\") > -1 &&\n navigator.vendor.toLowerCase().indexOf(\"google\") > -1 &&\n !(navigator.userAgent.toLowerCase().indexOf(\"edg/\") > -1);\n\n constructor(\n private translate: TranslateService,\n private claimsService: ClaimsService,\n private authenticationService: AuthenticationService,\n private oauthService: OAuthService,\n private meta: Meta,\n private title: Title,\n private router: Router,\n private versionHistoryService: VersionHistoryService,\n private toastr: ToastrService,\n private route: ActivatedRoute,\n private cookieService: CookieService,\n private upToDateService: UpToDateBuildService,\n private ngxLoader: NgxUiLoaderService,\n private emailService: EmailService\n ) {\n this.userrequest = new UserRequestBase();\n this.loginForm = this.createFormGroup();\n\n upToDateService.pollForBuildNumber().subscribe((buildIsUpToDate) => {\n if (\n this.upToDateService.buildNumberAtStartup !==\n buildIsUpToDate.buildNumber\n )\n window.location.reload();\n });\n }\n\n popupVisible = false;\n validLength = false;\n containsLowercase = false;\n containsUppercase = false;\n containsSpecialChar = false;\n\n showPasswordPopup() {\n this.popupVisible = true;\n }\n\n hidePasswordPopup() {\n this.popupVisible = false;\n }\n\n validatePassword() {\n const passwordField = document.getElementById(\n \"password\"\n ) as HTMLInputElement;\n const password = passwordField.value;\n\n this.validLength = password.length >= 8;\n this.containsLowercase = /[a-z]/.test(password);\n this.containsUppercase = /[A-Z]/.test(password);\n this.containsSpecialChar = /[!@#$%^&*()_+{}\\[\\]:;<>,.?~\\-]/.test(password);\n }\n\n ngOnInit(): void {\n setTimeout(() => {\n this.title.setTitle(\"Customer Login\");\n this.meta.updateTag({\n name: \"description\",\n content: this.translate.instant(\"meta_tag_login_description\"),\n });\n }, 1000);\n\n this.authenticationService.logout();\n this.authenticationService.loadAccessToken();\n this.SetRememberPassword();\n this.authenticationService.loadAccessToken();\n this.fnCheckRouteParams();\n //this.getIpCliente();\n this.params = this.route.snapshot.queryParams;\n var paramKeys = Object.keys(this.params);\n if (paramKeys.length > 0) {\n this.referralCode = this.params.referralCode;\n this.impersonate = this.params.impersonate;\n this.getUserImprosonated();\n }\n }\n\n SetRememberPassword() {\n if (\n localStorage.getItem(\"rememberpassword\") &&\n localStorage.getItem(\"username\")\n ) {\n this.username.setValue(localStorage.getItem(\"username\"));\n this.password.setValue(localStorage.getItem(\"rememberpassword\"));\n this.rememberpassword.setValue(true);\n }\n }\n\n fnCheckRouteParams() {\n let params = this.route.snapshot.queryParams;\n var paramKeys = Object.keys(params);\n if (paramKeys.length > 0 && params[\"code\"]) {\n this.authenticationService.getXeroUserDetails(params[\"code\"]).subscribe(\n (userData) => {\n const token = userData.idToken;\n\n localStorage.setItem(\"signupxerotoken\", token);\n this.gotoSignUp();\n },\n (error) => {}\n );\n }\n }\n getUserImprosonated() {\n this.claims = new Claims();\n try {\n if (this.impersonate) {\n localStorage.clear();\n this.cookieValue = this.cookieService.get(\"UserIdentity\");\n\n if (this.cookieValue == \"\") {\n this.router.navigate([\"/login\"]);\n } else {\n this.claimValue = this.cookieService.get(\"AdditionalUserClaim\");\n //this.authenticationService.showAppLoader();\n localStorage.setItem(\"currentUser\", this.cookieValue);\n localStorage.setItem(\"currentUserTemp\", this.cookieValue);\n\n this.impersonationResponse = JSON.parse(this.cookieValue);\n this.oauthService.tokenEndpoint = environment.token_endpoint;\n this.oauthService\n .fetchTokenUsingPasswordFlowAndLoadUserProfile(\n this.impersonationResponse.EmailId,\n \"testpassword\"\n )\n .then(() => {\n localStorage.setItem(\n \"loginToken\",\n this.impersonationResponse.Token\n );\n localStorage.setItem(\n \"refresh_token\",\n this.impersonationResponse.RefreshToken\n );\n localStorage.setItem(\n \"access_token\",\n this.impersonationResponse.Token\n );\n\n var tokenNew = this.oauthService.getAccessToken();\n this.claims.OrgId = this.impersonationResponse.OrganisationId;\n this.claims.EmailId = this.impersonationResponse.EmailId;\n this.claims.UserId = this.impersonationResponse.UserId;\n this.claims.CurrentOrganisationCurrency =\n this.impersonationResponse.CurrentOrganisationCurrency;\n this.claims.CurrentOrganisationCurrencyId =\n this.impersonationResponse.CurrentOrganisationCurrencyId;\n if (this.impersonationResponse.CurrentOrganisationCurrency) {\n this.claims.CurrentOrganisationCurrencyCode =\n this.impersonationResponse.CurrentOrganisationCurrency.split(\n \"-\"\n )[1].trim();\n this.claims.CurrentOrganisationCurrency =\n this.impersonationResponse.CurrentOrganisationCurrency.split(\n \"-\"\n )[1].trim();\n }\n this.claims.FinanceManager =\n ConvertNonAsciiToAscii.removeAccents(\n this.impersonationResponse.FirstName\n ) +\n \" \" +\n ConvertNonAsciiToAscii.removeAccents(\n this.impersonationResponse.LastName\n );\n this.claims.LoginId = this.impersonationResponse.EmailId;\n this.claims.IsFinanceManager =\n this.impersonationResponse.IsFinanceManager;\n this.claims.Token = tokenNew;\n this.claims.FMRoleType = this.impersonationResponse.FMRoleType;\n this.claims.UserHomeCurrencyId =\n this.impersonationResponse.UserHomeCurrencyId;\n this.claims.UserHomeCurrencyCode =\n this.impersonationResponse.UserHomeCurrencyCode;\n this.claims.UserHomeCurrencyName =\n this.impersonationResponse.UserHomeCurrencyName;\n this.claims.IsDelegator = this.impersonationResponse.IsDelegator;\n this.claims.IsDelegate = this.impersonationResponse.IsDelegate;\n\n this.impersonationUserClaim = JSON.parse(this.claimValue);\n this.claims.OrgLogo = \"assets/images/logo.png\";\n this.claims.OrgName = this.impersonationUserClaim.Name;\n this.claims.TwoStepApproval =\n this.impersonationUserClaim.TwoStepApproval;\n this.claims.IsCardSetupComplete =\n this.impersonationUserClaim.IsCardSetupComplete;\n this.claims.accountingSystemId =\n this.impersonationUserClaim.AccountingSystemId;\n this.claims.accountingSystemType =\n this.impersonationUserClaim.AccountingSystemType;\n this.claims.IsOrgBasicFunctionTrialEndsReminder =\n this.impersonationUserClaim.IsOrgBasicFunctionTrialEndsReminder;\n this.claims.IsOrgBasicFunctionTrialEndsAlert =\n this.impersonationUserClaim.IsOrgBasicFunctionTrialEndsAlert;\n\n this.claims.ReferAndEarnRole =\n this.impersonationUserClaim.ReferAndEarnRole;\n this.claims.CompanyApproverRule =\n this.impersonationUserClaim.CompanyApproverRule;\n this.claims.isClaimOnWebAllowed =\n this.impersonationUserClaim.IsClaimOnWebAllowed;\n this.claims.IsFromOrgLogin = false;\n this.claims.ApprovalRuleSetting =\n this.impersonationUserClaim.ApprovalRuleSetting;\n this.claims.orgRoleId = this.impersonationUserClaim.RoleId;\n this.claims.showCostCentresWithoutApproverCount = true;\n this.claims.IsCashAdvanceEnabled =\n this.impersonationUserClaim.IsCashAdvanceEnabled;\n this.claims.IsCreditCardAdvanceEnabled =\n this.impersonationUserClaim.IsCreditCardAdvanceEnabled;\n this.claims.triangulationRule =\n this.impersonationUserClaim.TriangulationRule;\n this.claims.isPolicyOnVehicleChange =\n this.impersonationUserClaim.IsPolicyOnVehicleChange;\n this.claims.isUniversalImportAllowed =\n this.impersonationUserClaim.IsUniversalImportAllowed;\n this.claims.IsAPAutomationAllow =\n this.impersonationUserClaim.IsAPAutomationAllow;\n this.claims.IsDelegateFunctionPurchasedOrTrial =\n this.impersonationUserClaim.IsDelegateFunctionPurchasedOrTrial;\n this.claims.isStripPaymentFailed =\n this.impersonationUserClaim.IsStripPaymentFailed;\n this.claims.RateType = this.impersonationUserClaim.RateType;\n this.claims.nrfcStatus = this.impersonationUserClaim.NRFCStatus;\n this.claims.isNRPackagePurchasedOrTrial =\n this.impersonationUserClaim.IsNRPackagePurchasedOrTrial;\n this.claims.isFCPackagePurchasedOrTrial =\n this.impersonationUserClaim.IsFCPackagePurchasedOrTrial;\n this.claims.userType = this.impersonationUserClaim.UserType ?? 0;\n this.claims.BandId = this.impersonationUserClaim.BandId;\n this.claims.IsPayStepEnabled =\n this.impersonationUserClaim.IsPayStepEnabled;\n this.claims.IsContainerEnabled =\n this.impersonationResponse.IsContainerEnabled;\n this.claims.IsContainerPurchasedOrTrial =\n this.impersonationResponse.IsContainerPurchasedOrTrial;\n this.claims.IsCfpEnabled =\n this.impersonationResponse.IsCarbonFootPrintEnabled;\n this.claims.IsContainerAllowed =\n this.impersonationResponse.IsContainerAllowed;\n this.claims.PreApprovalEnabled =\n this.impersonationResponse.PreApprovalEnabled;\n\n localStorage.setItem(\"istokenImpersonated\", \"true\");\n this.claimsService.updateClaims(this.claims);\n this.routeUser();\n this.cookieService.delete(\n \"UserIdentity\",\n \"/\",\n \"expenseondemand.com\",\n true\n );\n this.cookieService.delete(\n \"AdditionalUserClaim\",\n \"/\",\n \"expenseondemand.com\",\n true\n );\n this.title.setTitle(\"ExpenseOnDemand\");\n })\n .catch((err) => {\n this.disableLoginButton = false;\n console.error(\"error logging in\", err);\n });\n }\n }\n } catch (Exception) {\n this.router.navigate([\"/login\"]);\n this.cookieService.delete(\n \"UserIdentity\",\n \"/\",\n \"expenseondemand.com\",\n true\n );\n this.cookieService.delete(\n \"AdditionalUserClaim\",\n \"/\",\n \"expenseondemand.com\",\n true\n );\n this.loading = false;\n }\n }\n\n createFormGroup() {\n return new FormGroup({\n username: new FormControl(\"\", [Validators.required, emailValidator]),\n password: new FormControl(\"\", [Validators.required]),\n rememberpassword: new FormControl(false),\n });\n }\n\n get username() {\n return this.loginForm.get(\"username\");\n }\n\n get password() {\n return this.loginForm.get(\"password\");\n }\n\n get rememberpassword() {\n return this.loginForm.get(\"rememberpassword\");\n }\n\n onEmailIdEntered() {\n if (this.username.value != \"\") {\n var domain = this.username.value.split(\"@\").pop();\n this.authenticationService.checkDomainEnabledForSSO(domain).subscribe(\n (userData) => {\n if (userData.responseInfo.isDomainEnabled) {\n localStorage.setItem(\"isfromorglogin\", \"true\");\n this.router.navigate([\"/orglogin\"]);\n return;\n } else {\n this.showPasswordBox = this.username.value != \"\" && true;\n setTimeout(() => {\n if (this.showPasswordBox) {\n this.passwordField.nativeElement.focus();\n }\n }, 200);\n }\n },\n (error) => {}\n );\n }\n }\n\n showPasswordBox = false;\n\n showMailOTPBox = false;\n showAuthenticatorBox = false;\n userLoginResponse: any;\n isOTPModelOpen= false;\n isMFADeviceRewgistered = false;\n\n onLoginSubmit() {\n this.claims = new Claims();\n this.submitted = true;\n this.registrationsubmitted = false;\n if (this.loginForm.invalid) {\n return;\n }\n\n if (this.showCaptcha && this.caprchaResult == \"\") {\n return;\n }\n\n this.translate.getTranslation(this.translate.getBrowserLang());\n this.disableLoginButton = true;\n this.rsaHelper = new RSAHelper();\n this.userrequest.RequestInfo = new Userrequestdto();\n this.userrequest.WebApiName = \"SoloLogin\";\n this.userrequest.WebApiVersion = 1;\n this.userrequest.RequestId = \"111\";\n this.userrequest.RequestInfo.LoginId = this.username.value;\n this.userrequest.RequestInfo.Password = this.rsaHelper.Encrypt(\n this.password.value\n );\n if (this.rememberpassword.value == true) {\n this.claims.LoginId = this.userrequest.RequestInfo.LoginId;\n this.claims.Password = this.userrequest.RequestInfo.Password;\n localStorage.setItem(\"rememberpassword\", this.password.value);\n localStorage.setItem(\"username\", this.username.value);\n } else {\n localStorage.removeItem(\"rememberpassword\");\n localStorage.removeItem(\"username\");\n }\n this.authenticationService.login(this.userrequest).subscribe(\n (data) => {\n if (data.statusCode == 0) {\n this.userLoginResponse = data;\n if (data.responseInfo.isMFAEnabled) {\n if (data.responseInfo.isMFADeviceRegistered) {\n this.isMFADeviceRewgistered = true;\n this.showAuthenticatorBox = true;\n this.showMailOTPBox = false;\n this.qrSecret = data.responseInfo.mfaSecret;\n document.getElementById(\"openModalButton\").click();\n this.isOTPModelOpen = true;\n } else {\n // this.resendOTP();\n // this.showMailOTPBox = true;\n // this.showAuthenticatorBox = false;\n this.isMFADeviceRewgistered = false;\n this.registerMFADevice();\n }\n\n this.otp1 =\n this.otp2 =\n this.otp3 =\n this.otp4 =\n this.otp5 =\n this.otp6 =\n undefined;\n return;\n } else {\n this.continueLogin();\n }\n } else {\n this.toastr.error(data.errorInfo[0].message);\n this.checkForCaptchaVisibility();\n }\n },\n (error) => {\n this.disableLoginButton = false;\n this.toastr.error(error);\n }\n );\n }\n\n public resolved(captchaResponse: string): void {\n this.caprchaResult = captchaResponse;\n }\n\n public onError(errorDetails: RecaptchaErrorParameters): void {\n this.caprchaResult = \"\";\n }\n\n checkForCaptchaVisibility() {\n var loginAttemptCount = 0;\n\n if (sessionStorage.getItem(\"CurrentUserTriedLogin\")) {\n if (\n sessionStorage.getItem(\"CurrentUserTriedLogin\") != this.username.value\n ) {\n sessionStorage.setItem(\"CurrentUserLoginAttempt\", \"0\");\n }\n }\n\n if (sessionStorage.getItem(\"CurrentUserLoginAttempt\")) {\n loginAttemptCount =\n Number(sessionStorage.getItem(\"CurrentUserLoginAttempt\")) + 1;\n } else {\n loginAttemptCount = 1;\n }\n sessionStorage.setItem(\n \"CurrentUserLoginAttempt\",\n loginAttemptCount.toString()\n );\n sessionStorage.setItem(\"CurrentUserTriedLogin\", this.username.value);\n this.showCaptchaMessage = loginAttemptCount > 0 && loginAttemptCount < 10;\n this.showCaptcha = loginAttemptCount >= 10;\n }\n\n bindVersionHistory() {\n if (!this.claims.appVersion) {\n this.versionHistoryService.getVersionHistory().subscribe((res: any) => {\n if (res.statusCode == 0) {\n let currentVersion = res.responseInfo.filter(\n (x) => x.isCurrentRelease\n )[0].versionNumber;\n\n this.claims.appVersion = currentVersion;\n this.claimsService.updateClaims(this.claims);\n }\n });\n }\n }\n\n routeUser() {\n if (this.claims.IsFinanceManager == true) this.router.navigate([\"\"]);\n else {\n if (this.claims.orgRoleId == UserTypeEnum.Approver) {\n this.router.navigate([\"/approver/appclaimant\"]);\n } else {\n if (\n this.claims.IsDelegateFunctionPurchasedOrTrial &&\n this.claims.IsDelegate\n ) {\n this.router.navigate([\"claimant/delegatorsexpense\"]);\n } else {\n this.router.navigate([\"claimant/expenselist\"]);\n }\n }\n }\n }\n gotoSignUp() {\n //this.gotoNextStepEvent.emit(2);\n this.router.navigate([\"register\"]);\n }\n\n @ViewChild(\"emailField\") emailField: ElementRef;\n @ViewChild(\"passwordField\") passwordField: ElementRef;\n\n ngAfterViewInit() {\n this.emailField.nativeElement.focus();\n }\n\n isInvalidOTP = false;\n otp1: number;\n otp2: number;\n otp3: number;\n otp4: number;\n otp5: number;\n otp6: number;\n OTP: number;\n\n isValidOTPEntered = false;\n myColorVaraible: string = \"black\";\n mybgColorVaraible: string = \"white\";\n showGetCodeInput = false;\n\n validateOTP() {\n if (\n this.otp1?.toString().toString().length > 0 &&\n this.otp2?.toString().toString().length > 0 &&\n this.otp3?.toString().toString().length > 0 &&\n this.otp4?.toString().toString().length > 0 &&\n this.otp5?.toString().toString().length > 0 &&\n this.otp6?.toString().toString().length > 0\n ) {\n if (\n this.OTP.toString() ==\n this.otp1.toString() +\n this.otp2.toString() +\n this.otp3.toString() +\n this.otp4.toString() +\n this.otp5.toString() +\n this.otp6.toString()\n ) {\n this.mybgColorVaraible = \"green\";\n this.myColorVaraible = \"white\";\n this.isValidOTPEntered = true;\n this.showGetCodeInput = false;\n this.isInvalidOTP = false;\n clearInterval(this.interval);\n } else {\n this.mybgColorVaraible = \"red\";\n this.myColorVaraible = \"white\";\n this.isValidOTPEntered = false;\n this.isInvalidOTP = true;\n }\n } else {\n this.mybgColorVaraible = \"white\";\n this.myColorVaraible = \"black\";\n this.isValidOTPEntered = false;\n this.isInvalidOTP = false;\n }\n }\n\n onDigitInput(event) {\n let element;\n if (event.code !== \"Backspace\")\n element = event.srcElement.nextElementSibling;\n\n if (event.code === \"Backspace\")\n element = event.srcElement.previousElementSibling;\n\n if (element == null) return;\n else element.focus();\n }\n\n qrSecret: string = \"\";\n qrToken: string = \"\";\n verifyToken(): void {\n this.qrToken =\n this.otp1.toString() +\n this.otp2.toString() +\n this.otp3.toString() +\n this.otp4.toString() +\n this.otp5.toString() +\n this.otp6.toString();\n this.authenticationService\n .verifyTotp(this.qrToken.toString(), this.qrSecret, this.claims.LoginId)\n .subscribe((response) => {\n if (response.verified) {\n document.getElementById(\"closeOTPModel\").click();\n this.continueLogin();\n } else {\n this.toastr.error(\"Invalid Code\");\n }\n });\n }\n\n userrequestdto: Userrequestdto;\n\n resendOTP() {\n let em = new EmailModel();\n em.to = this.userrequest.RequestInfo.LoginId;\n em.templateName = \"OnboardingOTP\";\n em.userId = 0;\n em.subjct = \"OTP\";\n em.sentTime = 0;\n em.deliveredTime = 0;\n em.status = 1;\n em.emailLogId = this.newGuid();\n var otp = Math.floor(100000 + Math.random() * 900000);\n em.keyValuePairs[\"OTP\"] = otp.toString();\n\n let req = new ApiRequest(\"\", 1, \"\");\n req.requestInfo = em;\n this.emailService.SendEmail(req).subscribe(() => {\n this.OTP = otp;\n this.showAuthenticatorBox = false;\n this.showMailOTPBox = true;\n this.showGetCodeInput = false;\n if(!this.isOTPModelOpen){\n document.getElementById(\"openModalButton\").click();\n this.isOTPModelOpen= false;\n }\n });\n }\n\n newGuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(\n /[xy]/g,\n function (c) {\n var r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n }\n );\n }\n\n verifyOTPandLogin() {\n this.continueLogin();\n }\n\n continueLogin() {\n let data = this.userLoginResponse;\n\n //\n this.oauthService\n .fetchTokenUsingPasswordFlowAndLoadUserProfile(\n data.responseInfo.emailId,\n this.rsaHelper.Encrypt(this.password.value)\n )\n .then(() => {\n localStorage.removeItem(\"isfromorglogin\");\n\n this.title.setTitle(\"ExpenseOnDemand\");\n\n sessionStorage.removeItem(\"CurrentUserLoginAttempt\");\n sessionStorage.removeItem(\"CurrentUserTriedLogin\");\n localStorage.setItem(\"showComplianceStatement\", \"1\");\n var tokenNew = this.oauthService.getAccessToken();\n this.claims.IsFromOrgLogin = false;\n this.claims.OrgId = data.responseInfo.organisationId;\n this.claims.IsMFAEnabled = data.responseInfo.isMFAEnabled;\n this.claims.IsMFADeviceRegistered =\n data.responseInfo.isMFADeviceRegistered;\n this.claims.EmailId = data.responseInfo.emailId;\n this.claims.UserId = data.responseInfo.userId;\n this.claims.supplierRule = data.responseInfo.supplierRule;\n this.claims.showCompliancePopup =\n data.responseInfo.showComplianceStatement;\n this.claims.complianceHeader = data.responseInfo.complianceHeader;\n this.claims.complianceStatement = data.responseInfo.complianceStatement;\n this.claims.CurrentOrganisationCurrency =\n data.responseInfo.currentOrganisationCurrency;\n this.claims.CurrentOrganisationCurrencyId =\n data.responseInfo.currentOrganisationCurrencyId;\n if (data.responseInfo.currentOrganisationCurrency) {\n this.claims.CurrentOrganisationCurrencyCode =\n data.responseInfo.currentOrganisationCurrency.split(\"-\")[1].trim();\n }\n this.claims.FinanceManager =\n ConvertNonAsciiToAscii.removeAccents(data.responseInfo.firstName) +\n \" \" +\n ConvertNonAsciiToAscii.removeAccents(data.responseInfo.lastName);\n this.claims.LoginId = data.responseInfo.emailId;\n this.claims.IsFinanceManager = data.responseInfo.isFinanceManager;\n this.claims.IsMarqueeOn = data.responseInfo.isMarqueeOn;\n this.claims.IsAPAutomationAllow = data.responseInfo.isAPAutomationAllow;\n this.claims.MarqueeText = data.responseInfo.marqueeText;\n this.isOnboardingProcessComplete =\n data.responseInfo.isOnboardingProcessComplete;\n\n this.claims.userType = data.responseInfo.userType ?? 0;\n this.claims.kycStatus = data.responseInfo.kycStatus;\n this.claims.docStatus = data.responseInfo.docStatus;\n this.claims.IsKYCMandatoryForInvoice =\n data.responseInfo.isKYCMandatoryForInvoice;\n this.claims.Token = tokenNew;\n this.claims.FMRoleType = data.responseInfo.fmRoleType;\n this.claims.isClaimOnWebAllowed = data.responseInfo.isClaimOnWebAllowed;\n this.claims.orgRoleId = data.responseInfo.orgRoleId;\n this.claims.IsLeaveManagementAllowed =\n data.responseInfo.isLeaveManagementAllowed;\n this.claims.ApprovalRuleSetting = data.responseInfo.approvalRuleSetting;\n this.claims.showCostCentresWithoutApproverCount = true;\n this.claims.isUniversalImportAllowed =\n data.responseInfo.isUniversalImportAllowed;\n this.claims.IsAPAutomationAllow = data.responseInfo.isAPAutomationAllow;\n\n this.claims.UserHomeCurrencyId = data.responseInfo.userHomeCurrencyId;\n this.claims.UserHomeCurrencyCode =\n data.responseInfo.userHomeCurrencyCode;\n this.claims.UserHomeCurrencyName =\n data.responseInfo.userHomeCurrencyName;\n this.claims.IsDelegator = data.responseInfo.isDelegator;\n this.claims.IsDelegate = data.responseInfo.isDelegate;\n this.claims.isMultiAccSysIntAllow =\n data && data.responseInfo && data.responseInfo.isMultiAccSysIntAllow\n ? data.responseInfo.isMultiAccSysIntAllow\n : false;\n this.claims.IsContainerAllowed = data.responseInfo.isContainerAllowed;\n this.claimsService.updateClaims(this.claims);\n this.bindVersionHistory();\n if (!data.responseInfo.isOnboardingProcessComplete) {\n //this.router.navigate([\"/onboard/prewelcomecurrency\"]);\n this.gotoNextStepEvent.emit(4);\n }\n this.authenticationService\n .organisationdetails(\n data.responseInfo.userId.toString(),\n data.responseInfo.emailId,\n data.responseInfo.token\n )\n .pipe(first())\n .subscribe(\n (orgData) => {\n if (orgData.statusCode == 0) {\n if (orgData.responseInfo[0].icon !== null) {\n if (orgData.responseInfo[0].icon == \"\") {\n this.claims.OrgLogo = \"assets/images/logo.png\";\n } else {\n this.claims.OrgLogo =\n \"data:image/jpeg;base64,\" + orgData.responseInfo[0].icon;\n }\n }\n this.claims.RateType = orgData.responseInfo[0].rateType;\n this.claims.nrfcStatus = orgData.responseInfo[0].nrfcStatus;\n this.claims.OrgName = orgData.responseInfo[0].name;\n this.claims.TwoStepApproval =\n orgData.responseInfo[0].twoStepApproval;\n this.claims.IsCardSetupComplete =\n orgData.responseInfo[0].isCardSetupComplete;\n this.claims.accountingSystemId =\n orgData.responseInfo[0].accountingSystemId;\n this.claims.accountingSystemType =\n orgData.responseInfo[0].accountingSystemType;\n this.claims.showGooglePackagePurchaseReminder =\n orgData.responseInfo[0].showGooglePackagePurchaseReminder;\n this.claims.googlePackagePurchaseReminderThreshold =\n orgData.responseInfo[0].googlePackagePurchaseReminderThreshold;\n this.claims.IsOrgBasicFunctionTrialEndsReminder =\n orgData.responseInfo[0].isOrgBasicFunctionTrialEndsReminder;\n this.claims.IsOrgBasicFunctionTrialEndsAlert =\n orgData.responseInfo[0].isOrgBasicFunctionTrialEndsAlert;\n\n this.claims.IsLeaveManagementAllowed =\n orgData.responseInfo[0].isLeaveManagementAllowed;\n this.claims.ApprovalRuleSetting =\n orgData.responseInfo[0].approvalRuleSetting;\n this.claims.IsCostCentrePackagePurchasedOrTrial =\n orgData.responseInfo[0].isCostCentrePackagePurchasedOrTrial;\n this.claims.IsCustomerPackagePurchasedOrTrial =\n orgData.responseInfo[0].isCustomerPackagePurchasedOrTrial;\n this.claims.ReferAndEarnRole =\n orgData.responseInfo[0].referAndEarnRole;\n this.claims.CompanyApproverRule =\n orgData.responseInfo[0].companyApproverRule;\n this.claims.IsClaimantWiseMonthlyCappingEnabled =\n orgData.responseInfo[0].isClaimantWiseMonthlyCappingEnabled;\n this.claims.IsClaimantWiseYearlyCappingEnabled =\n orgData.responseInfo[0].isClaimantWiseYearlyCappingEnabled;\n\n this.claims.isUniversalImportAllowed =\n orgData.responseInfo[0].isUniversalImportAllowed;\n this.claims.IsAPAutomationAllow =\n orgData.responseInfo[0].isAPAutomationAllowed;\n this.claims.IsCashAdvanceEnabled =\n orgData.responseInfo[0].isCashAdvanceEnabled;\n this.claims.IsCreditCardAdvanceEnabled =\n orgData.responseInfo[0].isCreditCardAdvanceEnabled;\n this.claims.isMultiAccSysIntAllow =\n orgData &&\n orgData.responseInfo[0] &&\n orgData.responseInfo[0].isMultiAccSysIntAllow\n ? orgData.responseInfo[0].isMultiAccSysIntAllow\n : false;\n this.claims.isPolicyOnVehicleChange =\n orgData.responseInfo[0].isPolicyOnVehicleChange;\n this.claims.triangulationRule =\n orgData.responseInfo[0].triangulationRule;\n this.claims.isStripPaymentFailed =\n orgData.responseInfo[0].isStripPaymentFailed;\n this.claims.IsDelegateFunctionPurchasedOrTrial =\n orgData.responseInfo[0].isDelegateFunctionPurchasedOrTrial;\n this.claims.isDocRequired =\n orgData.responseInfo[0].isDocRequired;\n this.claims.BandId = orgData.responseInfo[0].bandId;\n this.claims.IsPayStepEnabled =\n orgData.responseInfo[0].isPayStepEnabled;\n this.claims.IsAPAutomationAllow =\n orgData.responseInfo[0].isAPAutomationAllowed;\n this.claims.isNRPackagePurchasedOrTrial =\n orgData.responseInfo[0].isNRPackagePurchasedOrTrial;\n this.claims.isFCPackagePurchasedOrTrial =\n orgData.responseInfo[0].isFCPackagePurchasedOrTrial;\n this.claims.IsContainerEnabled =\n orgData.responseInfo[0].isContainerEnabled;\n this.claims.IsContainerPurchasedOrTrial =\n orgData.responseInfo[0].isContainerPurchasedOrTrial;\n this.claims.IsContainerAllowed =\n orgData.responseInfo[0].isContainerAllowed;\n this.claims.PreApprovalEnabled =\n orgData.responseInfo[0].preApprovalEnabled;\n this.claims.IsCfpEnabled =\n orgData.responseInfo[0].isCarbonFootPrintEnabled;\n this.claimsService.updateClaims(this.claims);\n this.authenticationService.setloginnav();\n this.routeUser();\n }\n },\n (error) => {\n this.disableLoginButton = false;\n }\n );\n })\n .catch((err) => {\n this.disableLoginButton = false;\n console.error(\"error logging in\", err);\n });\n }\n\n qrCodeUrl: string = \"\";\n registerMFADevice() {\n \n this.authenticationService\n .getTotpSetup(this.username.value)\n .subscribe((data) => {\n this.qrCodeUrl = data.qrCodeUrl;\n this.qrSecret = data.secret;\n document.getElementById(\"openMFAOptionButton\").click();\n });\n }\n\n openMFARegistration() {\n document.getElementById(\"openMFARegistrationButton\").click();\n }\n\n verifyMFARegistrationToken(): void {\n this.authenticationService\n .verifyTotp(this.qrToken, this.qrSecret, this.username.value)\n .subscribe((response) => {\n if (response.verified) {\n this.toastr.success(\"Success\");\n this.userLoginResponse.responseInfo.isMFADeviceRegistered = true;\n document.getElementById(\"closeMFARegistrationModel\").click();\n this.continueLogin();\n } else {\n this.toastr.error(\"Invalid token\");\n }\n });\n }\n\n fnShowAuthenticatorBox(){\n\n \n if(!this.isMFADeviceRewgistered){\n this.openMFARegistration();\n }\n else{\n this.showAuthenticatorBox = true;\n this.showMailOTPBox = false;\n }\n\n }\n}\n","

{{'step_1_5' | translate}}

\n

\n {{'sign_up' | translate}}\n

\n
\n
\n
\n
\n \n \n
\n
\n {{ \"label_Required\" | translate: param }}\n
\n
\n
\n
\n {{ \"numeric_keys_not_allowed\" | translate: param }}\n
\n
\n\n
\n
\n \n \n
\n
\n {{ \"numeric_keys_not_allowed\" | translate: param }}\n
\n
\n\n
\n\n
\n \n \n
\n
\n {{ \"label_Required\" | translate: param }}\n
\n
\n {{ \"label_Emailisnotvalid\" | translate: param }}\n
\n
\n\n
\n

{{'claimant_exists' | translate }}

\n
\n
\n \n
\n {{'already_have_an_account' | translate}} \n {{'login' | translate}}\n
\n
\n
\n
\n\n\n\n\n\n\n
\n
\n
\n
\n
\n \n
\n
{{'you_are_registering_as' | translate}} '\n {{email.value}}' \n
\n
\n {{'this_email_domain' |translate}} '\n {{domainName}}' \n {{'is_already_registered_by_your_admin' | translate}} \n
\n
{{'hense_new_subscription_cannot_be_created' | translate}}\n
\n
\n
\n \n
\n
\n
","import {\n AfterViewInit,\n Component,\n ElementRef,\n EventEmitter,\n OnInit,\n Output,\n ViewChild,\n} from \"@angular/core\";\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { OAuthService } from \"angular-oauth2-oidc\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { ApiRequest } from \"src/app/_models\";\nimport { EmailModel } from \"src/app/_models/common/EmailModel\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport {\n UserRequestBase,\n Userrequestdto,\n} from \"src/app/_models/user/userrequestdto\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { EmailService } from \"src/app/_services/common/email.service\";\nimport { emailValidator } from \"src/app/validators/email-validator\";\nimport jwt_decode from \"jwt-decode\";\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\n\n@Component({\n selector: \"app-register\",\n templateUrl: \"./register.component.html\",\n styleUrls: [\"./register.component.scss\"],\n})\nexport class RegisterComponent implements OnInit, AfterViewInit {\n @Output() gotoNextStepEvent = new EventEmitter();\n @Output() gotoLoginEvent = new EventEmitter();\n\n registerForm: FormGroup;\n claims: Claims;\n submitted = false;\n IsRegisterCanBeDisabled = false;\n emailAlreadyExists = false;\n userrequest: UserRequestBase;\n referralCode: string = \"\";\n registrationsubmitted = false;\n\n constructor(\n private authenticationService: AuthenticationService,\n private toastr: ToastrService,\n private translate: TranslateService,\n private emailService: EmailService,\n private ngxService: NgxUiLoaderService,\n private router: Router\n ) {\n this.userrequest = new UserRequestBase();\n this.registerForm = this.createRegistrationFormGroup();\n }\n\n xeroSignUp() {\n let token = localStorage.getItem(\"signupxerotoken\");\n const decoded = jwt_decode(token);\n const firstName = decoded[\"given_name\"];\n const lastName = decoded[\"family_name\"];\n const email = decoded[\"email\"];\n\n this.firstname.setValue(firstName);\n this.lastname.setValue(lastName);\n this.email.setValue(email);\n }\n\n ngOnInit(): void {\n this.authenticationService.logout();\n this.authenticationService.loadAccessToken();\n if (localStorage.getItem(\"signupxerotoken\")) {\n this.xeroSignUp();\n }\n }\n\n goToNextStep() {\n this.gotoNextStepEvent.emit(3);\n }\n\n ShowSpecialCharErrorFName: boolean = true;\n ShowSpecialCharErrorLName: boolean = true;\n omit_special_char(event) {\n var k;\n k = event.charCode;\n if (k == 13) {\n return true;\n }\n if (event.target.id === \"fName\") {\n this.ShowSpecialCharErrorFName = this.allowAcuteChar(event);\n } else {\n this.ShowSpecialCharErrorLName = this.allowAcuteChar(event);\n }\n return this.allowAcuteChar(event);\n }\n\n allowAcuteChar(e) {\n let regex = new RegExp(\"^[a-zA-ZÀ-úp{L} '-]+$\");\n let str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\n if (regex.test(str)) {\n return true;\n } else return false;\n }\n\n public noWhitespaceValidator(control: FormControl) {\n const isWhitespace = (control.value || \"\").trim().length === 0;\n const isValid = !isWhitespace;\n return isValid ? null : { whitespace: true };\n }\n\n createRegistrationFormGroup() {\n return new FormGroup({\n firstname: new FormControl(\"\", [\n Validators.required,\n Validators.minLength(1),\n this.noWhitespaceValidator,\n ]),\n lastname: new FormControl(\"\"),\n email: new FormControl(\"\", [Validators.required, emailValidator]),\n });\n }\n\n get firstname() {\n return this.registerForm.get(\"firstname\");\n }\n\n get lastname() {\n return this.registerForm.get(\"lastname\");\n }\n\n get email() {\n return this.registerForm.get(\"email\");\n }\n domainName: string;\n\n onRegistrationSubmit() {\n this.claims = new Claims();\n this.submitted = false;\n this.registrationsubmitted = true;\n\n // stop here if form is invalid\n if (this.registerForm.invalid || this.firstname.value.trim() == \"\") {\n return;\n }\n this.ngxService.start();\n this.IsRegisterCanBeDisabled = true;\n let em = new EmailModel();\n em.to = this.email.value;\n em.templateName = \"OnboardingOTP\";\n em.userId = 0;\n em.subjct = \"OTP\";\n em.sentTime = 0;\n em.deliveredTime = 0;\n em.status = 1;\n em.emailLogId = this.newGuid();\n var otp = Math.floor(1000 + Math.random() * 9000);\n em.keyValuePairs[\"OTP\"] = otp.toString();\n\n var domain = this.email.value;\n this.authenticationService.CheckDomainRegistered(domain).subscribe(\n (domainData) => {\n \n if (domainData.responseInfo.length == 0 && domainData.statusCode == 0) {\n this.authenticationService\n .checkForUserExistance(this.email.value)\n .subscribe(\n (userData) => {\n if (userData.responseInfo != null) {\n this.toastr.error(this.translate.instant(\"claimant_exists\"));\n this.IsRegisterCanBeDisabled = false;\n this.emailAlreadyExists = true;\n } else {\n let req = new ApiRequest(\"\", 1, \"\");\n req.requestInfo = em;\n this.emailService.SendEmail(req).subscribe(() => {\n this.userrequest.RequestInfo = new Userrequestdto();\n this.userrequest.WebApiName = \"SoloRegister\";\n this.userrequest.WebApiVersion = 1;\n this.userrequest.RequestId = \"111\";\n this.userrequest.RequestInfo.FirstName =\n this.firstname.value;\n this.userrequest.RequestInfo.LastName = this.lastname.value;\n this.userrequest.RequestInfo.LoginId = this.email.value;\n this.userrequest.RequestInfo.ReferralCode =\n this.referralCode;\n this.userrequest.RequestInfo.OTP = otp;\n localStorage.setItem(\n \"registereduser\",\n JSON.stringify(this.userrequest.RequestInfo)\n );\n this.ngxService.stop();\n this.gotoNextStepEvent.emit(3);\n });\n }\n },\n () => {}\n );\n } else {\n\n if(domainData.statusCode == 0){\n this.domainName = this.email.value.split(\"@\").pop();;\n document.getElementById(\"openModalButton\").click();\n return;\n }\n else{\n this.toastr.error(this.translate.instant(\"claimant_exists\"));\n this.IsRegisterCanBeDisabled = false;\n this.emailAlreadyExists = true;\n\n }\n }\n },\n (error) => {}\n );\n }\n\n newGuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(\n /[xy]/g,\n function (c) {\n var r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n }\n );\n }\n\n gotoLogin() {\n //this.gotoLoginEvent.emit(1);\n this.router.navigate([\"login\"]);\n }\n\n @ViewChild(\"firstNameField\") firstNameField: ElementRef;\n\n ngAfterViewInit() {\n this.firstNameField.nativeElement.focus();\n }\n\n\n onCloseFoundersNote() {}\n\n SendInviteeNotificationToFinanceManager(){\n\n this.userrequest.RequestInfo = new Userrequestdto();\n this.userrequest.WebApiName = \"SoloRegister\";\n this.userrequest.WebApiVersion = 1;\n this.userrequest.RequestId = \"111\";\n this.userrequest.RequestInfo.FirstName =\n this.firstname.value;\n this.userrequest.RequestInfo.LastName = this.lastname.value;\n this.userrequest.RequestInfo.LoginId = this.email.value;\n\n\n this.authenticationService.SendInviteeNotificationToFinanceManager(this.userrequest).subscribe(\n (domainData) => {\n\n\n });\n\n this.router.navigate([\"login\"]);\n\n }\n}\n","
\n \"Logo\"\n\n \"SignUp\"\n\n \"Organisation\"\n\n \"InviteEmployee\"\n\n \"PlayStore\"\n\n \"PlayStore\"\n\n
\n \n
\n

{{'pro_tip' |translate }}

\n

{{'scan_get_rid_of_paper' | translate}}

\n
\n
\n\n
\n \n
\n

{{'pro_tip' |translate }}

\n

{{'instantly_snap_a_photo_of_receipt'| translate}}

\n

{{'gain_complete_clarity_of_employee' | translate}}

\n
\n
\n
\n \n
\n

{{'pro_tip' |translate }}

\n

{{'to_setup_meaningful_trial' | translate}}\n

\n

{{'their_roles_can_be_changed' | translate}}\n

\n
\n
\n
\n
\n \"\"\n \n \n \n \n \n \n \n
\n
{{'great_platform_that_is_easy_to_use' | translate}}
\n
{{'verified_user_in_telecommunication' | translate}}
\n
\n
\n
\n \"\"\n \n \n \n \n \n \n \n
\n
{{'easy_to_use_and_great_support' | translate}}
\n
{{'verified_user_in_greater' | translate}}
\n
\n
","import { Component, OnInit, Input} from '@angular/core';\n\n@Component({\n selector: 'app-onboarding-banner',\n templateUrl: './onboarding-banner.component.html',\n styleUrls: ['./onboarding-banner.component.scss']\n})\nexport class OnboardingBannerComponent implements OnInit {\n\n @Input() currentStep: number;\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","

{{'step_2_5' | translate}}

\n

\n {{'verify_your_email' | translate}}\n

\n\n\n
\n \n {{'verified' | translate}}\n
\n
\n
\n
\n
\n {{'we_have_sent_email_at'| translate}} {{this.userrequestdto.LoginId}}
\n {{'with_a_code_otp' | translate}}\n
\n
\n \n \n \n \n\n
\n
{{'please_enter_a_valid_code' | translate}}
\n\n
\n
Click on {{'get_code_otp' | translate}}\n {{'if_you_dont_have_code_otp' | translate}}
\n
\n
\n
\n \n \n\n
\n
\n {{\"invalid_email\"|\n translate}}\n
\n
\n {{'update_your_email_to_get_otp' | translate}}\n\n\n
\n
\n
\n
\n
\n \n \n\n \n
\n
\n

\n {{'password_criteria_string1' | translate}} \n

\n

\n {{'lowercase_uppercase' | translate}} \n

\n\n

\n {{'atleast_one_number_or_special_char' | translate}} \n

\n\n\n
\n
\n \n \n\n \n {{\"password_doesnt_match\"|\n translate}}\n
\n\n
\n\n
\n
\n
\n \n\n \n
\n
\n\n
","import {\n Component,\n OnInit,\n ViewChild,\n ElementRef,\n Output,\n EventEmitter,\n OnDestroy,\n} from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { ApiRequest } from \"src/app/_models\";\nimport { EmailModel } from \"src/app/_models/common/EmailModel\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport {\n UserRequestBase,\n Userrequestdto,\n} from \"src/app/_models/user/userrequestdto\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { EmailService } from \"src/app/_services/common/email.service\";\nimport { ConvertNonAsciiToAscii } from \"src/app/common/commonvariables\";\nimport { EMAIL_REGEX } from \"src/util/constants\";\n\n@Component({\n selector: \"app-otp-verification\",\n templateUrl: \"./otp-verification.component.html\",\n styleUrls: [\"./otp-verification.component.scss\"],\n})\nexport class OtpVerificationComponent implements OnInit, OnDestroy {\n @Output() gotoNextStepEvent = new EventEmitter();\n\n userrequest: UserRequestBase;\n userrequestdto: Userrequestdto;\n showResendEmail = false;\n isInvalidOTP = false;\n otp1: number;\n otp2: number;\n otp3: number;\n otp4: number;\n\n isValidOTPEntered = false;\n myColorVaraible: string = \"black\";\n mybgColorVaraible: string = \"white\";\n\n showPassword1 = false;\n showPassword2 = false;\n\n password1 = \"\";\n password2 = \"\";\n\n isPasswordf1Valid = false;\n passwordLengthMatch = false;\n passwordLowercaseMatch = false;\n passwordUppercaseMatch = false;\n passwordNumberSymbolMatch = false;\n\n isPasswordMatch = true;\n\n newEmail = \"\";\n\n claims: Claims;\n\n canRegisterDisabled = false;\n getCodeClass = \"eod-text-primary underline\";\n\n interval: any;\n\n showGetCodeInput = false;\n\n constructor(\n private emailService: EmailService,\n private authenticationService: AuthenticationService,\n private claimsService: ClaimsService,\n private router: Router,\n private toastr: ToastrService\n ) {}\n\n digitValidate(element: any) {}\n\n ngOnInit(): void {\n this.userrequestdto = JSON.parse(localStorage.getItem(\"registereduser\"));\n this.newEmail = this.userrequestdto.LoginId;\n\n this.interval = setInterval(() => {\n this.resendOTP();\n }, 600000);\n }\n\n validateOTP() {\n this.showResendEmail = false;\n if (\n this.otp1?.toString().toString().length > 0 &&\n this.otp2?.toString().toString().length > 0 &&\n this.otp3?.toString().toString().length > 0 &&\n this.otp4?.toString().length > 0\n ) {\n if (\n this.userrequestdto.OTP.toString() ==\n this.otp1.toString() +\n this.otp2.toString() +\n this.otp3.toString() +\n this.otp4.toString()\n ) {\n this.mybgColorVaraible = \"green\";\n this.myColorVaraible = \"white\";\n this.isValidOTPEntered = true;\n this.showGetCodeInput = false;\n this.isInvalidOTP = false;\n clearInterval(this.interval);\n setTimeout(() => {\n this.password1Box.nativeElement.focus(); \n }, 100);\n \n } else {\n this.mybgColorVaraible = \"red\";\n this.myColorVaraible = \"white\";\n this.isValidOTPEntered = false;\n this.isInvalidOTP = true;\n }\n } else {\n this.mybgColorVaraible = \"white\";\n this.myColorVaraible = \"black\";\n this.isValidOTPEntered = false;\n this.isInvalidOTP = false;\n }\n }\n\n checkPasswordValidity() {\n let value = this.password1;\n let isInvalid = true;\n\n const isValidLength = /^.{8,}$/;\n if (!isValidLength.test(value)) {\n //\"Password must be att-least Characters Long.\";\n this.passwordLengthMatch = false;\n this.isPasswordf1Valid = false;\n isInvalid = false;\n } else {\n this.passwordLengthMatch = true;\n }\n\n // const isNonWhiteSpace = /^\\S*$/;\n // if (!isNonWhiteSpace.test(value)) {\n // return \"Password must not contain Whitespaces.\";\n // }\n\n const isContainsUppercase = /^(?=.*[A-Z]).*$/;\n if (!isContainsUppercase.test(value)) {\n //\"Password must have at least one Uppercase Character.\";\n this.passwordUppercaseMatch = false;\n this.isPasswordf1Valid = false;\n isInvalid = false;\n } else {\n this.passwordUppercaseMatch = true;\n }\n\n const isContainsLowercase = /^(?=.*[a-z]).*$/;\n if (!isContainsLowercase.test(value)) {\n //\"Password must have at least one Lowercase Character.\";\n this.passwordLowercaseMatch = false;\n this.isPasswordf1Valid = false;\n isInvalid = false;\n } else {\n this.passwordLowercaseMatch = true;\n }\n\n const isContainsNumber = /^(?=.*[0-9]).*$/;\n const isContainsSymbol =\n /^(?=.*[~`!@#$%^&*()--+={}\\[\\]|\\\\:;\"'<>,.?/_₹]).*$/;\n\n if (isContainsNumber.test(value) || isContainsSymbol.test(value)) {\n //\"Password must contain at least one Digit.\" or \"Password must contain at least one Special Symbol.\";\n this.passwordNumberSymbolMatch = true;\n } else {\n this.passwordNumberSymbolMatch = false;\n this.isPasswordf1Valid = false;\n isInvalid = false;\n }\n\n this.isPasswordf1Valid = isInvalid;\n }\n\n checkPasswordMatch() {\n if (\n this.password1.length == this.password2.length ||\n this.password2?.length > 0\n ) {\n this.isPasswordMatch = this.password1 == this.password2;\n } else {\n this.isPasswordMatch = true;\n }\n }\n\n onGetCode() {\n this.showResendEmail = true;\n this.otp1 = this.otp2 = this.otp3 = this.otp4 = undefined;\n this.isInvalidOTP = false;\n this.myColorVaraible = \"black\";\n this.mybgColorVaraible = \"white\";\n }\n\n resendOTP() {\n let em = new EmailModel();\n em.to = this.newEmail;\n em.templateName = \"OnboardingOTP\";\n em.userId = 0;\n em.subjct = \"OTP\";\n em.sentTime = 0;\n em.deliveredTime = 0;\n em.status = 1;\n em.emailLogId = this.newGuid();\n var otp = Math.floor(1000 + Math.random() * 9000);\n em.keyValuePairs[\"OTP\"] = otp.toString();\n\n let req = new ApiRequest(\"\", 1, \"\");\n req.requestInfo = em;\n this.emailService.SendEmail(req).subscribe(() => {\n this.userrequestdto.LoginId = this.newEmail;\n this.userrequestdto.OTP = otp;\n localStorage.setItem(\n \"registereduser\",\n JSON.stringify(this.userrequestdto)\n );\n this.showResendEmail = false;\n this.showGetCodeInput = false;\n });\n }\n\n newGuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(\n /[xy]/g,\n function (c) {\n var r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n }\n );\n }\n\n RegisterUser() {\n this.canRegisterDisabled = true;\n this.claims = new Claims();\n this.userrequest = new UserRequestBase();\n\n this.userrequest.RequestInfo = new Userrequestdto();\n this.userrequest.WebApiName = \"SoloRegister\";\n this.userrequest.WebApiVersion = 1;\n this.userrequest.RequestId = \"111\";\n this.userrequestdto.Password = this.password1;\n this.userrequest.RequestInfo = this.userrequestdto;\n\n this.authenticationService.register(this.userrequest).subscribe(\n (data) => {\n if (data.statusCode == 0) {\n if (localStorage.getItem(\"currentUser\")) {\n localStorage.removeItem(\"currentUser\");\n }\n\n this.claims.Token = data.responseInfo.token;\n this.claims.EmailId = data.responseInfo.emailId;\n this.claims.UserId = data.responseInfo.userId;\n this.claims.FinanceManager =\n ConvertNonAsciiToAscii.removeAccents(data.responseInfo.firstName) + \" \" + ConvertNonAsciiToAscii.removeAccents(data.responseInfo.lastName);\n this.claims.LoginId = data.responseInfo.emailId;\n this.claims.FMRoleType = 1;\n this.claims.isClaimOnWebAllowed =\n data.responseInfo.isClaimOnWebAllowed;\n this.claims.orgRoleId = data.responseInfo.orgRoleId;\n\n this.claimsService.updateClaims(this.claims);\n\n this.gotoNextStepEvent.emit();\n } else {\n this.toastr.error(data.errorInfo[0].message);\n }\n },\n (error) => {}\n );\n }\n\n onDigitInput(event) {\n let element;\n if (event.code !== \"Backspace\")\n element = event.srcElement.nextElementSibling;\n\n if (event.code === \"Backspace\")\n element = event.srcElement.previousElementSibling;\n\n if (element == null) return;\n else element.focus();\n }\n\n isInvalidNewEmail = false;\n isInvalidEmail() {\n this.isInvalidNewEmail = !EMAIL_REGEX.test(this.newEmail);\n }\n\n @ViewChild(\"digitOne\") digitOne: ElementRef;\n @ViewChild(\"password1Box\") password1Box: ElementRef;\n \n\n ngAfterViewInit() {\n this.digitOne.nativeElement.focus();\n setTimeout(() => {\n this.getCodeClass = \"underline color-red\";\n }, 15000);\n }\n\n ngOnDestroy() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n }\n}\n","

{{'step_3_5' | translate}}

\n

{{'details_about_your_org' | translate}}

\n
\n
\n
\n \n \n
\n
\n {{ \"label_Required\" | translate: param }}\n
\n
\n\n
\n
0\">\n \n \n \n\n
\n
0\">\n \n \n\n \"\"\n
\n
\n \n
","import { AfterViewInit, Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from \"@angular/core\";\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\nimport { IApiresponse } from \"src/app/_models\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ICountryCurrencyMappingResponse } from \"src/app/_models/country-currency-mapping/country-currency-mapping\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { CountryCurrencyMappingService } from \"src/app/_services/country-currency-mapping/country-currency-mapping.service\";\n\n@Component({\n selector: \"app-organisation-details\",\n templateUrl: \"./organisation-details.component.html\",\n styleUrls: [\"./organisation-details.component.scss\"],\n})\nexport class OrganisationDetailsComponent implements OnInit, AfterViewInit {\n @Output() gotoNextStepEvent = new EventEmitter();\n\n claims: Claims;\n countryList: ICountryCurrencyMappingResponse[] = [];\n\n orgName = \"\";\n assignedCountry: any;\n\n selectedCountryId: any;\n submitted = false;\n\n constructor(\n private claimsService: ClaimsService,\n private countryCurrencyMappingService: CountryCurrencyMappingService\n ) {\n this.claimsService.currentClaims.subscribe(\n (claims) => (this.claims = claims)\n );\n }\n\n ngOnInit(): void {\n this.getIpCliente();\n }\n\n onCountryChange() {\n this.assignedCountry = this.countryList.filter(\n (x) => x.countryId == this.selectedCountryId\n )[0];\n }\n\n onSubmit() {\n this.submitted = true;\n\n if (\n this.orgName.trim() === \"\" ||\n !this.assignedCountry ||\n this.selectedCountryId == 0\n ) {\n return;\n }\n\n this.claims.SelectedCountry = this.assignedCountry.countryId;\n this.claims.SelectedCountryName = this.assignedCountry.countryName;\n this.claims.SelectedCurrency = this.assignedCountry.currencyId;\n this.claims.SelectedCurrencyCode = this.assignedCountry.currencyCode;\n this.claims.SelectedCurrencyName = this.assignedCountry.currencyName;\n this.claims.CurrentOrganisationCurrency = this.assignedCountry.currencyCode;\n var currencyCode = this.claims.CurrentOrganisationCurrency;\n this.claims.CurrentOrganisationCurrencyCode = currencyCode;\n this.claims.OrgName = this.orgName.trim();\n this.claims.CurrencyCode = this.assignedCountry.currencyCode;\n this.claims.CurrencyIcon = this.assignedCountry.currencyIcon;\n this.claims.UserHomeCurrencyId = this.assignedCountry.currencyId;\n this.claims.UserHomeCurrencyCode = this.assignedCountry.currencyCode;\n this.claims.UserHomeCurrencyName = this.assignedCountry.currencyName;\n this.gotoNextStepEvent.emit();\n }\n\n gotoNextStep() {\n this.gotoNextStepEvent.emit();\n }\n\n async getIpCliente() {\n try {\n const response = await fetch(\n \"https://api.ipapi.is/?key=02107353329c92f8\"\n );\n const jsonData = await response.json();\n localStorage.setItem(\"countryName\", jsonData.location.country);\n this.fnGetCountryCurrencyMapping();\n } catch (error) {\n this.fnGetCountryCurrencyMapping();\n }\n\n }\n\n fnGetCountryCurrencyMapping() {\n this.countryCurrencyMappingService\n .GetCountryCurrencyMapping()\n .subscribe(\n (response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.countryList = response.responseInfo;\n\n if (localStorage.getItem(\"countryName\")) {\n var countryName = localStorage.getItem(\"countryName\");\n\n let countryDetails = this.countryList.find(\n (c) => c.countryName == countryName\n );\n if (countryDetails) {\n this.assignedCountry = countryDetails;\n this.selectedCountryId = this.assignedCountry.countryId;\n } else {\n let defaultCurrencyDetails = this.countryList.find(\n (c) => c.countryName == \"United Kingdom\"\n );\n if (defaultCurrencyDetails) {\n this.assignedCountry = defaultCurrencyDetails;\n this.selectedCountryId = this.assignedCountry.countryId;\n }\n }\n } else {\n let defaultCurrencyDetails = this.countryList.find(\n (c) => c.countryName == \"United Kingdom\"\n );\n if (defaultCurrencyDetails) {\n this.assignedCountry = defaultCurrencyDetails;\n this.selectedCountryId = this.assignedCountry.countryId;\n }\n }\n }\n }\n );\n }\n\n\n\n @ViewChild(\"orgNameField\") orgNameField: ElementRef;\n\n ngAfterViewInit() {\n this.orgNameField.nativeElement.focus();\n }\n}\n","

{{'step_4_5' | translate}}

\n

{{'invite_your_Employees' | translate}}

\n
\n
\n
\n \n \n
\n
\n {{ \"label_Required\" | translate }}\n
\n
\n\n
\n
\n \n \n\n
\n
\n \n \n
\n
\n {{ \"label_Required\" | translate }}\n
\n\n \n {{ \"label_Emailisnotvalid\" | translate }}\n
\n
\n {{\n \"claimant_exists\" | translate\n }}\n
\n
\n {{\n \"you_can_not_invite_yourself\" | translate\n }}\n
\n
\n {{\n \"email_is_already_in_invite_list\" | translate\n }}\n
\n
\n\n
\n
\n \n \n\n
\n
\n {{ \"label_Required\" | translate }}\n
\n
\n\n
\n
\n \n \n\n
\n
\n \n \n
\n
\n {{ \"label_Required\" | translate }}\n
\n\n
\n {{ \"label_Emailisnotvalid\" | translate }}\n
\n
\n {{\n \"claimant_exists\" | translate\n }}\n
\n
\n {{\n \"you_can_not_invite_yourself\" | translate\n }}\n
\n
\n {{\n \"email_is_already_in_invite_list\" | translate\n }}\n
\n
\n\n
\n
\n \n \n
\n
\n {{ \"label_Required\" | translate }}\n
\n
\n\n
\n
\n \n \n\n
\n
\n \n \n
\n
\n {{ \"label_Required\" | translate }}\n
\n\n
\n {{ \"label_Emailisnotvalid\" | translate }}\n
\n
\n {{\n \"claimant_exists\" | translate\n }}\n
\n
\n {{\n \"you_can_not_invite_yourself\" | translate\n }}\n
\n
\n {{\n \"email_is_already_in_invite_list\" | translate\n }}\n
\n
\n\n
\n
\n

\n {{ ErrorMessage }}\n

\n\n

\n {{ \"please_check_validations\" | translate }}\n

\n\n

\n {{ \"numeric_keys_not_allowed\" | translate }}\n

\n\n
\n\n \n \n\n","import {\n Component,\n EventEmitter,\n OnInit,\n Output,\n} from \"@angular/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { OAuthService } from \"angular-oauth2-oidc\";\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\nimport { first } from \"rxjs/operators\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport {\n CurrencyInfo,\n MileageInfo,\n OrganisationBasicSetup,\n OrganisationBasicSetupRequestInfo,\n Profileinfo,\n SetupInfo,\n} from \"src/app/_models/user/userrequestdto\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { VersionHistoryService } from \"src/app/_services/common/version-history.service\";\nimport { EMAIL_REGEX } from \"src/util/constants\";\n\n@Component({\n selector: \"app-invite-employees\",\n templateUrl: \"./invite-employees.component.html\",\n styleUrls: [\"./invite-employees.component.scss\"],\n})\nexport class InviteEmployeesComponent implements OnInit {\n @Output() gotoNextStepEvent = new EventEmitter();\n\n newAttribute: any = {};\n newAttribute1: any = {};\n newAttribute2: any = {};\n hasValidData = true;\n fieldArray: Array = [];\n claims: Claims;\n organisationBasicSetup: OrganisationBasicSetup;\n approverName: string;\n submitted = false;\n\n IsDuplicate: any;\n IsDuplicateGlobal: any;\n IsInValidEmailGlobal: any;\n IsMandatoryFieldMissing: boolean = false;\n display = \"none\";\n emailPattern = EMAIL_REGEX;\n IsInviteCanBeDisabled = false;\n constructor(\n private claimsService: ClaimsService,\n private ngxService: NgxUiLoaderService,\n private oauthService: OAuthService,\n private versionHistoryService: VersionHistoryService,\n private authenticationService: AuthenticationService,\n private translate: TranslateService\n ) {\n this.organisationBasicSetup = new OrganisationBasicSetup();\n this.claimsService.currentClaims.subscribe(\n (claims) => (this.claims = claims)\n );\n }\n\n ngOnInit(): void {\n this.bindVersionHistory();\n }\n\n gotoNextStep() {\n this.gotoNextStepEvent.emit();\n }\n\n validateInviteBeforeSubmit(inviteObject) {\n if (Object.keys(inviteObject).length === 0) {\n return false;\n }\n if (\n inviteObject.firstName != undefined &&\n inviteObject.firstName.trim() != \"\" &&\n inviteObject.email != undefined &&\n inviteObject.email != \"\" &&\n !inviteObject.isInvalidEmail &&\n !inviteObject.isUserBelongsToOtherOrganisation &&\n !inviteObject.isSelfInvite &&\n !inviteObject.IsDuplicate\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n validateAllInviteBeforeSubmit() {\n if (!this.validateInviteBeforeSubmit(this.newAttribute1)) {\n return false;\n }\n if (!this.validateInviteBeforeSubmit(this.newAttribute2)) {\n return false;\n }\n if (!this.validateInviteBeforeSubmit(this.newAttribute)) {\n return false;\n }\n\n for (var i = 0; i < this.fieldArray.length; i++) {\n if (!this.validateInviteBeforeSubmit(this.fieldArray[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n OnInviteClick() {\n this.submitted = true;\n this.hasValidData = this.validateAllInviteBeforeSubmit();\n if (!this.hasValidData) {\n return;\n }\n this.IsInviteCanBeDisabled = true;\n this.ngxService.start();\n this.organisationBasicSetup.RequestId = \"111\";\n this.organisationBasicSetup.WebApiName = \"OrganisationBasicSetup\";\n this.organisationBasicSetup.WebApiVersion = 1;\n this.organisationBasicSetup.RequestInfo =\n new OrganisationBasicSetupRequestInfo();\n this.organisationBasicSetup.RequestInfo.languageCode = \"en-US\";\n this.organisationBasicSetup.RequestInfo.loginId = this.claims.LoginId;\n this.organisationBasicSetup.RequestInfo.platform = 0;\n this.organisationBasicSetup.RequestInfo.userId =\n this.claims.UserId.toString();\n this.organisationBasicSetup.RequestInfo.setUpInfo = new SetupInfo();\n this.organisationBasicSetup.RequestInfo.setUpInfo.currencyInfo =\n new CurrencyInfo();\n this.organisationBasicSetup.RequestInfo.setUpInfo.currencyInfo.countryId =\n this.claims.SelectedCountry;\n this.organisationBasicSetup.RequestInfo.setUpInfo.currencyInfo.countryName =\n this.claims.SelectedCountryName;\n this.organisationBasicSetup.RequestInfo.setUpInfo.currencyInfo.currencyCode =\n this.claims.SelectedCurrencyCode;\n this.organisationBasicSetup.RequestInfo.setUpInfo.currencyInfo.currencyName =\n this.claims.SelectedCurrencyName;\n this.organisationBasicSetup.RequestInfo.setUpInfo.currencyInfo.currencyId =\n Number(this.claims.SelectedCurrency);\n this.organisationBasicSetup.RequestInfo.setUpInfo.inviteInfo = new Array();\n\n this.organisationBasicSetup.RequestInfo.setUpInfo.inviteInfo.push({\n firstName: this.newAttribute1.firstName,\n lastName:\n typeof this.newAttribute1.lastName === undefined\n ? \"\"\n : this.newAttribute1.lastName,\n email: this.newAttribute1.email,\n roleId: 2,\n vehicleType: 1,\n });\n\n this.organisationBasicSetup.RequestInfo.setUpInfo.inviteInfo.push({\n firstName: this.newAttribute2.firstName,\n lastName:\n typeof this.newAttribute2.lastName === undefined\n ? \"\"\n : this.newAttribute2.lastName,\n email: this.newAttribute2.email,\n roleId: 1,\n vehicleType: 1,\n });\n\n for (let i = 0; i < this.fieldArray.length; i++) {\n this.organisationBasicSetup.RequestInfo.setUpInfo.inviteInfo.push({\n firstName: this.fieldArray[i].firstName,\n lastName:\n typeof this.fieldArray[i].lastName === undefined\n ? \"\"\n : this.fieldArray[i].lastName,\n email: this.fieldArray[i].email,\n roleId: 1, //i == 0 ? 2 : 1\n vehicleType: 1,\n });\n }\n this.approverName =\n this.newAttribute1.firstName +\n \" \" +\n (typeof this.newAttribute1.lastName ? \"\" : this.newAttribute1.lastName);\n this.organisationBasicSetup.RequestInfo.setUpInfo.inviteInfo.push({\n firstName: this.newAttribute.firstName,\n lastName:\n typeof this.newAttribute.lastName === undefined\n ? \"\"\n : this.newAttribute.lastName,\n email: this.newAttribute.email,\n roleId: 1,\n vehicleType: 1,\n });\n\n this.claims.EmployeesInvited = this.fieldArray.length + 3;\n this.claims.ApproverName = this.approverName;\n\n this.organisationBasicSetup.RequestInfo.setUpInfo.mileageInfo =\n new MileageInfo();\n this.organisationBasicSetup.RequestInfo.setUpInfo.mileageInfo.mileageRate = 0.45;\n this.organisationBasicSetup.RequestInfo.setUpInfo.mileageInfo.mileageRateFor =\n this.translate.instant('label_four_wheeler');\n this.organisationBasicSetup.RequestInfo.setUpInfo.mileageInfo.fMVehicleType = 1;\n this.organisationBasicSetup.RequestInfo.setUpInfo.mileageInfo.mileageUOM = 1;\n this.organisationBasicSetup.RequestInfo.setUpInfo.mileageInfo.mileageRateFor4Wheeler = 0.45;\n this.organisationBasicSetup.RequestInfo.setUpInfo.mileageInfo.mileageRateFor2Wheeler = 0.25;\n this.organisationBasicSetup.RequestInfo.setUpInfo.profileInfo =\n new Profileinfo();\n this.organisationBasicSetup.RequestInfo.setUpInfo.profileInfo.organisationName =\n this.claims.OrgName;\n this.claims.OrganisationBasicSetup = JSON.stringify(\n this.organisationBasicSetup\n );\n this.claimsService.updateClaims(this.claims);\n\n this.authenticationService\n .organisationBasicSetup(this.organisationBasicSetup, this.claims.Token)\n .subscribe(\n (data) => {\n if (data.statusCode == 0) {\n this.claims.UserId = data.responseInfo.userId;\n this.claims.EmailId = data.responseInfo.emailId;\n this.claims.IsMarqueeOn = data.responseInfo.isMarqueeOn;\n this.claims.MarqueeText = data.responseInfo.marqueeText;\n this.claimsService.updateClaims(this.claims);\n\n this.authenticationService\n .organisationdetails(\n data.responseInfo.userId.toString(),\n data.responseInfo.emailId,\n this.claims.Token\n )\n .subscribe((orgData) => {\n if (orgData.statusCode == 0) {\n this.claims.OrgId = orgData.responseInfo[0].orgId;\n this.claims.CompanyApproverRule =\n orgData.responseInfo[0].companyApproverRule;\n this.claims.isUniversalImportAllowed =\n orgData.responseInfo[0].isUniversalImportAllowed;\n this.claims.RateType = orgData.responseInfo[0].rateType;\n this.claims.IsAPAutomationAllow =\n orgData.responseInfo[0].isAPAutomationAllow; \n this.claims.BandId = orgData.responseInfo[0].bandId;\n this.claims.TwoStepApproval =\n orgData.responseInfo[0].twoStepApproval;\n\n this.claims.isClaimOnWebAllowed =\n orgData.responseInfo[0].isClaimOnWebAllowed;\n this.claims.orgRoleId = orgData.responseInfo[0].roleId;\n this.claims.IsContainerAllowed = orgData.responseInfo[0].isContainerAllowed;\n\n this.claimsService.updateClaims(this.claims);\n //this.router.navigate([\"/onboard/onboardingsummary\"]);\n this.oauthService\n .fetchTokenUsingPasswordFlowAndLoadUserProfile(\n this.claims.LoginId,\n \"testpassword\"\n )\n .then(() => {\n // var tokenNew = this.oauthService.getAccessToken();\n // this.claims.Token = tokenNew;\n // this.authenticationService.setregisternav();\n // this.claims.IsFinanceManager = true;\n // this.claims.IsOnboardingCompleted = false;\n // this.claims.FMRoleType = 1;\n // this.claims.ApprovalRuleSetting = 1;\n // this.claimsService.updateClaims(this.claims);\n this.ngxService.stop();\n this.gotoNextStepEvent.emit();\n })\n .catch((err) => {\n console.error(\"error logging in\", err);\n });\n }\n });\n } else {\n }\n },\n (error) => {}\n );\n }\n\n bindVersionHistory() {\n if (!this.claims.appVersion) {\n this.versionHistoryService.getVersionHistory().subscribe((res: any) => {\n if (res.statusCode == 0) {\n let currentVersion = res.responseInfo.filter(\n (x) => x.isCurrentRelease\n )[0].versionNumber;\n\n this.claims.appVersion = currentVersion;\n this.claimsService.updateClaims(this.claims);\n }\n });\n }\n }\n\n onFirstNameChange(event: Event) {\n this.hasValidData = true;\n }\n\n ShowSpecialCharError: boolean = true;\n omit_special_char(event) {\n var k;\n k = event.charCode;\n this.ShowSpecialCharError = this.allowAcuteChar(event);\n return this.allowAcuteChar(event);\n }\n\n allowAcuteChar(e) {\n let regex = new RegExp(\"^[a-zA-ZÀ-úp{L} '-]+$\");\n let str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\n if (regex.test(str)) {\n return true;\n } else return false;\n }\n\n noWhiteSpaceAtTheStart(event) {\n if (/^\\s/.test(event.target.value.trim())) {\n event.target.value = \"\";\n }\n }\n\n onEmailFocusOut(event: Event) {\n var email = (event.target).value;\n\n if (this.IsDuplicate || !this.validateEmail(email)) {\n this.IsDuplicateGlobal = this.IsDuplicate;\n this.IsInValidEmailGlobal = !this.validateEmail(email);\n event.preventDefault();\n //(event.target).style.borderBottomColor = \"red\";\n // (event.target).focus();\n } else {\n // (event.target).style.borderBottomColor = \"#707070\";\n this.IsInValidEmailGlobal = !this.validateEmail(email);\n this.IsDuplicateGlobal = this.IsDuplicate;\n }\n }\n\n onEmailIdChange(event: Event) {\n this.hasValidData = true;\n this.validateAllInvitesWithObjects();\n }\n\n validateEmail(email) {\n if (email !== undefined) {\n return this.emailPattern.test(email);\n }\n }\n\n validateAllInvitesWithObjects() {\n this.validateAllInvites(this.newAttribute1);\n this.validateAllInvites(this.newAttribute2);\n this.validateAllInvites(this.newAttribute);\n\n for (var i = 0; i < this.fieldArray.length; i++) {\n this.validateAllInvites(this.fieldArray[i]);\n }\n }\n\n validateAllInvites(newAttributeObj) {\n if (newAttributeObj) {\n if (newAttributeObj.firstName) {\n newAttributeObj.firstName ==\n newAttributeObj.firstName.trim().replace(/ /g, \"\");\n }\n if (newAttributeObj.lastName) {\n newAttributeObj.lastName == newAttributeObj.lastName.replace(/ /g, \"\");\n }\n if (newAttributeObj.email == this.claims.EmailId) {\n newAttributeObj.isSelfInvite = true;\n } else {\n newAttributeObj.isSelfInvite = false;\n }\n\n if (newAttributeObj.email) {\n newAttributeObj.email == newAttributeObj.email.replace(/ /g, \"\");\n newAttributeObj.isInvalidEmail = !this.validateEmail(\n newAttributeObj.email\n );\n\n if (this.checkForDuplicateEmail(newAttributeObj.email)) {\n newAttributeObj.IsDuplicate = true;\n } else {\n newAttributeObj.IsDuplicate = false;\n }\n\n if (!newAttributeObj.isInvalidEmail) {\n this.authenticationService\n .checkForUserExistance(newAttributeObj.email)\n .pipe(first())\n .subscribe(\n (userData) => {\n if (\n userData.responseInfo != null &&\n newAttributeObj.email != this.claims.EmailId\n ) {\n newAttributeObj.isUserBelongsToOtherOrganisation = true;\n } else {\n newAttributeObj.isUserBelongsToOtherOrganisation = false;\n }\n },\n (error) => {}\n );\n }\n }\n }\n }\n\n checkForDuplicateEmail(email) {\n var iCount = 0;\n if (this.newAttribute1.email == email) {\n iCount = iCount + 1;\n }\n\n if (this.newAttribute2.email == email) {\n iCount = iCount + 1;\n }\n if (this.newAttribute.email == email) {\n iCount = iCount + 1;\n }\n\n for (var i = 0; i < this.fieldArray.length; i++) {\n if (this.fieldArray[i].email == email) {\n iCount = iCount + 1;\n }\n }\n return iCount > 1;\n }\n}\n","import { Component, OnInit } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { OAuthService } from \"angular-oauth2-oidc\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\n\n@Component({\n selector: \"app-app-download\",\n templateUrl: \"./app-download.component.html\",\n styleUrls: [\"./app-download.component.scss\"],\n})\nexport class AppDownloadComponent implements OnInit {\n\n claims: Claims;\n \n constructor(\n private router: Router,\n private authenticationService: AuthenticationService,\n private claimsService: ClaimsService,\n private oauthService: OAuthService,\n private translate: TranslateService,\n ) {\n this.claimsService.currentClaims.subscribe(\n (claims) => (this.claims = claims)\n );\n }\n\n ngOnInit(): void {}\n\n goToDashboard() {\n var tokenNew = this.oauthService.getAccessToken();\n this.claims.Token = tokenNew;\n this.authenticationService.setregisternav();\n this.claims.IsFinanceManager = true;\n this.claims.IsOnboardingCompleted = false;\n this.claims.FMRoleType = 1;\n this.claims.ApprovalRuleSetting = 1;\n this.claimsService.updateClaims(this.claims);\n this.router.navigate([\"\"]);\n }\n}\n","

{{'step_5_5' | translate}}

\n

\n {{'onboarding_scan_qr_codes' | translate}}\n

\n
\n
\n
\n \"app\n
\n
\n \"\"\n \n
\n
\n \n
","
\n
\n \n
\n
\n
\n
\n \n \"Expense\n \n
\n
\n \n \n \n \n \n \n \n
\n

{{'footer_expenseOnDemand_AllRights' | translate}}

\n
\n \n
\n\n
\n","import { Component, OnInit } from \"@angular/core\";\nimport { Router } from \"@angular/router\";\n\n@Component({\n selector: \"app-onboarding\",\n templateUrl: \"./onboarding.component.html\",\n styleUrls: [\"./onboarding.component.scss\"],\n})\nexport class OnboardingComponent implements OnInit {\n constructor(private router: Router) {}\n isLoginActive: boolean = true;\n isSignupActive: boolean = false;\n isOTPVerificationActive = false;\n isOrgDetailActive = false;\n isInviteEmployeeActive = false;\n isAppDownloadActive = false;\n\n currentStep = 1;\n\n ngOnInit(): void {\n\n if(this.router.url.includes(\"register\")){\n this.navigateToRoute(2);\n }\n }\n\n navigateToRoute(step) {\n this.currentStep = step;\n switch (step) {\n case 1:\n this.isLoginActive = true;\n this.isSignupActive = false;\n this.isOTPVerificationActive = false;\n this.isOrgDetailActive = false;\n this.isInviteEmployeeActive = false;\n this.isAppDownloadActive = false;\n break;\n case 2:\n this.isLoginActive = false;\n this.isSignupActive = true;\n this.isOTPVerificationActive = false;\n this.isOrgDetailActive = false;\n this.isInviteEmployeeActive = false;\n this.isAppDownloadActive = false;\n break;\n case 3:\n this.isLoginActive = false;\n this.isSignupActive = false;\n this.isOTPVerificationActive = true;\n this.isOrgDetailActive = false;\n this.isInviteEmployeeActive = false;\n this.isAppDownloadActive = false;\n break;\n case 4:\n this.isLoginActive = false;\n this.isSignupActive = false;\n this.isOTPVerificationActive = false;\n this.isOrgDetailActive = true;\n this.isInviteEmployeeActive = false;\n this.isAppDownloadActive = false;\n break;\n case 5:\n this.isLoginActive = false;\n this.isSignupActive = false;\n this.isOTPVerificationActive = false;\n this.isOrgDetailActive = false;\n this.isInviteEmployeeActive = true;\n this.isAppDownloadActive = false;\n break;\n case 6:\n this.isLoginActive = false;\n this.isSignupActive = false;\n this.isOTPVerificationActive = false;\n this.isOrgDetailActive = false;\n this.isInviteEmployeeActive = false;\n this.isAppDownloadActive = true;\n break;\n }\n }\n\n\n gotoLogin() {\n this.navigateToRoute(1);\n }\n\n gotoSignUp() {\n this.navigateToRoute(2);\n }\n\n gotoOTPVerification() {\n this.navigateToRoute(3);\n }\n\n gotoOrgDetails() {\n this.navigateToRoute(4);\n }\n\n gotoInviteEmployee() {\n this.navigateToRoute(5);\n }\n gotoAppDownload() {\n this.navigateToRoute(6);\n }\n\n onLoginClick($event){\n this.navigateToRoute($event);\n }\n}\n","import { AbstractControl } from \"@angular/forms\";\nimport { EMAIL_REGEX } from \"src/util/constants\";\n\nexport function emailValidator(\n control: AbstractControl\n): { [key: string]: any } | null {\n var emailPattern = EMAIL_REGEX;\n const valid = (control.value == \"\" || emailPattern.test(control.value));\n return valid\n ? null\n : { invalidEmail: { valid: false, value: control.value } };\n}\n\nexport function numberValidator(\n control: AbstractControl\n): { [key: string]: any } | null {\n var numberPattern = /^\\d+$/;\n const valid = (control.value == \"\" || numberPattern.test(control.value));\n return valid\n ? null\n : { invalidNumber: { valid: false, value: control.value } };\n}\n","\n {{ 'label_watch_video' | translate:param }}\n \"\"\n\n\n
\n\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
","import { Component, OnInit, Input, ViewChild, ElementRef, OnDestroy } from '@angular/core';\nimport { Observable, Subscription } from 'rxjs';\n\n@Component({\n selector: 'app-video-icon',\n templateUrl: './video-icon.component.html',\n styleUrls: ['./video-icon.component.scss']\n})\nexport class VideoIconComponent implements OnInit, OnDestroy {\n param: any;\n check: any;\n UrlFeed: any;\n isShowClose: string;\n setClass: string;\n showLoading = true;\n\n private eventsSubscription: Subscription;\n\n @ViewChild('fileInput') fileInput: ElementRef;\n\n @Input() events: Observable;\n @Input('VideoUrl') VideoUrl: any;\n @Input() isIconHide: boolean = false;\n @Input() href: any;\n\n constructor() {\n\n }\n\n ngOnInit() {\n this.showLoading = true;\n if (this.events) {\n this.eventsSubscription = this.events.subscribe(() => this.showVideo());\n }\n }\n\n ngOnDestroy() {\n if (this.eventsSubscription) {\n this.eventsSubscription.unsubscribe();\n }\n }\n\n close(value) {\n this.check = value;\n var iframe = document.querySelector('iframe');\n\n if (iframe) {\n var iframeSrc = iframe.src;\n iframe.src = iframeSrc;\n\n }\n else {\n iframe.src = 'https://www.youtube.com/embed/AIblq657VTg?list=PLugzlMICZR8h2n2KFLeVT_J6EURDNWb_O';\n }\n\n }\n\n afterHidden(value) {\n // your code here\n this.check = value;\n var iframe = document.querySelector('iframe');\n\n if (iframe) {\n var iframeSrc = iframe.src;\n iframe.src = iframeSrc;\n\n }\n }\n\n IsvideoActive(value) {\n this.check = value;\n var iframe = document.querySelector('iframe');\n this.setClass = iframe.src.indexOf('vimeo') > -1 ? 'video-height-vimeo' : 'video-height-youtube';\n\n }\n\n showVideo() {\n this.IsvideoActive(true);\n let inputElement: HTMLElement = this.fileInput.nativeElement as HTMLElement;\n inputElement.click();\n }\n showVideofromother(value) {\n this.check = value;\n var iframe = document.querySelector('iframe');\n this.setClass = iframe.src.indexOf('vimeo') > -1 ? 'video-height-vimeo' : 'video-height-youtube';\n let inputElement: HTMLElement = this.fileInput.nativeElement as HTMLElement;\n inputElement.click();\n\n }\n\n onLoad() {\n setTimeout(() => {\n this.showLoading = false;\n }, 2500);\n \n }\n\n}\n\n\n\n","export const environment = {\n production: true,\n AppUrl: \"#{AppUrl}#\",\n GatewayUrl: \"#{GatewayUrl}#\",\n catalogApiUrl: \"#{CatalogApimUrl}#\",\n expenseApiUrl: \"#{ExpenseApimUrl}#\",\n exportApiUrl: \"#{ExportApimUrl}#\",\n billingApiUrl: \"#{BillingApimUrl}#\",\n docApiUrl: \"#{DocApimUrl}#\",\n notificationApiUrl: \"#{NotificationApimUrl}#\",\n functionsUrl: \"#{AzFunctionsUrl}#\",\n apimSubscriptionKey: \"#{ApimSubscriptionKey}#\",\n apimTraceEnabled: \"#{ApimTraceEnabled}#\",\n apimDevPortalUrl: \"#{ApimDevPortalUrl}#\",\n platform: \"web\",\n applicationVersion: 1.1,\n appId: \"environment_appId\",\n deviceId: \"environment_deviceId\",\n requestTimeStamp: 1569566525,\n requestId: \"HJJHG2627KJH\",\n StripePublicKey: \"#{StripePublicKey}#\",\n assistedSupportAmount_INR: 5000,\n assistedSupportAmount_GBP: 750,\n billingPlanRenewalDay: 180,\n pricingMinimumPrice_INR: 500,\n pricingMinimumPrice_GBP: 25,\n noOfRecords: 20,\n trialFeedbackDays: 15,\n instrumentationkey: \"#{AppInsightsInstrumentationKey}#\",\n googleApiKey: \"AIzaSyAZ9a2KC5kcWBZyhivHTmI8Mj2wxT3vJTU\",\n token_endpoint: \"#{IdentityServerUrl}#/connect/token\",\n authorization_endpoint: \"#{IdentityServerUrl}#/connect/authorize\",\n userinfo_endpoint: \"#{IdentityServerUrl}#/connect/userinfo\",\n end_session_endpoint: \"#{IdentityServerUrl}#/connect/endsession\",\n check_session_endpoint: \"#{IdentityServerUrl}#/connect/checksession\",\n revocation_endpoint: \"#{IdentityServerUrl}#/connect/revocation\",\n issuer: \"#{IdentityServerUrl}#\",\n openRoutes: [\n \"/dashboard/overview\",\n \"/mysubscription\",\n \"/comingsoon\",\n \"/pricing\",\n \"/support/support\",\n \"/universalimport\",\n ],\n restrictedRoutes: [\n \"/secondaryfm/list\",\n \"/secondaryfm/privilege\",\n \"/support/unsubscribe\",\n \"/settings\",\n \"/shoppingcartlist\",\n \"/shoppingcartreview\",\n \"/shoppingcartConfirmed\",\n \"/stripeAgreement\",\n \"/orgsetting\",\n ],\n fmNoPrivilegeRoutes: [\n \"/approver/appclaimant\",\n \"/claimant/expenselist\",\n \"/changepassword\",\n \"/approver/appnrreceipts\",\n \"/approver/appfcreceipts\",\n \"/approver/papproval\",\n \"/approver/advanceclaimantlist\",\n \"/claimant/claimantdashboard\",\n \"/claimant/claimantnrlist\",\n \"/claimant/claimantfclist\",\n \"/claimant/mymileagerate\",\n \"/orgsetting/claimantfcdashboard\",\n ],\n xeroClientId: \"#{XeroConfigurationClientId}#\",\n dateFormat: \"dd-MMM-yyyy\",\n defaultauth: \"fakebackend\",\n plaidClientId_UK: \"#{plaidClientId_UK}#\",\n plaidClientSecret_UK: \"#{plaidClientSecret_UK}#\",\n plaidClientId_US: \"#{plaidClientId_US}#\",\n plaidClientSecret_US: \"#{plaidClientSecret_US}#\",\n firebaseConfig: {\n apiKey: \"\",\n authDomain: \"\",\n databaseURL: \"\",\n projectId: \"\",\n storageBucket: \"\",\n messagingSenderId: \"\",\n appId: \"\",\n measurementId: \"\",\n },\n};\n","// export layout related constants\nexport const LAYOUT_VERTICAL = 'vertical';\n\nexport const LAYOUT_HORIZONTAL = 'horizontal';\n\nexport const LAYOUT_MODE = 'light';\n\nexport const LAYOUT_WIDTH = 'fluid';\n\nexport const LAYOUT_POSITION = 'fixed';\n\nexport const TOPBAR = 'light';\n\nexport const SIDEBAR_SIZE = 'default';\n\nexport const SIDEBAR_COLOR = 'dark';\n","import { Injectable } from '@angular/core';\nimport { Subject, Subscription } from 'rxjs';\nimport { map, filter } from 'rxjs/operators';\n\ninterface Event {\n type: string;\n payload?: any;\n}\n\ntype EventCallback = (payload: any) => void;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EventService {\n\n private handler = new Subject();\n constructor() { }\n\n /**\n * Broadcast the event\n * @param type type of event\n * @param payload payload\n */\n broadcast(type: string, payload = {}) {\n this.handler.next({ type, payload });\n }\n\n /**\n * Subscribe to event\n * @param type type of event\n * @param callback call back function\n */\n subscribe(type: string, callback: EventCallback): Subscription {\n return this.handler.pipe(\n filter(event => event.type === type)).pipe(\n map(event => event.payload))\n .subscribe(callback);\n }\n}\n","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport const NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n","import { Subject } from '../Subject';\nimport { innerFrom } from '../observable/innerFrom';\nimport { operate } from '../util/lift';\nimport { fromSubscribable } from '../observable/fromSubscribable';\nconst DEFAULT_CONFIG = {\n connector: () => new Subject(),\n};\nexport function connect(selector, config = DEFAULT_CONFIG) {\n const { connector } = config;\n return operate((source, subscriber) => {\n const subject = connector();\n innerFrom(selector(fromSubscribable(subject))).subscribe(subscriber);\n subscriber.add(source.subscribe(subject));\n });\n}\n","import { Observable } from '../Observable';\nexport function fromSubscribable(subscribable) {\n return new Observable((subscriber) => subscribable.subscribe(subscriber));\n}\n","/**\n * @license Angular v16.2.10\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, NgZone, ApplicationRef, makeEnvironmentProviders, PLATFORM_ID, APP_INITIALIZER, Injector, NgModule } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { defer, throwError, fromEvent, of, concat, Subject, NEVER, merge } from 'rxjs';\nimport { map, filter, switchMap, publish, take, tap, delay } from 'rxjs/operators';\n\nconst ERR_SW_NOT_SUPPORTED = 'Service workers are disabled or not supported by this browser';\nfunction errorObservable(message) {\n return defer(() => throwError(new Error(message)));\n}\n/**\n * @publicApi\n */\nclass NgswCommChannel {\n constructor(serviceWorker) {\n this.serviceWorker = serviceWorker;\n if (!serviceWorker) {\n this.worker = this.events = this.registration = errorObservable(ERR_SW_NOT_SUPPORTED);\n }\n else {\n const controllerChangeEvents = fromEvent(serviceWorker, 'controllerchange');\n const controllerChanges = controllerChangeEvents.pipe(map(() => serviceWorker.controller));\n const currentController = defer(() => of(serviceWorker.controller));\n const controllerWithChanges = concat(currentController, controllerChanges);\n this.worker = controllerWithChanges.pipe(filter((c) => !!c));\n this.registration = (this.worker.pipe(switchMap(() => serviceWorker.getRegistration())));\n const rawEvents = fromEvent(serviceWorker, 'message');\n const rawEventPayload = rawEvents.pipe(map(event => event.data));\n const eventsUnconnected = rawEventPayload.pipe(filter(event => event && event.type));\n const events = eventsUnconnected.pipe(publish());\n events.connect();\n this.events = events;\n }\n }\n postMessage(action, payload) {\n return this.worker\n .pipe(take(1), tap((sw) => {\n sw.postMessage({\n action,\n ...payload,\n });\n }))\n .toPromise()\n .then(() => undefined);\n }\n postMessageWithOperation(type, payload, operationNonce) {\n const waitForOperationCompleted = this.waitForOperationCompleted(operationNonce);\n const postMessage = this.postMessage(type, payload);\n return Promise.all([postMessage, waitForOperationCompleted]).then(([, result]) => result);\n }\n generateNonce() {\n return Math.round(Math.random() * 10000000);\n }\n eventsOfType(type) {\n let filterFn;\n if (typeof type === 'string') {\n filterFn = (event) => event.type === type;\n }\n else {\n filterFn = (event) => type.includes(event.type);\n }\n return this.events.pipe(filter(filterFn));\n }\n nextEventOfType(type) {\n return this.eventsOfType(type).pipe(take(1));\n }\n waitForOperationCompleted(nonce) {\n return this.eventsOfType('OPERATION_COMPLETED')\n .pipe(filter(event => event.nonce === nonce), take(1), map(event => {\n if (event.result !== undefined) {\n return event.result;\n }\n throw new Error(event.error);\n }))\n .toPromise();\n }\n get isEnabled() {\n return !!this.serviceWorker;\n }\n}\n\n/**\n * Subscribe and listen to\n * [Web Push\n * Notifications](https://developer.mozilla.org/en-US/docs/Web/API/Push_API/Best_Practices) through\n * Angular Service Worker.\n *\n * @usageNotes\n *\n * You can inject a `SwPush` instance into any component or service\n * as a dependency.\n *\n * \n *\n * To subscribe, call `SwPush.requestSubscription()`, which asks the user for permission.\n * The call returns a `Promise` with a new\n * [`PushSubscription`](https://developer.mozilla.org/en-US/docs/Web/API/PushSubscription)\n * instance.\n *\n * \n *\n * A request is rejected if the user denies permission, or if the browser\n * blocks or does not support the Push API or ServiceWorkers.\n * Check `SwPush.isEnabled` to confirm status.\n *\n * Invoke Push Notifications by pushing a message with the following payload.\n *\n * ```ts\n * {\n * \"notification\": {\n * \"actions\": NotificationAction[],\n * \"badge\": USVString,\n * \"body\": DOMString,\n * \"data\": any,\n * \"dir\": \"auto\"|\"ltr\"|\"rtl\",\n * \"icon\": USVString,\n * \"image\": USVString,\n * \"lang\": DOMString,\n * \"renotify\": boolean,\n * \"requireInteraction\": boolean,\n * \"silent\": boolean,\n * \"tag\": DOMString,\n * \"timestamp\": DOMTimeStamp,\n * \"title\": DOMString,\n * \"vibrate\": number[]\n * }\n * }\n * ```\n *\n * Only `title` is required. See `Notification`\n * [instance\n * properties](https://developer.mozilla.org/en-US/docs/Web/API/Notification#Instance_properties).\n *\n * While the subscription is active, Service Worker listens for\n * [PushEvent](https://developer.mozilla.org/en-US/docs/Web/API/PushEvent)\n * occurrences and creates\n * [Notification](https://developer.mozilla.org/en-US/docs/Web/API/Notification)\n * instances in response.\n *\n * Unsubscribe using `SwPush.unsubscribe()`.\n *\n * An application can subscribe to `SwPush.notificationClicks` observable to be notified when a user\n * clicks on a notification. For example:\n *\n * \n *\n * You can read more on handling notification clicks in the [Service worker notifications\n * guide](guide/service-worker-notifications).\n *\n * @see [Push Notifications](https://developers.google.com/web/fundamentals/codelabs/push-notifications/)\n * @see [Angular Push Notifications](https://blog.angular-university.io/angular-push-notifications/)\n * @see [MDN: Push API](https://developer.mozilla.org/en-US/docs/Web/API/Push_API)\n * @see [MDN: Notifications API](https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API)\n * @see [MDN: Web Push API Notifications best practices](https://developer.mozilla.org/en-US/docs/Web/API/Push_API/Best_Practices)\n *\n * @publicApi\n */\nclass SwPush {\n /**\n * True if the Service Worker is enabled (supported by the browser and enabled via\n * `ServiceWorkerModule`).\n */\n get isEnabled() {\n return this.sw.isEnabled;\n }\n constructor(sw) {\n this.sw = sw;\n this.pushManager = null;\n this.subscriptionChanges = new Subject();\n if (!sw.isEnabled) {\n this.messages = NEVER;\n this.notificationClicks = NEVER;\n this.subscription = NEVER;\n return;\n }\n this.messages = this.sw.eventsOfType('PUSH').pipe(map(message => message.data));\n this.notificationClicks =\n this.sw.eventsOfType('NOTIFICATION_CLICK').pipe(map((message) => message.data));\n this.pushManager = this.sw.registration.pipe(map(registration => registration.pushManager));\n const workerDrivenSubscriptions = this.pushManager.pipe(switchMap(pm => pm.getSubscription()));\n this.subscription = merge(workerDrivenSubscriptions, this.subscriptionChanges);\n }\n /**\n * Subscribes to Web Push Notifications,\n * after requesting and receiving user permission.\n *\n * @param options An object containing the `serverPublicKey` string.\n * @returns A Promise that resolves to the new subscription object.\n */\n requestSubscription(options) {\n if (!this.sw.isEnabled || this.pushManager === null) {\n return Promise.reject(new Error(ERR_SW_NOT_SUPPORTED));\n }\n const pushOptions = { userVisibleOnly: true };\n let key = this.decodeBase64(options.serverPublicKey.replace(/_/g, '/').replace(/-/g, '+'));\n let applicationServerKey = new Uint8Array(new ArrayBuffer(key.length));\n for (let i = 0; i < key.length; i++) {\n applicationServerKey[i] = key.charCodeAt(i);\n }\n pushOptions.applicationServerKey = applicationServerKey;\n return this.pushManager.pipe(switchMap(pm => pm.subscribe(pushOptions)), take(1))\n .toPromise()\n .then(sub => {\n this.subscriptionChanges.next(sub);\n return sub;\n });\n }\n /**\n * Unsubscribes from Service Worker push notifications.\n *\n * @returns A Promise that is resolved when the operation succeeds, or is rejected if there is no\n * active subscription or the unsubscribe operation fails.\n */\n unsubscribe() {\n if (!this.sw.isEnabled) {\n return Promise.reject(new Error(ERR_SW_NOT_SUPPORTED));\n }\n const doUnsubscribe = (sub) => {\n if (sub === null) {\n throw new Error('Not subscribed to push notifications.');\n }\n return sub.unsubscribe().then(success => {\n if (!success) {\n throw new Error('Unsubscribe failed!');\n }\n this.subscriptionChanges.next(null);\n });\n };\n return this.subscription.pipe(take(1), switchMap(doUnsubscribe)).toPromise();\n }\n decodeBase64(input) {\n return atob(input);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.10\", ngImport: i0, type: SwPush, deps: [{ token: NgswCommChannel }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.2.10\", ngImport: i0, type: SwPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.10\", ngImport: i0, type: SwPush, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: NgswCommChannel }]; } });\n\n/**\n * Subscribe to update notifications from the Service Worker, trigger update\n * checks, and forcibly activate updates.\n *\n * @see {@link guide/service-worker-communications Service worker communication guide}\n *\n * @publicApi\n */\nclass SwUpdate {\n /**\n * True if the Service Worker is enabled (supported by the browser and enabled via\n * `ServiceWorkerModule`).\n */\n get isEnabled() {\n return this.sw.isEnabled;\n }\n constructor(sw) {\n this.sw = sw;\n if (!sw.isEnabled) {\n this.versionUpdates = NEVER;\n this.available = NEVER;\n this.activated = NEVER;\n this.unrecoverable = NEVER;\n return;\n }\n this.versionUpdates = this.sw.eventsOfType([\n 'VERSION_DETECTED',\n 'VERSION_INSTALLATION_FAILED',\n 'VERSION_READY',\n 'NO_NEW_VERSION_DETECTED',\n ]);\n this.available = this.versionUpdates.pipe(filter((evt) => evt.type === 'VERSION_READY'), map(evt => ({\n type: 'UPDATE_AVAILABLE',\n current: evt.currentVersion,\n available: evt.latestVersion,\n })));\n this.activated = this.sw.eventsOfType('UPDATE_ACTIVATED');\n this.unrecoverable = this.sw.eventsOfType('UNRECOVERABLE_STATE');\n }\n /**\n * Checks for an update and waits until the new version is downloaded from the server and ready\n * for activation.\n *\n * @returns a promise that\n * - resolves to `true` if a new version was found and is ready to be activated.\n * - resolves to `false` if no new version was found\n * - rejects if any error occurs\n */\n checkForUpdate() {\n if (!this.sw.isEnabled) {\n return Promise.reject(new Error(ERR_SW_NOT_SUPPORTED));\n }\n const nonce = this.sw.generateNonce();\n return this.sw.postMessageWithOperation('CHECK_FOR_UPDATES', { nonce }, nonce);\n }\n /**\n * Updates the current client (i.e. browser tab) to the latest version that is ready for\n * activation.\n *\n * In most cases, you should not use this method and instead should update a client by reloading\n * the page.\n *\n *
\n *\n * Updating a client without reloading can easily result in a broken application due to a version\n * mismatch between the [application shell](guide/glossary#app-shell) and other page resources,\n * such as [lazy-loaded chunks](guide/glossary#lazy-loading), whose filenames may change between\n * versions.\n *\n * Only use this method, if you are certain it is safe for your specific use case.\n *\n *
\n *\n * @returns a promise that\n * - resolves to `true` if an update was activated successfully\n * - resolves to `false` if no update was available (for example, the client was already on the\n * latest version).\n * - rejects if any error occurs\n */\n activateUpdate() {\n if (!this.sw.isEnabled) {\n return Promise.reject(new Error(ERR_SW_NOT_SUPPORTED));\n }\n const nonce = this.sw.generateNonce();\n return this.sw.postMessageWithOperation('ACTIVATE_UPDATE', { nonce }, nonce);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.10\", ngImport: i0, type: SwUpdate, deps: [{ token: NgswCommChannel }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.2.10\", ngImport: i0, type: SwUpdate }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.10\", ngImport: i0, type: SwUpdate, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: NgswCommChannel }]; } });\n\n/*!\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this 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 SCRIPT = new InjectionToken('NGSW_REGISTER_SCRIPT');\nfunction ngswAppInitializer(injector, script, options, platformId) {\n return () => {\n if (!(isPlatformBrowser(platformId) && ('serviceWorker' in navigator) &&\n options.enabled !== false)) {\n return;\n }\n // Wait for service worker controller changes, and fire an INITIALIZE action when a new SW\n // becomes active. This allows the SW to initialize itself even if there is no application\n // traffic.\n navigator.serviceWorker.addEventListener('controllerchange', () => {\n if (navigator.serviceWorker.controller !== null) {\n navigator.serviceWorker.controller.postMessage({ action: 'INITIALIZE' });\n }\n });\n let readyToRegister$;\n if (typeof options.registrationStrategy === 'function') {\n readyToRegister$ = options.registrationStrategy();\n }\n else {\n const [strategy, ...args] = (options.registrationStrategy || 'registerWhenStable:30000').split(':');\n switch (strategy) {\n case 'registerImmediately':\n readyToRegister$ = of(null);\n break;\n case 'registerWithDelay':\n readyToRegister$ = delayWithTimeout(+args[0] || 0);\n break;\n case 'registerWhenStable':\n readyToRegister$ = !args[0] ? whenStable(injector) :\n merge(whenStable(injector), delayWithTimeout(+args[0]));\n break;\n default:\n // Unknown strategy.\n throw new Error(`Unknown ServiceWorker registration strategy: ${options.registrationStrategy}`);\n }\n }\n // Don't return anything to avoid blocking the application until the SW is registered.\n // Also, run outside the Angular zone to avoid preventing the app from stabilizing (especially\n // given that some registration strategies wait for the app to stabilize).\n // Catch and log the error if SW registration fails to avoid uncaught rejection warning.\n const ngZone = injector.get(NgZone);\n ngZone.runOutsideAngular(() => readyToRegister$.pipe(take(1)).subscribe(() => navigator.serviceWorker.register(script, { scope: options.scope })\n .catch(err => console.error('Service worker registration failed with:', err))));\n };\n}\nfunction delayWithTimeout(timeout) {\n return of(null).pipe(delay(timeout));\n}\nfunction whenStable(injector) {\n const appRef = injector.get(ApplicationRef);\n return appRef.isStable.pipe(filter(stable => stable));\n}\nfunction ngswCommChannelFactory(opts, platformId) {\n return new NgswCommChannel(isPlatformBrowser(platformId) && opts.enabled !== false ? navigator.serviceWorker :\n undefined);\n}\n/**\n * Token that can be used to provide options for `ServiceWorkerModule` outside of\n * `ServiceWorkerModule.register()`.\n *\n * You can use this token to define a provider that generates the registration options at runtime,\n * for example via a function call:\n *\n * {@example service-worker/registration-options/module.ts region=\"registration-options\"\n * header=\"app.module.ts\"}\n *\n * @publicApi\n */\nclass SwRegistrationOptions {\n}\n/**\n * @publicApi\n *\n * Sets up providers to register the given Angular Service Worker script.\n *\n * If `enabled` is set to `false` in the given options, the module will behave as if service\n * workers are not supported by the browser, and the service worker will not be registered.\n *\n * Example usage:\n * ```ts\n * bootstrapApplication(AppComponent, {\n * providers: [\n * provideServiceWorker('ngsw-worker.js')\n * ],\n * });\n * ```\n */\nfunction provideServiceWorker(script, options = {}) {\n return makeEnvironmentProviders([\n SwPush,\n SwUpdate,\n { provide: SCRIPT, useValue: script },\n { provide: SwRegistrationOptions, useValue: options },\n {\n provide: NgswCommChannel,\n useFactory: ngswCommChannelFactory,\n deps: [SwRegistrationOptions, PLATFORM_ID]\n },\n {\n provide: APP_INITIALIZER,\n useFactory: ngswAppInitializer,\n deps: [Injector, SCRIPT, SwRegistrationOptions, PLATFORM_ID],\n multi: true,\n },\n ]);\n}\n\n/**\n * @publicApi\n */\nclass ServiceWorkerModule {\n /**\n * Register the given Angular Service Worker script.\n *\n * If `enabled` is set to `false` in the given options, the module will behave as if service\n * workers are not supported by the browser, and the service worker will not be registered.\n */\n static register(script, options = {}) {\n return {\n ngModule: ServiceWorkerModule,\n providers: [provideServiceWorker(script, options)],\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.2.10\", ngImport: i0, type: ServiceWorkerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.2.10\", ngImport: i0, type: ServiceWorkerModule }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.2.10\", ngImport: i0, type: ServiceWorkerModule, providers: [SwPush, SwUpdate] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.2.10\", ngImport: i0, type: ServiceWorkerModule, decorators: [{\n type: NgModule,\n args: [{ providers: [SwPush, SwUpdate] }]\n }] });\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n// This file only reexports content of the `src` folder. Keep it that way.\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { ServiceWorkerModule, SwPush, SwRegistrationOptions, SwUpdate, provideServiceWorker };\n","import { Subject } from '../Subject';\nimport { multicast } from './multicast';\nimport { connect } from './connect';\nexport function publish(selector) {\n return selector ? (source) => connect(selector)(source) : (source) => multicast(new Subject())(source);\n}\n","import { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { isFunction } from '../util/isFunction';\nimport { connect } from './connect';\nexport function multicast(subjectOrSubjectFactory, selector) {\n const subjectFactory = isFunction(subjectOrSubjectFactory) ? subjectOrSubjectFactory : () => subjectOrSubjectFactory;\n if (isFunction(selector)) {\n return connect(selector, {\n connector: subjectFactory,\n });\n }\n return (source) => new ConnectableObservable(source, subjectFactory);\n}\n","
\n
\n
\n
\n
\n
\n

{{ \"basic_function_trial_end_alert_title\" | translate: param }}

\n
\n
\n
\n
    \n
  • \n {{ \"trial_end_alert_note1\" | translate: param }} {{this.explorationDays}} {{ \"trial_end_alert_note2\" | translate: param }}\n
  • \n
  • \n {{ \"trial_end_alert_note3\" | translate: param }}\n
  • \n
  • \n {{ \"trial_end_alert_note4\" | translate: param }} {{ this.datePipe.transform(basicFunctionTrialGraceEndDate) }}\n
  • \n
  • \n {{ \"trial_end_alert_note5\" | translate: param }} {{ datePipe.transform(basicFunctionTrialEndDate) }}\n
  • \n
\n
\n
\n
\n {{ \"trial_end_alert_subtitle\" | translate: param }}\n
\n
\n {{ \"trial_end_alert_subnote1\" | translate: param }} {{ this.datePipe.transform(basicFunctionTrialStartDate) }}\n
\n
\n {{ \"trial_end_alert_subnote2\" | translate: param }} {{ this.datePipe.transform(basicFunctionTrialEndDate) }} {{ \"trial_end_alert_subnote3\" | translate: param }}\n
\n
\n
\n \n \n
\n
\n
\n
\n\n\n\n \n","import { Component, OnInit } from \"@angular/core\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { OrgBasicFunctionSubscriptionService } from \"src/app/_services/billing-pricing/Org-BasicFunction-Subscription.service\";\nimport { DateFormatPipe } from \"src/app/_helpers/pipe.module\";\nimport { IApiRequest,ApiRequest } from \"src/app/_models\";\nimport { first } from \"rxjs/operators\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { OrgSubscription } from \"src/app/_models/common/OrgSubscription\";\nimport { PaymentCustomerAndIntentIdResponse } from \"src/app/_models/stripe/PaymentCustomerAndIntentIdResponse\";\nimport { SaveOrderCartDetailsService } from \"src/app/_services/cart-order/SaveOrder-Cart-Details.service\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { environment } from \"src/environments/environment\";\n\n\n@Component({\n selector: \"app-basicFunctionTrialEndsAlertPanel\",\n templateUrl: \"./basicFunctionTrialEndsAlertPanel.component.html\"\n})\nexport class BasicFunctionTrialEndsAlertPanelComponent implements OnInit {\n param: any;\n claims: Claims;\n organisationId: number;\n isBasicFunctionPurchased: boolean = false;\n basicFunctionRemainingTrialDays: number;\n basicFunctionTrialDays: number;\n nevigationDetailsRequest: IApiRequest;\n nevigationDetailsResponse: PaymentCustomerAndIntentIdResponse;\n basicFunctionTrialGraceDays: number;\n explorationDays: number;\n basicFunctionTrialStartDate: number;\n basicFunctionTrialEndDate: number;\n basicFunctionTrialGraceEndDate: number;\n showStripPanel: boolean = false;\n\n constructor(\n private claimsService: ClaimsService,\n private toastr: ToastrService,\n private router: Router,\n private route: ActivatedRoute,\n private orgBasicFunctionSubscriptionService: OrgBasicFunctionSubscriptionService,\n private saveOrderCartDetailsService: SaveOrderCartDetailsService,\n private authenticationService: AuthenticationService,\n public datePipe: DateFormatPipe,\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n this.organisationId = this.claims.OrgId;\n });\n }\n\n ngOnInit() {\n if (this.route.snapshot.queryParams[\"sessionId\"]) {\n this.fnShowStripePanel(); \n }\n this.fnGetOrgBasicFunctionSubscriptionTrialDetails();\n }\n \n fnGetOrgBasicFunctionSubscriptionTrialDetails() {\n this.orgBasicFunctionSubscriptionService\n .GetOrgBasicFunctionSubscriptionTrialDetails(this.organisationId)\n .subscribe((res: any) => {\n if (res.responseInfo != null) {\n this.basicFunctionRemainingTrialDays = res.responseInfo.basicFunctionRemainingTrialDays;\n this.basicFunctionTrialDays = res.responseInfo.basicFunctionTrialDays;\n this.isBasicFunctionPurchased = res.responseInfo.isBasicFunctionPurchased;\n this.basicFunctionTrialGraceDays = res.responseInfo.basicFunctionTrialGraceDays;\n this.explorationDays = res.responseInfo.explorationDays;\n this.basicFunctionTrialStartDate = res.responseInfo.basicFunctionTrialStartDate;\n this.basicFunctionTrialEndDate = res.responseInfo.basicFunctionTrialEndDate;\n this.basicFunctionTrialGraceEndDate = res.responseInfo.basicFunctionTrialGraceEndDate;\n }\n });\n }\n\nfnShowStripePanel() {\n this.showStripPanel = true;\n }\n\nfnCloseStripePanel(isClose: boolean) {\n if (isClose) {\n this.showStripPanel = false;\n }\n}\n\nfnSubscribeNow(){\n\n let request = new ApiRequest(\"FindNavigationForPayment\", environment.applicationVersion, environment.requestId);\n let requestInfo = new OrgSubscription(this.claims.OrgId);\n request.requestInfo = requestInfo;\n\n this.saveOrderCartDetailsService.FindNavigationForPayment(request)\n .subscribe((data) => {\n if (data.statusCode == 0) {\n if (data.responseInfo.isFound) {\n localStorage.setItem(\"IsFromBasicFunctionSubscriptionStrip\",JSON.stringify(true));\n this.router.navigate([\"/settings\"]);\n } else {\n localStorage.setItem(\"IsFromBasicFunctionSubscription\",JSON.stringify(true));\n this.fnShowStripePanel();\n }\n } else {\n this.toastr.error(data.errorInfo[0].message);\n }\n },\n (error) => {\n this.toastr.error(error);\n }\n );\n }\n\n logout() {\n // remove user from local storage to log user out\n this.authenticationService.logout();\n this.router.navigate([\"login\"]);\n }\n}\n","
\n\n
\n
\n
\n
\n

{{'Notifications' | translate}}

\n
\n
\n \n \n
\n
\n
\n
0\">\n
\n
0\">\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
    = 5 }\">\n
  • \n
    \n

    \n \n \n \n

    \n

    \n \n \n

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n

    \n
    \n
    \n \n
    \n
  • \n
\n
\n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n\n
\n

\n {{ 'NotificationsNotAvailable' | translate }}\n

\n
\n
\n
\n
\n\n\n\n\n\n","import {\n Component,\n EventEmitter,\n OnDestroy,\n OnInit,\n Output,\n} from \"@angular/core\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { Router } from \"@angular/router\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { NotificationService } from \"src/app/_services/common/notification.service\";\nimport {\n NotificationGroup,\n Notification,\n NotificationActionType,\n} from \"src/app/_models/common/notification\";\nimport { Subscription } from \"rxjs\";\nimport { OrganisationFunctionService } from \"src/app/_services/organisation-setting/organisation-function.service\";\nimport { RSAHelper } from \"src/app/_helpers/RSAHelper\";\nimport {\n animate,\n sequence,\n style,\n transition,\n trigger,\n} from \"@angular/animations\";\nimport { BackgroundTaskStatus, BackgroundTaskStatusEnum } from \"src/app/_models/common/background-task\";\nimport {\n ApprovalRuleSetting,\n CommonStatusEnum,\n FunctionPackageEnum,\n IImportEmployeeResponse,\n ImportEmployeesResponseEnum,\n UniversalImportTemplateEnum,\n UserTypeEnum,\n} from \"src/app/_models\";\nimport { BackgroundTaskNotificationBody, BackgroundTaskNotificationHeaders } from \"src/app/common/commonvariables\";\nimport { EODDateFormatPipe } from \"src/app/_helpers/pipe.module\";\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\nimport { CheckListData, CheckListPanelModel, StorageData } from \"src/app/_models/universal-importer/universal-importer\";\n\n@Component({\n selector: \"notification-panel\",\n templateUrl: \"./notification-panel.component.html\",\n styleUrls: [\"./notification-panel.component.scss\"],\n animations: [\n trigger(\"anim\", [\n transition(\"* => void\", [\n style({\n height: \"*\",\n opacity: \"1\",\n transform: \"translateX(0)\",\n \"box-shadow\": \"0 1px 4px 0 rgba(0, 0, 0, 0.3)\",\n }),\n sequence([\n animate(\n \".25s ease\",\n style({\n height: \"*\",\n opacity: \".2\",\n transform: \"translateX(20px)\",\n \"box-shadow\": \"none\",\n })\n ),\n animate(\n \".1s ease\",\n style({\n height: \"0\",\n opacity: 0,\n transform: \"translateX(20px)\",\n \"box-shadow\": \"none\",\n })\n ),\n ]),\n ]),\n transition(\"void => true\", [\n style({\n height: \"0\",\n opacity: \"0\",\n transform: \"translateX(20px)\",\n \"box-shadow\": \"none\",\n }),\n sequence([\n animate(\n \".1s ease\",\n style({\n height: \"*\",\n opacity: \".2\",\n transform: \"translateX(20px)\",\n \"box-shadow\": \"none\",\n })\n ),\n animate(\n \".35s ease\",\n style({\n height: \"*\",\n opacity: 1,\n transform: \"translateX(0)\",\n \"box-shadow\": \"0 1px 4px 0 rgba(0, 0, 0, 0.3)\",\n })\n ),\n ]),\n ]),\n ]),\n ],\n})\nexport class NotificationPanelComponent implements OnInit, OnDestroy {\n @Output()\n notificationsCountChange = new EventEmitter();\n\n @Output()\n closePanel = new EventEmitter();\n\n @Output()\n openPanel = new EventEmitter();\n\n claims: Claims;\n activeNotificationIds: string[] = [];\n notificationGroups: NotificationGroup[] = [];\n notificationRequestStarted: boolean = false;\n availableFunctions: any;\n currentExpandedGroupKey: string = \"\";\n internalGroupClicks: string[] = [];\n\n claimSubscription: Subscription;\n notificationSubscription: Subscription;\n\n NotificationActionTooltip: string;\n DownloadTooltip: string;\n ExportFailedMessage: string[] = [];\n ExportFailedDisplayText: string;\n DownloadButton: boolean = false;\n backgroundTaskNotificationHeaders = BackgroundTaskNotificationHeaders;\n constructor(\n private translate: TranslateService,\n private router: Router,\n private claimsService: ClaimsService,\n private notificationService: NotificationService,\n private organisationFunctionService: OrganisationFunctionService,\n private eodDate: EODDateFormatPipe,\n private sanitizer: DomSanitizer\n ) {\n this.NotificationActionTooltip = this.translate.instant(\n \"NotificationActionTooltip\"\n );\n this.DownloadTooltip = this.translate.instant(\"download\");\n\n this.claimSubscription = this.claimsService.currentClaims.subscribe(\n (claims) => {\n this.claims = claims;\n if (claims && claims.UserId) {\n if (!this.notificationRequestStarted) {\n this.notificationRequestStarted = true;\n this.getNotifications();\n }\n } else {\n this.notificationRequestStarted = false;\n }\n }\n );\n this.notificationSubscription = this.notificationService\n .onNotificationRaised()\n .subscribe((notification) => {\n if (notification.functionId > 0) {\n this.addNotificationToPanel(notification, false);\n }\n });\n }\n\n ngOnInit() {\n this.ExportFailedMessage = this.translate\n .instant(\"export_expense_fail_message\")\n .split(\";\");\n }\n\n ngOnDestroy() {\n this.claimSubscription.unsubscribe();\n this.notificationSubscription.unsubscribe();\n }\n currentJobId: string = '';\n \n getNotifications() {\n this.organisationFunctionService\n .getAvailableFunctionsForOrganisation(this.claims.OrgId, false)\n .subscribe((data) => {\n this.availableFunctions = data;\n\n this.notificationService.GetNotificationsForUser().subscribe((data) => {\n this.notificationService.startConnection();\n if (data && data.length > 0) {\n data.forEach((notification) => {\n if (notification.functionId > 0) {\n this.addNotificationToPanel(notification, true);\n }\n });\n\n if (\n this.notificationService.openNotificationPanel &&\n this.activeNotificationIds.length > 0\n ) {\n this.showNotificationPanel();\n this.notificationService.openNotificationPanel = false;\n }\n }\n });\n });\n }\n\n removeNotificationFromPanel(notification: Notification) {\n const notificationGroup = this.notificationGroups.filter(function (g) {\n return (\n g.notifications.filter(function (n) {\n return n.id == notification.id;\n }).length > 0\n );\n });\n if (notificationGroup.length > 0) {\n notificationGroup[0].notifications =\n notificationGroup[0].notifications.filter(function (n) {\n return n.id != notification.id;\n });\n this.notificationGroups = this.notificationGroups.filter(function (g) {\n return g.notifications.length > 0;\n });\n }\n }\n\n addNotificationToPanel(notification: Notification, isInitialLoad: boolean) {\n\n if (\n this.claims.orgRoleId == UserTypeEnum.FinanceManager ||\n (this.claims.orgRoleId == UserTypeEnum.Approver &&\n notification.text.header == \"ApproverApprovingExpensesHeader\")\n ) {\n const notificationTime = this.getDisplayTime(notification);\n\n notification.iconUrl = this.getIconUrl(notification);\n\n if (notification.action.type == NotificationActionType.BackgroundJob) {\n notification.snoozeBtnVisible = false;\n notification.actionsBtnVisible =\n notification.jobStatus != BackgroundTaskStatusEnum.NotStarted &&\n notification.jobStatus != BackgroundTaskStatusEnum.InProgress;\n\n if (notification.text.params.length > 3) {\n if (\n parseInt(notification.text.params[3]) == 100 &&\n notification.jobStatus == BackgroundTaskStatusEnum.NotStarted\n ) {\n notification.actionsBtnVisible = true;\n notification.jobStatus = BackgroundTaskStatusEnum.Failed;\n }\n }\n\n let job = this.getJobInfo(notification.jobStatus);\n\n if (notification.functionId == FunctionPackageEnum.ExportReport) {\n if (\n notification.text.params.length > 3 &&\n parseInt(notification.text.params[3]) == 100 &&\n notification.jobStatus == BackgroundTaskStatusEnum.InProgress\n ) {\n job.status = this.translate.instant(\"export_preparing_export_file\");\n }\n }\n\n if (\n notification.jobStatus != BackgroundTaskStatusEnum.NotStarted &&\n notification.jobStatus != BackgroundTaskStatusEnum.InProgress\n ) {\n if (notification.functionId == FunctionPackageEnum.ExportReport) {\n if (notification.jobStatus == BackgroundTaskStatusEnum.Success) {\n job.status = this.translate.instant(\"export_job_completed\");\n }\n if (notification.jobStatus != BackgroundTaskStatusEnum.Success) {\n job.status = this.translate.instant(\"export_failed\");\n var displayFailText = '
    ';\n this.ExportFailedMessage.forEach((fm) => {\n displayFailText =\n displayFailText +\n '
  • ';\n displayFailText = displayFailText + fm + \"
  • \";\n });\n displayFailText = `${displayFailText}
`;\n }\n }\n }\n\n\n if (displayFailText != undefined) {\n notification.displayText = displayFailText;\n notification.failNotification = true;\n notification.displayText = displayFailText + ` \n \n ${notificationTime} -\n Action by ${this.claims.FinanceManager}\n `\n if (notification.privilegeId == 4 || notification.privilegeId == 5) {\n notification.displayText = notification.displayText + `\n \n The failed expenses will be available in the Export Report section for re-export.\n `;\n }\n\n notification.displayText = displayFailText + ` Note -\n `+ this.translate.instant(\"export_15_mins_download\") + `\n \n `;\n\n } else {\n notification.displayText = `\n ${this.getDisplayText(\n notification.text.key,\n notification.text.params\n )}\n \n ${this.getDisplayText(job.status, notification.text.params)}\n \n \n ${notificationTime} -\n ${this.getDisplayText(\n \"NotificationJobActionBy\",\n notification.text.params\n )}\n \n `;\n\n if (notification.jobStatus == BackgroundTaskStatusEnum.Success && notification.functionId == FunctionPackageEnum.ExportReport) {\n notification.displayText = notification.displayText + ` Note -\n `+ this.translate.instant(\"export_15_mins_download\") + `\n \n `\n }\n }\n } else {\n notification.snoozeBtnVisible = true;\n notification.actionsBtnVisible = true;\n\n notification.displayText = `\n ${this.getDisplayText(\n notification.text.key,\n notification.text.params\n )}\n ${notificationTime}\n `;\n }\n\n let isNewNotification = false;\n const headerText = this.getDisplayText(\n notification.text.header,\n notification.text.params\n ).replace(\"-\", \"\");\n\n const header = notification.text.header;\n const existingGroup = this.notificationGroups.filter(\n (g) => g.header === header\n );\n if (existingGroup.length > 0) {\n var existingNotification = existingGroup[0].notifications.find(\n (n) => n.id === notification.id\n );\n if (!existingNotification) {\n isNewNotification = true;\n existingGroup[0].notifications.push(notification);\n } else {\n existingNotification.isNew = notification.isNew;\n existingNotification.displayText = notification.displayText;\n existingNotification.actionsBtnVisible =\n notification.actionsBtnVisible;\n existingNotification.action.route = notification.action.route;\n }\n existingGroup[0].notifications.sort(this.sortAddOnDesc);\n existingGroup[0].unreadCount = existingGroup[0].notifications.filter(\n (n) => n.isNew\n ).length;\n existingGroup[0].isUnread = existingGroup[0].unreadCount > 0;\n } else {\n isNewNotification = true;\n this.notificationGroups.splice(\n 0,\n 0,\n new NotificationGroup(\n header,\n headerText,\n [notification],\n notification.isNew ? 1 : 0,\n notification.isNew\n )\n );\n }\n\n if (\n notification.isNew &&\n (isNewNotification || notification.actionsBtnVisible)\n ) {\n this.addActiveNotification(notification);\n }\n if (!isInitialLoad && notification.jobId && isNewNotification) {\n this.openNotificationPanelForJobStart(notification);\n }\n }\n }\n\n openNotificationPanelForJobStart(notification) {\n this.showNotificationPanel();\n setTimeout(() => {\n const elements = document.querySelectorAll(\"[aria-expanded='false']\");\n elements.forEach((element) => {\n const notificationGroupHeader = element.id;\n if (\n notificationGroupHeader ==\n \"notificationAccordion\" + notification.text.header\n ) {\n (element as HTMLElement).click();\n }\n });\n }, 100);\n }\n\n getJobInfo(backgroundJobStatus): any {\n let result: any;\n switch (backgroundJobStatus) {\n case BackgroundTaskStatusEnum.NotStarted:\n result = {\n status: \"NotificationJobNotStartedBody\",\n icon: \"fas fa-spinner fa-spin\",\n color: \"text-mustard\",\n };\n break;\n case BackgroundTaskStatusEnum.InProgress:\n result = {\n status: \"NotificationJobProgressBody\",\n icon: \"fas fa-spinner fa-spin\",\n color: \"text-mustard\",\n };\n break;\n case BackgroundTaskStatusEnum.Failed:\n result = {\n status: \"NotificationJobFailedBody\",\n icon: \"fas fa-info-circle\",\n color: \"color-red\",\n };\n break;\n default:\n result = {\n status: \"NotificationJobCompleteBody\",\n icon: \"fas fa-check-circle\",\n color: \"color-green\",\n };\n break;\n }\n return result;\n }\n\n getDisplayText(key: string, params: string[]): string {\n let displayText = this.translate.instant(key);\n for (let i = 0; i < params.length; i++) {\n displayText = displayText.replace(`{${i}}`, params[i]);\n }\n return displayText;\n }\n\n getDisplayTime(notification: Notification): string {\n return this.eodDate.transform(notification.addOn);\n }\n\n getIconUrl(notification: Notification): string {\n let iconUrl = \"\";\n\n for (let i = 0; i < this.availableFunctions.length; i++) {\n for (\n let j = 0;\n j < this.availableFunctions[i].functionPackageDetail.length;\n j++\n ) {\n let pack = this.availableFunctions[i].functionPackageDetail[j];\n if (pack && pack.functionPackageId == notification.functionId) {\n if (pack.functionPackageId == FunctionPackageEnum.ExportReport) {\n iconUrl = `assets/svg-icons/dashboard/export.svg`;\n } else {\n iconUrl = `assets/svg-icons/dashboard/${pack.iconUrl}.svg`;\n }\n\n break;\n }\n }\n if (iconUrl) {\n break;\n }\n }\n\n return iconUrl;\n }\n\n addActiveNotification(notification: Notification) {\n if (!this.activeNotificationIds.find((n) => n == notification.id)) {\n this.activeNotificationIds.push(notification.id);\n this.updateNotificationCount();\n }\n }\n removeActiveNotification(notification: Notification) {\n this.activeNotificationIds = this.activeNotificationIds.filter(\n (i) => i != notification.id\n );\n this.updateNotificationCount();\n }\n\n updateNotificationCount() {\n this.notificationsCountChange.emit(this.activeNotificationIds.length);\n }\n\n onNotificationGroupClick(notificationGroup: NotificationGroup) {\n this.updateReadNotifications(notificationGroup);\n\n const internalItem = this.internalGroupClicks.filter(\n (g) => g == \"notificationAccordion\" + notificationGroup.header\n );\n if (internalItem && internalItem.length > 0) {\n this.internalGroupClicks = this.internalGroupClicks.filter(\n (g) => g != \"notificationAccordion\" + notificationGroup.header\n );\n return;\n }\n\n if (this.currentExpandedGroupKey == notificationGroup.header) {\n this.currentExpandedGroupKey = \"\";\n return;\n } else {\n this.currentExpandedGroupKey = notificationGroup.header;\n }\n\n setTimeout(() => {\n this.closeNotificationGroups(notificationGroup);\n }, 100);\n }\n\n updateReadNotifications(notificationGroup: NotificationGroup) {\n const newNotifications = notificationGroup.notifications.filter(function (\n n\n ) {\n return n.isNew;\n });\n if (newNotifications.length > 0 && notificationGroup.isUnread) {\n notificationGroup.isUnread = false;\n const notificationsToUpdate = JSON.parse(\n JSON.stringify(newNotifications)\n );\n notificationsToUpdate.forEach((notification) => {\n notification.isNew = false;\n this.removeActiveNotification(notification);\n });\n this.notificationService\n .MarkNotificationRead(notificationsToUpdate)\n .subscribe(() => { });\n\n setTimeout(() => {\n newNotifications.forEach((n) => (n.isNew = false));\n notificationGroup.unreadCount = 0;\n }, 5000);\n }\n }\n\n onSnoozeClick(notification: Notification) {\n this.notificationService\n .SnoozeNotification(notification)\n .subscribe(() => { });\n this.removeNotificationFromPanel(notification);\n }\n\n onActionClick(notification: Notification) {\n this.onRemoveClick(notification);\n if (!notification.functionId) {\n this.closeNotificationPanel();\n this.notificationService.setNotificationActionModel(notification);\n if (notification.action.route) {\n this.router.navigate([notification.action.route]);\n }\n } else {\n this.organisationFunctionService\n .getAvailableFunctionsForOrganisation(this.claims.OrgId, false)\n .subscribe((data) => {\n this.availableFunctions = data;\n let functionPackage = null;\n for (let i = 0; i < this.availableFunctions.length; i++) {\n for (\n let j = 0;\n j < this.availableFunctions[i].functionPackageDetail.length;\n j++\n ) {\n let pack = this.availableFunctions[i].functionPackageDetail[j];\n if (pack && pack.functionPackageId == notification.functionId) {\n functionPackage = pack;\n break;\n }\n }\n if (functionPackage) {\n break;\n }\n }\n if (functionPackage) {\n const functionAvailable =\n functionPackage.isFree || functionPackage.functionStatus;\n if (functionAvailable) {\n this.notificationService.setNotificationActionModel(notification);\n\n if (notification.action.route) {\n if (\n notification.text.key ==\n BackgroundTaskNotificationBody.BulkUpdateExpenseApprovers\n ) {\n if (\n this.claims.ApprovalRuleSetting ==\n ApprovalRuleSetting.Manual\n ) {\n this.closeNotificationPanel();\n this.router.navigate([\"/orgsetting/manageemployee\"], {\n queryParams: { step: \"4\" },\n });\n } else {\n this.closeNotificationPanel();\n this.router.navigate([\"/orgsetting/manageemployee\"], {\n queryParams: { step: \"5\" },\n });\n }\n } else if (\n notification.functionId == FunctionPackageEnum.ExportReport\n ) {\n this.downloadExportFiles(notification);\n } else {\n this.closeNotificationPanel();\n this.router.navigate([notification.action.route]);\n }\n }\n } else {\n if (notification.functionId == FunctionPackageEnum.ExportReport) {\n this.downloadExportFiles(notification);\n } else if (\n notification.text.header == \"GoogleMappingNotificationHeader\"\n ) {\n this.closeNotificationPanel();\n this.router.navigate([notification.action.route], {\n queryParams: {\n ot: \"gms\",\n },\n });\n } else {\n this.closeNotificationPanel();\n this.router.navigate([\"/addtocart\"], {\n queryParams: {\n isFree: this.EncryptParameters(\n functionPackage.isFree.toString()\n ),\n packagePath: this.EncryptParameters(\n functionPackage.packagePath\n ),\n functionPackageName: this.EncryptParameters(\n functionPackage.functionPackageName\n ),\n functionPackageId: this.EncryptParameters(\n functionPackage.functionPackageId.toString()\n ),\n functionStatus: this.EncryptParameters(\n (functionPackage.functionStatus\n ? functionPackage.functionStatus\n : 0\n ).toString()\n ),\n },\n });\n }\n }\n }\n });\n if (notification.functionId == FunctionPackageEnum.UniversalImport) {\n this.notificationService.setNotificationActionModel(notification);\n this.currentJobId = notification.jobId;\n if (notification.text.header == BackgroundTaskNotificationHeaders.BulkImportEmployees\n ) {\n this.getCurrentJobStatus();\n }\n else {\n this.closeNotificationPanel();\n this.router.navigate([notification.action.route]);\n }\n\n }\n }\n }\n\n downloadExportFiles(notification) {\n if (notification.text?.params?.length > 6) {\n window.open(notification.text.params[6], \"_blank\");\n } else {\n this.notificationService\n .getBackgroundJobStatus(notification.jobId)\n .subscribe((result) => {\n var dLinks = result.output.ReasonPhrase.split(\",\");\n\n if (notification.failNotification) {\n if (dLinks.length == 2) {\n if (dLinks[1] !== \"\") {\n window.open(dLinks[1], \"_blank\");\n }\n } else {\n if (notification.text?.params) {\n window.open(\n notification.text.params[notification.text.params.length - 1],\n \"_blank\"\n );\n }\n }\n } else {\n window.open(dLinks[0], \"_blank\");\n }\n\n if (this.router.url.includes(\"export/expenseexportlog\")) {\n this.router.navigate([\"export/expenseexportlog\"]);\n }\n });\n }\n }\n\n onRemoveClick(notification: Notification) {\n this.notificationService\n .RemoveNotifications(notification.id)\n .subscribe(() => { });\n this.removeNotificationFromPanel(notification);\n }\n\n showNotificationPanel() {\n this.openPanel.emit();\n }\n\n closeNotificationPanel() {\n this.closeNotificationGroups(null);\n this.updateNotificationCount();\n this.closePanel.emit();\n }\n\n closeNotificationGroups(openedGroup: NotificationGroup) {\n const elements = document.querySelectorAll(\"[aria-expanded='true']\");\n elements.forEach((element) => {\n const notificationGroupHeader = element.id;\n if (\n !openedGroup ||\n \"notificationAccordion\" + openedGroup.header != notificationGroupHeader\n ) {\n this.internalGroupClicks.push(notificationGroupHeader);\n (element as HTMLElement).click();\n }\n });\n }\n\n sortAddOnDesc(a: Notification, b: Notification) {\n if (a.addOn > b.addOn) {\n return -1;\n }\n if (a.addOn < b.addOn) {\n return 1;\n }\n return 0;\n }\n\n EncryptParameters(encryptValue) {\n let rsaHelper = new RSAHelper();\n let encrypt = rsaHelper.Encrypt(encryptValue);\n return encrypt;\n }\n\n safeText: SafeHtml;\n sanitizerHtml(element) {\n this.safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return this.safeText;\n }\n\n onDeleteNotifications() {\n this.notificationGroups = [];\n\n this.notificationService\n .RemoveAllUserNotification(this.claims.UserId.toString())\n .subscribe(() => {\n this.getNotifications();\n });\n }\n\n\n showCheckListPanel: boolean = false;\n checkListPanelModel: CheckListPanelModel;\n checkListDetailsPanelModel: CheckListPanelModel;\n\n showCheckListDetailsPanel: boolean = false;\n fnShowCurrentTemplateDetails() {\n switch (this.storageData.importTemplate) {\n case UniversalImportTemplateEnum.ImportEmployees:\n this.fnShowImportEmployeesDetails();\n break;\n\n }\n }\n noOfRecordsImported: number = 0;\n fnShowImportEmployeesDetails() {\n if (this.storageData.importTemplate == UniversalImportTemplateEnum.ImportEmployees) {\n if (this.importEmployeeResponse) {\n this.noOfRecordsImported = this.importEmployeeResponse.SuccessRecordsCounts;\n this.fnOnViewCheckList()\n }\n }\n }\n\n\n fnCloseCheckList(response) {\n if(response)\n {\n if(response.close && response.route)\n {\n this.checkListPanelModel = new CheckListPanelModel();\n this.showCheckListPanel = false;\n if(response.route)\n {\n this.closeNotificationPanel();\n this.router.navigate([response.route]);\n }\n }\n else\n {\n this.checkListPanelModel = new CheckListPanelModel();\n this.showCheckListPanel = false;\n }\n }\n \n }\n fnSubmitCheckList(response: CheckListData) {\n if (response) {\n switch (this.storageData.importTemplate) {\n case UniversalImportTemplateEnum.ImportEmployees:\n this.fnShowImportEmployeesCheckListDetails(response);\n break;\n }\n }\n }\n fnShowImportEmployeesCheckListDetails(response: CheckListData) {\n\n if (response) {\n let checkListDetails = [];\n\n switch (response.id) {\n case ImportEmployeesResponseEnum.CostCentre:\n let newAddedCostCentre = this.importEmployeeResponse.NewCostCentreList;\n if (newAddedCostCentre) {\n newAddedCostCentre.forEach((item) => {\n let data = new CheckListData();\n data.id = ImportEmployeesResponseEnum.CostCentre;\n data.icon = \"fas fa-check color-green padding-right-5\";\n data.name = item;\n data.buttonTitle = \"\";\n data.isButtonVisible = false;\n checkListDetails.push(data);\n });\n this.fnShowCheckListDetails(checkListDetails, this.translate.instant(\"cost_centres\"));\n }\n break;\n\n case ImportEmployeesResponseEnum.Grade:\n let newAddedGrades = this.importEmployeeResponse.NewGradeList;\n if (newAddedGrades) {\n newAddedGrades.forEach((item) => {\n let data = new CheckListData();\n data.id = ImportEmployeesResponseEnum.Grade;\n data.icon = \"fas fa-check color-green padding-right-5\";\n data.name = item;\n data.buttonTitle = \"\";\n data.isButtonVisible = false;\n checkListDetails.push(data);\n });\n }\n this.fnShowCheckListDetails(checkListDetails, this.translate.instant(\"grades\"));\n break;\n\n case ImportEmployeesResponseEnum.EmployeeErrorsList:\n let errorEmployeeList = this.importEmployeeResponse.ErrorEmployeeList;\n if (errorEmployeeList && errorEmployeeList.length > 0) {\n this.showImportEmployeeErrorPanel = true;\n }\n break;\n }\n\n }\n\n }\n\n fnShowCheckListDetails(data: CheckListData[] = [], title: string) {\n this.checkListDetailsPanelModel = new CheckListPanelModel();\n this.checkListDetailsPanelModel.title = title;\n this.checkListDetailsPanelModel.isSmallPanel = true;\n this.checkListDetailsPanelModel.isGridPanel = false;\n this.checkListDetailsPanelModel.data = data;\n this.showCheckListDetailsPanel = true;\n }\n\n fnCloseCheckListDetails() {\n this.checkListDetailsPanelModel = new CheckListPanelModel();\n this.showCheckListDetailsPanel = false;\n }\n fnShowCheckList(data: CheckListData[] = [], title: string) {\n this.checkListPanelModel = new CheckListPanelModel();\n this.checkListPanelModel.title = title;\n this.checkListPanelModel.isSmallPanel = false;\n this.checkListPanelModel.isGridPanel = true;\n this.checkListPanelModel.data = data;\n this.showCheckListPanel = true;\n }\n importEmployeeResponse: IImportEmployeeResponse;\n getCurrentJobStatus() {\n this.notificationService.getBackgroundJobStatus(this.currentJobId)\n .subscribe(result => this.ProcessResult(result));\n }\n storageData: StorageData = new StorageData();\n ProcessResult(result: BackgroundTaskStatus) {\n if (result) {\n this.currentJobId = result.id;\n if (result.output) {\n var response = result.output.ResponseInfo;\n if (response) {\n if(response.ErrorEmployeeList && response.ErrorEmployeeList.length > 0){\n response.ErrorEmployeeList = response.ErrorEmployeeList.map(e=>{\n e.FailedErrors = this.fnGetErrorMessages(e.FailedErrors),\n e.FailedWarnings = this.fnGetErrorMessages(e.FailedWarnings)\n return e;\n })\n }\n this.importEmployeeResponse = response;\n if (!this.storageData) {\n this.storageData = new StorageData();\n }\n this.storageData.importTemplate = UniversalImportTemplateEnum.ImportEmployees;\n this.fnShowCurrentTemplateDetails();\n }\n }\n }\n }\n fnGetErrorMessages(err: string): string {\n let messages = [];\n const errors = err.split(\"##\");\n for (let j = 0; j < errors.length; j++) {\n if (errors[j]) {\n messages.push(this.translate.instant('InviteEmpValidation_' + errors[j]));\n }\n }\n return messages.join(\"; \");\n}\n showImportEmployeeErrorPanel: boolean = false;\n fnCloseImportEmployeeErrorPanel(isClose: boolean) {\n if (isClose) {\n this.showImportEmployeeErrorPanel = false;\n }\n }\n fnOnViewCheckList() {\n switch (this.storageData.importTemplate) {\n case UniversalImportTemplateEnum.ImportEmployees:\n this.fnShowImportEmployeesCheckList();\n break;\n }\n }\n\n fnShowImportEmployeesCheckList() {\n let checkList = [];\n\n let newAddedCostCentre = this.importEmployeeResponse.NewCostCentreList;\n let newAddedGrades = this.importEmployeeResponse.NewGradeList;\n let errorEmployeeList = this.importEmployeeResponse.ErrorEmployeeList;\n let changedClaimantsApproverCounts = this.importEmployeeResponse.ChangedClaimantsApproverCounts;\n let changedClaimantsGradeCounts = this.importEmployeeResponse.ChangedClaimantsGradeCounts;\n let changedClaimantsCostCentreCounts = this.importEmployeeResponse.ChangedClaimantsCostCentreCounts;\n let changedClaimantsLastNameCounts = this.importEmployeeResponse.ChangedClaimantsLastNameCounts;\n let changedClaimantsFirstNameCounts = this.importEmployeeResponse.ChangedClaimantsFirstNameCounts;\n let successRecordsCounts = this.importEmployeeResponse.SuccessRecordsCounts;\n if (successRecordsCounts && successRecordsCounts > 0) {\n let data = {\n id: ImportEmployeesResponseEnum.SuccessRecordsCounts,\n icon: CommonStatusEnum.Success,\n iconClass: '',\n value: successRecordsCounts,\n text: this.translate.instant(\"emp_imp_exp_msg2\"),\n safetext:'',\n isButtonHide: true,\n sequence:1\n }\n checkList.push(data);\n }\n if (changedClaimantsApproverCounts && changedClaimantsApproverCounts > 0) {\n let data = {\n id: ImportEmployeesResponseEnum.ChangedClaimantsApproverCounts,\n icon: CommonStatusEnum.Success,\n iconClass: '',\n value: changedClaimantsApproverCounts,\n text: this.translate.instant(\"emp_imp_exp_msg3\"),\n safetext:'',\n isButtonHide: true,\n sequence:2\n }\n checkList.push(data);\n }\n if (changedClaimantsGradeCounts && changedClaimantsGradeCounts > 0) {\n let data = {\n id: ImportEmployeesResponseEnum.ChangedClaimantsGradeCounts,\n icon: CommonStatusEnum.Success,\n iconClass: '',\n value: changedClaimantsGradeCounts,\n text: this.translate.instant(\"emp_imp_exp_msg4\"),\n safetext:'',\n isButtonHide: true,\n sequence:3\n }\n checkList.push(data);\n }\n if (changedClaimantsFirstNameCounts && changedClaimantsFirstNameCounts > 0) {\n let data = {\n id: ImportEmployeesResponseEnum.ChangedClaimantsFirstNameCounts,\n icon: CommonStatusEnum.Success,\n iconClass: '',\n value: changedClaimantsFirstNameCounts,\n text: this.translate.instant(\"emp_imp_exp_msg5\"),\n safetext:'',\n isButtonHide: true,\n sequence:4\n }\n checkList.push(data);\n }\n if (changedClaimantsLastNameCounts && changedClaimantsLastNameCounts > 0) {\n let data = {\n id: ImportEmployeesResponseEnum.ChangedClaimantsLastNameCounts,\n icon: CommonStatusEnum.Success,\n iconClass: '',\n value: changedClaimantsLastNameCounts,\n text: this.translate.instant(\"emp_imp_exp_msg6\"),\n safetext:'',\n isButtonHide: true,\n sequence:5\n }\n checkList.push(data);\n }\n if (changedClaimantsCostCentreCounts && changedClaimantsCostCentreCounts > 0) {\n let data = {\n id: ImportEmployeesResponseEnum.ChangedClaimantsCostCentreCounts,\n icon: CommonStatusEnum.Success,\n iconClass: '',\n value: changedClaimantsCostCentreCounts,\n text: this.translate.instant(\"emp_imp_exp_msg7\"),\n safetext:'',\n isButtonHide: true,\n sequence:6\n }\n checkList.push(data);\n }\n if (newAddedGrades && newAddedGrades.length > 0) {\n let data = {\n id: ImportEmployeesResponseEnum.Grade,\n icon: CommonStatusEnum.Success,\n iconClass: '',\n value: newAddedGrades.length,\n text: this.translate.instant(\"emp_imp_exp_msg8\"),\n safetext:'
'+this.translate.instant('label_view')+'
',\n isButtonHide: false,\n sequence:7\n }\n checkList.push(data);\n }\n if (newAddedCostCentre && newAddedCostCentre.length > 0) {\n let data = {\n id: ImportEmployeesResponseEnum.CostCentre,\n icon: CommonStatusEnum.Success,\n iconClass: '',\n value: newAddedCostCentre.length,\n text: this.translate.instant(\"emp_imp_exp_msg9\"),\n safetext:'
'+this.translate.instant('label_view')+'
',\n isButtonHide: false,\n sequence:8\n }\n checkList.push(data);\n }\n if (errorEmployeeList && errorEmployeeList.length > 0) {\n let data2 = {\n id: ImportEmployeesResponseEnum.EmployeeErrorsList,\n icon: CommonStatusEnum.Failed,\n iconClass: '',\n value: errorEmployeeList.length,\n text: `${''} ${this.translate.instant(\"emp_import_approver_check_note2\")} ${''}`,\n safetext:'
'+this.translate.instant('label_view')+'
',\n isButtonHide: false,\n sequence:10\n };\n checkList.push(data2);\n }\n\n this.fnShowCheckList(checkList, this.translate.instant(\"emp_imp_exp_msg1\"));\n }\n sendEmployeeInvite(email) {\n localStorage.setItem(\"fromClaimantsTryingNewSubscription\", JSON.stringify(email.text));\n this.onRemoveClick(email);\n this.router.navigateByUrl('/', {\n skipLocationChange: true\n }).then(() => {\n this.router.navigate([\"/orgsetting/manageemployee\"], {\n queryParams: { step: \"1\" }\n });\n });\n }\n\n}\n","\n
\n
\n\n
    \n \n
  • \n
      \n
    • \n {{ \"cart_overview\" | translate : param }}\n
    • \n
    • \n {{ \"payment_type_credit_card\" | translate : param }}\n
    • \n \n \n {{ \"label_Advance\" | translate : param }}\n \n \n \n {{ \"label_vendor_dashborad\" | translate : param }}\n \n \n \n {{ \"carbon_footprint\" | translate : param }}\n \n
    \n
  • \n\n
  • \n \n \n \n
  • \n\n \n
  • \n \n {{ \"claim\" | translate : param }}\n \n \n
  • \n \n {{\n \"expense\" | translate : param\n }}\n {{\n \"invoice\" | translate : param\n }}\n \n
  • \n \n {{ \"delegate\" | translate : param }}\n \n\n
  • \n {{ \"cash_advance_title\" | translate : param }}\n
  • \n \n {{\n \"cash_advance_on_credit_card_title\" | translate : param\n }}\n \n \n \n {{ \"non_reimbursable_fuel\" | translate : param }}\n \n \n \n \n {{ \"fuel_card\" | translate : param }}\n \n \n \n \n {{ \"nr_dashboard\" | translate : param }}\n \n \n\n \n \n {{ \"fc_report\" | translate : param }}\n \n \n
  • \n \n {{ \"vehicle_mangt_msg44\" | translate : param }}\n \n
  • \n
\n \n
  • \n \n {{ \"kyc_documents\" | translate : param }}\n \n \n
  • \n \n {{ \"kyc_documents\" | translate : param }}\n \n
  • \n \n \n \n \n {{ \"approval_route\" | translate : param }}\n \n
  • \n \n {{ \"expenses\" | translate : param\n }} 0\">\n {{ this.claims.pendingExpenseCountApprover }}\n \n \n
  • \n
  • \n \n {{ \"non_reimbursable_fuel\" | translate : param\n }} 0\">\n {{ this.claims.pendingCountNRApprover }}\n \n \n
  • \n \n \n {{ \"fuel_card\" | translate : param\n }} 0\">\n {{ this.claims.pendingCountFCApprover }}\n \n \n \n \n \n {{ \"pre_approval\" | translate : param\n }} 0\">\n {{ this.claims.pendingCountPreApproval }}\n \n \n \n \n \n {{ \"label_Advance\" | translate : param }}\n 0\">\n {{ this.claims.pendingAdvancesForApproval }}\n \n \n \n \n \n {{ \"label_invoice\" | translate : param }}\n 0\">\n {{ this.claims.pendingCountInvoiceApproval }}\n \n \n \n \n \n\n \n {{ \"finance_approval\" | translate : param }}\n \n
  • \n \n {{ \"expenses\" | translate : param }}\n 0\">\n {{ this.claims.pendingForFinanceApproval }}\n \n \n
  • \n \n \n {{ \"non_reimbursable_fuel\" | translate : param\n }} 0\">\n {{ this.claims.pendingCountNRFinanceApproval }}\n \n \n \n \n \n {{ \"fuel_card\" | translate : param\n }} 0\">\n {{ this.claims.pendingCountFCFinanceApproval }}\n \n \n \n \n \n {{ \"label_Advance\" | translate : param }}\n 0\">\n {{ this.claims.pendingAdvanceForFinanceApproval }}\n \n \n \n \n \n {{ \"label_invoice\" | translate : param }}\n 0\">\n {{ this.claims.pendingCountInvoiceFinanceApproval }}\n \n \n \n \n \n\n \n {{ \"pay\" | translate : param }}\n \n
  • \n \n {{ \"pay_expense\" | translate : param }}\n 0\">\n {{ this.claims.pendingExpensesForPayment }}\n \n \n
  • \n \n \n {{ \"label_pay_Advance\" | translate : param }}\n 0\">\n {{ this.claims.pendingAdvancesForPayment }}\n \n \n \n \n \n {{ \"label_payinvoice\" | translate : param }}\n 0\">\n {{ this.claims.pendingCountInvoicePay }}\n \n \n \n \n \n\n \n \n {{ \"cards\" | translate : param }}\n\n \n
  • \n \n {{ \"cc_dashboard_import_statement\" | translate : param }}\n \n
  • \n \n \n
  • \n \n {{ \"cc_dashboard_import_statement\" | translate : param }}\n \n
  • \n \n \n\n
  • \n {{ \"accounting_export\" | translate : param }}\n \n
  • \n \n {{ \"export_report\" | translate : param }}\n \n
  • \n
  • \n {{ \"label_log\" | translate : param }}\n
  • \n
  • \n {{ \"accounting_integration\" | translate : param }}\n {{ \"accounting_integration\" | translate : param }}\n
  • \n
  • \n {{ \"create_new_report\" | translate : param }}\n {{ \"create_new_report\" | translate : param }}\n
  • \n
  • \n {{ \"existing_reports\" | translate : param }}\n
  • \n
  • \n {{ \"roll_back_exported_expenses\" | translate : param }}\n {{ \"roll_back_exported_expenses\" | translate : param }}\n
  • \n \n \n \n 0 &&\n bandId > 0\n \">\n \n
    \n {{ basicFunctionRemainingTrialDays }}
    {{\n \"days\" | translate : param\n }}\n {{ \"free_trial\" | translate : param }}\n \n \n
    \n \n \n
      \n
    • \n \n \n \n
    • \n\n
    • \n \n
    • \n\n
    • \n \n
      \n
      \n \"\"\n \n {{ CartCount }}\n \n
      \n \n {{ \"cart\" | translate : param }}\n \n
      \n \n
    • \n
    • \n \n
    • \n
    • \n \n
      \n 0 }\"\n width=\"90%\"\n src=\"../../../assets/images/bell-icon.svg\"\n alt=\"\" />\n \n {{ notificationsCount }}\n \n
      \n \n
    • \n
    • \n \n
    • \n\n
    • \n \n \n \n
    • \n \n\n \n
    \n \n
    \n \n \n
    {{ Initials | uppercase }}
    \n
    \n

    \n {{ FirstName }} {{ LastName }}\n

    \n

    {{ Email }}

    \n

    \n {{ \"organisation\" | translate : param }} - {{ OrgName }}\n

    \n
    \n
    \n
    \n \n
    \n
      \n \n {{ \"my_invoices\" | translate : param\n }}\n \n \n\n \n {{ \"profile_msg2\" | translate : param\n }}\n \n
    • \n {{ \"invoice_discounts\" | translate : param\n }}\n
    • \n
    • \n {{ \"billing_settings_cost_control\" | translate\n }}\n
    • \n \n {{ \"implementation_charge\" | translate\n }}\n \n
    • \n {{ \"refer_and_earn\" | translate : param\n }}\n
    • \n
    • \n {{ \"unsubscribe_expenseondemand\" | translate : param\n }}\n
    • \n
    • \n {{ \"logout\" | translate : param\n }}\n
    • \n
    \n
    \n
    \n \n
    \n \n \n \n
    \n \n \n \n \n \n \n\n
    \n\n
    \n\n\n
    \n \n
    \n
    \n \n

    {{ \"data_transfer_to_other_systems_build_your_own_report\" | translate : param }}

    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n {{ \"transfer_data_and_build_reports\" | translate : param }}\n
    \n
    \n
    \n \n
    \n\n
    \n
    \n \n {{\n \"build_your_own_reports_for_analysis_and_built_formats_to_transfer_data_to_any_accounting_system\"\n | translate : param\n }}\n \n {{\n \"liabilityReport_available_for_trial_now\"\n | translate : param\n }}\n \n
    \n
    \n
    \n \n \n \n \n \n \n

    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n\n\n
    \n\n
    \n
    \n
    \n \n ×\n \n

    \n {{\n \"data_transfer_to_other_systems_build_your_own_report\"\n | translate : param\n }}\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n\n
    \n
    \n
    \n
    \n
    \n

    {{ \"download_free_trial_msg\" | translate }}

    \n
    \n
    \n
    \n
    \n
    \n
    \n {{ \"onboarding_scan_qr_codes\" | translate }}\n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n\n\n\n
    \n
    \n\n\n\n\n\n\n\n\n
    \n
    \n
    \n
    \n
    \n

    {{ \"Multifactor Authentication\" | translate }}

    \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n \n {{\n \"Disable or remove the existing 2FA setup by clicking on Re-register.\"\n | translate\n }}\n
    \n
    \n \n {{\n \"Scan the new QR code with your authenticator app.\" | translate\n }}\n
    \n
    \n \n {{\n \"Enter the new 6-digit code for your account.\" | translate\n }}\n
    \n
    \n \n {{ \"Access the app.\" | translate }}\n
    \n
    \n
    \n
    \n
    \n Step 1 :\n Scan below QR Code with any Two-Factor Authenticator App like\n Microsoft Authenticator or Google Authenticator\n
    \n
    \n
    \n Step 2 :\n Add your account to the app by scanning this QR code\n
    \n
    \n \n
    \n
    \n
    \n Step 3 :\n Enter the 6-digit code found in your authenticator app\n
    \n \n\n
    \n \n
    \n \n \n {{ \"Verify\" | translate }}\n \n
    \n
    \n
    \n
    \n
    \n\n","import {\n Component,\n EventEmitter,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from \"@angular/core\";\nimport * as $ from \"jquery\";\nimport { IUser } from \"../../_models/common/user\";\nimport { AuthenticationService } from \"../../_services\";\nimport { Router, NavigationEnd } from \"@angular/router\";\nimport { Claims } from \"../../_models/common/claims\";\nimport { ClaimsService } from \"../../_services/common/claims.service\";\nimport {\n IApiRequest,\n ApiRequest,\n FunctionPackageEnum,\n FMRoleType,\n FunctionPrivilege,\n OrgFeedbackTypes,\n UniversalImportTemplateEnum,\n IApiresponse,\n UserTypeEnum,\n} from \"../../_models\";\nimport { OrgSubscription } from \"../../_models/common/OrgSubscription\";\nimport { Guid } from \"guid-typescript\";\nimport { first, filter } from \"rxjs/operators\";\nimport { OrgSubscriptionPurchaseFunctionList } from \"../../_models/billing-pricing/IOrgSubscriptionPurchaseFunctionList\";\nimport { OrgSubscriptionFunctionList } from \"../../_models/billing-pricing/OrgSubscriptionFunctionList\";\nimport { RSAHelper } from \"../../_helpers/RSAHelper\";\nimport { OrganisationSettingService } from \"../../_services/organisation-setting/organisation-setting.service\";\nimport {\n DropdownItems,\n IGetCartDetailsRequest,\n GetCartDetailsRequest,\n ICartDetailsRequest,\n CartDetailsRequest,\n IPurchaseFunctionListRequest,\n PurchaseFunctionListRequest,\n} from \"../../_models/organisation-setting/organisation-setting\";\nimport { parse } from \"url\";\nimport { Subscription } from \"rxjs\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\nimport { environment } from \"src/environments/environment\";\nimport { FunctionPrivilegeService } from \"../../_services/secondary-fm/function-privilege.service\";\nimport { OrgBasicFunctionSubscriptionService } from \"src/app/_services/billing-pricing/Org-BasicFunction-Subscription.service\";\nimport { StorageData } from \"src/app/_models/universal-importer/universal-importer\";\n//import { UniversalImporterService } from \"src/app/_services/universal-importer/universal-importer.service\";\nimport { AdvancesService } from \"src/app/_services/advances/advance-service\";\nimport { storeURLs } from \"src/app/common/commonvariables\";\nimport { DOCUMENT, DatePipe } from \"@angular/common\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { MarketingPopup } from \"src/app/_models/common/marketing-popup\";\nimport { ChangePasswordService } from \"src/app/_services/change-password/change-password.service\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\n\n@Component({\n selector: \"app-nav-menu\",\n templateUrl: \"./nav-menu.component.html\",\n styleUrls: [\"./nav-menu.component.scss\"],\n})\nexport class NavMenuComponent implements OnInit, OnDestroy {\n IsSocialMediaUser: boolean = false;\n testNav: boolean = false;\n claims: Claims;\n isExpanded = false;\n logoutMenuVisible = false;\n currentUser: IUser;\n userDetails: any;\n users: IUser[] = [];\n imageSource: string = \"assets/images/logo.png\";\n twoStepApproval: boolean;\n isFinanceManager: boolean;\n routerLink: string;\n routerLinkSettings: string;\n routerLinkExp: string;\n routerLinkPay: string;\n routerLinkFA: string;\n routerLinkCards: string;\n routerLinkDashboard: string;\n menuChange: boolean;\n isCardSetupComplete: boolean = false;\n pendingAllForPayment: number = 0;\n CartCount: number = 0;\n\n ExportPackageId: string;\n\n OrgPurchaseFunctionRequest: IApiRequest;\n OrgTrialingFunctionRequest: IApiRequest;\n public UniqueId: Guid;\n PurchaseFunctionResponse: OrgSubscriptionPurchaseFunctionList;\n trialingFunctionResponse = [];\n isAccountingIntegrationPackagePurchasedOrTrial: boolean = false;\n Initials: string;\n FirstName: string;\n LastName: string;\n Email: string;\n OrgName: string;\n searchValue: number;\n searchItems = [];\n showSettingsMenu: boolean = false;\n activateAllFunctionsMenu: boolean = false;\n activateMySubscriptionMenu: boolean = false;\n activateComingSoonMenu: boolean = false;\n activatePricingMenu: boolean = false;\n isThirdLevelMenuVisible: boolean = false;\n activateSecondaryFMPrivilegeScreen: boolean = false;\n _routerSub = Subscription.EMPTY;\n isCreditCardPackageSubscribed: boolean = false;\n isPackagePurchasedOrTrial: boolean = false;\n public param: string;\n showLoginMarquee: boolean = false;\n marqueeText: string = \"\";\n isExportReportPackagePurchasedOrTrial: boolean = false;\n activateCreateNewReportMenu: boolean = false;\n\n showExportReportMarketingPopup: boolean;\n isPrimaryFM: boolean;\n myInvoicesVisible: boolean = false;\n isAdvancesAccess: boolean = false;\n isCarbonFootprintAccess: boolean = false;\n isFinanceApprovalAccess: boolean = false;\n isPayAccess: boolean = false;\n isCardAccess: boolean = false;\n isBuildReportAccess: boolean = false;\n isPrivilegeCheckStarted: boolean = false;\n isNRFCAccess: boolean = false;\n isPreApprovalAccess: boolean = false;\n storeURL = storeURLs;\n showQRCodePanel: boolean = false;\n isNotificationPanelActive: boolean = false;\n notificationsCount: number;\n isClaimOnWebAllowed: boolean = false;\n IsLeaveManagementAllowed: boolean;\n isUniversalImportAllowed: boolean;\n IsAPAutomationAllow: boolean;\n storageData: StorageData = new StorageData();\n userType: number = 0;\n kycStatus: number = 0;\n manageCCOptions: number = 0;\n get universalImportTemplateEnum() {\n return UniversalImportTemplateEnum;\n }\n get userTypeEnum() {\n return UserTypeEnum;\n }\n activateImportStatementMenu: boolean = false;\n advanceBalanceOutstanding: boolean = false;\n isAdvanceBalanceChecked: boolean = false;\n isDelegator: boolean = false;\n isDelegate: boolean = false;\n isDelegateFunctionPurchasedOrTrial: boolean = false;\n isApAutomationAccess: boolean = false;\n isCarbonFootprintPurchasedOrTrial: boolean = false;\n @Output() toggleRightSidebarEvent = new EventEmitter();\n\n @Output() mobileMenuButtonClicked = new EventEmitter();\n\n isInFullscreenMode = false;\n isOrgBasicFunctionTrialEndsAlert: boolean = false;\n isPayStepEnabled: boolean = false;\n bandId: number = 0;\n isRecallExportedExpensesPurchased: boolean = false;\n IsFaceIdRegistered = false;\n isContainerAllowed: boolean;\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n private authenticationService: AuthenticationService,\n private claimsService: ClaimsService,\n private router: Router,\n private organisationSettingService: OrganisationSettingService,\n private orgBasicFunctionSubscriptionService: OrgBasicFunctionSubscriptionService,\n private sanitizer: DomSanitizer,\n private functionPrivilegeService: FunctionPrivilegeService,\n public datepipe: DatePipe,\n private advancesService: AdvancesService,\n private translate: TranslateService,\n private changePasswordService: ChangePasswordService,\n private toastr: ToastrService,\n private ngxLoader: NgxUiLoaderService\n ) {\n //this.fullscreen();\n if (\n localStorage.getItem(\"claims\") &&\n localStorage.getItem(\"claims\") !== \"undefined\"\n ) {\n this.claimsService.updateClaims(\n JSON.parse(localStorage.getItem(\"claims\"))\n );\n }\n\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n this.userType = this.claims.userType ? this.claims.userType : 0;\n this.kycStatus = this.claims.kycStatus;\n this.IsLeaveManagementAllowed = claims.IsLeaveManagementAllowed;\n this.isUniversalImportAllowed = claims.isUniversalImportAllowed;\n this.IsAPAutomationAllow = claims.IsAPAutomationAllow;\n this.isDelegator = this.claims.IsDelegator;\n this.isDelegate = this.claims.IsDelegate;\n this.isDelegateFunctionPurchasedOrTrial =\n this.claims.IsDelegateFunctionPurchasedOrTrial;\n this.isOrgBasicFunctionTrialEndsAlert =\n this.claims.IsOrgBasicFunctionTrialEndsAlert;\n this.isPayStepEnabled = this.claims.IsPayStepEnabled;\n this.bandId = this.claims.BandId;\n this.manageCCOptions = this.claims.ManageCCOptions;\n this.IsFaceIdRegistered = this.claims.IsFaceIdRegistered;\n this.isContainerAllowed = this.claims.IsContainerAllowed;\n this.isMFADeviceRegistered = this.claims.IsMFADeviceRegistered;\n this.isMFAEnabled = this.claims.IsMFAEnabled;\n });\n\n if (localStorage.getItem(\"currentUser\")) {\n this.userDetails = JSON.parse(localStorage.getItem(\"currentUser\"));\n if (this.userDetails.RequestInfo) {\n this.FirstName = this.userDetails.RequestInfo.FirstName;\n this.LastName = this.userDetails.RequestInfo.LastName;\n } else if (this.userDetails.responseInfo) {\n this.FirstName = this.userDetails.responseInfo.firstName;\n this.LastName = this.userDetails.responseInfo.lastName;\n }\n } else if (localStorage.getItem(\"registereduser\")) {\n this.userDetails = JSON.parse(localStorage.getItem(\"registereduser\"));\n if (this.userDetails) {\n this.FirstName = this.userDetails.FirstName;\n this.LastName = this.userDetails.LastName;\n }\n }\n if (this.FirstName && this.FirstName != \"\") {\n this.Initials = this.FirstName.charAt(0);\n }\n if (this.LastName && this.LastName != \"\") {\n this.Initials += this.LastName.charAt(0);\n }\n\n this.currentUser = JSON.parse(localStorage.getItem(\"currentUser\"));\n\n this.UniqueId = Guid.create();\n\n // this.universalImporterService.currentImportStorageData.subscribe((storageData) => {\n // this.storageData = storageData;\n // });\n\n this.getOrgPurchaseFunctionList();\n this.fnGetOrgBasicFunctionSubscriptionTrialDetails();\n }\n\n GetOrganisationPreferences() {\n let request = new ApiRequest(\n \"GetOrganisationPreferences\",\n environment.applicationVersion,\n environment.requestId\n );\n this.organisationSettingService\n .GetOrganisationPreferences(request)\n .subscribe((data: IApiresponse) => {\n if (data.statusCode == 0) {\n this.claims.RateType = data.responseInfo.rateType;\n this.claims.LocationLabel = data.responseInfo.locationLabel;\n this.claimsService.updateClaims(this.claims);\n this.claims.ManageCCOptions = data.responseInfo.manageCCOption;\n this.manageCCOptions = data.responseInfo.manageCCOption;\n this.claimsService.updateClaims(this.claims);\n }\n });\n }\n\n onSettingClick(value: boolean) {\n this.testNav = value;\n}\n\n onNotificationsCountChange(event) {\n this.notificationsCount = event;\n }\n\n openNotificationPanel() {\n this.isNotificationPanelActive = true;\n }\n closeNotificationPanel() {\n this.isNotificationPanelActive = false;\n }\n basicFunctionRemainingTrialDays: number;\n getOrgBasicFunctionSubscriptionTrialDetails() {\n if (this.claims && this.claims.OrgId && this.isFinanceManager) {\n this.orgBasicFunctionSubscriptionService\n .GetOrgBasicFunctionSubscriptionTrialDetails(this.claims.OrgId)\n .subscribe((res: any) => {\n this.basicFunctionRemainingTrialDays =\n res.responseInfo.basicFunctionRemainingTrialDays;\n });\n }\n }\n linkClicked() {\n this.logoutMenuVisible = !this.logoutMenuVisible;\n }\n\n collapse() {\n this.isExpanded = false;\n }\n\n toggle() {\n this.isExpanded = !this.isExpanded;\n }\n\n MouseOverEvent(e) {\n $(\".profileActionMenu\").addClass(\"active\");\n $(\".notify-icons a#profileAction\").css(\"color\", \"#096094\");\n }\n\n routeIsActive(routePath: string) {\n let currentUrl = this.router.url;\n return currentUrl.startsWith(routePath);\n }\n\n ngOnInit() {\n \n this.detectUrlUpdates();\n this.isFinanceManager = false;\n this.GetOrganisationPreferences();\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n if (claims) {\n this.registerMFADevice();\n this.IsSocialMediaUser = this.claims.IsSocialMediaUser;\n this.Email = this.claims.LoginId;\n this.OrgName = this.claims.OrgName;\n //this.imageSource = this.claims.OrgLogo;\n this.twoStepApproval = this.claims.TwoStepApproval;\n this.isFinanceManager = this.claims.IsFinanceManager;\n this.menuChange = this.claims.MenuSettings;\n this.isCardSetupComplete = this.claims.IsCardSetupComplete;\n this.pendingAllForPayment = this.claims.pendingAllForPayment;\n this.CartCount = this.claims.CartCount;\n this.isAccountingIntegrationPackagePurchasedOrTrial =\n this.claims.IsAccountingIntegrationPackagePurchasedOrTrial;\n this.isExportReportPackagePurchasedOrTrial =\n this.claims.IsExportReportPackagePurchasedOrTrial;\n this.isRecallExportedExpensesPurchased =\n this.claims.IsRecallExportedExpensesPurchased;\n\n this.isPrimaryFM = this.claims.FMRoleType === FMRoleType.AllPrivilege;\n this.isClaimOnWebAllowed = this.claims.isClaimOnWebAllowed;\n\n if (this.isPrimaryFM) {\n this.myInvoicesVisible = true;\n this.isFinanceApprovalAccess = true;\n this.isPayAccess = true;\n this.isCardAccess = true;\n this.isBuildReportAccess = true;\n this.isNRFCAccess = true;\n this.isAdvancesAccess = true;\n this.isPreApprovalAccess = true;\n this.isApAutomationAccess = true;\n this.isCarbonFootprintAccess = true;\n } else if (this.claims.FMRoleType === FMRoleType.LimitedPrivilege) {\n if (!this.isPrivilegeCheckStarted) {\n this.isPrivilegeCheckStarted = true;\n var functionIds = [\n FunctionPrivilege.Invoices,\n FunctionPrivilege.FinanceApprover,\n FunctionPrivilege.PassforPayment,\n FunctionPrivilege.SetupCreditCard,\n FunctionPrivilege.TransferData,\n // FunctionPrivilege.NonReimbursableFuel,\n FunctionPrivilege.Advances,\n FunctionPrivilege.PreApprovals,\n FunctionPrivilege.CarbonFootprint\n ];\n this.functionPrivilegeService\n .checkPrivilegesAccess(functionIds, this.claims.UserId)\n .subscribe((access) => {\n this.myInvoicesVisible =\n access.indexOf(FunctionPrivilege.Invoices) > -1;\n this.isFinanceApprovalAccess =\n access.indexOf(FunctionPrivilege.FinanceApprover) > -1;\n this.isPayAccess =\n access.indexOf(FunctionPrivilege.PassforPayment) > -1;\n this.isCardAccess =\n access.indexOf(FunctionPrivilege.SetupCreditCard) > -1;\n this.isBuildReportAccess =\n access.indexOf(FunctionPrivilege.TransferData) > -1;\n this.isNRFCAccess =\n access.indexOf(FunctionPrivilege.SetupAdvancedMileage) > -1;\n this.isAdvancesAccess =\n access.indexOf(FunctionPrivilege.Advances) > -1;\n this.isPreApprovalAccess =\n access.indexOf(FunctionPrivilege.PreApprovals) > -1;\n this.isApAutomationAccess =\n access.indexOf(FunctionPrivilege.ApAutomation) > -1;\n this.isCarbonFootprintAccess =\n access.indexOf(FunctionPrivilege.CarbonFootprint) > -1;\n });\n }\n }\n\n if (this.Initials == undefined || this.Initials == \"\") {\n if (\n this.claims.FirstName != undefined &&\n this.claims.FirstName != \"\"\n ) {\n this.FirstName = this.claims.FirstName;\n this.Initials = this.claims.FirstName.charAt(0);\n }\n if (this.claims.LastName != undefined && this.claims.LastName != \"\") {\n this.LastName = this.claims.LastName;\n this.Initials += this.claims.LastName.charAt(0);\n }\n }\n this.isCreditCardPackageSubscribed =\n this.claims.IsCreditCardPackageSubscribed;\n\n // if (this.searchItems.length == 0) {\n // this.getAvailableSearchFunctions();\n // }\n this.isPackagePurchasedOrTrial = this.claims.IsPackagePurchasedOrTrial;\n\n if (this.claims.IsMarqueeOn == true) {\n this.showLoginMarquee = this.claims.IsMarqueeOn;\n this.marqueeText = this.claims.MarqueeText;\n }\n\n if (this.showLoginMarquee == true) {\n setTimeout(() => {\n this.showLoginMarquee = false;\n this.claims.IsMarqueeOn = false;\n this.claims.MarqueeText = \"\";\n this.claimsService.updateClaims(this.claims);\n }, 300000);\n }\n this.getAdvanceBalanceOutstanding();\n }\n });\n\n $(document).ready(function () {\n $(\".profileActionMenu\").mouseleave(function () {\n $(\".profileActionMenu\").removeClass(\"active\");\n $(\".notify-icons a#profileAction\").css(\"color\", \"#686868\");\n });\n\n $(\"#resNavMenu > li\").click(function () {\n $(\"#resNavMenu li\").removeClass(\"highlight-div\");\n $(this).addClass(\"highlight-div\");\n $(\"#resNavMenu li ul\").slideUp();\n $(this).find(\"ul\").slideToggle(400);\n });\n });\n }\n\n getAdvanceBalanceOutstanding() {\n if (!this.isAdvanceBalanceChecked) {\n this.isAdvanceBalanceChecked = true;\n this.advancesService.isAdvanceBalanceOutstanding().subscribe((result) => {\n if (result && result.responseInfo) {\n this.advanceBalanceOutstanding = true;\n } else {\n this.advanceBalanceOutstanding = false;\n }\n this.claims.isAdvanceBalanceOutstanding =\n this.advanceBalanceOutstanding;\n this.claimsService.updateClaims(this.claims);\n });\n }\n }\n\n navSlider() {\n $(\".overLayDiv\").addClass(\"active\");\n document.getElementById(\"mySidebar\").style.width = \"250px\";\n document.getElementById(\"main\").style.marginLeft = \"0px\";\n }\n\n closeNav() {\n $(\".overLayDiv\").removeClass(\"active\");\n document.getElementById(\"mySidebar\").style.width = \"0\";\n document.getElementById(\"main\").style.marginLeft = \"0\";\n }\n\n logout() {\n // remove user from local storage to log user out\n this.authenticationService.logout();\n this.router.navigate([\"/login\"]);\n }\n\n changePassword() {\n this.logoutMenuVisible = false;\n this.router.navigate([\"changepassword\"]);\n }\n\n billingPlan() {\n this.router.navigate([\"billingplan\"]);\n }\n\n fnNavigateToCart(\n is_Free,\n package_Path,\n function_PackageName,\n function_PackageId,\n function_Status\n ) {\n let isFree = is_Free.toString();\n let packagePath = package_Path.toString();\n let functionPackageName = function_PackageName.toString();\n let functionPackageId = function_PackageId.toString();\n let functionStatus = function_Status.toString();\n this.router.navigate([\"/addtocart\"], {\n queryParams: {\n isFree: this.EncryptParameters(isFree),\n packagePath: this.EncryptParameters(packagePath),\n functionPackageName: this.EncryptParameters(functionPackageName),\n functionPackageId: this.EncryptParameters(functionPackageId),\n functionStatus: this.EncryptParameters(functionStatus),\n },\n });\n }\n EncryptParameters(encryptValue) {\n let rsaHelper = new RSAHelper();\n let encrypt = rsaHelper.Encrypt(encryptValue);\n return encrypt;\n }\n getAvailableSearchFunctions() {\n this.organisationSettingService\n .GetOrganisationSettingList()\n .pipe(first())\n .subscribe(\n (data) => {\n if (data.statusCode == 0) {\n let result = data.responseInfo.functionCategoryDetail\n .filter((el) => {\n return el.functionPackageDetail.some((f) => {\n return f.comingSoon == false;\n });\n })\n .map((a) => {\n a.functionPackageDetail = a.functionPackageDetail.filter(\n (f) => f.comingSoon === false\n );\n return a;\n });\n let searchItemsList = [];\n result.forEach((a) => {\n a.functionPackageDetail.forEach((b) => {\n if (\n b.functionPackageId == FunctionPackageEnum.LeaveManagement\n ) {\n if (this.IsLeaveManagementAllowed) {\n let searchItem = new DropdownItems();\n searchItem.id = b.functionCategoryId;\n searchItem.name = b.functionPackageName;\n searchItemsList.push(searchItem);\n }\n } else if (\n b.functionPackageId == FunctionPackageEnum.UniversalImport\n ) {\n if (this.isUniversalImportAllowed) {\n let searchItem = new DropdownItems();\n searchItem.id = b.functionCategoryId;\n searchItem.name = b.functionPackageName;\n searchItemsList.push(searchItem);\n }\n } else if (\n b.functionPackageId == FunctionPackageEnum.APAutomation\n ) {\n if (this.IsAPAutomationAllow) {\n let searchItem = new DropdownItems();\n searchItem.id = b.functionCategoryId;\n searchItem.name = b.functionPackageName;\n searchItemsList.push(searchItem);\n }\n }\n else if (\n b.functionPackageId == FunctionPackageEnum.Container\n ) {\n if (this.isContainerAllowed) {\n let searchItem = new DropdownItems();\n searchItem.id = b.functionCategoryId;\n searchItem.name = b.functionPackageName;\n searchItemsList.push(searchItem);\n }\n } else {\n let searchItem = new DropdownItems();\n searchItem.id = b.functionCategoryId;\n searchItem.name = b.functionPackageName;\n searchItemsList.push(searchItem);\n }\n });\n });\n const uniq = new Set(searchItemsList.map((e) => JSON.stringify(e)));\n const res = Array.from(uniq).map((e) => JSON.parse(e));\n this.searchItems = res;\n }\n },\n (error) => {\n console.debug(error);\n }\n );\n }\n searchChanged(searchValue) {\n this.router.navigate([\"settings\"], { fragment: \"place\" + searchValue });\n }\n isSearchVisible(allFuncUrl) {\n let myUrl = parse(window.location.href);\n let currentUrl = myUrl.path;\n\n if (currentUrl == allFuncUrl) {\n return true;\n }\n this.searchValue = null;\n return false;\n }\n\n detectUrlUpdates() {\n this.setSettingsMenu(\"a\");\n this._routerSub = this.router.events\n .pipe(filter((event) => event instanceof NavigationEnd))\n .subscribe((value) => {\n this.setSettingsMenu(value);\n });\n }\n\n setSettingsMenu(urlDetails) {\n let myUrl = parse(window.location.href);\n let currentUrl = myUrl.path;\n let isRedirectFromMySubscriptionSettingPage = localStorage.getItem(\n \"isRedirectFromMySubscriptionSettingPage\"\n );\n\n if (\n currentUrl.startsWith(\"/dashboard\") ||\n currentUrl.startsWith(\"/export\") ||\n currentUrl.startsWith(\"/pay\") ||\n currentUrl.startsWith(\"/financeapprover\") ||\n currentUrl.startsWith(\"/card\") ||\n currentUrl.startsWith(\"/claimant\") ||\n currentUrl.startsWith(\"/ManageSubscription\") ||\n currentUrl.startsWith(\"/shoppingcartlist\") ||\n currentUrl.startsWith(\"/shoppingcartreview\") ||\n currentUrl.startsWith(\"/stripeAgreement\") ||\n currentUrl.startsWith(\"/shoppingcartConfirmed\") ||\n currentUrl.startsWith(\"/referandearn\") ||\n currentUrl.startsWith(\"/changepassword\") ||\n currentUrl.startsWith(\"/support/support\") ||\n currentUrl.startsWith(\"/support/unsubscribe\") ||\n currentUrl.startsWith(\"/universalimport/ccuploadfile\") ||\n currentUrl.startsWith(\"/universalimport/ccdefineheader\") ||\n currentUrl.startsWith(\"/universalimport/ccimportheadermapping\") ||\n currentUrl.startsWith(\"/universalimport/ccimportstmtreview\") ||\n currentUrl.startsWith(\"/universalimport/ccimportsummary\") ||\n currentUrl.startsWith(\"/approver\")\n )\n this.showSettingsMenu = false;\n else this.showSettingsMenu = true;\n\n if (this.showSettingsMenu) {\n this.activateAllFunctionsMenu = currentUrl == \"/settings\";\n this.activateMySubscriptionMenu =\n currentUrl.startsWith(\"/mysubscription\");\n this.activateComingSoonMenu = currentUrl.startsWith(\"/comingsoon\");\n this.activatePricingMenu = currentUrl.startsWith(\"/pricing\");\n this.activateSecondaryFMPrivilegeScreen = currentUrl.startsWith(\n \"/secondaryfm/privilege\"\n );\n this.isThirdLevelMenuVisible =\n this.activateAllFunctionsMenu ||\n this.activateMySubscriptionMenu ||\n this.activateComingSoonMenu ||\n this.activateSecondaryFMPrivilegeScreen;\n\n if (\n this.showSettingsMenu &&\n !(\n this.activateAllFunctionsMenu ||\n this.activateMySubscriptionMenu ||\n this.activateComingSoonMenu ||\n this.activatePricingMenu\n )\n ) {\n if (\n isRedirectFromMySubscriptionSettingPage == \"0\" ||\n isRedirectFromMySubscriptionSettingPage == \"1\"\n ) {\n this.activateAllFunctionsMenu =\n isRedirectFromMySubscriptionSettingPage == \"0\";\n this.activateMySubscriptionMenu =\n isRedirectFromMySubscriptionSettingPage == \"1\";\n } else {\n this.activateAllFunctionsMenu = true;\n this.activateMySubscriptionMenu = false;\n }\n }\n } else {\n this.activateAllFunctionsMenu = false;\n this.activateMySubscriptionMenu = false;\n this.activateComingSoonMenu = false;\n this.activatePricingMenu = false;\n this.isThirdLevelMenuVisible = false;\n }\n\n if (\n currentUrl.startsWith(\"/export/reportwizard\") ||\n currentUrl.startsWith(\"/export/createnewreport\")\n ) {\n this.activateCreateNewReportMenu = true;\n } else {\n this.activateCreateNewReportMenu = false;\n }\n }\n\n routeUser() {\n if (this.claims.IsFinanceManager == true)\n this.router.navigate([\"dashboard/overview\"]);\n else this.router.navigate([\"claimant/expenselist\"]);\n }\n\n supportPage() {\n this.logoutMenuVisible = false;\n this.router.navigate([\"support/support\"]);\n }\n fnMyMileageRate() {\n this.logoutMenuVisible = false;\n this.router.navigate([\"claimant/mymileagerate\"]);\n }\n\n unsubscribe() {\n this.logoutMenuVisible = false;\n this.router.navigate([\"support/unsubscribe\"]);\n }\n\n fnInvoicesClick() {\n this.logoutMenuVisible = false;\n this.claims.invoiceActiveTab = \"nav-billingHistory\";\n this.claimsService.updateClaims(this.claims);\n localStorage.setItem(\"BillingSettingsActiveTab\", \"nav-billingHistory\");\n this.router.navigate([\"ManageSubscription\"]);\n }\n paymentMethodActiveTab() {\n this.logoutMenuVisible = false;\n this.claims.invoiceActiveTab = \"nav-paymentMethod\";\n this.claimsService.updateClaims(this.claims);\n localStorage.setItem(\"BillingSettingsActiveTab\", \"nav-paymentMethod\");\n this.router.navigate([\"ManageSubscription\"]);\n }\n changeBillingPlan() {\n this.logoutMenuVisible = false;\n this.claims.invoiceActiveTab = \"nav-discountContract\";\n this.claimsService.updateClaims(this.claims);\n localStorage.setItem(\"BillingSettingsActiveTab\", \"nav-discountContract\");\n this.router.navigate([\"ManageSubscription\"]);\n }\n assistedSupportActiveTab() {\n this.logoutMenuVisible = false;\n this.claims.invoiceActiveTab = \"nav-implementationCharge\";\n this.claimsService.updateClaims(this.claims);\n localStorage.setItem(\n \"BillingSettingsActiveTab\",\n \"nav-implementationCharge\"\n );\n this.router.navigate([\"ManageSubscription\"]);\n }\n fnManageSubscriptionClick() {\n this.logoutMenuVisible = false;\n this.claims.invoiceActiveTab = \"nav-discountContract\";\n this.claimsService.updateClaims(this.claims);\n localStorage.setItem(\"BillingSettingsActiveTab\", \"nav-discountContract\");\n this.router.navigate([\"ManageSubscription\"]);\n }\n referAndEarnRoute() {\n this.logoutMenuVisible = false;\n this.router.navigate([\"referandearn\"]);\n }\n\n sanitizerHtml(element) {\n let svg = this.sanitizer.bypassSecurityTrustHtml(element);\n return svg;\n }\n\n fnCloseExportReportMarketingPopUp() {\n this.showExportReportMarketingPopup = false;\n }\n\n showCreateReportMarketingPopup() {\n this.getCartDetails();\n this.showExportReportMarketingPopup = true;\n }\n\n disableAddToCartForDataExport: boolean;\n getCartDetailsRequest: IApiRequest;\n disableAddToCart: boolean;\n cartList: any;\n getCartDetails(): any {\n this.getCartDetailsRequest = new ApiRequest(\n \"SoloGetCartDetails\",\n 1,\n \"111\"\n );\n this.getCartDetailsRequest.requestInfo = new GetCartDetailsRequest(\n this.claims.UserId,\n this.claims.OrgId\n );\n\n this.organisationSettingService\n .getCartDetailsList(this.getCartDetailsRequest)\n .pipe(first())\n .subscribe(\n (data) => {\n if (data.responseInfo != null) {\n this.claims.CartCount = data.responseInfo.listCartDetails.length;\n this.claimsService.updateClaims(this.claims);\n this.cartList = data.responseInfo.listCartDetails;\n this.disableAddToCart = this.isFunctionInCart(\n FunctionPackageEnum.AccountingIntegration\n );\n this.disableAddToCartForDataExport = this.isFunctionInCart(\n FunctionPackageEnum.ExportReport\n );\n } else {\n }\n },\n (error) => {}\n );\n }\n\n isFunctionInCart(functionPackageId) {\n return this.cartList.some(\n (item) => item.functionPackageId == functionPackageId\n );\n }\n\n fnSaveCartDetailsForExportReport() {\n let request = new ApiRequest(\n \"SaveCartDetails\",\n environment.applicationVersion,\n environment.requestId\n );\n\n request.requestInfo = new CartDetailsRequest(\n 0,\n 0,\n false,\n FunctionPackageEnum.ExportReport,\n this.translate.instant(\"data_to_other_system\")\n );\n this.organisationSettingService\n .SaveCartDetails(request)\n .pipe(first())\n .subscribe((data) => {\n if (data.statusCode == 0) {\n this.showExportReportMarketingPopup = false;\n this.routerNavigateToExportData();\n }\n });\n }\n\n routerNavigateToExportData() {\n let isFree = \"false\";\n let packagePath = \"export/reportwizard\";\n let functionPackageName = this.translate.instant(\"data_to_other_system\");\n let functionPackageId = FunctionPackageEnum.ExportReport.toString();\n let functionStatus = \"0\";\n this.router.navigate([\"/addtocart\"], {\n queryParams: {\n isFree: this.EncryptParameters(isFree),\n packagePath: this.EncryptParameters(packagePath),\n functionPackageName: this.EncryptParameters(functionPackageName),\n functionPackageId: this.EncryptParameters(functionPackageId),\n functionStatus: this.EncryptParameters(functionStatus),\n },\n });\n }\n\n showZoomedDataExportImage: boolean;\n zoomDataExportImage() {\n this.showZoomedDataExportImage = true;\n }\n\n closeDataExportImage() {\n this.showZoomedDataExportImage = false;\n }\n\n closeQRCodePanel() {\n this.showQRCodePanel = false;\n }\n openQRCodePanel() {\n this.showQRCodePanel = true;\n }\n navegateToGrid(page, url) {\n this.router.navigate([url], {\n queryParams: {\n page: this.EncryptParameters(page),\n },\n });\n }\n\n navigatToImportCardStatement() {\n localStorage.setItem(\"isCameFromCreditCardImport\" + this.claims.OrgId, \"1\");\n this.storageData.importTemplate =\n UniversalImportTemplateEnum.ImportCreditCardStatement;\n //this.universalImporterService.fnSaveDataToLocalStorage(this.storageData);\n this.router.navigate([\"/universalimport/ccuploadfile\"]);\n }\n\n isCardMenuActive() {\n this.activateImportStatementMenu =\n this.routeIsActive(\"/universalimport/ccuploadfile\") ||\n this.routeIsActive(\"/universalimport/ccdefineheader\") ||\n this.routeIsActive(\"/universalimport/ccimportheadermapping\") ||\n this.routeIsActive(\"/universalimport/ccimportstmtreview\") ||\n this.routeIsActive(\"/universalimport/ccimportsummary\");\n\n if (\n this.routeIsActive(\"/card\") ||\n this.routeIsActive(\"/universalimport/ccuploadfile\") ||\n this.routeIsActive(\"/universalimport/ccdefineheader\") ||\n this.routeIsActive(\"/universalimport/ccimportheadermapping\") ||\n this.routeIsActive(\"/universalimport/ccimportstmtreview\") ||\n this.routeIsActive(\"/universalimport/ccimportsummary\")\n ) {\n return true;\n } else {\n return false;\n }\n }\n\n getOrgPurchaseFunctionList() {\n //Use this function for any future validations ..\n\n let request = new ApiRequest(\n \"SoloPurchaseFunctionList\",\n environment.applicationVersion,\n environment.requestId\n );\n request.requestInfo = new PurchaseFunctionListRequest(\n this.claims.UserId,\n this.claims.OrgId\n );\n this.organisationSettingService\n .soloPurchaseFunctionList(request)\n .subscribe((data: IApiresponse) => {\n if (data.statusCode == 0) {\n if (data.responseInfo.orgPaidFunctionList.length > 0) {\n let purchaseFuncListDetails =\n data.responseInfo.orgPaidFunctionList[0].paidFunctions;\n var preApprov = purchaseFuncListDetails.find(\n (x) => x.functionId == FunctionPackageEnum.Pre_Approvals\n );\n if (preApprov) {\n this.claims.isPreApprovalPurchased = true;\n }\n var nrPurchased = purchaseFuncListDetails.find(\n (x) => x.functionId == FunctionPackageEnum.NonReimbursableFuel\n );\n if (nrPurchased) {\n this.claims.isNRPackagePurchasedOrTrial = true;\n }\n var fcPurchased = purchaseFuncListDetails.find(\n (x) => x.functionId == FunctionPackageEnum.FuelCard\n );\n if (fcPurchased) {\n this.claims.isFCPackagePurchasedOrTrial = true;\n }\n var advancesPurchased = purchaseFuncListDetails.find(\n (x) => x.functionId == FunctionPackageEnum.Advances\n );\n if (advancesPurchased) {\n this.claims.isAdvancesFunctionPurchasedOrTrial = true;\n }\n var apAutomationPurchased = purchaseFuncListDetails.find(\n (x) => x.functionId == FunctionPackageEnum.APAutomation\n );\n if (apAutomationPurchased) {\n this.claims.isAPAutomationFunctionPurchasedOrTrial = true;\n }\n\n var carbonFoorprintPurchased = purchaseFuncListDetails.find(\n (x) => x.functionId == FunctionPackageEnum.CarbonFootprint\n );\n\n if (carbonFoorprintPurchased) {\n this.isCarbonFootprintPurchasedOrTrial = true;\n }\n\n this.claimsService.updateClaims(this.claims);\n }\n }\n });\n }\n fnGetClass() {\n if (this.isFinanceManager) {\n return \"col-md-8\";\n } else {\n return \"col-md-12\";\n }\n }\n\n toggleRightSidebar() {\n this.toggleRightSidebarEvent.emit(true);\n }\n\n element: any;\n fullscreen() {\n this.element = document.documentElement;\n document.body.classList.toggle(\"fullscreen-enable\");\n if (\n !document.fullscreenElement &&\n !this.element.mozFullScreenElement &&\n !this.element.webkitFullscreenElement\n ) {\n if (this.element.requestFullscreen) {\n this.element.requestFullscreen();\n } else if (this.element.mozRequestFullScreen) {\n /* Firefox */\n this.element.mozRequestFullScreen();\n } else if (this.element.webkitRequestFullscreen) {\n /* Chrome, Safari and Opera */\n this.element.webkitRequestFullscreen();\n } else if (this.element.msRequestFullscreen) {\n /* IE/Edge */\n this.element.msRequestFullscreen();\n }\n\n this.isInFullscreenMode = true;\n } else {\n if (this.document.exitFullscreen) {\n this.document.exitFullscreen();\n } else if (this.document.mozCancelFullScreen) {\n /* Firefox */\n this.document.mozCancelFullScreen();\n } else if (this.document.webkitExitFullscreen) {\n /* Chrome, Safari and Opera */\n this.document.webkitExitFullscreen();\n } else if (this.document.msExitFullscreen) {\n /* IE/Edge */\n this.document.msExitFullscreen();\n }\n\n this.isInFullscreenMode = false;\n }\n }\n\n toggleMobileMenu(event) {\n event.preventDefault();\n this.mobileMenuButtonClicked.emit();\n }\n\n ngOnDestroy() {\n if (this.document.exitFullscreen) {\n this.document.exitFullscreen();\n } else if (this.document.mozCancelFullScreen) {\n /* Firefox */\n this.document.mozCancelFullScreen();\n } else if (this.document.webkitExitFullscreen) {\n /* Chrome, Safari and Opera */\n this.document.webkitExitFullscreen();\n } else if (this.document.msExitFullscreen) {\n /* IE/Edge */\n this.document.msExitFullscreen();\n }\n }\n isBasicFunctionPurchased: boolean = true;\n basicFunctionTrialDays: number;\n basicFuncEndDate: any;\n fnGetOrgBasicFunctionSubscriptionTrialDetails() {\n this.orgBasicFunctionSubscriptionService\n .GetOrgBasicFunctionSubscriptionTrialDetails(this.claims.OrgId)\n .subscribe((res: any) => {\n if (res.responseInfo != null) {\n let todayDate = new Date();\n\n this.basicFunctionRemainingTrialDays =\n res.responseInfo.basicFunctionRemainingTrialDays;\n todayDate.setDate(\n todayDate.getDate() + this.basicFunctionRemainingTrialDays\n );\n let formatDate = this.datepipe.transform(\n todayDate,\n environment.dateFormat\n );\n this.basicFuncEndDate = formatDate;\n this.basicFunctionTrialDays = res.responseInfo.basicFunctionTrialDays;\n this.isBasicFunctionPurchased =\n res.responseInfo.isBasicFunctionPurchased;\n this.claims.isBasicFunctionPurchased =\n res.responseInfo.isBasicFunctionPurchased;\n this.claimsService.updateClaims(this.claims);\n }\n });\n }\n isDisplayEssDetail: boolean;\n fnRedirectToEssPack() {\n this.isDisplayEssDetail = false;\n localStorage.setItem(\"isEssentialPackSubscribeDisplay\", \"1\");\n this.router.navigate([\"/essential-pack\"]);\n }\n openEssPackPanel() {\n this.isDisplayEssDetail = true;\n }\n dismissEssPack() {\n this.isDisplayEssDetail = false;\n }\n fnEssBtnClick(clickType: number) {\n this.isDisplayEssDetail = false;\n switch (clickType) {\n case 1:\n this.fnInvoicesClick();\n break;\n case 2:\n case 3:\n this.changeBillingPlan();\n break;\n default:\n break;\n }\n }\n\n recallExportedExpensesMarketingPopupModel: any;\n recallExportedExpensesMarketingPopup = false;\n\n showRecallExportedExpensesMarketingPopup() {\n if (this.claims.IsRecallExportedExpensesPurchased) {\n this.recallExportedExpensesMarketingPopup == false;\n this.router.navigate([\"export/exportrollback\"]);\n } else {\n this.recallExportedExpensesMarketingPopup = true;\n this.recallExportedExpensesMarketingPopupModel = new MarketingPopup(\n this.translate.instant(\"roll_back_exported_expenses\"),\n this.translate.instant(\"Roll Back Any Expense You Want\"),\n \"\",\n null,\n \"../../assets/svg-icons/build-report-image.svg\",\n \"../../assets/images/roll_back_exported_expense.png\",\n \"\",\n FunctionPackageEnum.RecallExportedExpenses,\n this.translate.instant(\"Recall Exported Expenses\"),\n \"export/exportrollback\",\n 0,\n 0,\n \"\",\n [\n this.translate.instant(\n \"Humans are Prone to Errors, so are you. But the good thing about this function is that it lets you correct those.\"\n ),\n ],\n this.translate.instant(\n \"Humans are Prone to Errors, so are you. But the good thing about this function is that it lets you correct those.\"\n )\n );\n }\n }\n\n closeMarketingPopup() {\n this.recallExportedExpensesMarketingPopup = false;\n }\n\n \n isMFAEnabled: boolean = false;\n showMFAPanel = false;\n \nqrCodeUrl: string = '';\nqrSecret: string = '';\nqrToken: string = '';\nverifyToken(): void {\n this.authenticationService.verifyTotp(this.qrToken, this.qrSecret, this.claims.LoginId).subscribe(response => {\n if (response.verified) {\n this.toastr.success('Success');\n this.claims.IsMFADeviceRegistered = true;\n this.isMFADeviceRegistered = true;\n this.claimsService.updateClaims(this.claims);\n } else {\n this.toastr.error('Invalid token');\n }\n });\n}\n\nregisterMFADevice(){\n this.authenticationService\n .getTotpSetup(this.claims.LoginId)\n .subscribe((data) => {\n this.qrCodeUrl = data.qrCodeUrl;\n this.qrSecret = data.secret;\n });\n}\n\nisMFADeviceRegistered: boolean = false;\n\nregisterNewMFADevice(){\n\n this.isMFADeviceRegistered = false;\n\n}\n\nonTokenChange(value){\n this.qrToken = value;\n}\n}\n","
    \n
    \n
    \n \n \n\n \n\n \n\n \n \n \n\n
    \n\n\n\n
    \n
    ","import { Component, OnInit, Inject, EventEmitter, Output } from \"@angular/core\";\nimport { DOCUMENT } from \"@angular/common\";\nimport { Router } from \"@angular/router\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { environment } from \"../../../environments/environment\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { AuthenticationService } from \"src/app/_services\";\n\n@Component({\n selector: \"app-topbar\",\n templateUrl: \"./topbar.component.html\",\n styleUrls: [\"./topbar.component.scss\"],\n})\n/**\n * Topbar component\n */\nexport class TopbarComponent implements OnInit {\n element: any;\n flagvalue: any;\n cookieValue: any;\n countryName: any;\n valueset: any;\n claims: Claims;\n imageSource='assets/images/logo.png';\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n private router: Router,\n private authService: AuthenticationService,\n public _cookiesService: CookieService,\n private claimsService: ClaimsService\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n if(this.claims)\n {\n this.imageSource = this.claims.OrgLogo;\n }\n \n });\n }\n @Output() settingsButtonClicked = new EventEmitter();\n @Output() mobileMenuButtonClicked = new EventEmitter();\n\n ngOnInit(): void {\n this.element = document.documentElement;\n }\n\n /**\n * Fullscreen method\n */\n fullscreen() {\n document.body.classList.toggle(\"fullscreen-enable\");\n if (\n !document.fullscreenElement &&\n !this.element.mozFullScreenElement &&\n !this.element.webkitFullscreenElement\n ) {\n if (this.element.requestFullscreen) {\n this.element.requestFullscreen();\n } else if (this.element.mozRequestFullScreen) {\n /* Firefox */\n this.element.mozRequestFullScreen();\n } else if (this.element.webkitRequestFullscreen) {\n /* Chrome, Safari and Opera */\n this.element.webkitRequestFullscreen();\n } else if (this.element.msRequestFullscreen) {\n /* IE/Edge */\n this.element.msRequestFullscreen();\n }\n } else {\n if (this.document.exitFullscreen) {\n this.document.exitFullscreen();\n } else if (this.document.mozCancelFullScreen) {\n /* Firefox */\n this.document.mozCancelFullScreen();\n } else if (this.document.webkitExitFullscreen) {\n /* Chrome, Safari and Opera */\n this.document.webkitExitFullscreen();\n } else if (this.document.msExitFullscreen) {\n /* IE/Edge */\n this.document.msExitFullscreen();\n }\n }\n }\n\n /**\n * Toggle the menu bar when having mobile screen\n */\n toggleMobileMenu() {\n this.mobileMenuButtonClicked.emit();\n }\n\n /**\n * Toggles the right sidebar\n */\n toggleRightSidebar() {\n this.settingsButtonClicked.emit();\n }\n\n /**\n * Logout the user\n */\n logout() {\n this.authService.logout();\n this.router.navigate([\"/login\"]);\n }\n}\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nexport default now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nexport default trimmedEndIndex;\n","import trimmedEndIndex from './_trimmedEndIndex.js';\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nexport default baseTrim;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","import baseTrim from './_baseTrim.js';\nimport isObject from './isObject.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nexport default toNumber;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import isObject from './isObject.js';\nimport now from './now.js';\nimport toNumber from './toNumber.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nexport default debounce;\n","/**\n * simplebar-core - v1.2.4\n * Scrollbars, simpler.\n * https://grsmto.github.io/simplebar/\n *\n * Made by Adrien Denat from a fork by Jonathan Nicol\n * Under MIT License\n */\n\nimport { throttle, debounce } from 'lodash-es';\nimport canUseDOM from 'can-use-dom';\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar cachedScrollbarWidth = null;\nvar cachedDevicePixelRatio = null;\nif (canUseDOM) {\n window.addEventListener('resize', function () {\n if (cachedDevicePixelRatio !== window.devicePixelRatio) {\n cachedDevicePixelRatio = window.devicePixelRatio;\n cachedScrollbarWidth = null;\n }\n });\n}\nfunction scrollbarWidth() {\n if (cachedScrollbarWidth === null) {\n if (typeof document === 'undefined') {\n cachedScrollbarWidth = 0;\n return cachedScrollbarWidth;\n }\n var body = document.body;\n var box = document.createElement('div');\n box.classList.add('simplebar-hide-scrollbar');\n body.appendChild(box);\n var width = box.getBoundingClientRect().right;\n body.removeChild(box);\n cachedScrollbarWidth = width;\n }\n return cachedScrollbarWidth;\n}\n\nfunction getElementWindow$1(element) {\n if (!element ||\n !element.ownerDocument ||\n !element.ownerDocument.defaultView) {\n return window;\n }\n return element.ownerDocument.defaultView;\n}\nfunction getElementDocument$1(element) {\n if (!element || !element.ownerDocument) {\n return document;\n }\n return element.ownerDocument;\n}\n// Helper function to retrieve options from element attributes\nvar getOptions$1 = function (obj) {\n var initialObj = {};\n var options = Array.prototype.reduce.call(obj, function (acc, attribute) {\n var option = attribute.name.match(/data-simplebar-(.+)/);\n if (option) {\n var key = option[1].replace(/\\W+(.)/g, function (_, chr) { return chr.toUpperCase(); });\n switch (attribute.value) {\n case 'true':\n acc[key] = true;\n break;\n case 'false':\n acc[key] = false;\n break;\n case undefined:\n acc[key] = true;\n break;\n default:\n acc[key] = attribute.value;\n }\n }\n return acc;\n }, initialObj);\n return options;\n};\nfunction addClasses$1(el, classes) {\n var _a;\n if (!el)\n return;\n (_a = el.classList).add.apply(_a, classes.split(' '));\n}\nfunction removeClasses$1(el, classes) {\n if (!el)\n return;\n classes.split(' ').forEach(function (className) {\n el.classList.remove(className);\n });\n}\nfunction classNamesToQuery$1(classNames) {\n return \".\".concat(classNames.split(' ').join('.'));\n}\n\nvar helpers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getElementWindow: getElementWindow$1,\n getElementDocument: getElementDocument$1,\n getOptions: getOptions$1,\n addClasses: addClasses$1,\n removeClasses: removeClasses$1,\n classNamesToQuery: classNamesToQuery$1\n});\n\nvar getElementWindow = getElementWindow$1, getElementDocument = getElementDocument$1, getOptions = getOptions$1, addClasses = addClasses$1, removeClasses = removeClasses$1, classNamesToQuery = classNamesToQuery$1;\nvar SimpleBarCore = /** @class */ (function () {\n function SimpleBarCore(element, options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n this.removePreventClickId = null;\n this.minScrollbarWidth = 20;\n this.stopScrollDelay = 175;\n this.isScrolling = false;\n this.isMouseEntering = false;\n this.scrollXTicking = false;\n this.scrollYTicking = false;\n this.wrapperEl = null;\n this.contentWrapperEl = null;\n this.contentEl = null;\n this.offsetEl = null;\n this.maskEl = null;\n this.placeholderEl = null;\n this.heightAutoObserverWrapperEl = null;\n this.heightAutoObserverEl = null;\n this.rtlHelpers = null;\n this.scrollbarWidth = 0;\n this.resizeObserver = null;\n this.mutationObserver = null;\n this.elStyles = null;\n this.isRtl = null;\n this.mouseX = 0;\n this.mouseY = 0;\n this.onMouseMove = function () { };\n this.onWindowResize = function () { };\n this.onStopScrolling = function () { };\n this.onMouseEntered = function () { };\n /**\n * On scroll event handling\n */\n this.onScroll = function () {\n var elWindow = getElementWindow(_this.el);\n if (!_this.scrollXTicking) {\n elWindow.requestAnimationFrame(_this.scrollX);\n _this.scrollXTicking = true;\n }\n if (!_this.scrollYTicking) {\n elWindow.requestAnimationFrame(_this.scrollY);\n _this.scrollYTicking = true;\n }\n if (!_this.isScrolling) {\n _this.isScrolling = true;\n addClasses(_this.el, _this.classNames.scrolling);\n }\n _this.showScrollbar('x');\n _this.showScrollbar('y');\n _this.onStopScrolling();\n };\n this.scrollX = function () {\n if (_this.axis.x.isOverflowing) {\n _this.positionScrollbar('x');\n }\n _this.scrollXTicking = false;\n };\n this.scrollY = function () {\n if (_this.axis.y.isOverflowing) {\n _this.positionScrollbar('y');\n }\n _this.scrollYTicking = false;\n };\n this._onStopScrolling = function () {\n removeClasses(_this.el, _this.classNames.scrolling);\n if (_this.options.autoHide) {\n _this.hideScrollbar('x');\n _this.hideScrollbar('y');\n }\n _this.isScrolling = false;\n };\n this.onMouseEnter = function () {\n if (!_this.isMouseEntering) {\n addClasses(_this.el, _this.classNames.mouseEntered);\n _this.showScrollbar('x');\n _this.showScrollbar('y');\n _this.isMouseEntering = true;\n }\n _this.onMouseEntered();\n };\n this._onMouseEntered = function () {\n removeClasses(_this.el, _this.classNames.mouseEntered);\n if (_this.options.autoHide) {\n _this.hideScrollbar('x');\n _this.hideScrollbar('y');\n }\n _this.isMouseEntering = false;\n };\n this._onMouseMove = function (e) {\n _this.mouseX = e.clientX;\n _this.mouseY = e.clientY;\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n _this.onMouseMoveForAxis('x');\n }\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n _this.onMouseMoveForAxis('y');\n }\n };\n this.onMouseLeave = function () {\n _this.onMouseMove.cancel();\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n _this.onMouseLeaveForAxis('x');\n }\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n _this.onMouseLeaveForAxis('y');\n }\n _this.mouseX = -1;\n _this.mouseY = -1;\n };\n this._onWindowResize = function () {\n // Recalculate scrollbarWidth in case it's a zoom\n _this.scrollbarWidth = _this.getScrollbarWidth();\n _this.hideNativeScrollbar();\n };\n this.onPointerEvent = function (e) {\n if (!_this.axis.x.track.el ||\n !_this.axis.y.track.el ||\n !_this.axis.x.scrollbar.el ||\n !_this.axis.y.scrollbar.el)\n return;\n var isWithinTrackXBounds, isWithinTrackYBounds;\n _this.axis.x.track.rect = _this.axis.x.track.el.getBoundingClientRect();\n _this.axis.y.track.rect = _this.axis.y.track.el.getBoundingClientRect();\n if (_this.axis.x.isOverflowing || _this.axis.x.forceVisible) {\n isWithinTrackXBounds = _this.isWithinBounds(_this.axis.x.track.rect);\n }\n if (_this.axis.y.isOverflowing || _this.axis.y.forceVisible) {\n isWithinTrackYBounds = _this.isWithinBounds(_this.axis.y.track.rect);\n }\n // If any pointer event is called on the scrollbar\n if (isWithinTrackXBounds || isWithinTrackYBounds) {\n // Prevent event leaking\n e.stopPropagation();\n if (e.type === 'pointerdown' && e.pointerType !== 'touch') {\n if (isWithinTrackXBounds) {\n _this.axis.x.scrollbar.rect =\n _this.axis.x.scrollbar.el.getBoundingClientRect();\n if (_this.isWithinBounds(_this.axis.x.scrollbar.rect)) {\n _this.onDragStart(e, 'x');\n }\n else {\n _this.onTrackClick(e, 'x');\n }\n }\n if (isWithinTrackYBounds) {\n _this.axis.y.scrollbar.rect =\n _this.axis.y.scrollbar.el.getBoundingClientRect();\n if (_this.isWithinBounds(_this.axis.y.scrollbar.rect)) {\n _this.onDragStart(e, 'y');\n }\n else {\n _this.onTrackClick(e, 'y');\n }\n }\n }\n }\n };\n /**\n * Drag scrollbar handle\n */\n this.drag = function (e) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;\n if (!_this.draggedAxis || !_this.contentWrapperEl)\n return;\n var eventOffset;\n var track = _this.axis[_this.draggedAxis].track;\n var trackSize = (_b = (_a = track.rect) === null || _a === void 0 ? void 0 : _a[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _b !== void 0 ? _b : 0;\n var scrollbar = _this.axis[_this.draggedAxis].scrollbar;\n var contentSize = (_d = (_c = _this.contentWrapperEl) === null || _c === void 0 ? void 0 : _c[_this.axis[_this.draggedAxis].scrollSizeAttr]) !== null && _d !== void 0 ? _d : 0;\n var hostSize = parseInt((_f = (_e = _this.elStyles) === null || _e === void 0 ? void 0 : _e[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _f !== void 0 ? _f : '0px', 10);\n e.preventDefault();\n e.stopPropagation();\n if (_this.draggedAxis === 'y') {\n eventOffset = e.pageY;\n }\n else {\n eventOffset = e.pageX;\n }\n // Calculate how far the user's mouse is from the top/left of the scrollbar (minus the dragOffset).\n var dragPos = eventOffset -\n ((_h = (_g = track.rect) === null || _g === void 0 ? void 0 : _g[_this.axis[_this.draggedAxis].offsetAttr]) !== null && _h !== void 0 ? _h : 0) -\n _this.axis[_this.draggedAxis].dragOffset;\n dragPos = _this.draggedAxis === 'x' && _this.isRtl\n ? ((_k = (_j = track.rect) === null || _j === void 0 ? void 0 : _j[_this.axis[_this.draggedAxis].sizeAttr]) !== null && _k !== void 0 ? _k : 0) -\n scrollbar.size -\n dragPos\n : dragPos;\n // Convert the mouse position into a percentage of the scrollbar height/width.\n var dragPerc = dragPos / (trackSize - scrollbar.size);\n // Scroll the content by the same percentage.\n var scrollPos = dragPerc * (contentSize - hostSize);\n // Fix browsers inconsistency on RTL\n if (_this.draggedAxis === 'x' && _this.isRtl) {\n scrollPos = ((_l = SimpleBarCore.getRtlHelpers()) === null || _l === void 0 ? void 0 : _l.isScrollingToNegative)\n ? -scrollPos\n : scrollPos;\n }\n _this.contentWrapperEl[_this.axis[_this.draggedAxis].scrollOffsetAttr] =\n scrollPos;\n };\n /**\n * End scroll handle drag\n */\n this.onEndDrag = function (e) {\n var elDocument = getElementDocument(_this.el);\n var elWindow = getElementWindow(_this.el);\n e.preventDefault();\n e.stopPropagation();\n removeClasses(_this.el, _this.classNames.dragging);\n elDocument.removeEventListener('mousemove', _this.drag, true);\n elDocument.removeEventListener('mouseup', _this.onEndDrag, true);\n _this.removePreventClickId = elWindow.setTimeout(function () {\n // Remove these asynchronously so we still suppress click events\n // generated simultaneously with mouseup.\n elDocument.removeEventListener('click', _this.preventClick, true);\n elDocument.removeEventListener('dblclick', _this.preventClick, true);\n _this.removePreventClickId = null;\n });\n };\n /**\n * Handler to ignore click events during drag\n */\n this.preventClick = function (e) {\n e.preventDefault();\n e.stopPropagation();\n };\n this.el = element;\n this.options = __assign(__assign({}, SimpleBarCore.defaultOptions), options);\n this.classNames = __assign(__assign({}, SimpleBarCore.defaultOptions.classNames), options.classNames);\n this.axis = {\n x: {\n scrollOffsetAttr: 'scrollLeft',\n sizeAttr: 'width',\n scrollSizeAttr: 'scrollWidth',\n offsetSizeAttr: 'offsetWidth',\n offsetAttr: 'left',\n overflowAttr: 'overflowX',\n dragOffset: 0,\n isOverflowing: true,\n forceVisible: false,\n track: { size: null, el: null, rect: null, isVisible: false },\n scrollbar: { size: null, el: null, rect: null, isVisible: false }\n },\n y: {\n scrollOffsetAttr: 'scrollTop',\n sizeAttr: 'height',\n scrollSizeAttr: 'scrollHeight',\n offsetSizeAttr: 'offsetHeight',\n offsetAttr: 'top',\n overflowAttr: 'overflowY',\n dragOffset: 0,\n isOverflowing: true,\n forceVisible: false,\n track: { size: null, el: null, rect: null, isVisible: false },\n scrollbar: { size: null, el: null, rect: null, isVisible: false }\n }\n };\n if (typeof this.el !== 'object' || !this.el.nodeName) {\n throw new Error(\"Argument passed to SimpleBar must be an HTML element instead of \".concat(this.el));\n }\n this.onMouseMove = throttle(this._onMouseMove, 64);\n this.onWindowResize = debounce(this._onWindowResize, 64, { leading: true });\n this.onStopScrolling = debounce(this._onStopScrolling, this.stopScrollDelay);\n this.onMouseEntered = debounce(this._onMouseEntered, this.stopScrollDelay);\n this.init();\n }\n /**\n * Helper to fix browsers inconsistency on RTL:\n * - Firefox inverts the scrollbar initial position\n * - IE11 inverts both scrollbar position and scrolling offset\n * Directly inspired by @KingSora's OverlayScrollbars https://github.com/KingSora/OverlayScrollbars/blob/master/js/OverlayScrollbars.js#L1634\n */\n SimpleBarCore.getRtlHelpers = function () {\n if (SimpleBarCore.rtlHelpers) {\n return SimpleBarCore.rtlHelpers;\n }\n var dummyDiv = document.createElement('div');\n dummyDiv.innerHTML =\n '
    ';\n var scrollbarDummyEl = dummyDiv.firstElementChild;\n var dummyChild = scrollbarDummyEl === null || scrollbarDummyEl === void 0 ? void 0 : scrollbarDummyEl.firstElementChild;\n if (!dummyChild)\n return null;\n document.body.appendChild(scrollbarDummyEl);\n scrollbarDummyEl.scrollLeft = 0;\n var dummyContainerOffset = SimpleBarCore.getOffset(scrollbarDummyEl);\n var dummyChildOffset = SimpleBarCore.getOffset(dummyChild);\n scrollbarDummyEl.scrollLeft = -999;\n var dummyChildOffsetAfterScroll = SimpleBarCore.getOffset(dummyChild);\n document.body.removeChild(scrollbarDummyEl);\n SimpleBarCore.rtlHelpers = {\n // determines if the scrolling is responding with negative values\n isScrollOriginAtZero: dummyContainerOffset.left !== dummyChildOffset.left,\n // determines if the origin scrollbar position is inverted or not (positioned on left or right)\n isScrollingToNegative: dummyChildOffset.left !== dummyChildOffsetAfterScroll.left\n };\n return SimpleBarCore.rtlHelpers;\n };\n SimpleBarCore.prototype.getScrollbarWidth = function () {\n // Try/catch for FF 56 throwing on undefined computedStyles\n try {\n // Detect browsers supporting CSS scrollbar styling and do not calculate\n if ((this.contentWrapperEl &&\n getComputedStyle(this.contentWrapperEl, '::-webkit-scrollbar')\n .display === 'none') ||\n 'scrollbarWidth' in document.documentElement.style ||\n '-ms-overflow-style' in document.documentElement.style) {\n return 0;\n }\n else {\n return scrollbarWidth();\n }\n }\n catch (e) {\n return scrollbarWidth();\n }\n };\n SimpleBarCore.getOffset = function (el) {\n var rect = el.getBoundingClientRect();\n var elDocument = getElementDocument(el);\n var elWindow = getElementWindow(el);\n return {\n top: rect.top +\n (elWindow.pageYOffset || elDocument.documentElement.scrollTop),\n left: rect.left +\n (elWindow.pageXOffset || elDocument.documentElement.scrollLeft)\n };\n };\n SimpleBarCore.prototype.init = function () {\n // We stop here on server-side\n if (canUseDOM) {\n this.initDOM();\n this.rtlHelpers = SimpleBarCore.getRtlHelpers();\n this.scrollbarWidth = this.getScrollbarWidth();\n this.recalculate();\n this.initListeners();\n }\n };\n SimpleBarCore.prototype.initDOM = function () {\n var _a, _b;\n // assume that element has his DOM already initiated\n this.wrapperEl = this.el.querySelector(classNamesToQuery(this.classNames.wrapper));\n this.contentWrapperEl =\n this.options.scrollableNode ||\n this.el.querySelector(classNamesToQuery(this.classNames.contentWrapper));\n this.contentEl =\n this.options.contentNode ||\n this.el.querySelector(classNamesToQuery(this.classNames.contentEl));\n this.offsetEl = this.el.querySelector(classNamesToQuery(this.classNames.offset));\n this.maskEl = this.el.querySelector(classNamesToQuery(this.classNames.mask));\n this.placeholderEl = this.findChild(this.wrapperEl, classNamesToQuery(this.classNames.placeholder));\n this.heightAutoObserverWrapperEl = this.el.querySelector(classNamesToQuery(this.classNames.heightAutoObserverWrapperEl));\n this.heightAutoObserverEl = this.el.querySelector(classNamesToQuery(this.classNames.heightAutoObserverEl));\n this.axis.x.track.el = this.findChild(this.el, \"\".concat(classNamesToQuery(this.classNames.track)).concat(classNamesToQuery(this.classNames.horizontal)));\n this.axis.y.track.el = this.findChild(this.el, \"\".concat(classNamesToQuery(this.classNames.track)).concat(classNamesToQuery(this.classNames.vertical)));\n this.axis.x.scrollbar.el =\n ((_a = this.axis.x.track.el) === null || _a === void 0 ? void 0 : _a.querySelector(classNamesToQuery(this.classNames.scrollbar))) || null;\n this.axis.y.scrollbar.el =\n ((_b = this.axis.y.track.el) === null || _b === void 0 ? void 0 : _b.querySelector(classNamesToQuery(this.classNames.scrollbar))) || null;\n if (!this.options.autoHide) {\n addClasses(this.axis.x.scrollbar.el, this.classNames.visible);\n addClasses(this.axis.y.scrollbar.el, this.classNames.visible);\n }\n };\n SimpleBarCore.prototype.initListeners = function () {\n var _this = this;\n var _a;\n var elWindow = getElementWindow(this.el);\n // Event listeners\n this.el.addEventListener('mouseenter', this.onMouseEnter);\n this.el.addEventListener('pointerdown', this.onPointerEvent, true);\n this.el.addEventListener('mousemove', this.onMouseMove);\n this.el.addEventListener('mouseleave', this.onMouseLeave);\n (_a = this.contentWrapperEl) === null || _a === void 0 ? void 0 : _a.addEventListener('scroll', this.onScroll);\n // Browser zoom triggers a window resize\n elWindow.addEventListener('resize', this.onWindowResize);\n if (!this.contentEl)\n return;\n if (window.ResizeObserver) {\n // Hack for https://github.com/WICG/ResizeObserver/issues/38\n var resizeObserverStarted_1 = false;\n var resizeObserver = elWindow.ResizeObserver || ResizeObserver;\n this.resizeObserver = new resizeObserver(function () {\n if (!resizeObserverStarted_1)\n return;\n elWindow.requestAnimationFrame(function () {\n _this.recalculate();\n });\n });\n this.resizeObserver.observe(this.el);\n this.resizeObserver.observe(this.contentEl);\n elWindow.requestAnimationFrame(function () {\n resizeObserverStarted_1 = true;\n });\n }\n // This is required to detect horizontal scroll. Vertical scroll only needs the resizeObserver.\n this.mutationObserver = new elWindow.MutationObserver(function () {\n elWindow.requestAnimationFrame(function () {\n _this.recalculate();\n });\n });\n this.mutationObserver.observe(this.contentEl, {\n childList: true,\n subtree: true,\n characterData: true\n });\n };\n SimpleBarCore.prototype.recalculate = function () {\n if (!this.heightAutoObserverEl ||\n !this.contentEl ||\n !this.contentWrapperEl ||\n !this.wrapperEl ||\n !this.placeholderEl)\n return;\n var elWindow = getElementWindow(this.el);\n this.elStyles = elWindow.getComputedStyle(this.el);\n this.isRtl = this.elStyles.direction === 'rtl';\n var contentElOffsetWidth = this.contentEl.offsetWidth;\n var isHeightAuto = this.heightAutoObserverEl.offsetHeight <= 1;\n var isWidthAuto = this.heightAutoObserverEl.offsetWidth <= 1 || contentElOffsetWidth > 0;\n var contentWrapperElOffsetWidth = this.contentWrapperEl.offsetWidth;\n var elOverflowX = this.elStyles.overflowX;\n var elOverflowY = this.elStyles.overflowY;\n this.contentEl.style.padding = \"\".concat(this.elStyles.paddingTop, \" \").concat(this.elStyles.paddingRight, \" \").concat(this.elStyles.paddingBottom, \" \").concat(this.elStyles.paddingLeft);\n this.wrapperEl.style.margin = \"-\".concat(this.elStyles.paddingTop, \" -\").concat(this.elStyles.paddingRight, \" -\").concat(this.elStyles.paddingBottom, \" -\").concat(this.elStyles.paddingLeft);\n var contentElScrollHeight = this.contentEl.scrollHeight;\n var contentElScrollWidth = this.contentEl.scrollWidth;\n this.contentWrapperEl.style.height = isHeightAuto ? 'auto' : '100%';\n // Determine placeholder size\n this.placeholderEl.style.width = isWidthAuto\n ? \"\".concat(contentElOffsetWidth || contentElScrollWidth, \"px\")\n : 'auto';\n this.placeholderEl.style.height = \"\".concat(contentElScrollHeight, \"px\");\n var contentWrapperElOffsetHeight = this.contentWrapperEl.offsetHeight;\n this.axis.x.isOverflowing =\n contentElOffsetWidth !== 0 && contentElScrollWidth > contentElOffsetWidth;\n this.axis.y.isOverflowing =\n contentElScrollHeight > contentWrapperElOffsetHeight;\n // Set isOverflowing to false if user explicitely set hidden overflow\n this.axis.x.isOverflowing =\n elOverflowX === 'hidden' ? false : this.axis.x.isOverflowing;\n this.axis.y.isOverflowing =\n elOverflowY === 'hidden' ? false : this.axis.y.isOverflowing;\n this.axis.x.forceVisible =\n this.options.forceVisible === 'x' || this.options.forceVisible === true;\n this.axis.y.forceVisible =\n this.options.forceVisible === 'y' || this.options.forceVisible === true;\n this.hideNativeScrollbar();\n // Set isOverflowing to false if scrollbar is not necessary (content is shorter than offset)\n var offsetForXScrollbar = this.axis.x.isOverflowing\n ? this.scrollbarWidth\n : 0;\n var offsetForYScrollbar = this.axis.y.isOverflowing\n ? this.scrollbarWidth\n : 0;\n this.axis.x.isOverflowing =\n this.axis.x.isOverflowing &&\n contentElScrollWidth > contentWrapperElOffsetWidth - offsetForYScrollbar;\n this.axis.y.isOverflowing =\n this.axis.y.isOverflowing &&\n contentElScrollHeight >\n contentWrapperElOffsetHeight - offsetForXScrollbar;\n this.axis.x.scrollbar.size = this.getScrollbarSize('x');\n this.axis.y.scrollbar.size = this.getScrollbarSize('y');\n if (this.axis.x.scrollbar.el)\n this.axis.x.scrollbar.el.style.width = \"\".concat(this.axis.x.scrollbar.size, \"px\");\n if (this.axis.y.scrollbar.el)\n this.axis.y.scrollbar.el.style.height = \"\".concat(this.axis.y.scrollbar.size, \"px\");\n this.positionScrollbar('x');\n this.positionScrollbar('y');\n this.toggleTrackVisibility('x');\n this.toggleTrackVisibility('y');\n };\n /**\n * Calculate scrollbar size\n */\n SimpleBarCore.prototype.getScrollbarSize = function (axis) {\n var _a, _b;\n if (axis === void 0) { axis = 'y'; }\n if (!this.axis[axis].isOverflowing || !this.contentEl) {\n return 0;\n }\n var contentSize = this.contentEl[this.axis[axis].scrollSizeAttr];\n var trackSize = (_b = (_a = this.axis[axis].track.el) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetSizeAttr]) !== null && _b !== void 0 ? _b : 0;\n var scrollbarRatio = trackSize / contentSize;\n var scrollbarSize;\n // Calculate new height/position of drag handle.\n scrollbarSize = Math.max(~~(scrollbarRatio * trackSize), this.options.scrollbarMinSize);\n if (this.options.scrollbarMaxSize) {\n scrollbarSize = Math.min(scrollbarSize, this.options.scrollbarMaxSize);\n }\n return scrollbarSize;\n };\n SimpleBarCore.prototype.positionScrollbar = function (axis) {\n var _a, _b, _c;\n if (axis === void 0) { axis = 'y'; }\n var scrollbar = this.axis[axis].scrollbar;\n if (!this.axis[axis].isOverflowing ||\n !this.contentWrapperEl ||\n !scrollbar.el ||\n !this.elStyles) {\n return;\n }\n var contentSize = this.contentWrapperEl[this.axis[axis].scrollSizeAttr];\n var trackSize = ((_a = this.axis[axis].track.el) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetSizeAttr]) || 0;\n var hostSize = parseInt(this.elStyles[this.axis[axis].sizeAttr], 10);\n var scrollOffset = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n scrollOffset =\n axis === 'x' &&\n this.isRtl &&\n ((_b = SimpleBarCore.getRtlHelpers()) === null || _b === void 0 ? void 0 : _b.isScrollOriginAtZero)\n ? -scrollOffset\n : scrollOffset;\n if (axis === 'x' && this.isRtl) {\n scrollOffset = ((_c = SimpleBarCore.getRtlHelpers()) === null || _c === void 0 ? void 0 : _c.isScrollingToNegative)\n ? scrollOffset\n : -scrollOffset;\n }\n var scrollPourcent = scrollOffset / (contentSize - hostSize);\n var handleOffset = ~~((trackSize - scrollbar.size) * scrollPourcent);\n handleOffset =\n axis === 'x' && this.isRtl\n ? -handleOffset + (trackSize - scrollbar.size)\n : handleOffset;\n scrollbar.el.style.transform =\n axis === 'x'\n ? \"translate3d(\".concat(handleOffset, \"px, 0, 0)\")\n : \"translate3d(0, \".concat(handleOffset, \"px, 0)\");\n };\n SimpleBarCore.prototype.toggleTrackVisibility = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n var track = this.axis[axis].track.el;\n var scrollbar = this.axis[axis].scrollbar.el;\n if (!track || !scrollbar || !this.contentWrapperEl)\n return;\n if (this.axis[axis].isOverflowing || this.axis[axis].forceVisible) {\n track.style.visibility = 'visible';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'scroll';\n this.el.classList.add(\"\".concat(this.classNames.scrollable, \"-\").concat(axis));\n }\n else {\n track.style.visibility = 'hidden';\n this.contentWrapperEl.style[this.axis[axis].overflowAttr] = 'hidden';\n this.el.classList.remove(\"\".concat(this.classNames.scrollable, \"-\").concat(axis));\n }\n // Even if forceVisible is enabled, scrollbar itself should be hidden\n if (this.axis[axis].isOverflowing) {\n scrollbar.style.display = 'block';\n }\n else {\n scrollbar.style.display = 'none';\n }\n };\n SimpleBarCore.prototype.showScrollbar = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n if (this.axis[axis].isOverflowing && !this.axis[axis].scrollbar.isVisible) {\n addClasses(this.axis[axis].scrollbar.el, this.classNames.visible);\n this.axis[axis].scrollbar.isVisible = true;\n }\n };\n SimpleBarCore.prototype.hideScrollbar = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n if (this.axis[axis].isOverflowing && this.axis[axis].scrollbar.isVisible) {\n removeClasses(this.axis[axis].scrollbar.el, this.classNames.visible);\n this.axis[axis].scrollbar.isVisible = false;\n }\n };\n SimpleBarCore.prototype.hideNativeScrollbar = function () {\n if (!this.offsetEl)\n return;\n this.offsetEl.style[this.isRtl ? 'left' : 'right'] =\n this.axis.y.isOverflowing || this.axis.y.forceVisible\n ? \"-\".concat(this.scrollbarWidth, \"px\")\n : '0px';\n this.offsetEl.style.bottom =\n this.axis.x.isOverflowing || this.axis.x.forceVisible\n ? \"-\".concat(this.scrollbarWidth, \"px\")\n : '0px';\n };\n SimpleBarCore.prototype.onMouseMoveForAxis = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n var currentAxis = this.axis[axis];\n if (!currentAxis.track.el || !currentAxis.scrollbar.el)\n return;\n currentAxis.track.rect = currentAxis.track.el.getBoundingClientRect();\n currentAxis.scrollbar.rect =\n currentAxis.scrollbar.el.getBoundingClientRect();\n if (this.isWithinBounds(currentAxis.track.rect)) {\n this.showScrollbar(axis);\n addClasses(currentAxis.track.el, this.classNames.hover);\n if (this.isWithinBounds(currentAxis.scrollbar.rect)) {\n addClasses(currentAxis.scrollbar.el, this.classNames.hover);\n }\n else {\n removeClasses(currentAxis.scrollbar.el, this.classNames.hover);\n }\n }\n else {\n removeClasses(currentAxis.track.el, this.classNames.hover);\n if (this.options.autoHide) {\n this.hideScrollbar(axis);\n }\n }\n };\n SimpleBarCore.prototype.onMouseLeaveForAxis = function (axis) {\n if (axis === void 0) { axis = 'y'; }\n removeClasses(this.axis[axis].track.el, this.classNames.hover);\n removeClasses(this.axis[axis].scrollbar.el, this.classNames.hover);\n if (this.options.autoHide) {\n this.hideScrollbar(axis);\n }\n };\n /**\n * on scrollbar handle drag movement starts\n */\n SimpleBarCore.prototype.onDragStart = function (e, axis) {\n var _a;\n if (axis === void 0) { axis = 'y'; }\n var elDocument = getElementDocument(this.el);\n var elWindow = getElementWindow(this.el);\n var scrollbar = this.axis[axis].scrollbar;\n // Measure how far the user's mouse is from the top of the scrollbar drag handle.\n var eventOffset = axis === 'y' ? e.pageY : e.pageX;\n this.axis[axis].dragOffset =\n eventOffset - (((_a = scrollbar.rect) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetAttr]) || 0);\n this.draggedAxis = axis;\n addClasses(this.el, this.classNames.dragging);\n elDocument.addEventListener('mousemove', this.drag, true);\n elDocument.addEventListener('mouseup', this.onEndDrag, true);\n if (this.removePreventClickId === null) {\n elDocument.addEventListener('click', this.preventClick, true);\n elDocument.addEventListener('dblclick', this.preventClick, true);\n }\n else {\n elWindow.clearTimeout(this.removePreventClickId);\n this.removePreventClickId = null;\n }\n };\n SimpleBarCore.prototype.onTrackClick = function (e, axis) {\n var _this = this;\n var _a, _b, _c, _d;\n if (axis === void 0) { axis = 'y'; }\n var currentAxis = this.axis[axis];\n if (!this.options.clickOnTrack ||\n !currentAxis.scrollbar.el ||\n !this.contentWrapperEl)\n return;\n // Preventing the event's default to trigger click underneath\n e.preventDefault();\n var elWindow = getElementWindow(this.el);\n this.axis[axis].scrollbar.rect =\n currentAxis.scrollbar.el.getBoundingClientRect();\n var scrollbar = this.axis[axis].scrollbar;\n var scrollbarOffset = (_b = (_a = scrollbar.rect) === null || _a === void 0 ? void 0 : _a[this.axis[axis].offsetAttr]) !== null && _b !== void 0 ? _b : 0;\n var hostSize = parseInt((_d = (_c = this.elStyles) === null || _c === void 0 ? void 0 : _c[this.axis[axis].sizeAttr]) !== null && _d !== void 0 ? _d : '0px', 10);\n var scrolled = this.contentWrapperEl[this.axis[axis].scrollOffsetAttr];\n var t = axis === 'y'\n ? this.mouseY - scrollbarOffset\n : this.mouseX - scrollbarOffset;\n var dir = t < 0 ? -1 : 1;\n var scrollSize = dir === -1 ? scrolled - hostSize : scrolled + hostSize;\n var speed = 40;\n var scrollTo = function () {\n if (!_this.contentWrapperEl)\n return;\n if (dir === -1) {\n if (scrolled > scrollSize) {\n scrolled -= speed;\n _this.contentWrapperEl[_this.axis[axis].scrollOffsetAttr] = scrolled;\n elWindow.requestAnimationFrame(scrollTo);\n }\n }\n else {\n if (scrolled < scrollSize) {\n scrolled += speed;\n _this.contentWrapperEl[_this.axis[axis].scrollOffsetAttr] = scrolled;\n elWindow.requestAnimationFrame(scrollTo);\n }\n }\n };\n scrollTo();\n };\n /**\n * Getter for content element\n */\n SimpleBarCore.prototype.getContentElement = function () {\n return this.contentEl;\n };\n /**\n * Getter for original scrolling element\n */\n SimpleBarCore.prototype.getScrollElement = function () {\n return this.contentWrapperEl;\n };\n SimpleBarCore.prototype.removeListeners = function () {\n var elWindow = getElementWindow(this.el);\n // Event listeners\n this.el.removeEventListener('mouseenter', this.onMouseEnter);\n this.el.removeEventListener('pointerdown', this.onPointerEvent, true);\n this.el.removeEventListener('mousemove', this.onMouseMove);\n this.el.removeEventListener('mouseleave', this.onMouseLeave);\n if (this.contentWrapperEl) {\n this.contentWrapperEl.removeEventListener('scroll', this.onScroll);\n }\n elWindow.removeEventListener('resize', this.onWindowResize);\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n if (this.resizeObserver) {\n this.resizeObserver.disconnect();\n }\n // Cancel all debounced functions\n this.onMouseMove.cancel();\n this.onWindowResize.cancel();\n this.onStopScrolling.cancel();\n this.onMouseEntered.cancel();\n };\n /**\n * Remove all listeners from DOM nodes\n */\n SimpleBarCore.prototype.unMount = function () {\n this.removeListeners();\n };\n /**\n * Check if mouse is within bounds\n */\n SimpleBarCore.prototype.isWithinBounds = function (bbox) {\n return (this.mouseX >= bbox.left &&\n this.mouseX <= bbox.left + bbox.width &&\n this.mouseY >= bbox.top &&\n this.mouseY <= bbox.top + bbox.height);\n };\n /**\n * Find element children matches query\n */\n SimpleBarCore.prototype.findChild = function (el, query) {\n var matches = el.matches ||\n el.webkitMatchesSelector ||\n el.mozMatchesSelector ||\n el.msMatchesSelector;\n return Array.prototype.filter.call(el.children, function (child) {\n return matches.call(child, query);\n })[0];\n };\n SimpleBarCore.rtlHelpers = null;\n SimpleBarCore.defaultOptions = {\n forceVisible: false,\n clickOnTrack: true,\n scrollbarMinSize: 25,\n scrollbarMaxSize: 0,\n ariaLabel: 'scrollable content',\n classNames: {\n contentEl: 'simplebar-content',\n contentWrapper: 'simplebar-content-wrapper',\n offset: 'simplebar-offset',\n mask: 'simplebar-mask',\n wrapper: 'simplebar-wrapper',\n placeholder: 'simplebar-placeholder',\n scrollbar: 'simplebar-scrollbar',\n track: 'simplebar-track',\n heightAutoObserverWrapperEl: 'simplebar-height-auto-observer-wrapper',\n heightAutoObserverEl: 'simplebar-height-auto-observer',\n visible: 'simplebar-visible',\n horizontal: 'simplebar-horizontal',\n vertical: 'simplebar-vertical',\n hover: 'simplebar-hover',\n dragging: 'simplebar-dragging',\n scrolling: 'simplebar-scrolling',\n scrollable: 'simplebar-scrollable',\n mouseEntered: 'simplebar-mouse-entered'\n },\n scrollableNode: null,\n contentNode: null,\n autoHide: true\n };\n /**\n * Static functions\n */\n SimpleBarCore.getOptions = getOptions;\n SimpleBarCore.helpers = helpers;\n return SimpleBarCore;\n}());\n\nexport { SimpleBarCore as default };\n","import debounce from './debounce.js';\nimport isObject from './isObject.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nexport default throttle;\n","import * as i0 from '@angular/core';\nimport { Component, ViewEncapsulation, Input, NgModule } from '@angular/core';\nimport SimpleBar from 'simplebar-core';\n\nclass SimplebarAngularComponent {\n constructor(elRef, zone) {\n this.zone = zone;\n this.options = {};\n this.elRef = elRef;\n this.ariaLabel =\n this.options.ariaLabel || SimpleBar.defaultOptions.ariaLabel;\n }\n ngOnInit() { }\n ngAfterViewInit() {\n this.zone.runOutsideAngular(() => {\n this.SimpleBar = new SimpleBar(this.elRef.nativeElement, this.options || {});\n });\n }\n ngOnDestroy() {\n this.SimpleBar.unMount();\n this.SimpleBar = null;\n }\n}\nSimplebarAngularComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: SimplebarAngularComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });\nSimplebarAngularComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"12.0.0\", version: \"12.2.17\", type: SimplebarAngularComponent, selector: \"ngx-simplebar\", inputs: { options: \"options\" }, host: { attributes: { \"data-simplebar\": \"init\" } }, ngImport: i0, template: \"
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n\", styles: [\"[data-simplebar]{position:relative;flex-direction:column;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;align-items:flex-start}.simplebar-wrapper{overflow:hidden;width:inherit;height:inherit;max-width:inherit;max-height:inherit}.simplebar-mask{direction:inherit;position:absolute;overflow:hidden;padding:0;margin:0;left:0;top:0;bottom:0;right:0;width:auto!important;height:auto!important;z-index:0}.simplebar-offset{direction:inherit!important;box-sizing:inherit!important;resize:none!important;position:absolute;top:0;left:0;bottom:0;right:0;padding:0;margin:0;-webkit-overflow-scrolling:touch}.simplebar-content-wrapper{direction:inherit;box-sizing:border-box!important;position:relative;display:block;height:100%;width:auto;max-width:100%;max-height:100%;overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.simplebar-content-wrapper::-webkit-scrollbar,.simplebar-hide-scrollbar::-webkit-scrollbar{display:none;width:0;height:0}.simplebar-content:before,.simplebar-content:after{content:\\\" \\\";display:table}.simplebar-placeholder{max-height:100%;max-width:100%;width:100%;pointer-events:none}.simplebar-height-auto-observer-wrapper{box-sizing:inherit!important;height:100%;width:100%;max-width:1px;position:relative;float:left;max-height:1px;overflow:hidden;z-index:-1;padding:0;margin:0;pointer-events:none;flex-grow:inherit;flex-shrink:0;flex-basis:0}.simplebar-height-auto-observer{box-sizing:inherit;display:block;opacity:0;position:absolute;top:0;left:0;height:1000%;width:1000%;min-height:1px;min-width:1px;overflow:hidden;pointer-events:none;z-index:-1}.simplebar-track{z-index:1;position:absolute;right:0;bottom:0;pointer-events:none;overflow:hidden}[data-simplebar].simplebar-dragging{pointer-events:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}[data-simplebar].simplebar-dragging .simplebar-content{pointer-events:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}[data-simplebar].simplebar-dragging .simplebar-track{pointer-events:all}.simplebar-scrollbar{position:absolute;left:0;right:0;min-height:10px}.simplebar-scrollbar:before{position:absolute;content:\\\"\\\";background:black;border-radius:7px;left:2px;right:2px;opacity:0;transition:opacity .2s .5s linear}.simplebar-scrollbar.simplebar-visible:before{opacity:.5;transition-delay:0s;transition-duration:0s}.simplebar-track.simplebar-vertical{top:0;width:11px}.simplebar-scrollbar:before{top:2px;bottom:2px;left:2px;right:2px}.simplebar-track.simplebar-horizontal{left:0;height:11px}.simplebar-track.simplebar-horizontal .simplebar-scrollbar{right:auto;left:0;top:0;bottom:0;min-height:0;min-width:10px;width:auto}[data-simplebar-direction=rtl] .simplebar-track.simplebar-vertical{right:auto;left:0}.simplebar-dummy-scrollbar-size{direction:rtl;position:fixed;opacity:0;visibility:hidden;height:500px;width:500px;overflow-y:hidden;overflow-x:scroll;-ms-overflow-style:scrollbar!important}.simplebar-dummy-scrollbar-size>div{width:200%;height:200%;margin:10px 0}.simplebar-hide-scrollbar{position:fixed;left:0;visibility:hidden;overflow-y:scroll;scrollbar-width:none;-ms-overflow-style:none}\\n\", \"ngx-simplebar{display:block}\\n\"], encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: SimplebarAngularComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'ngx-simplebar',\n host: { 'data-simplebar': 'init' },\n templateUrl: './simplebar-angular.component.html',\n styleUrls: [\n '../../../simplebar-core/src/simplebar.css',\n './simplebar-angular.component.scss',\n ],\n encapsulation: ViewEncapsulation.None,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }]; }, propDecorators: { options: [{\n type: Input,\n args: ['options']\n }] } });\n\nclass SimplebarAngularModule {\n}\nSimplebarAngularModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: SimplebarAngularModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nSimplebarAngularModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: SimplebarAngularModule, declarations: [SimplebarAngularComponent], exports: [SimplebarAngularComponent] });\nSimplebarAngularModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: SimplebarAngularModule, imports: [[]] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: SimplebarAngularModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [SimplebarAngularComponent],\n imports: [],\n exports: [SimplebarAngularComponent],\n schemas: [],\n }]\n }] });\n\n/*\n * Public API Surface of simplebar-angular\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { SimplebarAngularComponent, SimplebarAngularModule };\n","\n
    \n \n
    \n
    Theme Customizer
    \n \n \n \n
    \n\n \n
    \n\n
    \n
    Layout
    \n
    \n \n \n
    \n
    \n \n \n
    \n\n
    Layout Mode
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n\n
    Layout Width
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n\n
    Layout Position
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n\n
    Topbar Color
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n\n
    \n
    Sidebar Size
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n\n
    Sidebar Color
    \n\n
    \n \n \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n","import { Component, HostListener, OnInit } from '@angular/core';\nimport { EventService } from '../../core/services/event.service';\n\nimport { LAYOUT_MODE, LAYOUT_WIDTH, TOPBAR, SIDEBAR_SIZE, SIDEBAR_COLOR, LAYOUT_POSITION } from '../layouts.model';\n\n@Component({\n selector: 'app-rightsidebar',\n templateUrl: './rightsidebar.component.html',\n styleUrls: ['./rightsidebar.component.scss']\n})\n\n/**\n * Right-Sidebar Component\n */\nexport class RightsidebarComponent implements OnInit {\n\n isVisible: any;\n\n layout: string | undefined;\n mode: string | undefined;\n width: string | undefined;\n position: string | undefined;\n topbar: string | undefined;\n sidebarcolor: string | undefined;\n sidebarsize: string | undefined;\n\n constructor(private eventService: EventService) { }\n\n ngOnInit(): void {\n this.mode = LAYOUT_MODE;\n this.width = LAYOUT_WIDTH;\n this.topbar = TOPBAR;\n this.sidebarcolor = SIDEBAR_COLOR;\n this.sidebarsize = SIDEBAR_SIZE;\n this.position = LAYOUT_POSITION;\n\n /**\n * horizontal-vertical layput set\n */\n const attribute = document.body.getAttribute('data-layout');\n\n this.isVisible = attribute;\n const vertical = document.getElementById('layout-vertical');\n if (vertical != null) {\n vertical.setAttribute('checked', 'true');\n }\n if (attribute == 'horizontal') {\n const horizontal = document.getElementById('layout-horizontal');\n if (horizontal != null) {\n horizontal.setAttribute('checked', 'true');\n }\n }\n }\n\n /**\n * Hide the sidebar\n */\n public hide() {\n document.body.classList.remove('right-bar-enabled');\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (!target.classList.contains('bx-cog')) {\n document.body.classList.remove('right-bar-enabled');\n } \n }\n\n /**\n * Change the layout onclick\n * @param layout Change the layout\n */\n changeLayout(layout: string) {\n this.eventService.broadcast('changeLayout', layout);\n }\n\n changeMode(mode: string) {\n this.mode = mode;\n this.eventService.broadcast('changeMode', mode);\n }\n\n changeWidth(width: string) {\n this.width = width;\n this.eventService.broadcast('changeWidth', width);\n }\n\n changePosition(scrollable: string) {\n this.position = scrollable;\n this.eventService.broadcast('changePosition', scrollable);\n }\n\n changeTopbar(topbar: string) {\n this.topbar = topbar;\n this.eventService.broadcast('changeTopbar', topbar);\n }\n\n changeSidebarColor(sidebarcolor: string) {\n this.sidebarcolor = sidebarcolor;\n this.eventService.broadcast('changeSidebarColor', sidebarcolor);\n }\n\n changeSidebarSize(sidebarsize: string) {\n this.sidebarsize = sidebarsize;\n this.eventService.broadcast('changeSidebarSize', sidebarsize);\n }\n}","/*!\n* metismenujs - v1.4.0\n* MetisMenu: Collapsible menu plugin with Vanilla-JS\n* https://github.com/onokumus/metismenujs#readme\n*\n* Made by Osman Nuri Okumus (https://github.com/onokumus)\n* Under MIT License\n*/\nconst Default = {\n parentTrigger: 'li',\n subMenu: 'ul',\n toggle: true,\n triggerElement: 'a',\n};\nconst ClassName = {\n ACTIVE: 'mm-active',\n COLLAPSE: 'mm-collapse',\n COLLAPSED: 'mm-collapsed',\n COLLAPSING: 'mm-collapsing',\n METIS: 'metismenu',\n SHOW: 'mm-show',\n};\n\n/* eslint-disable max-len */\nclass MetisMenu {\n /**\n * Creates an instance of MetisMenu.\n *\n * @constructor\n * @param {Element | string} element\n * @param {IMMOptions} [options]\n * @memberof MetisMenu\n */\n constructor(element, options) {\n this.element = MetisMenu.isElement(element) ? element : document.querySelector(element);\n this.config = Object.assign(Object.assign({}, Default), options);\n this.disposed = false;\n this.triggerArr = [];\n this.boundEventHandler = this.clickEvent.bind(this);\n this.init();\n }\n static attach(el, opt) {\n return new MetisMenu(el, opt);\n }\n /**\n * @internal\n */\n init() {\n const { METIS, ACTIVE, COLLAPSE } = ClassName;\n this.element.classList.add(METIS);\n const uls = [...this.element.querySelectorAll(this.config.subMenu)];\n if (uls.length === 0) {\n return;\n }\n uls.forEach((ul) => {\n ul.classList.add(COLLAPSE);\n const li = ul.closest(this.config.parentTrigger);\n if (li === null || li === void 0 ? void 0 : li.classList.contains(ACTIVE)) {\n this.show(ul);\n }\n else {\n this.hide(ul);\n }\n const a = li === null || li === void 0 ? void 0 : li.querySelector(this.config.triggerElement);\n if ((a === null || a === void 0 ? void 0 : a.getAttribute(\"aria-disabled\")) === \"true\") {\n return;\n }\n a === null || a === void 0 ? void 0 : a.setAttribute(\"aria-expanded\", \"false\");\n a === null || a === void 0 ? void 0 : a.addEventListener(\"click\", this.boundEventHandler);\n this.triggerArr.push(a);\n });\n }\n /**\n * @internal\n */\n clickEvent(evt) {\n if (!this.disposed) {\n const target = evt === null || evt === void 0 ? void 0 : evt.currentTarget;\n if (target && target.tagName === \"A\") {\n evt.preventDefault();\n }\n const li = target.closest(this.config.parentTrigger);\n const ul = li === null || li === void 0 ? void 0 : li.querySelector(this.config.subMenu);\n this.toggle(ul);\n }\n }\n update() {\n this.disposed = false;\n this.init();\n }\n dispose() {\n this.triggerArr.forEach((arr) => {\n arr.removeEventListener(\"click\", this.boundEventHandler);\n });\n this.disposed = true;\n }\n on(evtType, handler, options) {\n this.element.addEventListener(evtType, handler, options);\n return this;\n }\n off(evtType, handler, options) {\n this.element.removeEventListener(evtType, handler, options);\n return this;\n }\n /**\n * @internal\n */\n emit(evtType, evtData, shouldBubble = false) {\n const evt = new CustomEvent(evtType, {\n bubbles: shouldBubble,\n detail: evtData,\n });\n this.element.dispatchEvent(evt);\n }\n /**\n * @internal\n */\n toggle(ul) {\n const li = ul.closest(this.config.parentTrigger);\n if (li === null || li === void 0 ? void 0 : li.classList.contains(ClassName.ACTIVE)) {\n this.hide(ul);\n }\n else {\n this.show(ul);\n }\n }\n /**\n * @internal\n */\n show(el) {\n var _a;\n const ul = el;\n const { ACTIVE, COLLAPSE, COLLAPSED, COLLAPSING, SHOW } = ClassName;\n if (this.isTransitioning || ul.classList.contains(COLLAPSING)) {\n return;\n }\n const complete = () => {\n ul.classList.remove(COLLAPSING);\n ul.style.height = \"\";\n ul.removeEventListener(\"transitionend\", complete);\n this.setTransitioning(false);\n this.emit(\"shown.metisMenu\", {\n shownElement: ul,\n });\n };\n const li = ul.closest(this.config.parentTrigger);\n li === null || li === void 0 ? void 0 : li.classList.add(ACTIVE);\n const a = li === null || li === void 0 ? void 0 : li.querySelector(this.config.triggerElement);\n a === null || a === void 0 ? void 0 : a.setAttribute(\"aria-expanded\", \"true\");\n a === null || a === void 0 ? void 0 : a.classList.remove(COLLAPSED);\n ul.style.height = \"0px\";\n ul.classList.remove(COLLAPSE);\n ul.classList.remove(SHOW);\n ul.classList.add(COLLAPSING);\n const eleParentSiblins = [].slice.call((_a = li === null || li === void 0 ? void 0 : li.parentNode) === null || _a === void 0 ? void 0 : _a.children).filter((c) => c !== li);\n if (this.config.toggle && eleParentSiblins.length > 0) {\n eleParentSiblins.forEach((sibli) => {\n const sibUl = sibli.querySelector(this.config.subMenu);\n if (sibUl) {\n this.hide(sibUl);\n }\n });\n }\n this.setTransitioning(true);\n ul.classList.add(COLLAPSE);\n ul.classList.add(SHOW);\n ul.style.height = `${ul.scrollHeight}px`;\n this.emit(\"show.metisMenu\", {\n showElement: ul,\n });\n ul.addEventListener(\"transitionend\", complete);\n }\n /**\n * @internal\n */\n hide(el) {\n const { ACTIVE, COLLAPSE, COLLAPSED, COLLAPSING, SHOW } = ClassName;\n const ul = el;\n if (this.isTransitioning || !ul.classList.contains(SHOW)) {\n return;\n }\n this.emit(\"hide.metisMenu\", {\n hideElement: ul,\n });\n const li = ul.closest(this.config.parentTrigger);\n li === null || li === void 0 ? void 0 : li.classList.remove(ACTIVE);\n const complete = () => {\n ul.classList.remove(COLLAPSING);\n ul.classList.add(COLLAPSE);\n ul.style.height = \"\";\n ul.removeEventListener(\"transitionend\", complete);\n this.setTransitioning(false);\n this.emit(\"hidden.metisMenu\", {\n hiddenElement: ul,\n });\n };\n ul.style.height = `${ul.getBoundingClientRect().height}px`;\n ul.style.height = `${ul.offsetHeight}px`;\n ul.classList.add(COLLAPSING);\n ul.classList.remove(COLLAPSE);\n ul.classList.remove(SHOW);\n this.setTransitioning(true);\n ul.addEventListener(\"transitionend\", complete);\n ul.style.height = \"0px\";\n const a = li === null || li === void 0 ? void 0 : li.querySelector(this.config.triggerElement);\n a === null || a === void 0 ? void 0 : a.setAttribute(\"aria-expanded\", \"false\");\n a === null || a === void 0 ? void 0 : a.classList.add(COLLAPSED);\n }\n /**\n * @internal\n */\n setTransitioning(isTransitioning) {\n this.isTransitioning = isTransitioning;\n }\n /**\n * @internal\n */\n static isElement(element) {\n return Boolean(element.classList);\n }\n}\n\nexport { MetisMenu, MetisMenu as default };\n","import { MenuItem } from './menu.model';\n\nexport const MENU: MenuItem[] = [\n {\n id: 1,\n label: 'MENUITEMS.MENU.TEXT',\n isTitle: true\n },\n {\n id: 2,\n label: 'MENUITEMS.DASHBOARDS.TEXT',\n icon: 'bx bxs-dashboard',\n subItems: [\n {\n id: 3,\n label: 'MENUITEMS.DASHBOARDS.LIST.ECOMMERCE',\n link: '/',\n parentId: 2\n },\n {\n id: 4,\n label: 'MENUITEMS.DASHBOARDS.LIST.CRYPTO',\n link: '/crypto',\n parentId: 2\n },\n ]\n },\n {\n id: 7,\n isLayout: true\n },\n {\n id: 8,\n label: 'MORE',\n isTitle: true\n },\n {\n id: 9,\n label: 'MENUITEMS.APPS.TEXT',\n icon: 'bx bxs-grid',\n subItems: [\n {\n id: 10,\n label: 'MENUITEMS.APPS.LIST.CALENDAR',\n link: '/apps/calender',\n parentId: 9\n },\n {\n id: 11,\n label: 'MENUITEMS.APPS.LIST.CHAT',\n link: '/apps/chat',\n parentId: 9\n },\n {\n id: 12,\n label: 'MENUITEMS.APPS.LIST.EMAIL',\n parentId: 9,\n subItems: [\n {\n id: 13,\n label: 'MENUITEMS.APPS.LIST.SUB.INBOX',\n link: '/apps/inbox',\n parentId: 12\n },\n {\n id: 14,\n label: 'MENUITEMS.APPS.LIST.SUB.READEMAIL',\n link: '/apps/read/1',\n parentId: 12\n }\n ]\n }\n ]\n },\n {\n id: 15,\n label: 'MENUITEMS.AUTHENTICATION.TEXT',\n icon: 'bx bx-user-circle',\n badge: {\n variant: 'success',\n text: '9',\n },\n subItems: [\n {\n id: 16,\n label: 'MENUITEMS.AUTHENTICATION.LIST.LOGIN',\n link: '/account/login1',\n parentId: 15\n },\n {\n id: 17,\n label: 'MENUITEMS.AUTHENTICATION.LIST.REGISTER',\n link: '/account/register1',\n parentId: 15\n },\n {\n id: 18,\n label: 'MENUITEMS.AUTHENTICATION.LIST.RECOVERPWD',\n link: '/account/recoverpwd1',\n parentId: 15\n },\n {\n id: 19,\n label: 'MENUITEMS.AUTHENTICATION.LIST.LOCKSCREEN',\n link: '/account/lockscreen',\n parentId: 15\n },\n {\n id: 20,\n label: 'MENUITEMS.AUTHENTICATION.LIST.CONFIRMMAIL',\n link: '/account/confirm-mail',\n parentId: 15\n },\n {\n id: 21,\n label: 'MENUITEMS.AUTHENTICATION.LIST.EMAILVERIFICATION',\n link: '/account/email-verification',\n parentId: 15\n },\n {\n id: 22,\n label: 'MENUITEMS.AUTHENTICATION.LIST.TWOSTEPVERIFICATION',\n link: '/account/two-step-verification',\n parentId: 15\n }\n ]\n },\n {\n id: 23,\n label: 'MENUITEMS.PAGES.TEXT',\n icon: 'bx bx-file',\n subItems: [\n {\n id: 24,\n label: 'MENUITEMS.PAGES.LIST.STARTER',\n link: '/pages/starter',\n parentId: 23\n },\n {\n id: 24,\n label: 'MENUITEMS.PAGES.LIST.PRELOADER',\n link: '/pages/preloader',\n parentId: 23\n },\n {\n id: 26,\n label: 'MENUITEMS.PAGES.LIST.PROFILE',\n link: '/pages/profile',\n parentId: 23\n },\n {\n id: 26,\n label: 'MENUITEMS.PAGES.LIST.TEAM',\n link: '/pages/team',\n badge: {\n variant: 'danger',\n text: 'MENUITEMS.PAGES.BADGE',\n },\n parentId: 23\n },\n {\n id: 26,\n label: 'MENUITEMS.PAGES.LIST.GALLERY',\n link: '/pages/gallery',\n badge: {\n variant: 'danger',\n text: 'MENUITEMS.PAGES.BADGE',\n },\n parentId: 23\n },\n {\n id: 27,\n label: 'MENUITEMS.PAGES.LIST.INVOICE',\n link: '/pages/invoice',\n parentId: 23\n },\n {\n id: 28,\n label: 'MENUITEMS.PAGES.LIST.MAINTENANCE',\n link: '/pages/maintenance',\n parentId: 23\n },\n {\n id: 29,\n label: 'MENUITEMS.PAGES.LIST.COMINGSOON',\n link: '/pages/comingsoon',\n parentId: 23\n },\n {\n id: 30,\n label: 'MENUITEMS.PAGES.LIST.TIMELINE',\n link: '/pages/timeline',\n parentId: 23\n },\n {\n id: 31,\n label: 'MENUITEMS.PAGES.LIST.PRICING',\n link: '/pages/pricing',\n parentId: 23\n },\n {\n id: 32,\n label: 'MENUITEMS.PAGES.LIST.ERROR404',\n link: '/pages/404',\n parentId: 23\n },\n {\n id: 33,\n label: 'MENUITEMS.PAGES.LIST.ERROR500',\n link: '/pages/500',\n parentId: 23\n }\n ]\n },\n {\n id: 34,\n label: 'MENUITEMS.ADMINKIT.TEXT',\n isTitle: true\n },\n {\n id: 35,\n label: 'MENUITEMS.UIELEMENTS.TEXT',\n icon: 'bx bx-briefcase',\n link: '/ui',\n\n },\n {\n id: 36,\n label: 'MENUITEMS.ADVANCEDKIT.TEXT',\n icon: 'bx bxs-cube-alt',\n subItems: [\n {\n id: 37,\n label: 'MENUITEMS.ADVANCEDKIT.LIST.SWEETALERT',\n link: '/advanced/sweet-alert',\n parentId: 36\n },\n {\n id: 38,\n label: 'MENUITEMS.ADVANCEDKIT.LIST.RANGESLIDER',\n link: '/advanced/rangeslider',\n parentId: 36\n },\n {\n id: 39,\n label: 'MENUITEMS.ADVANCEDKIT.LIST.NOTIFICATIONS',\n link: '/advanced/notifications',\n parentId: 36\n },\n {\n id: 40,\n label: 'MENUITEMS.ADVANCEDKIT.LIST.CAROUSEL',\n link: '/advanced/carousel',\n parentId: 36\n }\n ]\n },\n {\n id: 41,\n label: 'MENUITEMS.TYPOGRAPHY.TEXT',\n icon: 'bx bx-text',\n link: '/typography',\n\n },\n {\n id: 42,\n label: 'MENUITEMS.FORMS.TEXT',\n icon: 'bx bxs-magic-wand',\n badge: {\n variant: 'danger',\n text: '2',\n },\n subItems: [\n {\n id: 43,\n label: 'MENUITEMS.FORMS.LIST.ELEMENTS',\n link: '/form/elements',\n parentId: 42\n },\n {\n id: 44,\n label: 'MENUITEMS.FORMS.LIST.ADVANCED',\n link: '/form/advanced',\n parentId: 42\n }\n ]\n },\n {\n id: 45,\n label: 'MENUITEMS.TABLES.TEXT',\n icon: 'bx bx-table',\n subItems: [\n {\n id: 46,\n label: 'MENUITEMS.TABLES.LIST.BASIC',\n link: '/tables/basic',\n parentId: 45\n },\n {\n id: 47,\n label: 'MENUITEMS.TABLES.LIST.ADVANCED',\n link: '/tables/datatable',\n parentId: 45\n }\n ]\n },\n {\n id: 48,\n label: 'MENUITEMS.CHARTS.TEXT',\n icon: 'bx bx-doughnut-chart',\n link: '/charts',\n\n },\n {\n id: 49,\n label: 'MENUITEMS.ICONS.TEXT',\n icon: 'bx bx-layer',\n subItems: [\n {\n id: 50,\n label: 'MENUITEMS.ICONS.LIST.BOXICONS',\n link: '/icons/boxicons',\n parentId: 49\n },\n {\n id: 51,\n label: 'MENUITEMS.ICONS.LIST.MATERIALDESIGN',\n link: '/icons/materialdesign',\n parentId: 49\n },\n {\n id: 52,\n label: 'MENUITEMS.ICONS.LIST.DRIPICONS',\n link: '/icons/dripicons',\n parentId: 49\n },\n {\n id: 53,\n label: 'MENUITEMS.ICONS.LIST.FONTAWESOME',\n link: '/icons/fontawesome',\n parentId: 49\n }\n ]\n },\n {\n id: 54,\n label: 'MENUITEMS.MAPS.TEXT',\n icon: 'bx bx-map',\n link: '/maps',\n\n },\n {\n id: 55,\n label: 'MENUITEMS.MULTILEVEL.TEXT',\n icon: 'bx-share-alt',\n subItems: [\n {\n id: 56,\n label: 'MENUITEMS.MULTILEVEL.LIST.LEVEL1.1',\n parentId: 55\n },\n {\n id: 57,\n label: 'MENUITEMS.MULTILEVEL.LIST.LEVEL1.2',\n parentId: 55,\n subItems: [\n {\n id: 58,\n label: 'MENUITEMS.MULTILEVEL.LIST.LEVEL1.LEVEL2.1',\n parentId: 57,\n },\n {\n id: 59,\n label: 'MENUITEMS.MULTILEVEL.LIST.LEVEL1.LEVEL2.2',\n parentId: 57,\n }\n ]\n },\n ]\n }\n];\n\n","\n\n\n\n\n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    ","import { Component, OnInit, ViewChild, ElementRef } from \"@angular/core\";\nimport MetisMenu from \"metismenujs\";\nimport { Router, NavigationEnd } from \"@angular/router\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\nimport { MENU } from \"./menu\";\nimport { MenuItem } from \"./menu.model\";\n\nimport { SIDEBAR_COLOR } from \"../layouts.model\";\nimport { OrganisationSettingService } from \"src/app/_services/organisation-setting/organisation-setting.service\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { FunctionCategoryEnum } from \"src/app/_models\";\n\n@Component({\n selector: \"app-sidebar\",\n templateUrl: \"./sidebar.component.html\",\n styleUrls: [\"./sidebar.component.scss\"],\n})\n\n/**\n * Sidebar Component\n */\nexport class SidebarComponent implements OnInit {\n @ViewChild(\"sideMenu\") sideMenu!: ElementRef;\n menu: any;\n menuItems: MenuItem[] = [];\n\n isSidebar: any;\n claims: Claims;\n selectedMenuId: number = 0;\n constructor(\n private router: Router,\n public translate: TranslateService,\n private organisationSettingService: OrganisationSettingService,\n private claimsService: ClaimsService\n ) {\n\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n if(localStorage.getItem(\"currentselectedMenuId\")!=null)\n {\n this.selectedMenuId = parseInt(localStorage.getItem(\"currentselectedMenuId\"), 10);\n }\n this.selectedMenuId =\n this.routeIsActive(\"/claimant\") ||\n this.routeIsActive(\"/approver\") ||\n this.routeIsActive(\"/financeapprover\") ||\n this.routeIsActive(\"/pay\") ||\n this.routeIsActive(\"/export\") ||\n this.routeIsActive(\"/universalimport/ccuploadfile\") ||\n this.routeIsActive(\"/card\") ||\n this.routeIsActive(\"/ManageSubscription\") ||\n this.routeIsActive(\"/referandearn\") ||\n this.routeIsActive(\"/support\") ||\n this.routeIsActive(\"/changepassword\") ||\n this.routeIsActive(\"/calander\")\n ? -1\n : this.selectedMenuId;\n\n router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n //this._activateMenuDropdown();\n this.selectedMenuId =\n this.routeIsActive(\"/claimant\") ||\n this.routeIsActive(\"/approver\") ||\n this.routeIsActive(\"/financeapprover\") ||\n this.routeIsActive(\"/pay\") ||\n this.routeIsActive(\"/export\") ||\n this.routeIsActive(\"/universalimport/ccuploadfile\") ||\n this.routeIsActive(\"/card\") ||\n this.routeIsActive(\"/ManageSubscription\") ||\n this.routeIsActive(\"/referandearn\") ||\n this.routeIsActive(\"/support\") ||\n this.routeIsActive(\"/changepassword\") ||\n this.routeIsActive(\"/calander\")\n ? -1\n : this.selectedMenuId;\n\n if (localStorage.getItem(\"backFromPolicy\") == \"1\") {\n this.selectedMenuId = 6;\n setTimeout(() => {\n this.selectedMenuId = this.claimsService.selectedPackageCategory =\n this.selectedMenuId;\n this.claimsService.updateSelectedPackageCategory(\n this.selectedMenuId\n );\n localStorage.removeItem(\"backFromPolicy\");\n }, 100);\n } else if (localStorage.getItem(\"fromExploreAppEssentialPack\") == \"1\") {\n this.selectedMenuId = 1;\n setTimeout(() => {\n this.selectedMenuId = this.claimsService.selectedPackageCategory =\n this.selectedMenuId;\n this.claimsService.updateSelectedPackageCategory(\n this.selectedMenuId\n );\n localStorage.removeItem(\"fromExploreAppEssentialPack\");\n }, 100);\n } else if(localStorage.getItem(\"ExpenseCategories\") == \"1\"){\n this.selectedMenuId = FunctionCategoryEnum.ExpenseCategories;\n setTimeout(() => {\n this.selectedMenuId = this.claimsService.selectedPackageCategory =\n this.selectedMenuId;\n this.claimsService.updateSelectedPackageCategory(\n this.selectedMenuId\n );\n localStorage.removeItem(\"ExpenseCategories\");\n }, 100);\n }\n else if (localStorage.getItem(\"forSpecialCategory\") == \"1\") {\n this.selectedMenuId = FunctionCategoryEnum.ExpenseCategories;\n setTimeout(() => {\n this.selectedMenuId = this.claimsService.selectedPackageCategory =\n this.selectedMenuId;\n this.claimsService.updateSelectedPackageCategory(\n this.selectedMenuId\n );\n localStorage.removeItem(\"forSpecialCategory\");\n }, 100);\n }\n }\n });\n }\n\n routeIsActive(routePath: string) {\n let currentUrl = this.router.url;\n return currentUrl.startsWith(routePath);\n }\n\n ngOnInit(): void {\n this.menuItems = []; //MENU;\n this.getMySubscriptionSettings();\n this.isSidebar = SIDEBAR_COLOR;\n if (this.isSidebar === \"dark\") {\n document.body.setAttribute(\"data-sidebar\", \"dark\");\n }\n }\n\n navigateToSettings(item: MenuItem) {\n localStorage.setItem(\"currentselectedMenuId\", item.id.toString());\n this.selectedMenuId = item.id;\n if (item.id == 0) {\n this.router.navigate([\"\"]);\n } else {\n this.selectedMenuId = this.claimsService.selectedPackageCategory =\n item.id;\n this.claimsService.updateSelectedPackageCategory(item.id);\n //this._activateMenuDropdown();\n this.router.navigate([\"/settings\"]);\n }\n }\n\n getMySubscriptionSettings() {\n let functionDetails = [];\n this.organisationSettingService\n .GetOrganisationSettingList()\n .subscribe((data) => {\n if (data.statusCode == 0) {\n let item = {\n id: 0,\n label: \"Dashboard\",\n link: \"\",\n isTitle: false,\n icon: \"../../svg-icons/functioncategory/inactive/dashboard\",\n iconInactive: \"../../svg-icons/functioncategory/active/dashboard\",\n };\n\n item[\"subItems\"] = [];\n this.menuItems.push(item);\n\n data.responseInfo.functionCategoryDetail.forEach((x) => {\n\n if (x.functionCategoryId == 18 && this.claims.IsAPAutomationAllow) {\n let item = {\n id: x.functionCategoryId,\n label: x.functionCategoryName,\n isTitle: false,\n link: \"/settings\",\n icon:\n \"../../svg-icons/functioncategory/inactive/functioncategory_\" +\n x.functionCategoryId,\n iconInactive:\n \"../../svg-icons/functioncategory/active/functioncategory_\" +\n x.functionCategoryId,\n isEssentialPackage:\n x.functionPackageDetail.filter((x) => x.isEssential).length >\n 0,\n };\n\n item[\"subItems\"] = [];\n this.menuItems.push(item);\n }\n else if (x.functionCategoryId != 16 && x.functionCategoryId != 17 && x.functionCategoryId != 18) {\n let item = {\n id: x.functionCategoryId,\n label: x.functionCategoryName,\n isTitle: false,\n link: \"/settings\",\n icon:\n \"../../svg-icons/functioncategory/inactive/functioncategory_\" +\n x.functionCategoryId,\n iconInactive:\n \"../../svg-icons/functioncategory/active/functioncategory_\" +\n x.functionCategoryId,\n isEssentialPackage:\n x.functionPackageDetail.filter((x) => x.isEssential).length >\n 0,\n };\n\n item[\"subItems\"] = [];\n this.menuItems.push(item);\n\n }\n });\n }\n });\n }\n\n /**\n * Initialize\n */\n initialize(): void {\n this.menuItems = MENU;\n }\n\n /***\n * Activate droup down set\n */\n ngAfterViewInit() {\n this.menu = new MetisMenu(\"#side-menu\");\n //this._activateMenuDropdown();\n }\n\n /**\n * Returns true or false if given menu item has child or not\n * @param item menuItem\n */\n hasItems(item: MenuItem) {\n return item.subItems !== undefined ? item.subItems.length > 0 : false;\n }\n\n /**\n * remove active and mm-active class\n */\n _removeAllClass(className: any) {\n const els = document.getElementsByClassName(className);\n while (els[0]) {\n els[0].classList.remove(className);\n }\n }\n\n /**\n * Activate the parent dropdown\n */\n _activateMenuDropdown() {\n this._removeAllClass(\"mm-active\");\n this._removeAllClass(\"mm-show\");\n const links: any = document.getElementsByClassName(\"side-nav-link-ref\");\n let menuItemEl = null;\n // tslint:disable-next-line: prefer-for-of\n const paths = [];\n for (let i = 0; i < links.length; i++) {\n paths.push(links[i][\"pathname\"]);\n }\n var itemIndex = paths.indexOf(window.location.pathname);\n if (itemIndex === -1) {\n const strIndex = window.location.pathname.lastIndexOf(\"/\");\n const item = window.location.pathname.substr(0, strIndex).toString();\n menuItemEl = links[paths.indexOf(item)];\n } else {\n menuItemEl = links[itemIndex];\n }\n if (menuItemEl) {\n menuItemEl.classList.add(\"active\");\n const parentEl = menuItemEl.parentElement;\n if (parentEl) {\n parentEl.classList.add(\"mm-active\");\n const parent2El = parentEl.parentElement.closest(\"ul\");\n if (parent2El && parent2El.id !== \"side-menu\") {\n parent2El.classList.add(\"mm-show\");\n const parent3El = parent2El.parentElement;\n if (parent3El && parent3El.id !== \"side-menu\") {\n parent3El.classList.add(\"mm-active\");\n const childAnchor = parent3El.querySelector(\".has-arrow\");\n const childDropdown = parent3El.querySelector(\".has-dropdown\");\n if (childAnchor) {\n childAnchor.classList.add(\"mm-active\");\n }\n if (childDropdown) {\n childDropdown.classList.add(\"mm-active\");\n }\n const parent4El = parent3El.parentElement;\n if (parent4El && parent4El.id !== \"side-menu\") {\n parent4El.classList.add(\"mm-show\");\n const parent5El = parent4El.parentElement;\n if (parent5El && parent5El.id !== \"side-menu\") {\n parent5El.classList.add(\"mm-active\");\n const childanchor = parent5El.querySelector(\".is-parent\");\n if (childanchor && parent5El.id !== \"side-menu\") {\n childanchor.classList.add(\"mm-active\");\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","import { Component, ElementRef, OnInit } from \"@angular/core\";\nimport { Router, NavigationEnd } from \"@angular/router\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\n\n@Component({\n selector: \"app-vertical\",\n templateUrl: \"./vertical.component.html\",\n styleUrls: [\"./vertical.component.scss\"],\n})\n\n/**\n * Vertical Component\n */\nexport class VerticalComponent implements OnInit {\n claims: Claims;\n isCondensed = false;\n constructor(\n private router: Router,\n private claimsService: ClaimsService,\n private host: ElementRef\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n router.events.forEach((event) => {\n if (window.screen.width <= 768) {\n if (event instanceof NavigationEnd) {\n document.body.classList.remove(\"sidebar-enable\");\n }\n }\n });\n }\n\n ngOnInit(): void {\n //this.host.nativeElement.style.setProperty('$sidebar-width', '0');\n //document.body.getElementsByClassName('main-content')[0].cl;\n document.body.removeAttribute(\"data-layout\");\n\n if (this.claims.orgRoleId != 3) {\n document.body.setAttribute(\"data-sidebar-size\", \"smc\");\n }\n }\n\n /**\n * On mobile toggle button clicked\n */\n onToggleMobileMenu() {\n this.claimsService.onToggleMobileMenu(this.claims.IsLeftMenuCollapseAndStopToggle);\n this.isCondensed = !this.isCondensed;\n }\n\n /**\n * on settings button clicked from topbar\n */\n onSettingsButtonClicked() {\n document.body.classList.toggle(\"right-bar-enabled\");\n }\n\n routeIsActive(routePath: string) {\n let currentUrl = this.router.url;\n return currentUrl.startsWith(routePath);\n //return currentUrl.indexOf(routePath) > -1;\n }\n}\n","","import { DOCUMENT } from '@angular/common';\nimport { Component, OnInit, AfterViewInit, Inject } from '@angular/core';\nimport { Router, NavigationEnd } from '@angular/router';\n\nimport { MENU } from './menu';\nimport { MenuItem } from './menu.model';\n\nimport { TranslateService } from '@ngx-translate/core';\nimport { CookieService } from 'ngx-cookie-service';\nimport { OrganisationSettingService } from 'src/app/_services/organisation-setting/organisation-setting.service';\n\n@Component({\n selector: 'app-horizontaltopbar',\n templateUrl: './horizontaltopbar.component.html',\n styleUrls: ['./horizontaltopbar.component.scss'],\n})\n\n/**\n * Horizontal-Topbar Component\n */\nexport class HorizontaltopbarComponent implements OnInit, AfterViewInit {\n menuItems: MenuItem[] = [];\n element:any;\n flagvalue:any;\n cookieValue:any;\n countryName:any;\n valueset:any;\n\n constructor(@Inject(DOCUMENT) private document: any, \n private router: Router, \n public translate: TranslateService,\n public _cookiesService: CookieService,\n private organisationSettingService: OrganisationSettingService\n ) {\n router.events.subscribe((event) => {\n if (event instanceof NavigationEnd) {\n this.activateMenu();\n }\n });\n }\n\n /***\n * Language listing\n */\n listLang = [\n { text: 'English', flag: 'assets/images/flags/us.jpg', lang: 'en' },\n { text: 'Spanish', flag: 'assets/images/flags/spain.jpg', lang: 'es' },\n { text: 'German', flag: 'assets/images/flags/germany.jpg', lang: 'de' },\n { text: 'Italian', flag: 'assets/images/flags/italy.jpg', lang: 'it' },\n { text: 'Russian', flag: 'assets/images/flags/russia.jpg', lang: 'ru' },\n ];\n\n ngOnInit(): void {\n this.element = document.documentElement;\n this.initialize();\n /***\n * Language value cookies wise set\n */\n this.cookieValue = this._cookiesService.get('lang');\n const val = this.listLang.filter(x => x.lang === this.cookieValue);\n this.countryName = val.map(element => element.text);\n if (val.length === 0) {\n if (this.flagvalue === undefined) { this.valueset = 'assets/images/flags/us.jpg'; }\n } else {\n this.flagvalue = val.map(element => element.flag);\n }\n }\n\n \n getMySubscriptionSettings() {\n let functionDetails = [];\n this.organisationSettingService\n .GetOrganisationSettingList()\n .subscribe((data) => {\n if (data.statusCode == 0) {\n data.responseInfo.functionCategoryDetail.forEach((x) => {\n \n let item = {\n id: x.functionCategoryId,\n label: x.functionCategoryName,\n isTitle: false,\n icon: \"bx bxs-dashboard\"\n };\n \n item[\"subItems\"] = [];\n x.functionPackageDetail.forEach((y) => {\n \n let subItem = {\n id: y.functionPackageId,\n label: y.functionPackageName,\n link: y.packagePath,\n parentId: x.functionCategoryId\n };\n item[\"subItems\"].push(subItem);\n });\n\n this.menuItems.push(item);\n });\n }\n });\n }\n\n /**\n * Initialize\n */\n initialize(): void {\n //this.menuItems = MENU;\n this.getMySubscriptionSettings();\n }\n\n /**\n * Returns true or false if given menu item has child or not\n * @param item menuItem\n */\n hasItems(item: MenuItem) {\n return item.subItems !== undefined ? item.subItems.length > 0 : false;\n }\n\n /**\n * on settings button clicked from topbar\n */\n onSettingsButtonClicked() {\n document.body.classList.toggle('right-bar-enabled');\n }\n\n /**\n * On menu click\n */\n onMenuClick(event: any) {\n const nextEl = event.target.nextElementSibling;\n if (nextEl) {\n const parentEl = event.target.parentNode;\n if (parentEl) {\n parentEl.classList.remove('show');\n }\n nextEl.classList.toggle('show');\n }\n return false;\n }\n\n ngAfterViewInit() {\n this.activateMenu();\n }\n\n /**\n * remove active and mm-active class\n */\n _removeAllClass(className: any) {\n const els = document.getElementsByClassName(className);\n while (els[0]) {\n els[0].classList.remove(className);\n }\n }\n\n /**\n * Activates the menu\n */\n private activateMenu() {\n const resetParent = (el: any) => {\n const parent = el.parentElement;\n if (parent) {\n parent.classList.remove('active');\n const parent2 = parent.parentElement;\n this._removeAllClass('mm-active');\n this._removeAllClass('mm-show');\n if (parent2) {\n parent2.classList.remove('active');\n const parent3 = parent2.parentElement;\n if (parent3) {\n parent3.classList.remove('active');\n const parent4 = parent3.parentElement;\n if (parent4) {\n parent4.classList.remove('active');\n const parent5 = parent4.parentElement;\n if (parent5) {\n parent5.classList.remove('active');\n const menuelement = document.getElementById(\n 'topnav-menu-content'\n );\n if (menuelement !== null)\n if (menuelement.classList.contains('show'))\n document\n .getElementById('topnav-menu-content')!\n .classList.remove('show');\n }\n }\n }\n }\n }\n };\n\n // activate menu item based on location\n const links: any = document.getElementsByClassName('side-nav-link-ref');\n let matchingMenuItem = null;\n // tslint:disable-next-line: prefer-for-of\n for (let i = 0; i < links.length; i++) {\n // reset menu\n resetParent(links[i]);\n }\n // tslint:disable-next-line: prefer-for-of\n for (let i = 0; i < links.length; i++) {\n // tslint:disable-next-line: no-string-literal\n if (location.pathname === links[i]['pathname']) {\n matchingMenuItem = links[i];\n break;\n }\n }\n\n if (matchingMenuItem) {\n const parent = matchingMenuItem.parentElement;\n /**\n * TODO: This is hard coded way of expading/activating parent menu dropdown and working till level 3.\n * We should come up with non hard coded approach\n */\n // if (parent) {\n // parent.classList.add('active');\n // const parent2 = parent.parentElement;\n // if (parent2) {\n // parent2.classList.add('active');\n // const parent3 = parent2.parentElement;\n // if (parent3) {\n // parent3.classList.add('active');\n // const parent4 = parent3.parentElement;\n // if (parent4) {\n // parent4.classList.add('active');\n // const parent5 = parent4.parentElement;\n // if (parent5) {\n // parent5.classList.add('active');\n // }\n // }\n // }\n // }\n // }\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-horizontal',\n templateUrl: './horizontal.component.html',\n styleUrls: ['./horizontal.component.scss']\n})\n\n/**\n * Horizontal Component\n */\nexport class HorizontalComponent implements OnInit {\n\n isCondensed = false;\n \n constructor() { }\n\n ngOnInit(): void {\n document.body.setAttribute('data-layout', 'horizontal');\n document.body.removeAttribute('data-sidebar');\n }\n\n /**\n * on settings button clicked from topbar\n */\n onSettingsButtonClicked() {\n document.body.classList.toggle('right-bar-enabled');\n }\n\n /**\n * Mobile Toggle Menu\n */\n onToggleMobileMenu() {\n const element = document.getElementById('topnav-menu-content');\n element?.classList.toggle('show');\n }\n\n}\n","
    \n \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n","\n\n\n\n\n\n
    \n
    \n
    \n
    \n
    \n

    {{ \"information\" | translate: param }}

    \n
    \n
    \n
    \n
    \n
    \n \n \n {{webNotificationMessage}} {{ 'policy_click_message_part2' | translate}} \n {{ 'strip_note2_1' | translate}}\n {{ 'for_settings' | translate}}\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    ","import { Component, OnInit, AfterViewInit } from \"@angular/core\";\nimport { EventService } from \"../core/services/event.service\";\nimport {\n LAYOUT_VERTICAL,\n LAYOUT_HORIZONTAL,\n LAYOUT_MODE,\n LAYOUT_WIDTH,\n LAYOUT_POSITION,\n SIDEBAR_SIZE,\n SIDEBAR_COLOR,\n TOPBAR,\n} from \"./layouts.model\";\nimport { ClaimsService } from \"../_services/common/claims.service\";\nimport { Subscription, first } from \"rxjs\";\nimport { Claims } from \"../_models/common/claims\";\nimport { SwPush } from \"@angular/service-worker\";\nimport { UserBrowserDetails } from \"../_models/user/userrequestdto\";\nimport { AuthenticationService } from \"../_services\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Component({\n selector: \"app-layout\",\n templateUrl: \"./layout.component.html\",\n styleUrls: [\"./layout.component.scss\"],\n})\n\n/**\n * Lauout Component\n */\nexport class LayoutComponent implements OnInit, AfterViewInit {\n // layout related config\n layoutType!: string;\n layoutMode!: string;\n layoutwidth!: string;\n layoutposition!: string;\n topbar!: string;\n sidebarcolor!: string;\n sidebarsize!: string;\n orgRoleId: number;\n claimsSubscription: Subscription;\n claims: Claims;\n\n constructor(\n private eventService: EventService,\n private claimsService: ClaimsService,\n private swPush: SwPush,\n private authenticationService: AuthenticationService,\n private translate: TranslateService\n ) {\n this.claimsSubscription = this.claimsService.currentClaims.subscribe(\n (claims) => {\n this.claims = claims;\n if(this.claims)\n {\n this.orgRoleId = this.claims.orgRoleId;\n }\n }\n );\n }\n\n ngOnInit() {\n this.layoutMode = LAYOUT_MODE;\n // default settings\n this.layoutType = LAYOUT_VERTICAL;\n this.layoutwidth = LAYOUT_WIDTH;\n this.layoutposition = LAYOUT_POSITION;\n this.sidebarcolor = SIDEBAR_COLOR;\n this.sidebarsize = SIDEBAR_SIZE;\n this.topbar = TOPBAR;\n\n this.LayoutMode(this.layoutMode);\n this.LayoutWidth(this.layoutwidth);\n this.LayoutPosition(this.layoutposition);\n this.Topbar(this.topbar);\n this.SidebarColor(this.sidebarcolor);\n this.SidebarSize(this.sidebarsize);\n\n // listen to event and change the layout, theme, etc\n this.eventService.subscribe(\"changeLayout\", (layout) => {\n this.layoutType = layout;\n });\n\n this.eventService.subscribe(\"changeMode\", (mode) => {\n this.layoutMode = mode;\n this.LayoutMode(this.layoutMode);\n });\n\n this.eventService.subscribe(\"changeWidth\", (width) => {\n this.layoutwidth = width;\n this.LayoutWidth(this.layoutwidth);\n });\n\n this.eventService.subscribe(\"changePosition\", (position) => {\n this.layoutposition = position;\n this.LayoutPosition(this.layoutposition);\n });\n\n this.eventService.subscribe(\"changeTopbar\", (topbar) => {\n this.topbar = topbar;\n this.Topbar(this.topbar);\n });\n\n this.eventService.subscribe(\"changeSidebarColor\", (sidebarcolor) => {\n this.sidebarcolor = sidebarcolor;\n this.SidebarColor(this.sidebarcolor);\n });\n\n this.eventService.subscribe(\"changeSidebarSize\", (sidebarsize) => {\n this.sidebarsize = sidebarsize;\n this.SidebarSize(this.sidebarsize);\n });\n }\n\n ngAfterViewInit() {\n this.pushSubscription();\n }\n\n readonly VAPID_PUBLIC_KEY =\n \"BP8dsmafi6xfRWX3dZmpiMaXT0blFzlD7GOcqZV-ZJqeTbhlPEuI8Ge34DikR07BlJiFRJ59tVJWVkpyd8CbF1k\";\n\n pushSubscription() {\n this.swPush\n .requestSubscription({\n serverPublicKey: this.VAPID_PUBLIC_KEY,\n })\n .then((sub) => {\n let userBrowserDetails = new UserBrowserDetails();\n userBrowserDetails.userId = JSON.parse(\n localStorage.getItem(\"claims\")\n ).UserId;\n userBrowserDetails.browser = JSON.stringify(sub);\n userBrowserDetails.timezoneOffset = new Date().getTimezoneOffset();\n userBrowserDetails.employeeRole = JSON.parse(\n localStorage.getItem(\"claims\")\n ).orgRoleId;\n userBrowserDetails.browserName = this.getBrowserName();\n\n this.authenticationService\n .UpdateUserBrowserDetails(userBrowserDetails)\n .pipe(first())\n .subscribe((data) => {});\n })\n .catch((err) => {});\n }\n\n public getBrowserName() {\n const agent = window.navigator.userAgent.toLowerCase();\n switch (true) {\n case agent.indexOf(\"edg/\") > -1:\n return \"edge\";\n case agent.indexOf(\"opr\") > -1 && !!(window).opr:\n return \"opera\";\n case agent.indexOf(\"chrome\") > -1 && !!(window).chrome:\n return \"chrome\";\n case agent.indexOf(\"trident\") > -1:\n return \"ie\";\n case agent.indexOf(\"firefox\") > -1:\n return \"firefox\";\n case agent.indexOf(\"safari\") > -1:\n return \"safari\";\n default:\n return \"other\";\n }\n }\n\n /**\n * Check if the vertical layout is requested\n */\n isVerticalLayoutRequested() {\n return this.layoutType === LAYOUT_VERTICAL;\n }\n\n /**\n * Check if the horizontal layout is requested\n */\n isHorizontalLayoutRequested() {\n return this.layoutType === LAYOUT_HORIZONTAL;\n }\n\n LayoutMode(mode: string) {\n if (mode === \"light\") {\n document.body.setAttribute(\"data-bs-theme\", \"light\");\n document.body.setAttribute(\"data-topbar\", \"light\");\n } else if (mode === \"dark\") {\n document.body.setAttribute(\"data-sidebar\", \"dark\");\n document.body.setAttribute(\"data-bs-theme\", \"dark\");\n document.body.setAttribute(\"data-topbar\", \"dark\");\n } else {\n document.body.setAttribute(\"data-bs-theme\", \"light\");\n document.body.setAttribute(\"data-topbar\", \"light\");\n }\n }\n\n LayoutWidth(width: string) {\n if (width === \"fluid\") {\n document.body.setAttribute(\"data-layout-size\", \"fluid\");\n } else {\n document.body.setAttribute(\"data-layout-size\", \"boxed\");\n }\n }\n\n LayoutPosition(position: string) {\n if (position === \"fixed\") {\n document.body.setAttribute(\"data-layout-scrollable\", \"false\");\n } else {\n document.body.setAttribute(\"data-layout-scrollable\", \"true\");\n }\n }\n\n SidebarColor(color: string) {\n switch (color) {\n case \"light\":\n document.body.setAttribute(\"data-sidebar\", \"light\");\n break;\n case \"dark\":\n document.body.setAttribute(\"data-sidebar\", \"dark\");\n break;\n case \"brand\":\n document.body.setAttribute(\"data-sidebar\", \"brand\");\n break;\n default:\n document.body.setAttribute(\"data-sidebar\", \"dark\");\n break;\n }\n }\n\n Topbar(topbar: string) {\n if (topbar === \"light\") {\n document.body.setAttribute(\"data-topbar\", \"light\");\n } else if (topbar === \"dark\") {\n document.body.setAttribute(\"data-topbar\", \"dark\");\n } else {\n document.body.setAttribute(\"data-topbar\", \"dark\");\n }\n }\n\n SidebarSize(size: string) {\n if (size === \"default\") {\n document.body.setAttribute(\"data-sidebar-size\", \"lg\");\n } else if (size === \"compact\") {\n document.body.setAttribute(\"data-sidebar-size\", \"md\");\n } else if (size === \"small\") {\n document.body.setAttribute(\"data-sidebar-size\", \"sm\");\n } else {\n document.body.setAttribute(\"data-sidebar-size\", \"lg\");\n }\n }\n \n webNotificationMessage = \"\";\n showWebNotificationMessage = false;\n handleWebNotifications() { \n if (!(\"Notification\" in window)) {\n this.webNotificationMessage =\n this.translate.instant('desktop_notifications_unsupported_msg');\n this.showWebNotificationMessage = true;\n } else if (Notification.permission === \"denied\") {\n this.webNotificationMessage =\n this.translate.instant('enable_notifications_msg');\n this.showWebNotificationMessage = true;\n }\n }\n}\n","/*! @azure/msal-browser v3.5.0 2023-11-07 */\n'use strict';\nimport { EventType } from './EventType.mjs';\nimport { InteractionType, InteractionStatus } from '../utils/BrowserConstants.mjs';\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass EventMessageUtils {\n /**\n * Gets interaction status from event message\n * @param message\n * @param currentStatus\n */\n static getInteractionStatusFromEvent(message, currentStatus) {\n switch (message.eventType) {\n case EventType.LOGIN_START:\n return InteractionStatus.Login;\n case EventType.SSO_SILENT_START:\n return InteractionStatus.SsoSilent;\n case EventType.ACQUIRE_TOKEN_START:\n if (message.interactionType === InteractionType.Redirect ||\n message.interactionType === InteractionType.Popup) {\n return InteractionStatus.AcquireToken;\n }\n break;\n case EventType.HANDLE_REDIRECT_START:\n return InteractionStatus.HandleRedirect;\n case EventType.LOGOUT_START:\n return InteractionStatus.Logout;\n case EventType.SSO_SILENT_SUCCESS:\n case EventType.SSO_SILENT_FAILURE:\n if (currentStatus &&\n currentStatus !== InteractionStatus.SsoSilent) {\n // Prevent this event from clearing any status other than ssoSilent\n break;\n }\n return InteractionStatus.None;\n case EventType.LOGOUT_END:\n if (currentStatus &&\n currentStatus !== InteractionStatus.Logout) {\n // Prevent this event from clearing any status other than logout\n break;\n }\n return InteractionStatus.None;\n case EventType.HANDLE_REDIRECT_END:\n if (currentStatus &&\n currentStatus !== InteractionStatus.HandleRedirect) {\n // Prevent this event from clearing any status other than handleRedirect\n break;\n }\n return InteractionStatus.None;\n case EventType.LOGIN_SUCCESS:\n case EventType.LOGIN_FAILURE:\n case EventType.ACQUIRE_TOKEN_SUCCESS:\n case EventType.ACQUIRE_TOKEN_FAILURE:\n case EventType.RESTORE_FROM_BFCACHE:\n if (message.interactionType === InteractionType.Redirect ||\n message.interactionType === InteractionType.Popup) {\n if (currentStatus &&\n currentStatus !== InteractionStatus.Login &&\n currentStatus !== InteractionStatus.AcquireToken) {\n // Prevent this event from clearing any status other than login or acquireToken\n break;\n }\n return InteractionStatus.None;\n }\n break;\n }\n return null;\n }\n}\n\nexport { EventMessageUtils };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, Injectable, Inject, Optional, Component, NgModule } from '@angular/core';\nimport { WrapperSKU, InteractionStatus, EventMessageUtils, InteractionType, BrowserConfigurationAuthError, UrlString, BrowserUtils, StringUtils, NavigationClient } from '@azure/msal-browser';\nimport { from, ReplaySubject, Subject, BehaviorSubject, of, EMPTY } from 'rxjs';\nimport * as i3 from '@angular/common';\nimport { DOCUMENT, CommonModule } from '@angular/common';\nimport { map, concatMap, catchError, switchMap, take, filter } from 'rxjs/operators';\nimport * as i4 from '@angular/router';\n\n/* eslint-disable header/header */\nconst name = '@azure/msal-angular';\nconst version = '3.0.8';\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nconst MSAL_INSTANCE = new InjectionToken('MSAL_INSTANCE');\nconst MSAL_GUARD_CONFIG = new InjectionToken('MSAL_GUARD_CONFIG');\nconst MSAL_INTERCEPTOR_CONFIG = new InjectionToken('MSAL_INTERCEPTOR_CONFIG');\nconst MSAL_BROADCAST_CONFIG = new InjectionToken('MSAL_BROADCAST_CONFIG');\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalService {\n constructor(instance, location) {\n this.instance = instance;\n this.location = location;\n const hash = this.location.path(true).split('#').pop();\n if (hash) {\n this.redirectHash = `#${hash}`;\n }\n this.instance.initializeWrapperLibrary(WrapperSKU.Angular, version);\n }\n initialize() {\n return from(this.instance.initialize());\n }\n acquireTokenPopup(request) {\n return from(this.instance.acquireTokenPopup(request));\n }\n acquireTokenRedirect(request) {\n return from(this.instance.acquireTokenRedirect(request));\n }\n acquireTokenSilent(silentRequest) {\n return from(this.instance.acquireTokenSilent(silentRequest));\n }\n handleRedirectObservable(hash) {\n return from(this.instance\n .initialize()\n .then(() => this.instance.handleRedirectPromise(hash || this.redirectHash)));\n }\n loginPopup(request) {\n return from(this.instance.loginPopup(request));\n }\n loginRedirect(request) {\n return from(this.instance.loginRedirect(request));\n }\n logout(logoutRequest) {\n return from(this.instance.logout(logoutRequest));\n }\n logoutRedirect(logoutRequest) {\n return from(this.instance.logoutRedirect(logoutRequest));\n }\n logoutPopup(logoutRequest) {\n return from(this.instance.logoutPopup(logoutRequest));\n }\n ssoSilent(request) {\n return from(this.instance.ssoSilent(request));\n }\n /**\n * Gets logger for msal-angular.\n * If no logger set, returns logger instance created with same options as msal-browser\n */\n getLogger() {\n if (!this.logger) {\n this.logger = this.instance.getLogger().clone(name, version);\n }\n return this.logger;\n }\n // Create a logger instance for msal-angular with the same options as msal-browser\n setLogger(logger) {\n this.logger = logger.clone(name, version);\n this.instance.setLogger(logger);\n }\n}\nMsalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalService, deps: [{ token: MSAL_INSTANCE }, { token: i3.Location }], target: i0.ɵɵFactoryTarget.Injectable });\nMsalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_INSTANCE]\n }] }, { type: i3.Location }]; } });\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalBroadcastService {\n constructor(msalInstance, authService, msalBroadcastConfig) {\n this.msalInstance = msalInstance;\n this.authService = authService;\n this.msalBroadcastConfig = msalBroadcastConfig;\n // Make _msalSubject a ReplaySubject if configured to replay past events\n if (this.msalBroadcastConfig &&\n this.msalBroadcastConfig.eventsToReplay > 0) {\n this.authService\n .getLogger()\n .verbose(`BroadcastService - eventsToReplay set on BroadcastConfig, replaying the last ${this.msalBroadcastConfig.eventsToReplay} events`);\n this._msalSubject = new ReplaySubject(this.msalBroadcastConfig.eventsToReplay);\n }\n else {\n // Defaults to _msalSubject being a Subject\n this._msalSubject = new Subject();\n }\n this.msalSubject$ = this._msalSubject.asObservable();\n // InProgress as BehaviorSubject so most recent inProgress state will be available upon subscription\n this._inProgress = new BehaviorSubject(InteractionStatus.Startup);\n this.inProgress$ = this._inProgress.asObservable();\n this.msalInstance.addEventCallback((message) => {\n this._msalSubject.next(message);\n const status = EventMessageUtils.getInteractionStatusFromEvent(message, this._inProgress.value);\n if (status !== null) {\n this.authService\n .getLogger()\n .verbose(`BroadcastService - ${message.eventType} results in setting inProgress from ${this._inProgress.value} to ${status}`);\n this._inProgress.next(status);\n }\n });\n }\n}\nMsalBroadcastService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalBroadcastService, deps: [{ token: MSAL_INSTANCE }, { token: MsalService }, { token: MSAL_BROADCAST_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\nMsalBroadcastService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalBroadcastService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalBroadcastService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_INSTANCE]\n }] }, { type: MsalService }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MSAL_BROADCAST_CONFIG]\n }] }]; } });\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalGuard {\n constructor(msalGuardConfig, msalBroadcastService, authService, location, router) {\n this.msalGuardConfig = msalGuardConfig;\n this.msalBroadcastService = msalBroadcastService;\n this.authService = authService;\n this.location = location;\n this.router = router;\n // Subscribing so events in MsalGuard will set inProgress$ observable\n this.msalBroadcastService.inProgress$.subscribe();\n }\n /**\n * Parses url string to UrlTree\n * @param url\n */\n parseUrl(url) {\n return this.router.parseUrl(url);\n }\n /**\n * Builds the absolute url for the destination page\n * @param path Relative path of requested page\n * @returns Full destination url\n */\n getDestinationUrl(path) {\n this.authService.getLogger().verbose('Guard - getting destination url');\n // Absolute base url for the application (default to origin if base element not present)\n const baseElements = document.getElementsByTagName('base');\n const baseUrl = this.location.normalize(baseElements.length ? baseElements[0].href : window.location.origin);\n // Path of page (including hash, if using hash routing)\n const pathUrl = this.location.prepareExternalUrl(path);\n // Hash location strategy\n if (pathUrl.startsWith('#')) {\n this.authService\n .getLogger()\n .verbose('Guard - destination by hash routing');\n return `${baseUrl}/${pathUrl}`;\n }\n /*\n * If using path location strategy, pathUrl will include the relative portion of the base path (e.g. /base/page).\n * Since baseUrl also includes /base, can just concatentate baseUrl + path\n */\n return `${baseUrl}${path}`;\n }\n /**\n * Interactively prompt the user to login\n * @param url Path of the requested page\n */\n loginInteractively(state) {\n const authRequest = typeof this.msalGuardConfig.authRequest === 'function'\n ? this.msalGuardConfig.authRequest(this.authService, state)\n : { ...this.msalGuardConfig.authRequest };\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\n this.authService.getLogger().verbose('Guard - logging in by popup');\n return this.authService.loginPopup(authRequest).pipe(map((response) => {\n this.authService\n .getLogger()\n .verbose('Guard - login by popup successful, can activate, setting active account');\n this.authService.instance.setActiveAccount(response.account);\n return true;\n }));\n }\n this.authService.getLogger().verbose('Guard - logging in by redirect');\n const redirectStartPage = this.getDestinationUrl(state.url);\n return this.authService\n .loginRedirect({\n redirectStartPage,\n ...authRequest,\n })\n .pipe(map(() => false));\n }\n /**\n * Helper which checks for the correct interaction type, prevents page with Guard to be set as redirect, and calls handleRedirectObservable\n * @param state\n */\n activateHelper(state) {\n if (this.msalGuardConfig.interactionType !== InteractionType.Popup &&\n this.msalGuardConfig.interactionType !== InteractionType.Redirect) {\n throw new BrowserConfigurationAuthError('invalid_interaction_type', 'Invalid interaction type provided to MSAL Guard. InteractionType.Popup or InteractionType.Redirect must be provided in the MsalGuardConfiguration');\n }\n this.authService.getLogger().verbose('MSAL Guard activated');\n /*\n * If a page with MSAL Guard is set as the redirect for acquireTokenSilent,\n * short-circuit to prevent redirecting or popups.\n */\n if (typeof window !== 'undefined') {\n if (UrlString.hashContainsKnownProperties(window.location.hash) &&\n BrowserUtils.isInIframe() &&\n !this.authService.instance.getConfiguration().system\n .allowRedirectInIframe) {\n this.authService\n .getLogger()\n .warning('Guard - redirectUri set to page with MSAL Guard. It is recommended to not set redirectUri to a page that requires authentication.');\n return of(false);\n }\n }\n else {\n this.authService\n .getLogger()\n .info('Guard - window is undefined, MSAL does not support server-side token acquisition');\n return of(true);\n }\n /**\n * If a loginFailedRoute is set in the config, set this as the loginFailedRoute\n */\n if (this.msalGuardConfig.loginFailedRoute) {\n this.loginFailedRoute = this.parseUrl(this.msalGuardConfig.loginFailedRoute);\n }\n // Capture current path before it gets changed by handleRedirectObservable\n const currentPath = this.location.path(true);\n return this.authService.initialize().pipe(concatMap(() => {\n return this.authService.handleRedirectObservable();\n }), concatMap(() => {\n if (!this.authService.instance.getAllAccounts().length) {\n if (state) {\n this.authService\n .getLogger()\n .verbose('Guard - no accounts retrieved, log in required to activate');\n return this.loginInteractively(state);\n }\n this.authService\n .getLogger()\n .verbose('Guard - no accounts retrieved, no state, cannot load');\n return of(false);\n }\n this.authService\n .getLogger()\n .verbose('Guard - at least 1 account exists, can activate or load');\n // Prevent navigating the app to /#code= or /code=\n if (state) {\n /*\n * Path routing:\n * state.url: /#code=...\n * state.root.fragment: code=...\n */\n /*\n * Hash routing:\n * state.url: /code\n * state.root.fragment: null\n */\n const urlContainsCode = this.includesCode(state.url);\n const fragmentContainsCode = !!state.root &&\n !!state.root.fragment &&\n this.includesCode(`#${state.root.fragment}`);\n const hashRouting = this.location.prepareExternalUrl(state.url).indexOf('#') === 0;\n // Ensure code parameter is in fragment (and not in query parameter), or that hash hash routing is used\n if (urlContainsCode && (fragmentContainsCode || hashRouting)) {\n this.authService\n .getLogger()\n .info('Guard - Hash contains known code response, stopping navigation.');\n // Path routing (navigate to current path without hash)\n if (currentPath.indexOf('#') > -1) {\n return of(this.parseUrl(this.location.path()));\n }\n // Hash routing (navigate to root path)\n return of(this.parseUrl(''));\n }\n }\n return of(true);\n }), catchError((error) => {\n this.authService\n .getLogger()\n .error('Guard - error while logging in, unable to activate');\n this.authService\n .getLogger()\n .errorPii(`Guard - error: ${error.message}`);\n /**\n * If a loginFailedRoute is set, checks to see if state is passed before returning route\n */\n if (this.loginFailedRoute && state) {\n this.authService\n .getLogger()\n .verbose('Guard - loginFailedRoute set, redirecting');\n return of(this.loginFailedRoute);\n }\n return of(false);\n }));\n }\n includesCode(path) {\n return ((path.lastIndexOf('/code') > -1 &&\n path.lastIndexOf('/code') === path.length - '/code'.length) || // path.endsWith(\"/code\")\n path.indexOf('#code=') > -1 ||\n path.indexOf('&code=') > -1);\n }\n canActivate(route, state) {\n this.authService.getLogger().verbose('Guard - canActivate');\n return this.activateHelper(state);\n }\n canActivateChild(route, state) {\n this.authService.getLogger().verbose('Guard - canActivateChild');\n return this.activateHelper(state);\n }\n canMatch() {\n this.authService.getLogger().verbose('Guard - canLoad');\n return this.activateHelper();\n }\n}\nMsalGuard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalGuard, deps: [{ token: MSAL_GUARD_CONFIG }, { token: MsalBroadcastService }, { token: MsalService }, { token: i3.Location }, { token: i4.Router }], target: i0.ɵɵFactoryTarget.Injectable });\nMsalGuard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalGuard });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalGuard, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_GUARD_CONFIG]\n }] }, { type: MsalBroadcastService }, { type: MsalService }, { type: i3.Location }, { type: i4.Router }]; } });\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalInterceptor {\n constructor(msalInterceptorConfig, authService, location, msalBroadcastService, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n document) {\n this.msalInterceptorConfig = msalInterceptorConfig;\n this.authService = authService;\n this.location = location;\n this.msalBroadcastService = msalBroadcastService;\n this._document = document;\n }\n intercept(req, // eslint-disable-line @typescript-eslint/no-explicit-any\n next\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ) {\n if (this.msalInterceptorConfig.interactionType !== InteractionType.Popup &&\n this.msalInterceptorConfig.interactionType !== InteractionType.Redirect) {\n throw new BrowserConfigurationAuthError('invalid_interaction_type', 'Invalid interaction type provided to MSAL Interceptor. InteractionType.Popup, InteractionType.Redirect must be provided in the msalInterceptorConfiguration');\n }\n this.authService.getLogger().verbose('MSAL Interceptor activated');\n const scopes = this.getScopesForEndpoint(req.url, req.method);\n // If no scopes for endpoint, does not acquire token\n if (!scopes || scopes.length === 0) {\n this.authService\n .getLogger()\n .verbose('Interceptor - no scopes for endpoint');\n return next.handle(req);\n }\n // Sets account as active account or first account\n let account;\n if (!!this.authService.instance.getActiveAccount()) {\n this.authService\n .getLogger()\n .verbose('Interceptor - active account selected');\n account = this.authService.instance.getActiveAccount();\n }\n else {\n this.authService\n .getLogger()\n .verbose('Interceptor - no active account, fallback to first account');\n account = this.authService.instance.getAllAccounts()[0];\n }\n const authRequest = typeof this.msalInterceptorConfig.authRequest === 'function'\n ? this.msalInterceptorConfig.authRequest(this.authService, req, {\n account: account,\n })\n : { ...this.msalInterceptorConfig.authRequest, account };\n this.authService\n .getLogger()\n .info(`Interceptor - ${scopes.length} scopes found for endpoint`);\n this.authService\n .getLogger()\n .infoPii(`Interceptor - [${scopes}] scopes found for ${req.url}`);\n return this.acquireToken(authRequest, scopes, account).pipe(switchMap((result) => {\n this.authService\n .getLogger()\n .verbose('Interceptor - setting authorization headers');\n const headers = req.headers.set('Authorization', `Bearer ${result.accessToken}`);\n const requestClone = req.clone({ headers });\n return next.handle(requestClone);\n }));\n }\n /**\n * Try to acquire token silently. Invoke interaction if acquireTokenSilent rejected with error or resolved with null access token\n * @param authRequest Request\n * @param scopes Array of scopes for the request\n * @param account Account\n * @returns Authentication result\n */\n acquireToken(authRequest, scopes, account) {\n // Note: For MSA accounts, include openid scope when calling acquireTokenSilent to return idToken\n return this.authService\n .acquireTokenSilent({ ...authRequest, scopes, account })\n .pipe(catchError(() => {\n this.authService\n .getLogger()\n .error('Interceptor - acquireTokenSilent rejected with error. Invoking interaction to resolve.');\n return this.msalBroadcastService.inProgress$.pipe(take(1), switchMap((status) => {\n if (status === InteractionStatus.None) {\n return this.acquireTokenInteractively(authRequest, scopes);\n }\n return this.msalBroadcastService.inProgress$.pipe(filter((status) => status === InteractionStatus.None), take(1), switchMap(() => this.acquireToken(authRequest, scopes, account)));\n }));\n }), switchMap((result) => {\n if (!result.accessToken) {\n this.authService\n .getLogger()\n .error('Interceptor - acquireTokenSilent resolved with null access token. Known issue with B2C tenants, invoking interaction to resolve.');\n return this.msalBroadcastService.inProgress$.pipe(filter((status) => status === InteractionStatus.None), take(1), switchMap(() => this.acquireTokenInteractively(authRequest, scopes)));\n }\n return of(result);\n }));\n }\n /**\n * Invoke interaction for the given set of scopes\n * @param authRequest Request\n * @param scopes Array of scopes for the request\n * @returns Result from the interactive request\n */\n acquireTokenInteractively(authRequest, scopes) {\n if (this.msalInterceptorConfig.interactionType === InteractionType.Popup) {\n this.authService\n .getLogger()\n .verbose('Interceptor - error acquiring token silently, acquiring by popup');\n return this.authService.acquireTokenPopup({ ...authRequest, scopes });\n }\n this.authService\n .getLogger()\n .verbose('Interceptor - error acquiring token silently, acquiring by redirect');\n const redirectStartPage = window.location.href;\n this.authService.acquireTokenRedirect({\n ...authRequest,\n scopes,\n redirectStartPage,\n });\n return EMPTY;\n }\n /**\n * Looks up the scopes for the given endpoint from the protectedResourceMap\n * @param endpoint Url of the request\n * @param httpMethod Http method of the request\n * @returns Array of scopes, or null if not found\n *\n */\n getScopesForEndpoint(endpoint, httpMethod) {\n this.authService\n .getLogger()\n .verbose('Interceptor - getting scopes for endpoint');\n // Ensures endpoints and protected resources compared are normalized\n const normalizedEndpoint = this.location.normalize(endpoint);\n const protectedResourcesArray = Array.from(this.msalInterceptorConfig.protectedResourceMap.keys());\n const matchingProtectedResources = this.matchResourcesToEndpoint(protectedResourcesArray, normalizedEndpoint);\n // Check absolute urls of resources first before checking relative to prevent incorrect matching where multiple resources have similar relative urls\n if (matchingProtectedResources.absoluteResources.length > 0) {\n return this.matchScopesToEndpoint(this.msalInterceptorConfig.protectedResourceMap, matchingProtectedResources.absoluteResources, httpMethod);\n }\n else if (matchingProtectedResources.relativeResources.length > 0) {\n return this.matchScopesToEndpoint(this.msalInterceptorConfig.protectedResourceMap, matchingProtectedResources.relativeResources, httpMethod);\n }\n return null;\n }\n /**\n * Finds resource endpoints that match request endpoint\n * @param protectedResourcesEndpoints\n * @param endpoint\n * @returns\n */\n matchResourcesToEndpoint(protectedResourcesEndpoints, endpoint) {\n const matchingResources = {\n absoluteResources: [],\n relativeResources: [],\n };\n protectedResourcesEndpoints.forEach((key) => {\n // Normalizes and adds resource to matchingResources.absoluteResources if key matches endpoint. StringUtils.matchPattern accounts for wildcards\n const normalizedKey = this.location.normalize(key);\n if (StringUtils.matchPattern(normalizedKey, endpoint)) {\n matchingResources.absoluteResources.push(key);\n }\n // Get url components for relative urls\n const absoluteKey = this.getAbsoluteUrl(key);\n const keyComponents = new UrlString(absoluteKey).getUrlComponents();\n const absoluteEndpoint = this.getAbsoluteUrl(endpoint);\n const endpointComponents = new UrlString(absoluteEndpoint).getUrlComponents();\n // Normalized key should include query strings if applicable\n const relativeNormalizedKey = keyComponents.QueryString\n ? `${keyComponents.AbsolutePath}?${keyComponents.QueryString}`\n : this.location.normalize(keyComponents.AbsolutePath);\n // Add resource to matchingResources.relativeResources if same origin, relativeKey matches endpoint, and is not empty\n if (keyComponents.HostNameAndPort === endpointComponents.HostNameAndPort &&\n StringUtils.matchPattern(relativeNormalizedKey, absoluteEndpoint) &&\n relativeNormalizedKey !== '' &&\n relativeNormalizedKey !== '/*') {\n matchingResources.relativeResources.push(key);\n }\n });\n return matchingResources;\n }\n /**\n * Transforms relative urls to absolute urls\n * @param url\n * @returns\n */\n getAbsoluteUrl(url) {\n const link = this._document.createElement('a');\n link.href = url;\n return link.href;\n }\n /**\n * Finds scopes from first matching endpoint with HTTP method that matches request\n * @param protectedResourceMap Protected resource map\n * @param endpointArray Array of resources that match request endpoint\n * @param httpMethod Http method of the request\n * @returns\n */\n matchScopesToEndpoint(protectedResourceMap, endpointArray, httpMethod) {\n const allMatchedScopes = [];\n // Check each matched endpoint for matching HttpMethod and scopes\n endpointArray.forEach((matchedEndpoint) => {\n const scopesForEndpoint = [];\n const methodAndScopesArray = protectedResourceMap.get(matchedEndpoint);\n // Return if resource is unprotected\n if (methodAndScopesArray === null) {\n allMatchedScopes.push(null);\n return;\n }\n methodAndScopesArray.forEach((entry) => {\n // Entry is either array of scopes or ProtectedResourceScopes object\n if (typeof entry === 'string') {\n scopesForEndpoint.push(entry);\n }\n else {\n // Ensure methods being compared are normalized\n const normalizedRequestMethod = httpMethod.toLowerCase();\n const normalizedResourceMethod = entry.httpMethod.toLowerCase();\n // Method in protectedResourceMap matches request http method\n if (normalizedResourceMethod === normalizedRequestMethod) {\n // Validate if scopes comes null to unprotect the resource in a certain http method\n if (entry.scopes === null) {\n allMatchedScopes.push(null);\n }\n else {\n entry.scopes.forEach((scope) => {\n scopesForEndpoint.push(scope);\n });\n }\n }\n }\n });\n // Only add to all scopes if scopes for endpoint and method is found\n if (scopesForEndpoint.length > 0) {\n allMatchedScopes.push(scopesForEndpoint);\n }\n });\n if (allMatchedScopes.length > 0) {\n if (allMatchedScopes.length > 1) {\n this.authService\n .getLogger()\n .warning('Interceptor - More than 1 matching scopes for endpoint found.');\n }\n // Returns scopes for first matching endpoint\n return allMatchedScopes[0];\n }\n return null;\n }\n}\nMsalInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalInterceptor, deps: [{ token: MSAL_INTERCEPTOR_CONFIG }, { token: MsalService }, { token: i3.Location }, { token: MsalBroadcastService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });\nMsalInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalInterceptor });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalInterceptor, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [MSAL_INTERCEPTOR_CONFIG]\n }] }, { type: MsalService }, { type: i3.Location }, { type: MsalBroadcastService }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * This is a dedicated redirect component to be added to Angular apps to\n * handle redirects when using @azure/msal-angular.\n * Import this component to use redirects in your app.\n */\nclass MsalRedirectComponent {\n constructor(authService) {\n this.authService = authService;\n }\n ngOnInit() {\n this.authService.getLogger().verbose('MsalRedirectComponent activated');\n this.authService.handleRedirectObservable().subscribe();\n }\n}\nMsalRedirectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalRedirectComponent, deps: [{ token: MsalService }], target: i0.ɵɵFactoryTarget.Component });\nMsalRedirectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.2.9\", type: MsalRedirectComponent, selector: \"app-redirect\", ngImport: i0, template: '', isInline: true });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalRedirectComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'app-redirect',\n template: '',\n }]\n }], ctorParameters: function () { return [{ type: MsalService }]; } });\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass MsalModule {\n static forRoot(msalInstance, guardConfig, interceptorConfig) {\n return {\n ngModule: MsalModule,\n providers: [\n {\n provide: MSAL_INSTANCE,\n useValue: msalInstance,\n },\n {\n provide: MSAL_GUARD_CONFIG,\n useValue: guardConfig,\n },\n {\n provide: MSAL_INTERCEPTOR_CONFIG,\n useValue: interceptorConfig,\n },\n MsalService,\n ],\n };\n }\n}\nMsalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nMsalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalModule, declarations: [MsalRedirectComponent], imports: [CommonModule] });\nMsalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalModule, providers: [MsalGuard, MsalBroadcastService], imports: [CommonModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [MsalRedirectComponent],\n imports: [CommonModule],\n providers: [MsalGuard, MsalBroadcastService],\n }]\n }] });\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * Custom navigation used for Angular client-side navigation.\n * See performance doc for details:\n * https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/docs/performance.md\n */\nclass MsalCustomNavigationClient extends NavigationClient {\n constructor(authService, router, location) {\n super();\n this.authService = authService;\n this.router = router;\n this.location = location;\n }\n async navigateInternal(url, options) {\n this.authService.getLogger().trace('MsalCustomNavigationClient called');\n this.authService\n .getLogger()\n .verbose('MsalCustomNavigationClient - navigating');\n this.authService\n .getLogger()\n .verbosePii(`MsalCustomNavigationClient - navigating to url: ${url}`);\n // Prevent hash clearing from causing an issue with Client-side navigation after redirect is handled\n if (options.noHistory) {\n return super.navigateInternal(url, options);\n }\n else {\n // Normalizing newUrl if no query string\n const urlComponents = new UrlString(url).getUrlComponents();\n const newUrl = urlComponents.QueryString\n ? `${urlComponents.AbsolutePath}?${urlComponents.QueryString}`\n : this.location.normalize(urlComponents.AbsolutePath);\n await this.router.navigateByUrl(newUrl, {\n replaceUrl: options.noHistory,\n });\n }\n return Promise.resolve(options.noHistory);\n }\n}\nMsalCustomNavigationClient.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalCustomNavigationClient, deps: [{ token: MsalService }, { token: i4.Router }, { token: i3.Location }], target: i0.ɵɵFactoryTarget.Injectable });\nMsalCustomNavigationClient.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalCustomNavigationClient });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.2.9\", ngImport: i0, type: MsalCustomNavigationClient, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: MsalService }, { type: i4.Router }, { type: i3.Location }]; } });\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * @packageDocumentation\n * @module @azure/msal-angular\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { MSAL_BROADCAST_CONFIG, MSAL_GUARD_CONFIG, MSAL_INSTANCE, MSAL_INTERCEPTOR_CONFIG, MsalBroadcastService, MsalCustomNavigationClient, MsalGuard, MsalInterceptor, MsalModule, MsalRedirectComponent, MsalService, version };\n","import { Component, Inject, OnDestroy, OnInit, Renderer2 } from \"@angular/core\";\nimport { Router, ActivatedRoute } from \"@angular/router\";\nimport { FormGroup, Validators, FormControl } from \"@angular/forms\";\nimport { filter, first, takeUntil } from \"rxjs/operators\";\nimport { AuthenticationService } from \"../../_services/common/authentication.service\";\nimport {\n Userrequestdto,\n UserRequestBase,\n} from \"../../_models/user/userrequestdto\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { emailValidator } from \"src/app/validators/email-validator\";\nimport {\n storeURLs,\n socialMediaLinks,\n privacyPolicyURl,\n termsOfServiceURl,\n ConvertNonAsciiToAscii,\n} from \"src/app/common/commonvariables\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { RSAHelper } from \"src/app/_helpers/RSAHelper\";\nimport { OAuthService } from \"angular-oauth2-oidc\";\nimport { Guid } from \"guid-typescript\";\nimport { CookieService } from \"ngx-cookie-service\";\nimport { UserTypeEnum } from \"src/app/_models/common/manage-emp-enum.enum\";\nimport { RecaptchaErrorParameters } from \"ng-recaptcha\";\nimport { EmailModel } from \"src/app/_models/common/EmailModel\";\nimport { EmailService } from \"src/app/_services/common/email.service\";\nimport { ApiRequest } from \"src/app/_models\";\nimport { VersionHistoryService } from \"src/app/_services/common/version-history.service\";\nimport { Meta, Title } from \"@angular/platform-browser\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport jwt_decode from \"jwt-decode\";\nimport {\n MSAL_GUARD_CONFIG,\n MsalBroadcastService,\n MsalGuardConfiguration,\n MsalModule,\n MsalService,\n} from \"@azure/msal-angular\";\nimport {\n AuthenticationResult,\n InteractionStatus,\n InteractionType,\n PopupRequest,\n PublicClientApplication,\n RedirectRequest,\n} from \"@azure/msal-browser\";\nimport { Subject } from \"rxjs\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { NgxUiLoaderService } from \"ngx-ui-loader\";\n\nconst GRAPH_ENDPOINT = \"https://graph.microsoft.com/v1.0/me/calendarview\";\n\ntype ProfileType = {\n givenName?: string;\n surname?: string;\n userPrincipalName?: string;\n id?: string;\n};\n\n@Component({\n templateUrl: \"org-login.component.html\",\n styleUrls: [\"org-login.component.scss\"],\n providers: [CookieService],\n})\nexport class OrgLoginComponent implements OnInit, OnDestroy {\n loginForm: FormGroup;\n loading = false;\n submitted = false;\n returnUrl: string;\n public param: string;\n userrequest: UserRequestBase;\n storeURL = storeURLs;\n socialMediaLink = socialMediaLinks;\n privacyPolicy = privacyPolicyURl;\n termsOfService = termsOfServiceURl;\n claims: Claims;\n rsaHelper: RSAHelper;\n isOnboardingProcessComplete: boolean = false;\n public UniqueId: Guid;\n params: any;\n referralCode: string = \"\";\n impersonate: string = \"\";\n cookieValue: string;\n claimValue: string;\n showMobileQrCodePanel: boolean = false;\n\n impersonationResponse: any;\n impersonationUserClaim: any;\n emailAlreadyExists = false;\n\n isChrome: boolean =\n navigator.userAgent.toLowerCase().indexOf(\"chrome\") > -1 &&\n navigator.vendor.toLowerCase().indexOf(\"google\") > -1 &&\n !(navigator.userAgent.toLowerCase().indexOf(\"edg/\") > -1);\n constructor(\n private renderer: Renderer2,\n private router: Router,\n private authenticationService: AuthenticationService,\n private toastr: ToastrService,\n private claimsService: ClaimsService,\n private oauthService: OAuthService,\n private route: ActivatedRoute,\n private cookieService: CookieService,\n private emailService: EmailService,\n private versionHistoryService: VersionHistoryService,\n private meta: Meta,\n private title: Title,\n private translate: TranslateService,\n @Inject(MSAL_GUARD_CONFIG) private msalGuardConfig: MsalGuardConfiguration,\n private authService: MsalService,\n private msalBroadcastService: MsalBroadcastService,\n private http: HttpClient,\n private ngxService: NgxUiLoaderService\n ) {\n \n\n this.ngxService.start();\n this.renderer.addClass(document.body, \"bg-white\");\n this.renderer.addClass(document.body, \"height-auto\");\n this.userrequest = new UserRequestBase();\n this.loginForm = this.createFormGroup();\n this.registerForm = this.createRegistrationFormGroup();\n this.UniqueId = Guid.create();\n this.authenticationService.hideAppLoader();\n localStorage.setItem(\"istokenImpersonated\", \"false\");\n }\n\n showCaptcha: boolean = false;\n caprchaResult: string = \"\";\n\n public resolved(captchaResponse: string): void {\n this.caprchaResult = captchaResponse;\n }\n\n public onError(errorDetails: RecaptchaErrorParameters): void {\n this.caprchaResult = \"\";\n }\n\n createFormGroup() {\n return new FormGroup({\n username: new FormControl(\"\", [Validators.required, emailValidator]),\n password: new FormControl(\"\", [Validators.required]),\n rememberpassword: new FormControl(false),\n });\n }\n\n ngOnDestroy(): void {\n this._destroying$.next(undefined);\n this._destroying$.complete();\n }\n\n getProfile() {\n \n\n this.http.get('https://graph.microsoft.com/v1.0/me').subscribe((profile) => {\n \n this.profile = profile;\n if (localStorage.getItem(\"isfromorgsignup\") == \"true\") {\n this.firstname.setValue(this.profile.givenName);\n this.lastname.setValue(this.profile.surname);\n this.email.setValue(this.profile.userPrincipalName);\n this.onRegistrationSubmit();\n }\n\n if (localStorage.getItem(\"isfromorglogin\") == \"true\") {\n this.username.setValue(this.profile.userPrincipalName);\n this.password.setValue(\"Aa123456\");\n this.onLoginSubmit();\n }\n });\n }\n\n ngOnInit() {\n \n // src/app/app.component.ts\n let authRequestConfig: PopupRequest;\n\n if (this.msalGuardConfig.authRequest) {\n authRequestConfig = {\n ...this.msalGuardConfig.authRequest,\n } as PopupRequest;\n }\n\n authRequestConfig.loginHint = \"bob@contoso.com\";\n\n this.authService.loginPopup(authRequestConfig);\n\n if (\n localStorage.getItem(\"isfromorgsignup\") == \"true\" ||\n localStorage.getItem(\"isfromorglogin\") == \"true\"\n ) {\n this.getProfile();\n }\n }\n get username() {\n return this.loginForm.get(\"username\");\n }\n\n SetRememberPassword() {\n if (\n localStorage.getItem(\"rememberpassword\") &&\n localStorage.getItem(\"username\")\n ) {\n this.username.setValue(localStorage.getItem(\"username\"));\n this.password.setValue(localStorage.getItem(\"rememberpassword\"));\n this.rememberpassword.setValue(true);\n }\n }\n\n get password() {\n return this.loginForm.get(\"password\");\n }\n\n get rememberpassword() {\n return this.loginForm.get(\"rememberpassword\");\n }\n\n onLoginSubmit() {\n this.ngxService.start();\n this.claims = new Claims();\n this.submitted = true;\n this.registrationsubmitted = false;\n if (this.loginForm.invalid && !localStorage.getItem(\"isfromorglogin\")) {\n return;\n }\n\n if (\n this.showCaptcha &&\n this.caprchaResult == \"\" &&\n !localStorage.getItem(\"isfromorglogin\")\n ) {\n return;\n }\n\n this.translate.getTranslation(this.translate.getBrowserLang());\n this.disableLoginButton = true;\n this.rsaHelper = new RSAHelper();\n this.userrequest.RequestInfo = new Userrequestdto();\n this.userrequest.WebApiName = \"SoloLogin\";\n this.userrequest.WebApiVersion = 1;\n this.userrequest.RequestId = \"111\";\n this.userrequest.RequestInfo.LoginId = this.username.value;\n if (localStorage.getItem(\"isfromorglogin\") == \"true\") {\n this.userrequest.RequestInfo.IsfromOrgId = true;\n }\n\n this.userrequest.RequestInfo.Password = this.rsaHelper.Encrypt(\n this.password.value\n );\n if (this.rememberpassword.value == true) {\n this.claims.LoginId = this.userrequest.RequestInfo.LoginId;\n this.claims.Password = this.userrequest.RequestInfo.Password;\n localStorage.setItem(\"rememberpassword\", this.password.value);\n localStorage.setItem(\"username\", this.username.value);\n } else {\n localStorage.removeItem(\"rememberpassword\");\n localStorage.removeItem(\"username\");\n }\n this.loading = true;\n this.authenticationService\n .login(this.userrequest)\n .pipe(first())\n .subscribe(\n (data) => {\n if (data.statusCode == 0) {\n //\n this.oauthService\n .fetchTokenUsingPasswordFlowAndLoadUserProfile(\n data.responseInfo.emailId,\n this.rsaHelper.Encrypt(\n this.password.value\n )\n )\n .then(() => {\n localStorage.removeItem(\"isfromorglogin\");\n\n this.title.setTitle(\"ExpenseOnDemand\");\n\n sessionStorage.removeItem(\"CurrentUserLoginAttempt\");\n sessionStorage.removeItem(\"CurrentUserTriedLogin\");\n localStorage.setItem(\"showComplianceStatement\", \"1\");\n var tokenNew = this.oauthService.getAccessToken();\n this.claims.IsFromOrgLogin = true;\n this.claims.OrgId = data.responseInfo.organisationId;\n this.claims.EmailId = data.responseInfo.emailId;\n this.claims.UserId = data.responseInfo.userId;\n this.claims.supplierRule = data.responseInfo.supplierRule;\n this.claims.showCompliancePopup =\n data.responseInfo.showComplianceStatement;\n this.claims.complianceHeader =\n data.responseInfo.complianceHeader;\n this.claims.complianceStatement =\n data.responseInfo.complianceStatement;\n this.claims.CurrentOrganisationCurrency =\n data.responseInfo.currentOrganisationCurrency;\n this.claims.CurrentOrganisationCurrencyId =\n data.responseInfo.currentOrganisationCurrencyId;\n if (data.responseInfo.currentOrganisationCurrency) {\n this.claims.CurrentOrganisationCurrencyCode =\n data.responseInfo.currentOrganisationCurrency\n .split(\"-\")[1]\n .trim();\n }\n this.claims.FinanceManager =\n ConvertNonAsciiToAscii.removeAccents(data.responseInfo.firstName) +\n \" \" +\n ConvertNonAsciiToAscii.removeAccents(data.responseInfo.lastName);\n this.claims.LoginId = data.responseInfo.emailId;\n this.claims.IsFinanceManager =\n data.responseInfo.isFinanceManager;\n this.claims.IsMarqueeOn = data.responseInfo.isMarqueeOn;\n this.claims.MarqueeText = data.responseInfo.marqueeText;\n this.isOnboardingProcessComplete =\n data.responseInfo.isOnboardingProcessComplete;\n if (!data.responseInfo.isOnboardingProcessComplete) {\n this.router.navigate([\"/onboard/prewelcomecurrency\"]);\n }\n this.claims.Token = tokenNew;\n this.claims.FMRoleType = data.responseInfo.fmRoleType;\n this.claims.isClaimOnWebAllowed =\n data.responseInfo.isClaimOnWebAllowed;\n this.claims.orgRoleId = data.responseInfo.orgRoleId;\n\n this.claims.IsLeaveManagementAllowed =\n data.responseInfo.isLeaveManagementAllowed;\n this.claims.ApprovalRuleSetting =\n data.responseInfo.approvalRuleSetting;\n this.claims.showCostCentresWithoutApproverCount = true;\n this.claims.isUniversalImportAllowed =\n data.responseInfo.isUniversalImportAllowed;\n this.claims.UserHomeCurrencyId =\n data.responseInfo.userHomeCurrencyId;\n this.claims.UserHomeCurrencyCode =\n data.responseInfo.userHomeCurrencyCode;\n this.claims.UserHomeCurrencyName =\n data.responseInfo.userHomeCurrencyName;\n this.claims.IsDelegator = data.responseInfo.isDelegator;\n this.claims.IsDelegate = data.responseInfo.isDelegate;\n this.claims.IsFromOrgLogin = true;\n this.claims.isMultiAccSysIntAllow =\n data &&\n data.responseInfo &&\n data.responseInfo.isMultiAccSysIntAllow\n ? data.responseInfo.isMultiAccSysIntAllow\n : false;\n this.claimsService.updateClaims(this.claims);\n this.bindVersionHistory();\n this.authenticationService\n .organisationdetails(\n data.responseInfo.userId.toString(),\n data.responseInfo.emailId,\n data.responseInfo.token\n )\n .pipe(first())\n .subscribe(\n (orgData) => {\n if (orgData.statusCode == 0) {\n if (orgData.responseInfo[0].icon !== null) {\n if (orgData.responseInfo[0].icon == \"\") {\n this.claims.OrgLogo = \"assets/images/logo.png\";\n } else {\n this.claims.OrgLogo =\n \"data:image/jpeg;base64,\" +\n orgData.responseInfo[0].icon;\n }\n }\n this.claims.RateType = orgData.responseInfo[0].rateType;\n this.claims.nrfcStatus =\n orgData.responseInfo[0].nrfcStatus;\n this.claims.OrgName = orgData.responseInfo[0].name;\n this.claims.TwoStepApproval =\n orgData.responseInfo[0].twoStepApproval;\n this.claims.IsCardSetupComplete =\n orgData.responseInfo[0].isCardSetupComplete;\n this.claims.accountingSystemId =\n orgData.responseInfo[0].accountingSystemId;\n this.claims.accountingSystemType =\n orgData.responseInfo[0].accountingSystemType;\n this.claims.showGooglePackagePurchaseReminder =\n orgData.responseInfo[0].showGooglePackagePurchaseReminder;\n this.claims.googlePackagePurchaseReminderThreshold =\n orgData.responseInfo[0].googlePackagePurchaseReminderThreshold;\n this.claims.IsOrgBasicFunctionTrialEndsReminder =\n orgData.responseInfo[0].isOrgBasicFunctionTrialEndsReminder;\n this.claims.IsOrgBasicFunctionTrialEndsAlert =\n orgData.responseInfo[0].isOrgBasicFunctionTrialEndsAlert;\n\n this.claims.IsLeaveManagementAllowed =\n orgData.responseInfo[0].isLeaveManagementAllowed;\n this.claims.ApprovalRuleSetting =\n orgData.responseInfo[0].approvalRuleSetting;\n this.claims.IsCostCentrePackagePurchasedOrTrial =\n orgData.responseInfo[0].isCostCentrePackagePurchasedOrTrial;\n this.claims.IsCustomerPackagePurchasedOrTrial =\n orgData.responseInfo[0].isCustomerPackagePurchasedOrTrial;\n this.claims.ReferAndEarnRole =\n orgData.responseInfo[0].referAndEarnRole;\n this.claims.CompanyApproverRule =\n orgData.responseInfo[0].companyApproverRule;\n this.claims.IsClaimantWiseMonthlyCappingEnabled =\n orgData.responseInfo[0].isClaimantWiseMonthlyCappingEnabled;\n this.claims.IsClaimantWiseYearlyCappingEnabled =\n orgData.responseInfo[0].isClaimantWiseYearlyCappingEnabled;\n\n this.claims.isUniversalImportAllowed =\n orgData.responseInfo[0].isUniversalImportAllowed;\n\n this.claims.IsCashAdvanceEnabled =\n orgData.responseInfo[0].isCashAdvanceEnabled;\n this.claims.IsCreditCardAdvanceEnabled =\n orgData.responseInfo[0].isCreditCardAdvanceEnabled;\n this.claims.isMultiAccSysIntAllow =\n orgData &&\n orgData.responseInfo[0] &&\n orgData.responseInfo[0].isMultiAccSysIntAllow\n ? orgData.responseInfo[0].isMultiAccSysIntAllow\n : false;\n this.claims.isPolicyOnVehicleChange =\n orgData.responseInfo[0].isPolicyOnVehicleChange;\n this.claims.triangulationRule =\n orgData.responseInfo[0].triangulationRule;\n this.claims.isStripPaymentFailed =\n orgData.responseInfo[0].isStripPaymentFailed;\n this.claims.IsDelegateFunctionPurchasedOrTrial =\n orgData.responseInfo[0].isDelegateFunctionPurchasedOrTrial;\n this.claims.BandId = orgData.responseInfo[0].bandId;\n this.claims.IsPayStepEnabled = orgData.responseInfo[0].isPayStepEnabled;\n this.claimsService.updateClaims(this.claims);\n this.authenticationService.setloginnav();\n this.ngxService.stop();\n this.routeUser();\n }\n },\n (error) => {\n this.disableLoginButton = false;\n }\n );\n })\n .catch((err) => {\n this.disableLoginButton = false;\n console.error(\"error logging in\", err);\n });\n } else {\n this.disableLoginButton = false;\n if (\n data.errorInfo[0] &&\n data.errorInfo[0].message &&\n data.errorInfo[0].message ==\n this.translate.instant('claimant_on_web_not_supported')\n )\n this.showMobileQrCodePanel = true;\n else this.toastr.error(data.errorInfo[0].message);\n this.loading = false;\n this.checkForCaptchaVisibility();\n }\n },\n (error) => {\n this.disableLoginButton = false;\n this.toastr.error(error);\n this.loading = false;\n }\n );\n }\n\n routeUser() {\n this.renderer.removeClass(document.body, \"settingsW\");\n this.renderer.removeClass(document.body, \"login-bg\");\n\n if (this.claims.IsFinanceManager == true)\n this.router.navigate([\"dashboard/overview\"]);\n else {\n if (this.claims.orgRoleId == UserTypeEnum.Approver) {\n this.router.navigate([\"/approver/appclaimant\"]);\n } else {\n if (\n this.claims.IsDelegateFunctionPurchasedOrTrial &&\n this.claims.IsDelegate\n ) {\n this.router.navigate([\"claimant/delegatorsexpense\"]);\n } else {\n this.router.navigate([\"claimant/expenselist\"]);\n }\n }\n }\n }\n\n ShowSpecialCharErrorFName: boolean = true;\n ShowSpecialCharErrorLName: boolean = true;\n omit_special_char(event) {\n var k;\n k = event.charCode;\n if (k == 13) {\n return true;\n }\n if (event.target.id === \"fName\") {\n this.ShowSpecialCharErrorFName = this.allowAcuteChar(event);\n } else {\n this.ShowSpecialCharErrorLName = this.allowAcuteChar(event);\n }\n return this.allowAcuteChar(event);\n }\n\n public noWhitespaceValidator(control: FormControl) {\n const isWhitespace = (control.value || \"\").trim().length === 0;\n const isValid = !isWhitespace;\n return isValid ? null : { whitespace: true };\n }\n forgotPassword() {\n this.router.navigate([\"/forgotpassword\"]);\n }\n\n //Registration\n\n registerForm: FormGroup;\n IsRegisterCanBeDisabled: boolean;\n registrationsubmitted = false;\n disableLoginButton: boolean;\n createRegistrationFormGroup() {\n return new FormGroup({\n firstname: new FormControl(\"\", [\n Validators.required,\n Validators.minLength(1),\n this.noWhitespaceValidator,\n ]),\n lastname: new FormControl(\"\"),\n email: new FormControl(\"\", [Validators.required, emailValidator]),\n });\n }\n\n get firstname() {\n return this.registerForm.get(\"firstname\");\n }\n\n get lastname() {\n return this.registerForm.get(\"lastname\");\n }\n\n get email() {\n return this.registerForm.get(\"email\");\n }\n\n newGuid() {\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(\n /[xy]/g,\n function (c) {\n var r = (Math.random() * 16) | 0,\n v = c == \"x\" ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n }\n );\n }\n onRegistrationSubmit() {\n this.claims = new Claims();\n this.submitted = false;\n this.registrationsubmitted = true;\n //\n\n // stop here if form is invalid\n if (this.registerForm.invalid || this.firstname.value.trim() == \"\") {\n return;\n }\n\n this.IsRegisterCanBeDisabled = true;\n let em = new EmailModel();\n em.to = this.email.value;\n em.templateName = \"OnboardingOTP\";\n em.userId = 0;\n em.subjct = \"OTP\";\n em.sentTime = 0;\n em.deliveredTime = 0;\n em.status = 1;\n em.emailLogId = this.newGuid();\n var otp = Math.floor(1000 + Math.random() * 9000);\n em.keyValuePairs[\"OTP\"] = otp.toString();\n\n this.authenticationService\n .checkForUserExistance(this.email.value)\n .subscribe(\n (userData) => {\n if (userData.responseInfo != null) {\n this.toastr.error(this.translate.instant(\"claimant_exists\"));\n this.IsRegisterCanBeDisabled = false;\n this.emailAlreadyExists = true;\n } else {\n let req = new ApiRequest(\"\", 1, \"\");\n req.requestInfo = em;\n\n if (localStorage.getItem(\"isfromorgsignup\") == \"true\") {\n this.userrequest.RequestInfo = new Userrequestdto();\n this.userrequest.WebApiName = \"SoloRegister\";\n this.userrequest.WebApiVersion = 1;\n this.userrequest.RequestId = \"111\";\n this.userrequest.RequestInfo.FirstName = this.firstname.value;\n this.userrequest.RequestInfo.LastName = this.lastname.value;\n this.userrequest.RequestInfo.LoginId = this.email.value;\n this.userrequest.RequestInfo.ReferralCode = this.referralCode;\n this.userrequest.RequestInfo.OTP = otp;\n this.userrequest.RequestInfo.Password = \"Aa123456\";\n localStorage.setItem(\n \"registereduser\",\n JSON.stringify(this.userrequest.RequestInfo)\n );\n this.authenticationService.register(this.userrequest).subscribe(\n (data) => {\n if (data.statusCode == 0) {\n if (localStorage.getItem(\"currentUser\")) {\n localStorage.removeItem(\"currentUser\");\n }\n\n this.claims.IsFromOrgLogin = true;\n this.claims.Token = data.responseInfo.token;\n this.claims.EmailId = data.responseInfo.emailId;\n this.claims.UserId = data.responseInfo.userId;\n this.claims.FinanceManager =\n data.responseInfo.firstName +\n \" \" +\n data.responseInfo.lastName;\n this.claims.LoginId = data.responseInfo.emailId;\n this.claims.FMRoleType = 1;\n this.claims.isClaimOnWebAllowed =\n data.responseInfo.isClaimOnWebAllowed;\n this.claims.orgRoleId = data.responseInfo.orgRoleId;\n\n this.claimsService.updateClaims(this.claims);\n\n localStorage.removeItem(\"isfromorgsignup\");\n this.ngxService.stop();\n\n this.router.navigate([\"/onboard/prewelcomecurrency\"]);\n } else {\n this.toastr.error(data.errorInfo[0].message);\n }\n },\n (error) => {}\n );\n } else {\n this.emailService.SendEmail(req).subscribe(() => {\n this.userrequest.RequestInfo = new Userrequestdto();\n this.userrequest.WebApiName = \"SoloRegister\";\n this.userrequest.WebApiVersion = 1;\n this.userrequest.RequestId = \"111\";\n this.userrequest.RequestInfo.FirstName = this.firstname.value;\n this.userrequest.RequestInfo.LastName = this.lastname.value;\n this.userrequest.RequestInfo.LoginId = this.email.value;\n this.userrequest.RequestInfo.ReferralCode = this.referralCode;\n this.userrequest.RequestInfo.OTP = otp;\n localStorage.setItem(\n \"registereduser\",\n JSON.stringify(this.userrequest.RequestInfo)\n );\n\n this.router.navigate([\"/onboard/verifyemail\"]);\n });\n }\n }\n },\n (error) => {}\n );\n }\n\n countryName: string;\n ipDetails: any;\n isIndia: boolean;\n\n async getIpCliente() {\n const response = await fetch(\n \"https://api.ipapi.com/check?access_key=2fd83198db3dd7431b553117d2f68d48&format=1\"\n );\n const jsonData = await response.json();\n\n this.ipDetails = jsonData;\n this.countryName = jsonData.country_name;\n if (this.countryName.includes(\"India\")) {\n this.isIndia = true;\n }\n localStorage.setItem(\"countryName\", this.countryName);\n }\n\n closeMobileQrCodePanel() {\n this.showMobileQrCodePanel = false;\n }\n exisitingPasswordType: boolean = false;\n PasswordType: boolean = false;\n timeoutHandler: any;\n mouseup(type) {\n if (this.timeoutHandler) {\n clearTimeout(this.timeoutHandler);\n this.timeoutHandler = null;\n }\n switch (type) {\n case \"exisitingPasswordType\":\n this.exisitingPasswordType = false;\n break;\n case \"PasswordType\":\n this.PasswordType = false;\n break;\n }\n }\n\n mousedown(type) {\n this.timeoutHandler = setTimeout(() => {\n switch (type) {\n case \"exisitingPasswordType\":\n this.exisitingPasswordType = true;\n break;\n case \"PasswordType\":\n this.PasswordType = true;\n break;\n }\n this.timeoutHandler = null;\n }, 50);\n }\n\n allowAcuteChar(e) {\n let regex = new RegExp(\"^[a-zA-ZÀ-úp{L} '-]+$\");\n let str = String.fromCharCode(!e.charCode ? e.which : e.charCode);\n if (regex.test(str)) {\n return true;\n } else return false;\n }\n\n showCaptchaMessage: boolean = false;\n checkForCaptchaVisibility() {\n var loginAttemptCount = 0;\n\n if (sessionStorage.getItem(\"CurrentUserTriedLogin\")) {\n if (\n sessionStorage.getItem(\"CurrentUserTriedLogin\") != this.username.value\n ) {\n sessionStorage.setItem(\"CurrentUserLoginAttempt\", \"0\");\n }\n }\n\n if (sessionStorage.getItem(\"CurrentUserLoginAttempt\")) {\n loginAttemptCount =\n Number(sessionStorage.getItem(\"CurrentUserLoginAttempt\")) + 1;\n } else {\n loginAttemptCount = 1;\n }\n sessionStorage.setItem(\n \"CurrentUserLoginAttempt\",\n loginAttemptCount.toString()\n );\n sessionStorage.setItem(\"CurrentUserTriedLogin\", this.username.value);\n this.showCaptchaMessage = loginAttemptCount > 0 && loginAttemptCount < 10;\n this.showCaptcha = loginAttemptCount >= 10;\n }\n\n bindVersionHistory() {\n if (!this.claims.appVersion) {\n this.versionHistoryService\n .getVersionHistory()\n .pipe(first())\n .subscribe((res: any) => {\n if (res.statusCode == 0) {\n let currentVersion = res.responseInfo.filter(\n (x) => x.isCurrentRelease\n )[0].versionNumber;\n\n this.claims.appVersion = currentVersion;\n this.claimsService.updateClaims(this.claims);\n }\n });\n }\n }\n\n fnCheckRouteParams() {\n let params = this.route.snapshot.queryParams;\n var paramKeys = Object.keys(params);\n if (paramKeys.length > 0 && params[\"code\"]) {\n this.authenticationService.getXeroUserDetails(params[\"code\"]).subscribe(\n (userData) => {\n const token = userData.idToken;\n const decoded = jwt_decode(token);\n const firstName = decoded[\"given_name\"];\n const lastName = decoded[\"family_name\"];\n const email = decoded[\"email\"];\n\n this.firstname.setValue(firstName);\n this.lastname.setValue(lastName);\n this.email.setValue(email);\n },\n (error) => {}\n );\n }\n }\n\n private readonly _destroying$ = new Subject();\n profile!: ProfileType;\n\n loginWithOrgId() {\n \n localStorage.setItem(\"isfromorglogin\", \"true\");\n\n localStorage.removeItem(\"isfromorgsignup\");\n\n // if (localStorage.getItem(\"isfromorglogin\") != \"true\") {\n // this.router.navigate([\"/orglogin\"]);\n // }\n\n this.authService.instance[\"browserStorage\"].clear();\n\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\n if (this.msalGuardConfig.authRequest) {\n this.authService\n .loginPopup({ ...this.msalGuardConfig.authRequest } as PopupRequest)\n .subscribe((response: AuthenticationResult) => {\n this.authService.instance.setActiveAccount(response.account);\n });\n } else {\n this.authService\n .loginPopup()\n .subscribe((response: AuthenticationResult) => {\n this.authService.instance.setActiveAccount(response.account);\n });\n }\n } else {\n if (this.msalGuardConfig.authRequest) {\n this.authService.loginRedirect({\n ...this.msalGuardConfig.authRequest,\n } as RedirectRequest);\n } else {\n this.authService.loginRedirect();\n }\n }\n }\n\n signupWithOrgId() {\n localStorage.setItem(\"isfromorgsignup\", \"true\");\n\n localStorage.removeItem(\"isfromorglogin\");\n\n // if (localStorage.getItem(\"isfromorgsignup\") != \"true\") {\n // this.router.navigate([\"/orglogin\"]);\n // }\n\n this.authService.instance[\"browserStorage\"].clear();\n\n if (this.msalGuardConfig.interactionType === InteractionType.Popup) {\n if (this.msalGuardConfig.authRequest) {\n this.authService\n .loginPopup({ ...this.msalGuardConfig.authRequest } as PopupRequest)\n .subscribe((response: AuthenticationResult) => {\n this.authService.instance.setActiveAccount(response.account);\n });\n } else {\n this.authService\n .loginPopup()\n .subscribe((response: AuthenticationResult) => {\n this.authService.instance.setActiveAccount(response.account);\n });\n }\n } else {\n if (this.msalGuardConfig.authRequest) {\n this.authService.loginRedirect({\n ...this.msalGuardConfig.authRequest,\n } as RedirectRequest);\n } else {\n this.authService.loginRedirect();\n }\n }\n }\n}\n","\n\n
    \n
    ","export class InfoModelPopup {\n constructor(public panelKey: string, public title: string, public subTitle: string, public description: string,\n public description2: string, public image: string, public videoURLs: any, public tooltip: string,\n public btnLabel: string, public actionButton: boolean) {\n\n }\n}\n\nexport class InfoPanelOutput {\n constructor(public panelKey: string, public buttonKey: string, public outputModel: any) {\n }\n}","import { Component, OnInit, Input, Output, EventEmitter } from \"@angular/core\";\nimport { TranslateService } from '@ngx-translate/core';\nimport { InfoModelPopup, InfoPanelOutput } from 'src/app/_models/common/info-model-popup';\nimport { DomSanitizer, SafeHtml } from \"@angular/platform-browser\";\n\n\n\n@Component({\n selector: 'info-model-popup',\n templateUrl: './info-model-popup.component.html',\n})\nexport class InfoModelPopupComponent implements OnInit {\n @Input() infoModel: InfoModelPopup;\n\n @Output() closePanelEvent = new EventEmitter();\n\n @Output() btnClickEvent = new EventEmitter();\n safeText: SafeHtml;\n videoURLs: any;\n\n\n\n constructor(private translate: TranslateService, private sanitizer: DomSanitizer) { }\n\n ngOnInit(): void {\n\n }\n\n fnClosePanel() {\n this.closePanelEvent.emit(true);\n }\n\n fnBtnClick() {\n let returnOutput = new InfoPanelOutput(this.infoModel.panelKey, this.infoModel.btnLabel, {\n title: this.infoModel.title,\n subTitle: this.infoModel.subTitle, btnStatus: true\n }\n );\n this.btnClickEvent.emit(returnOutput);\n }\n\n sanitizerHtml(element) {\n this.safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return this.safeText;\n }\n\n sanitizeVideoUrl(element) {\n return this.sanitizer.bypassSecurityTrustResourceUrl(element);\n }\n\n\n close() {\n let iframe = document.querySelector(\"iframe\");\n\n if (iframe) {\n let iframeSrc = iframe.src;\n iframe.src = iframeSrc;\n }\n }\n}\n","
    \n
    \n
    \n\n
    \n

    {{infoModel.title}}

    \n

    {{infoModel.subTitle}}

    \n \n
    \n\n
    \n
    \n

    \n \n \n

    \n
    \n
    \n\n
    \n

    {{ \"pricing_See_it_action\" | translate }}

    \n
    \n \n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n
    ","
    \n
    \n
    \n
    \n
    {{ \"pricing_summary_header\" | translate }}
    \n \n
    \n
    \n
    \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    {{ \"pricing_function_name\" | translate }}
    \n
    {{ \"price\" | translate }}
    \n
    \n
    \n
    \n Essential Pack\n \n {{ currencySymbol }}{{ (accessCharge + essentialPack) | number: \"1.2-2\" | noComma }}\n \n
    \n
    \n
    \n
    \n \n
    \n {{cat.functionCategoryName}}
    \n
    \n
    \n

    {{paidlist.websiteFunctionPackageName}}

    \n
    \n

    \n {{currencySymbol}}{{paidlist.functionAmount | number: \"1.2-2\" | noComma}}\n

    \n \n
    \n
    \n
    \n
    \n
    \n
    \n {{ \"pricing_summary_total\" | translate }} {{currencySymbol}}{{essentialPack + accessCharge + this.fnGetSelectedFunctionCost() | number: \"1.2-2\" |\n noComma}} / {{ \"pricing_label_user\" |\n translate }} / {{ \"pricing_per_month\" |\n translate }}\n
    \n \n
    \n\n\n\n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n {{ \"label_Required\" | translate }}\n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n {{ \"enter_valid_email\" | translate }}\n \n
    \n
    \n \n {{ \"label_Required\" | translate }}\n \n
    \n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n
    \n \n \n {{ \"pricing_error_message_invalid_NUmber\" | translate }}\n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    ","import { Component, OnInit, Input, Output, EventEmitter, AfterViewInit } from '@angular/core';\nimport { QuoteModel } from 'src/app/_models/pricing/pricing';\nimport { UntypedFormGroup, FormBuilder, Validators } from '@angular/forms';\nimport { DecimalPipe } from '@angular/common';\nimport { FunctionCategoryEnum } from \"src/app/_models/enum/solo-enum\";\n\n@Component({\n selector: 'pricing-summary',\n templateUrl: './pricing-summary.component.html',\n})\nexport class PricingSummaryComponent implements OnInit , AfterViewInit{\n\n @Input() selectedFunctionCategory: any[] = [];\n @Input() currencyCode: string;\n @Input() currencySymbol: string;\n @Input() currencyId: number;\n @Input() total: number;\n @Input() accessChargeFunction:any[]= [];\n @Input() essentialPack: number;\n @Input() accessCharge: number;\n\n @Output() closePanelEvent = new EventEmitter();\n @Output() removeFunPackageEvent = new EventEmitter();\n @Output() raisePricingQuoteEvent = new EventEmitter();\n\n quote: QuoteModel = new QuoteModel();\n isFormSubmitted: boolean = false;\n formctrl: UntypedFormGroup;\n functionSelected: boolean = true;\n\n constructor(private fb: FormBuilder,\n private _decimalPipe: DecimalPipe) { }\n\n ngOnInit(): void {\n this.quote.emailQuote = false;\n \n this.getSelectedFunctionCategory();\n this.formctrl = this.fb.group({\n firstName: [this.quote.firstName, Validators.required],\n lastName: [this.quote.lastName],\n business: [this.quote.business],\n email: [this.quote.email, Validators.compose([Validators.email, Validators.required])],\n hearAboutUs: [this.quote.hearAboutUs],\n noOfEmployee: [this.quote.noOfEmployee, Validators.pattern(new RegExp(\"[0-9]\"))]\n });\n }\n\n ngAfterViewInit(){\n \n }\n get f() { return this.formctrl.controls; }\n\n removeFunPackage(funPackageId: number, functionCategoryId: number) {\n this.selectedFunctionCategory.filter(e => e?.functionCategoryId == functionCategoryId).forEach(fc => {\n fc.functionPackage.filter(func => func.functionPackageId == funPackageId).forEach(funPackage => {\n funPackage.selected = false;\n this.total = this.total - funPackage.functionAmount ?? 0;\n });\n if (!fc.functionPackage.some(fpackage => fpackage.selected)) {\n this.selectedFunctionCategory.filter(e => e?.functionCategoryId == functionCategoryId)[0].selected = false;\n }\n });\n\n this.getSelectedFunctionCategory();\n\n this.removeFunPackageEvent.emit({ functionCategoryGroup: this.selectedFunctionCategory, functionPackageId: funPackageId });\n }\n\n\n\n getSelectedFunctionCategory() {\n let selected = false;\n this.selectedFunctionCategory.forEach(x => {\n if (x.functionPackage.some(f => f.selected)) {\n x.selected = true;\n selected = true;\n }\n });\n\n return selected;\n }\n\n fnGetSelectedFunctionCost() {\n let amount = 0;\n if (this.selectedFunctionCategory && this.selectedFunctionCategory.length > 0) {\n this.selectedFunctionCategory.filter(x => x.selected).forEach(fn => {\n fn.functionPackage.filter(y => y.selected).forEach(fpackage => {\n \n let fnAmount = this._decimalPipe.transform(fpackage.functionAmount, '1.2-2');\n let decimalVal = +fnAmount;\n amount += decimalVal;\n });\n });\n }\n\n this.getSelectedFunctionCategory();\n\n return amount;\n }\n\n raiseQuote(emailQuote: boolean) {\n this.isFormSubmitted = true;\n if (this.formctrl.status == \"VALID\") {\n window.document.getElementById(\"close_summary\").click();\n this.mapQuoteModel(emailQuote);\n this.raisePricingQuoteEvent.emit(this.quote);\n }\n }\n\n mapQuoteModel(emailQuote: boolean) {\n\n this.quote.firstName = this.f.firstName.value;\n this.quote.lastName = this.f.lastName.value;\n this.quote.business = this.f.business.value;\n this.quote.email = this.f.email.value;\n this.quote.emailQuote = emailQuote;\n this.quote.noOfEmployee = this.f.noOfEmployee.value;\n this.quote.hearAboutUs = this.f.hearAboutUs.value;\n }\n\n\n}","\n
    \n
    \n
    \n \n
    \n
    \n

    {{\"pricing_flexi_plan\" | translate: param}}

    \n {{\"Pricing_key17\" | translate: param}}\n

    {{\"pricing_signup_message\" | translate: param}}

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    {{\"ess_pack_text1\" | translate: param}}
    \n
    {{currencySymbol}}{{ accessAmount + essentialPackAmount |\n number: \"1.2-2\" |\n noComma}}
    \n
    \n
    \n
    Function(s) Selected{{selectedFunctionPackageList.length}}
    \n
    {{currencySymbol}}{{this.fnGetTotalCost() | number: \"1.2-2\" |\n noComma}}
    \n
    \n
    \n
    {{\"invoice_total\" | translate: param}}
    \n
    {{currencySymbol}}{{ essentialPackAmount + accessAmount +fnGetTotalCost() |\n number: \"1.2-2\" | noComma }}
    \n
    \n
    \n
    \n
    \n

    {{ essentialPackAmount + accessAmount + this.fnGetTotalCost() |\n number: \"1.2-2\" | noComma }}{{currencyCode}}

    \n
    {{\"basic_price_note2\" | translate: param}}
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n

    {{\"Pricing_key14\" | translate: param}}

    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    {{\"pricing_function_name\" | translate: param}}
    \n
    {{\"price\" | translate: param}}
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n
    \n
    \n
    {{paidlist.websiteFunctionPackageName}}
    \n
    \n {{currencySymbol}}{{paidlist.functionAmount\n | number: \"1.2-2\" | noComma}}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    {{\"Pricing_key1\" | translate:\n param}}
    \n \n
    \n
    \n
    \n
    \n
    {{freeFunction.functionPackageName}}
    \n
      \n
    • \n \n \n {{freeFunction.essentialPackDescripition}}\n \n
    • \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n ","import {\n Component,\n OnInit,\n HostListener,\n Inject,\n ElementRef,\n OnDestroy,\n ViewChild,\n ViewEncapsulation,\n NgZone,\n AfterViewInit,\n} from \"@angular/core\";\nimport { DecimalPipe } from \"@angular/common\";\nimport { ToastrService } from \"ngx-toastr\";\nimport { first, map, tap } from \"rxjs/operators\";\nimport { Subject, Subscription } from 'rxjs';\nimport { IApiRequest, ApiRequest, IApiresponse } from \"src/app/_models\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { ClaimsService } from \"src/app/_services/common/claims.service\";\nimport { Claims } from \"src/app/_models/common/claims\";\nimport { environment } from \"src/environments/environment\";\nimport { PricingService } from \"src/app/_services/pricing/pricing.service\";\nimport { DomSanitizer, Meta, SafeHtml, Title } from \"@angular/platform-browser\";\nimport { FunctionCategoryEnum, FunctionCategoryNameEnum, FunctionPackageEnum } from \"src/app/_models/enum/solo-enum\";\nimport { AuthenticationService } from \"src/app/_services\";\nimport { websiteURl } from \"src/app/common/commonvariables\";\nimport {\n InfoModelPopup,\n InfoPanelOutput,\n} from \"src/app/_models/common/info-model-popup\";\nimport {\n IPricingEmailQuoteRequest,\n PricingEmailQuoteRequest,\n QuoteModel,\n FunctionPackageQuote,\n} from \"src/app/_models/pricing/pricing\";\nimport { ICountryCurrencyMappingResponse } from \"src/app/_models/country-currency-mapping/country-currency-mapping\";\nimport { CountryCurrencyMappingService } from \"src/app/_services/country-currency-mapping/country-currency-mapping.service\";\nimport { OrgSubscriptionFunctionService } from \"src/app/_services/billing-pricing/Org-Subscription-Function.service\";\nimport { OrgSubscription } from \"src/app/_models/common/OrgSubscription\";\nimport { Guid } from \"guid-typescript\";\nimport { OrgSubscriptionPurchaseFunctionList } from \"src/app/_models/billing-pricing/IOrgSubscriptionPurchaseFunctionList\";\nimport { NgScrollbar } from 'ngx-scrollbar';\n\n@Component({\n selector: \"pricing-external-list\",\n templateUrl: \"./pricing-external-list.component.html\",\n styleUrls: [\"./pricing-external-list.component.scss\"],\n})\nexport class PricingExternalListComponent implements OnInit, AfterViewInit, OnDestroy {\n claims: Claims;\n public param: string;\n paidFunctionPackageList: any = [];\n selectedFunctionPackageList: any = [];\n starterPackList: any[] = [];\n currencyId: number;\n currencyCode: string;\n currencySymbol: string;\n ipDetails: any;\n functionCategoryGroup: any[] = [];\n functionCategory: any[] = [];\n allFunctionCategoryGroup: any[] = [];\n functionCategorydropdownList: any[] = [];\n selectedFunctionCategoryGroup: any[] = [];\n showPricingExternalCalculatorPanel: boolean = false;\n isFreeTrialBoxDisplay: boolean = false;\n scrolling: boolean = false;\n websiteLink: string = websiteURl;\n infoPopupVisible: boolean = false;\n infoModel: InfoModelPopup;\n selectedFunctionCategory: any;\n searchText: string;\n pricingSummaryVisible: boolean = false;\n showMobilMenu: boolean = false;\n essentialPackAmount: String;\n orgID: any;\n functionPackageName: any[] = [];\n @ViewChild(\"containerSection\") private containerSection: ElementRef;\n accessChargeFunction: any[];\n OrgPurchaseFunctionRequest: IApiRequest;\n public UniqueId: Guid;\n accessAmount: any;\n PurchaseFunctionResponse: OrgSubscriptionPurchaseFunctionList;\n readonly size$ = new Subject();\n essentialPackString: string = \"Essential Pack\";\n\n // Unsubscriber for elementScrolled stream.\n private _scrollSubscription = Subscription.EMPTY;\n\n // Get NgScrollbar reference\n @ViewChild(NgScrollbar, { static: true }) scrollbarRef: NgScrollbar;\n\n\n constructor(\n private toastr: ToastrService,\n private translate: TranslateService,\n private claimsService: ClaimsService,\n private pricingService: PricingService,\n private sanitizer: DomSanitizer,\n private authenticationService: AuthenticationService,\n private _decimalPipe: DecimalPipe,\n private meta: Meta,\n private title: Title,\n private countryCurrencyMappingService: CountryCurrencyMappingService,\n private ngZone: NgZone\n ) {\n this.claimsService.currentClaims.subscribe((claims) => {\n this.claims = claims;\n });\n }\n ngOnInit() {\n setTimeout(() => {\n this.title.setTitle(\"Customer Pricing Calculator\");\n this.meta.updateTag({\n name: \"description\",\n content:\n this.translate.instant('meta_tag_pricing_description'),\n });\n }, 1000);\n this.authenticationService.logout();\n this.authenticationService.loadAccessToken();\n this.fnGetIpCliente();\n this.selectedFunctionCategory = 0;\n this.functionCategorydropdownList = this.allFunctionCategoryGroup; \n this.UniqueId = Guid.create();\n }\n\n \n \n ngAfterViewInit() {\n this._scrollSubscription = this.scrollbarRef.verticalScrolled\n .pipe(\n map((e: any) => (e.target.scrollTop > 0 ? 'navbar-hidden' : '')),\n tap((size: string) => this.ngZone.run(() => this.size$.next(size)))\n )\n .subscribe();\n }\n\n ngOnDestroy() {\n this._scrollSubscription.unsubscribe();\n } \n \n fnGetOrgPricingFunctionList() {\n let currencyId = this.currencyId;\n this.pricingService\n .GetPricingFunctionListbyCurrencyCode(this.currencyCode)\n .subscribe(\n (data) => {\n if (data.responseInfo) {\n this.currencySymbol = data.responseInfo.orgPaymentCurrencySymbol;\n this.currencyId = data.responseInfo.orgPaymentCurrencyId;\n this.currencyCode = data.responseInfo.orgPaymentCurrencyCode;\n let accessChargeFunctions = data.responseInfo.paidFunctionPackageDetail\n .filter(x => x.functionPackageId == FunctionPackageEnum.AccessCharge);\n data.responseInfo.paidFunctionPackageDetail = data.responseInfo.paidFunctionPackageDetail\n .filter(x => x.functionPackageId != FunctionPackageEnum.AccessCharge);\n\n this.essentialPackAmount = data.responseInfo.essentialPackAmount;\n this.accessAmount = accessChargeFunctions[0].functionAmount;\n this.accessChargeFunction = accessChargeFunctions\n .reduce(function (arr, item) {\n arr[item.functionCategoryId] = arr[item.functionCategoryId] ||\n {\n functionCategoryId: item.functionCategoryId,\n functionCategoryName: FunctionCategoryNameEnum[FunctionCategoryEnum[item.functionCategoryId]],\n functionSelected: true,\n functionPackage: []\n };\n item.selected = true;\n arr[item.functionCategoryId].functionPackage.push(item);\n return arr;\n }, []);\n\n data.responseInfo.paidFunctionPackageDetail.sort((a, b) => (a.websiteFunctionPackageName < b.websiteFunctionPackageName) ? -1 : 1);\n\n data.responseInfo.paidFunctionPackageDetail.sort((a, b) =>\n a.websiteFunctionPackageName < b.websiteFunctionPackageName\n ? -1\n : 1\n );\n this.paidFunctionPackageList =\n data.responseInfo.paidFunctionPackageDetail;\n this.paidFunctionPackageList =\n data.responseInfo.paidFunctionPackageDetail.map((f) => ({\n ...f,\n selected: false,\n }));\n if (this.paidFunctionPackageList.length > 0) {\n this.paidFunctionPackageList = this.paidFunctionPackageList.sort(\n (a: any, b: any) => {\n return (\n Number(a.websiteFunctionPackageSequence) -\n Number(b.websiteFunctionPackageSequence)\n );\n }\n );\n }\n this.starterPackList = data.responseInfo.freeFunctionPackageDetail;\n this.functionPackageName = data.responseInfo.essentialPackList;\n this.fnFunctionCategoryPackagePriceList();\n this.functionCategorydropdownList = this.allFunctionCategoryGroup;\n }\n },\n (error) => {\n this.toastr.error(error);\n }\n );\n }\n sanitizerHtml(element) {\n let safeText = this.sanitizer.bypassSecurityTrustHtml(element);\n return safeText;\n }\n \n async fnGetIpCliente() {\n const response = await fetch(\"https://api.ipapi.is/?key=02107353329c92f8\");\n const jsonData = await response.json();\n this.ipDetails = jsonData;\n if (this.ipDetails) {\n this.fnGetCountryCurrencyMapping(jsonData.location.country_code);\n }\n }\n\n countryList: ICountryCurrencyMappingResponse[] = [];\n\n fnGetCountryCurrencyMapping(countryCode) {\n this.countryCurrencyMappingService\n .GetCountryCurrencyMapping()\n .subscribe(\n (response: IApiresponse) => {\n if (response.responseInfo != null) {\n this.countryList = response.responseInfo;\n\n let countryDetails = this.countryList.find(\n (c) => c.countryCode == countryCode\n );\n\n if (countryDetails) {\n this.currencyCode = countryDetails.currencyCode;\n this.fnGetOrgPricingFunctionList();\n } else {\n let defaultCurrencyDetails = this.countryList.find(\n (c) => c.countryName == \"United States\"\n );\n if (defaultCurrencyDetails) {\n this.currencyCode = defaultCurrencyDetails.currencyCode;\n this.fnGetOrgPricingFunctionList();\n }\n }\n }\n }\n );\n }\n\n isVisible() {\n let visible = false;\n if (localStorage.getItem(\"loginToken\") && this.ipDetails) {\n if (this.currencyId && this.currencyCode) {\n visible = true;\n }\n }\n return visible;\n }\n isFunctionChecked(functionPackageId) {\n let selected = false;\n if (\n this.selectedFunctionPackageList &&\n this.selectedFunctionPackageList.length > 0\n ) {\n let isAvailable = this.selectedFunctionPackageList.find(\n (item) => item.functionPackageId == functionPackageId\n );\n if (isAvailable) {\n selected = true;\n }\n }\n return selected;\n }\n fnShowFuncDetailPopup(event: any, item: any) {\n let fCategory = this.allFunctionCategoryGroup.filter(\n (cat) => cat.functionCategoryId == item.functionCategoryId\n )[0];\n let functionAmout = this._decimalPipe.transform(\n item.functionAmount,\n \"1.2-2\"\n );\n let btnLabel =\n this.translate.instant(\"pricing_add_to_quote\") +\n \" - \" +\n this.currencySymbol +\n \"\" +\n functionAmout;\n if (this.isVisible()) {\n this.infoPopupVisible = true;\n this.infoModel = new InfoModelPopup(\n item.functionPackageId,\n fCategory?.functionCategoryName,\n item.functionPackageName,\n item.functionPackageDescripition,\n \"\",\n \"\",\n this.sanitizer.bypassSecurityTrustResourceUrl(item.videoUrl),\n \"\",\n btnLabel,\n true\n );\n }\n }\n fnFunctionCategoryPackagePriceList() {\n // Group BY function package by function category\n this.functionCategoryGroup = this.paidFunctionPackageList.reduce(function (\n arr,\n item\n ) {\n arr[item.functionCategoryId - 1] = arr[item.functionCategoryId - 1] || {\n functionCategoryId: item.functionCategoryId,\n functionCategoryName:\n FunctionCategoryNameEnum[\n FunctionCategoryEnum[item.functionCategoryId]\n ],\n functionSelected: false,\n functionPackage: [],\n };\n arr[item.functionCategoryId - 1].functionPackage.push(item);\n return arr;\n },\n []);\n this.functionCategoryGroup = this.functionCategoryGroup.filter(\n (x) => x.functionCategoryId\n );\n this.functionCategoryGroup.sort((a, b) =>\n a.functionCategoryName < b.functionCategoryName ? -1 : 1\n );\n this.functionCategoryGroup.forEach((x) => {\n x.functionPackage.sort((a, b) =>\n a.websiteFunctionPackageName < b.websiteFunctionPackageName ? -1 : 1\n );\n });\n this.allFunctionCategoryGroup = this.functionCategoryGroup;\n }\n fnCloseInfoPopup() {\n this.infoPopupVisible = false;\n }\n fnUpdateSummary(event: any, item: any) {\n \n if (event?.target?.checked || !item.selected) {\n item.selected = true;\n this.selectedFunctionPackageList.push(item);\n } else {\n this.selectedFunctionPackageList =\n this.selectedFunctionPackageList.filter(\n (e) => e?.functionPackageId != item.functionPackageId\n );\n }\n this.selectedFunctionPackageList = this.selectedFunctionPackageList.slice();\n this.selectedFunctionCategoryGroup = this.fnCategoryGroupPackageList(\n this.selectedFunctionPackageList\n );\n }\n fnChangeFunctionCategory(selectedFunctionCategory: any) {\n if (selectedFunctionCategory == 0) {\n this.functionCategoryGroup = this.allFunctionCategoryGroup;\n } else {\n this.selectedFunctionCategory = selectedFunctionCategory;\n this.functionCategoryGroup = this.allFunctionCategoryGroup.filter(\n (cat) => cat.functionCategoryId == selectedFunctionCategory\n );\n }\n }\n searchTextKeypressEvent(event) {\n this.fnFunctionCategoryPackagePriceList();\n let text = event.target.value?.toUpperCase();\n let func = this.allFunctionCategoryGroup.filter((cat) =>\n cat?.functionCategoryName.toUpperCase().includes(text)\n );\n if (func.length > 0) {\n this.functionCategoryGroup = func;\n } else {\n let matched = this.paidFunctionPackageList\n .filter((x) =>\n x.websiteFunctionPackageName.toUpperCase().includes(text)\n )\n .map((m) => m.functionCategoryId);\n if (matched) {\n this.functionCategoryGroup = this.allFunctionCategoryGroup.filter(\n (fc) => matched.includes(fc.functionCategoryId)\n );\n this.functionCategoryGroup.forEach((fc) => {\n fc.functionPackage = fc.functionPackage.filter(\n (p) => p.websiteFunctionPackageName.toUpperCase().indexOf(text) > -1\n );\n });\n }\n }\n $(\"#pricing-ext-res .functions .right-col\").attr(\n \"style\",\n \"bottom:55% !important\"\n );\n }\n fnGetTotalCost() {\n return this.fnGetSelectedFunctionCost();\n }\n fnGetSelectedFunctionCost() {\n let amount = 0;\n if (\n this.selectedFunctionPackageList &&\n this.selectedFunctionPackageList.length > 0\n ) {\n this.selectedFunctionPackageList.forEach((fn) => {\n let fnAmount = this._decimalPipe.transform(fn.functionAmount, \"1.2-2\");\n let decimalVal = +fnAmount;\n amount += decimalVal;\n });\n }\n return amount;\n }\n onInfoPanelBtnClick(result: InfoPanelOutput) {\n let item = this.paidFunctionPackageList.filter(\n (x) => x.functionPackageId == result?.panelKey\n )[0];\n if (\n this.selectedFunctionPackageList.some(\n (x) => x.functionPackageId == item.functionPackageId\n )\n ) {\n return;\n }\n this.selectedFunctionPackageList.push(item);\n this.infoPopupVisible = false;\n this.functionCategoryGroup\n .filter((x) => x.functionCategoryId == item.functionCategoryId)\n .forEach((fun) => {\n fun.functionPackage\n .filter((p) => p.functionPackageId == item.functionPackageId)\n .forEach((element) => {\n element.selected = true;\n });\n });\n this.selectedFunctionCategoryGroup = this.fnCategoryGroupPackageList(\n this.selectedFunctionPackageList\n );\n }\n fnRemoveFunPackage(functionCategory: any) {\n this.selectedFunctionPackageList = this.selectedFunctionPackageList.filter(\n (e) => e?.functionPackageId != functionCategory.functionPackageId\n );\n this.selectedFunctionCategoryGroup = functionCategory.functionCategoryGroup;\n this.functionCategoryGroup = functionCategory.functionCategoryGroup;\n }\n fnCategoryGroupPackageList(funPackage: any) {\n // Group BY function package by function category\n let functionCategoryGroup = funPackage.reduce(function (arr, item) {\n arr[item.functionCategoryId - 1] = arr[item.functionCategoryId - 1] || {\n functionCategoryId: item.functionCategoryId,\n functionCategoryName:\n FunctionCategoryNameEnum[\n FunctionCategoryEnum[item.functionCategoryId]\n ],\n functionPackage: [],\n };\n arr[item.functionCategoryId - 1].functionPackage.push(item);\n return arr;\n }, []);\n functionCategoryGroup = functionCategoryGroup.filter(\n (x) => x.functionCategoryId\n );\n functionCategoryGroup.sort((a, b) =>\n a.functionCategoryName < b.functionCategoryName ? -1 : 1\n );\n functionCategoryGroup.forEach((x) => {\n x.functionPackage.sort((a, b) =>\n a.websiteFunctionPackageName < b.websiteFunctionPackageName ? -1 : 1\n );\n });\n return functionCategoryGroup;\n }\n fnViewSummary() {\n this.fnFunctionCategoryPackagePriceList();\n this.pricingSummaryVisible = true;\n this.functionCategoryGroup.forEach((x) => {\n if (x.functionPackage.some((f) => f.selected)) {\n x.selected = true;\n }\n });\n }\n disableSummary() {\n let btnSummaryDisabled = false;\n this.allFunctionCategoryGroup.forEach((x) => {\n if (x.functionPackage.some((f) => f.selected)) {\n btnSummaryDisabled = false;\n return btnSummaryDisabled;\n }\n });\n return btnSummaryDisabled;\n }\n raisePricingQuote(quote: QuoteModel) {\n if (!quote.emailQuote) {\n this.discussPricingQuote(quote);\n } else {\n this.emailPricingQuote(quote);\n }\n }\n discussPricingQuote(quote: QuoteModel) {\n let request = new ApiRequest(\"DiscussPricingQuote\", 1, \"\");\n request.requestInfo = quote;\n this.pricingService.DiscussPricingQuote(request).subscribe((data) => {\n if (data) {\n}\n });\n }\n emailPricingQuote(quote: QuoteModel) {\n let functionPackageQuote = this.selectedFunctionPackageList.map(\n (x) =>\n new FunctionPackageQuote(\n x.functionPackageName,\n x.functionPackageId,\n x.functionAmount,\n this.currencySymbol + \"\" + x.functionAmount\n )\n );\n if(this.accessChargeFunction.length > 0)\n { \n let accessChargeFunction = this.accessChargeFunction[0]?.functionPackage[0]?.functionPackageId;\n if(!functionPackageQuote.some(x => x.functionCategoryId == accessChargeFunction))\n {\n let x = this.accessChargeFunction[0].functionPackage[0];\n x.functionAmount = this.accessAmount + this.essentialPackAmount;\n let accessFunction = new FunctionPackageQuote(\n this.essentialPackString,\n x.functionPackageId,\n x.functionAmount,\n this.currencySymbol + \"\" + x.functionAmount\n ); \n functionPackageQuote.push(accessFunction);\n }\n\n }\n let emailQuoteRequest = new PricingEmailQuoteRequest(\n quote.email,\n quote.business,\n quote.firstName,\n quote.lastName,\n quote.noOfEmployee,\n quote.hearAboutUs,\n quote.emailQuote,\n this.currencySymbol,\n this.currencyCode\n );\n emailQuoteRequest.functionPackages = functionPackageQuote;\n let request = new ApiRequest(\n \"EmailPricingQuote\",\n 1,\n \"\"\n );\n request.requestInfo = emailQuoteRequest;\n this.pricingService.EmailPricingQuote(request).subscribe((data) => {\n if (data) {\n}\n });\n }\n getPricingDescriptionText() {\n return this.sanitizerHtml(this.translate.instant(\"pricing_description\"));\n }\n\n\n @HostListener(\"window:scroll\", [\"$event\"]) getScrollHeight() {\n let pos1 = window.innerWidth;\n if (pos1 <= 767) {\n $(\"#pricing-ext-res .functions .right-col\").removeAttr(\"style\");\n return;\n }\n let pos =\n (document.documentElement.scrollTop || document.body.scrollTop) +\n document.documentElement.offsetHeight;\n\n if (pos > 600 && pos < 1100) {\n $(\"#pricing-ext-res .functions .right-col\").attr(\"style\", \"\");\n } \n \n else if (pos > 1100 && pos < 1600) \n {\n $(\"#pricing-ext-res .functions .right-col\").attr(\"style\", \"z-index:100\");\n } \n \n else if (pos > 1600 && pos < 1700) \n {\n $(\"#pricing-ext-res .functions .right-col\").attr(\"style\", \"z-index:100\");\n } \n \n \n \n else if (pos > 1700 && pos < 1800) {\n $(\"#pricing-ext-res .functions .right-col\").attr(\"style\", \"z-index:100\");\n } \n\n \n \n if (\n this.functionCategoryGroup.length == 0 ||\n this.functionCategoryGroup.length == 1\n ) {\n $(\"#pricing-ext-res .functions .right-col\").attr(\n \"style\",\n \"bottom:65% !important;\"\n );\n }\n }\n\n\n\n@HostListener('window:resize', ['$event'])\n onResize(event) {\n event.target.innerWidth;\n if (this.functionCategoryGroup.length == 1) {\n $('#pricing-ext-res .functions .right-col').attr('style', 'top:65%');\n }\n let pos1 = window.innerWidth;\n if(pos1 <= 767)\n {\n $('#pricing-ext-res .functions .right-col').removeAttr('style');\n return;\n }\n \n }\n\n resetSelectedFunction() {\n this.selectedFunctionPackageList = [];\n this.functionCategoryGroup.forEach((x) => {\n x.functionPackage.forEach((f) => {\n f.selected = false;\n });\n });\n } \n}","import { NgModule } from \"@angular/core\";\nimport { RouterModule, Routes } from \"@angular/router\";\nimport { LayoutComponent } from \"./layouts/layout.component\";\nimport { OnboardingComponent } from \"./user/onboarding/onboarding.component\";\nimport { OrgLoginComponent } from \"./user/org-login/org-login.component\";\nimport { MsalGuard } from \"@azure/msal-angular\";\nimport { PricingExternalListComponent } from \"./pricing/pricing-external/pricing-external-list/pricing-external-list.component\";\nimport { AuthGuardService } from \"./_services/common/authguard.service\";\nimport { ApplicationDownComponent } from \"./shared/application-down/application-down.component\";\n\nconst routes: Routes = [\n { path: \"login\", component: OnboardingComponent },\n { path: \"register\", component: OnboardingComponent},\n { path: \"orglogin\", component: OrgLoginComponent, canActivate: [MsalGuard] },\n { path: \"pricingcalculator\", component: PricingExternalListComponent },\n { path: \"application-down\", component: ApplicationDownComponent },\n { \n path: \"account\",\n loadChildren: () =>\n import(\"./account/account.module\").then((m) => m.AccountModule),\n },\n {\n path: \"\",\n component: LayoutComponent,\n loadChildren: () =>\n import(\"./pages/pages.module\").then((m) => m.PagesModule),\n canActivate: [AuthGuardService],\n },\n\n {\n path: \"verifyemail\",\n loadChildren: () =>\n import(\"../app/_modules/modules/verify-email.module\").then(\n (m) => m.VerifyEmailModule\n ),\n },\n {\n path: \"forgotpassword\",\n loadChildren: () =>\n import(\"../app/_modules/modules/forgot-password.module\").then(\n (m) => m.ForgotPasswordModule\n ),\n },\n {\n path: \"resetpassword\",\n loadChildren: () =>\n import(\"../app/_modules/modules/reset-password.module\").then(\n (m) => m.ResetPasswordModule\n ),\n }, \n { path: \"**\", redirectTo: \"\" },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { onSameUrlNavigation: \"reload\" })],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { Component, OnInit } from \"@angular/core\";\nimport { environment } from \"../../../environments/environment\";\nimport { Router } from \"@angular/router\";\nimport { AuthenticationService } from \"../../_services\";\n@Component({\n selector: \"application-down\",\n templateUrl: \"./application-down.component.html\",\n styleUrls: [\"./application-down.component.scss\"],\n})\nexport class ApplicationDownComponent implements OnInit {\n constructor(private router: Router, private authenticationService: AuthenticationService) {\n }\n\n private healthCheckInterval: any;\n ngOnInit() {\n this.healthCheckInterval = setInterval(() => {\n this.authenticationService.checkDomainEnabledForSSO('yopmail.com').subscribe(\n (userData) => {\n clearInterval(this.healthCheckInterval);\n this.router.navigate(['/settings']);\n },\n (error) => {console.error('Application is down', error);}\n );\n\n }, 10000); \n }\n}","
    \n\"Trulli\"\n
    \n","/**\n * @license Angular v16.1.3\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\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 * 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\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(normalizer, 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}\nconst documentElement = \n/* @__PURE__ */ (() => typeof document === 'undefined' ? null : document.documentElement)();\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host || null; // consider host to support shadow DOM\n if (parent === documentElement) {\n return null;\n }\n return parent;\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}\nfunction containsElement(elm1, elm2) {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n}\nfunction invokeQuery(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}\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 * @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 static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: NoopAnimationDriver }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n static { this.NOOP = ( /* @__PURE__ */new NoopAnimationDriver()); }\n}\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 setStyles(element, styles, formerStyles) {\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}\nfunction eraseStyles(element, styles) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\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\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 (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\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\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\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\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.easing = null;\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 * @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\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\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 allowedNonAnimatableProps = new Set([\n // 'easing' is a utility/synthetic prop we use to represent\n // easing functions, it represents a property of the animation\n // which is not animatable but different values can be used\n // in different steps\n 'easing'\n ]);\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({ keyframes }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n const entriesToCheck = Array.from(keyframe.entries()).filter(([prop]) => !allowedNonAnimatableProps.has(prop));\n for (const [prop, value] of entriesToCheck) {\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(prop, 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\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._normalizer, 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\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 get params() {\n return this.options.params;\n }\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 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 /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\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 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, 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 const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\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([...(post?.entries() ?? []), ...(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._normalizer, 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.parentPlayer = null;\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) {\n this._transitionEngine.removeNode(namespaceId, element, 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 [\n ...this._transitionEngine.players,\n ...this._timelineEngine.players,\n ];\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n afterFlushAnimationsDone(cb) {\n this._transitionEngine.afterFlushAnimationsDone(cb);\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 static { this.initialStylesByElement = ( /* @__PURE__ */new WeakMap()); }\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}\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 // @ts-expect-error overwriting a readonly property\n this.domPlayer = 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 * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationDriver as ɵNoopAnimationDriver, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, containsElement as ɵcontainsElement, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty };\n","/**\n * @license Angular v16.1.3\n * (c) 2010-2022 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { ViewEncapsulation, Injectable, Inject, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE, NgModule } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport { AnimationBuilder, sequence, AnimationFactory } from '@angular/animations';\nimport * as i1 from '@angular/animations/browser';\nimport { ɵAnimationEngine, ɵWebAnimationsStyleNormalizer, ɵAnimationStyleNormalizer, AnimationDriver, ɵWebAnimationsDriver, ɵNoopAnimationDriver } from '@angular/animations/browser';\nimport { DOCUMENT } from '@angular/common';\n\nclass BrowserAnimationBuilder extends AnimationBuilder {\n constructor(rootRenderer, doc) {\n super();\n this._nextAnimationId = 0;\n const typeData = { id: '0', encapsulation: ViewEncapsulation.None, styles: [], data: { animation: [] } };\n this._renderer = rootRenderer.createRenderer(doc.body, typeData);\n }\n build(animation) {\n const id = this._nextAnimationId.toString();\n this._nextAnimationId++;\n const entry = Array.isArray(animation) ? sequence(animation) : animation;\n issueAnimationCommand(this._renderer, null, id, 'register', [entry]);\n return new BrowserAnimationFactory(id, this._renderer);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: BrowserAnimationBuilder, deps: [{ token: i0.RendererFactory2 }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: BrowserAnimationBuilder }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: BrowserAnimationBuilder, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; } });\nclass BrowserAnimationFactory extends AnimationFactory {\n constructor(_id, _renderer) {\n super();\n this._id = _id;\n this._renderer = _renderer;\n }\n create(element, options) {\n return new RendererAnimationPlayer(this._id, element, options || {}, this._renderer);\n }\n}\nclass RendererAnimationPlayer {\n constructor(id, element, options, _renderer) {\n this.id = id;\n this.element = element;\n this._renderer = _renderer;\n this.parentPlayer = null;\n this._started = false;\n this.totalTime = 0;\n this._command('create', options);\n }\n _listen(eventName, callback) {\n return this._renderer.listen(this.element, `@@${this.id}:${eventName}`, callback);\n }\n _command(command, ...args) {\n return issueAnimationCommand(this._renderer, this.element, this.id, command, args);\n }\n onDone(fn) {\n this._listen('done', fn);\n }\n onStart(fn) {\n this._listen('start', fn);\n }\n onDestroy(fn) {\n this._listen('destroy', fn);\n }\n init() {\n this._command('init');\n }\n hasStarted() {\n return this._started;\n }\n play() {\n this._command('play');\n this._started = true;\n }\n pause() {\n this._command('pause');\n }\n restart() {\n this._command('restart');\n }\n finish() {\n this._command('finish');\n }\n destroy() {\n this._command('destroy');\n }\n reset() {\n this._command('reset');\n this._started = false;\n }\n setPosition(p) {\n this._command('setPosition', p);\n }\n getPosition() {\n return this._renderer.engine.players[+this.id]?.getPosition() ?? 0;\n }\n}\nfunction issueAnimationCommand(renderer, element, id, command, args) {\n return renderer.setProperty(element, `@@${id}:${command}`, args);\n}\n\nconst ANIMATION_PREFIX = '@';\nconst DISABLE_ANIMATIONS_FLAG = '@.disabled';\nclass AnimationRendererFactory {\n constructor(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n engine.onRemovalComplete = (element, delegate) => {\n // Note: if a component element has a leave animation, and a host leave animation,\n // the view engine will call `removeChild` for the parent\n // component renderer as well as for the child component renderer.\n // Therefore, we need to check if we already removed the element.\n const parentNode = delegate?.parentNode(element);\n if (parentNode) {\n delegate.removeChild(parentNode, element);\n }\n };\n }\n createRenderer(hostElement, type) {\n const EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n const delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type || !type.data || !type.data['animation']) {\n let renderer = this._rendererCache.get(delegate);\n if (!renderer) {\n // Ensure that the renderer is removed from the cache on destroy\n // since it may contain references to detached DOM nodes.\n const onRendererDestroy = () => this._rendererCache.delete(delegate);\n renderer =\n new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);\n // only cache this result when the base renderer is used\n this._rendererCache.set(delegate, renderer);\n }\n return renderer;\n }\n const componentId = type.id;\n const namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n const registerTrigger = (trigger) => {\n if (Array.isArray(trigger)) {\n trigger.forEach(registerTrigger);\n }\n else {\n this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n }\n };\n const animationTriggers = type.data['animation'];\n animationTriggers.forEach(registerTrigger);\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n }\n begin() {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n }\n _scheduleCountTask() {\n queueMicrotask(() => {\n this._microtaskId++;\n });\n }\n /** @internal */\n scheduleListenerCallback(count, fn, data) {\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(() => fn(data));\n return;\n }\n if (this._animationCallbacksBuffer.length == 0) {\n queueMicrotask(() => {\n this._zone.run(() => {\n this._animationCallbacksBuffer.forEach(tuple => {\n const [fn, data] = tuple;\n fn(data);\n });\n this._animationCallbacksBuffer = [];\n });\n });\n }\n this._animationCallbacksBuffer.push([fn, data]);\n }\n end() {\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(() => {\n this._scheduleCountTask();\n this.engine.flush(this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n }\n whenRenderingDone() {\n return this.engine.whenRenderingDone();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: AnimationRendererFactory, deps: [{ token: i0.RendererFactory2 }, { token: i1.ɵAnimationEngine }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: AnimationRendererFactory }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: AnimationRendererFactory, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.RendererFactory2 }, { type: i1.ɵAnimationEngine }, { type: i0.NgZone }]; } });\nclass BaseAnimationRenderer {\n constructor(namespaceId, delegate, engine, _onDestroy) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this._onDestroy = _onDestroy;\n }\n get data() {\n return this.delegate.data;\n }\n destroyNode(node) {\n this.delegate.destroyNode?.(node);\n }\n destroy() {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.engine.afterFlushAnimationsDone(() => {\n // Call the renderer destroy method after the animations has finished as otherwise\n // styles will be removed too early which will cause an unstyled animation.\n queueMicrotask(() => {\n this.delegate.destroy();\n });\n });\n this._onDestroy?.();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n }\n insertBefore(parent, newChild, refChild, isMove = true) {\n this.delegate.insertBefore(parent, newChild, refChild);\n // If `isMove` true than we should animate this insert.\n this.engine.onInsert(this.namespaceId, newChild, parent, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n }\n disableAnimations(element, value) {\n this.engine.disableAnimations(element, value);\n }\n}\nclass AnimationRenderer extends BaseAnimationRenderer {\n constructor(factory, namespaceId, delegate, engine, onDestroy) {\n super(namespaceId, delegate, engine, onDestroy);\n this.factory = factory;\n this.namespaceId = namespaceId;\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n }\n else {\n this.engine.process(this.namespaceId, el, name.slice(1), value);\n }\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n listen(target, eventName, callback) {\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n const element = resolveElementFromTarget(target);\n let name = eventName.slice(1);\n let phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name.charAt(0) != ANIMATION_PREFIX) {\n [name, phase] = parseTriggerCallbackName(name);\n }\n return this.engine.listen(this.namespaceId, element, name, phase, event => {\n const countId = event['_data'] || -1;\n this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n }\n}\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\nfunction parseTriggerCallbackName(triggerName) {\n const dotIndex = triggerName.indexOf('.');\n const trigger = triggerName.substring(0, dotIndex);\n const phase = triggerName.slice(dotIndex + 1);\n return [trigger, phase];\n}\n\nclass InjectableAnimationEngine extends ɵAnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer, appRef) {\n super(doc.body, driver, normalizer);\n }\n ngOnDestroy() {\n this.flush();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: InjectableAnimationEngine, deps: [{ token: DOCUMENT }, { token: i1.AnimationDriver }, { token: i1.ɵAnimationStyleNormalizer }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: InjectableAnimationEngine }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: InjectableAnimationEngine, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1.AnimationDriver }, { type: i1.ɵAnimationStyleNormalizer }, { type: i0.ApplicationRef }]; } });\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new AnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [\n { provide: AnimationBuilder, useClass: BrowserAnimationBuilder },\n { provide: ɵAnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer },\n { provide: ɵAnimationEngine, useClass: InjectableAnimationEngine }, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone]\n }\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useFactory: () => new ɵWebAnimationsDriver() },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'BrowserAnimations' }, ...SHARED_ANIMATION_PROVIDERS\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useClass: ɵNoopAnimationDriver },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'NoopAnimations' }, ...SHARED_ANIMATION_PROVIDERS\n];\n\n/**\n * Exports `BrowserModule` with additional [dependency-injection providers](guide/glossary#provider)\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nclass BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see {@link BrowserAnimationsModuleConfig}\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS :\n BROWSER_ANIMATIONS_PROVIDERS\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: BrowserAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.1.3\", ngImport: i0, type: BrowserAnimationsModule, exports: [BrowserModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: BrowserAnimationsModule, providers: BROWSER_ANIMATIONS_PROVIDERS, imports: [BrowserModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: BrowserAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nclass NoopAnimationsModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: NoopAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.1.3\", ngImport: i0, type: NoopAnimationsModule, exports: [BrowserModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: NoopAnimationsModule, providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS, imports: [BrowserModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.1.3\", ngImport: i0, type: NoopAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of [dependency-injection providers](guide/glossary#provider)\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, BrowserAnimationBuilder as ɵBrowserAnimationBuilder, BrowserAnimationFactory as ɵBrowserAnimationFactory, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\n\nimport { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap';\nimport { SimplebarAngularModule } from 'simplebar-angular';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { LayoutComponent } from './layout.component';\nimport { VerticalComponent } from './vertical/vertical.component';\nimport { HorizontalComponent } from './horizontal/horizontal.component';\nimport { FooterComponent } from './footer/footer.component';\nimport { TopbarComponent } from './topbar/topbar.component';\nimport { RightsidebarComponent } from './rightsidebar/rightsidebar.component';\nimport { SidebarComponent } from './sidebar/sidebar.component';\nimport { HorizontaltopbarComponent } from './horizontaltopbar/horizontaltopbar.component';\nimport { NavMenuComponent } from '../nav-menu/nav/nav-menu.component';\nimport { SharedModule } from '../shared.module';\nimport { ImportCommonModuleModule } from '../_modules/modules/import-common-module/import-common-module.module';\n\n@NgModule({\n declarations: [\n LayoutComponent,\n VerticalComponent,\n HorizontalComponent,\n FooterComponent,\n TopbarComponent,\n RightsidebarComponent,\n SidebarComponent,\n HorizontaltopbarComponent,\n NavMenuComponent\n ],\n imports: [\n CommonModule,\n RouterModule,\n NgbDropdownModule,\n SimplebarAngularModule,\n TranslateModule,\n SharedModule,\n ImportCommonModuleModule\n ],\n providers: []\n})\nexport class LayoutsModule { }\n","import { TranslateLoader } from \"@ngx-translate/core\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { environment } from \"src/environments/environment\";\nimport { Observable, of } from \"rxjs\";\n\nimport { map } from 'rxjs/operators';\n\nexport class TranslationLoader implements TranslateLoader {\n constructor(private http: HttpClient) {}\n\n getTranslation(lang: string): Observable {\n let TokenHeader = {\n \"Content-Type\": \"application/json\",\n DefaultParams: \"\",\n Authorization: `Bearer ` + localStorage.getItem(\"loginToken\"),\n 'Ocp-Apim-Subscription-Key': environment.apimSubscriptionKey,\n 'Ocp-Apim-Trace': environment.apimTraceEnabled,\n };\n\n ////Commented Intentionaly\n // return this.http.get(`${environment.catalogApiUrl}GetTranslatorKeys/` + lang, {\n // headers: TokenHeader\n // });\n\n if (sessionStorage.getItem(\"currenttranslatorlanguage\") != lang) {\n sessionStorage.removeItem(\"translatorKeys\");\n sessionStorage.removeItem(\"OrganisationSettingListData\");\n }\n\n \n\n if (sessionStorage.getItem(\"translatorKeys\")) {\n return of(JSON.parse(sessionStorage.getItem(\"translatorKeys\")));\n } else {\n return this.http\n .get(`${environment.catalogApiUrl}GetTranslatorKeys/` + lang, {\n headers: TokenHeader,\n })\n .pipe(map((res: any) => {\n sessionStorage.setItem(\"currenttranslatorlanguage\", lang);\n sessionStorage.setItem(\"translatorKeys\", JSON.stringify(res));\n return res;\n }));\n }\n\n }\n}\n","import * as i0 from '@angular/core';\nimport { InjectionToken, PLATFORM_ID, Injectable, Inject, Optional, EventEmitter, Component, Input, HostBinding, Output, NgModule, forwardRef, Directive, HostListener } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { of, BehaviorSubject, Subject } from 'rxjs';\nimport { NG_VALUE_ACCESSOR, FormsModule } from '@angular/forms';\n\nconst RECAPTCHA_LANGUAGE = new InjectionToken(\"recaptcha-language\");\nconst RECAPTCHA_BASE_URL = new InjectionToken(\"recaptcha-base-url\");\nconst RECAPTCHA_NONCE = new InjectionToken(\"recaptcha-nonce-tag\");\nconst RECAPTCHA_SETTINGS = new InjectionToken(\"recaptcha-settings\");\nconst RECAPTCHA_V3_SITE_KEY = new InjectionToken(\"recaptcha-v3-site-key\");\n\nfunction loadScript(renderMode, onLoaded, urlParams, url, nonce) {\n window.ng2recaptchaloaded = () => {\n onLoaded(grecaptcha);\n };\n const script = document.createElement(\"script\");\n script.innerHTML = \"\";\n const baseUrl = url || \"https://www.google.com/recaptcha/api.js\";\n script.src = `${baseUrl}?render=${renderMode}&onload=ng2recaptchaloaded${urlParams}`;\n if (nonce) {\n script.setAttribute('nonce', nonce);\n }\n script.async = true;\n script.defer = true;\n document.head.appendChild(script);\n}\nconst loader = { loadScript };\n\nclass RecaptchaLoaderService {\n /**\n * @internal\n * @nocollapse\n */\n static { this.ready = null; }\n constructor(\n // eslint-disable-next-line @typescript-eslint/ban-types\n platformId, language, baseUrl, nonce, v3SiteKey) {\n this.platformId = platformId;\n this.language = language;\n this.baseUrl = baseUrl;\n this.nonce = nonce;\n this.v3SiteKey = v3SiteKey;\n this.init();\n this.ready = isPlatformBrowser(this.platformId) ? RecaptchaLoaderService.ready.asObservable() : of();\n }\n /** @internal */\n init() {\n if (RecaptchaLoaderService.ready) {\n return;\n }\n if (isPlatformBrowser(this.platformId)) {\n const subject = new BehaviorSubject(null);\n RecaptchaLoaderService.ready = subject;\n const langParam = this.language ? \"&hl=\" + this.language : \"\";\n const renderMode = this.v3SiteKey || \"explicit\";\n loader.loadScript(renderMode, (grecaptcha) => subject.next(grecaptcha), langParam, this.baseUrl, this.nonce);\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaLoaderService, deps: [{ token: PLATFORM_ID }, { token: RECAPTCHA_LANGUAGE, optional: true }, { token: RECAPTCHA_BASE_URL, optional: true }, { token: RECAPTCHA_NONCE, optional: true }, { token: RECAPTCHA_V3_SITE_KEY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaLoaderService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaLoaderService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_LANGUAGE]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_BASE_URL]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_NONCE]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_V3_SITE_KEY]\n }] }]; } });\n\nlet nextId = 0;\nclass RecaptchaComponent {\n constructor(elementRef, loader, zone, settings) {\n this.elementRef = elementRef;\n this.loader = loader;\n this.zone = zone;\n this.id = `ngrecaptcha-${nextId++}`;\n this.errorMode = \"default\";\n this.resolved = new EventEmitter();\n /**\n * @deprecated `(error) output will be removed in the next major version. Use (errored) instead\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n this.error = new EventEmitter();\n this.errored = new EventEmitter();\n if (settings) {\n this.siteKey = settings.siteKey;\n this.theme = settings.theme;\n this.type = settings.type;\n this.size = settings.size;\n this.badge = settings.badge;\n }\n }\n ngAfterViewInit() {\n this.subscription = this.loader.ready.subscribe((grecaptcha) => {\n if (grecaptcha != null && grecaptcha.render instanceof Function) {\n this.grecaptcha = grecaptcha;\n this.renderRecaptcha();\n }\n });\n }\n ngOnDestroy() {\n // reset the captcha to ensure it does not leave anything behind\n // after the component is no longer needed\n this.grecaptchaReset();\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n /**\n * Executes the invisible recaptcha.\n * Does nothing if component's size is not set to \"invisible\".\n */\n execute() {\n if (this.size !== \"invisible\") {\n return;\n }\n if (this.widget != null) {\n void this.grecaptcha.execute(this.widget);\n }\n else {\n // delay execution of recaptcha until it actually renders\n this.executeRequested = true;\n }\n }\n reset() {\n if (this.widget != null) {\n if (this.grecaptcha.getResponse(this.widget)) {\n // Only emit an event in case if something would actually change.\n // That way we do not trigger \"touching\" of the control if someone does a \"reset\"\n // on a non-resolved captcha.\n this.resolved.emit(null);\n }\n this.grecaptchaReset();\n }\n }\n /**\n * ⚠️ Warning! Use this property at your own risk!\n *\n * While this member is `public`, it is not a part of the component's public API.\n * The semantic versioning guarantees _will not be honored_! Thus, you might find that this property behavior changes in incompatible ways in minor or even patch releases.\n * You are **strongly advised** against using this property.\n * Instead, use more idiomatic ways to get reCAPTCHA value, such as `resolved` EventEmitter, or form-bound methods (ngModel, formControl, and the likes).å\n */\n get __unsafe_widgetValue() {\n return this.widget != null ? this.grecaptcha.getResponse(this.widget) : null;\n }\n /** @internal */\n expired() {\n this.resolved.emit(null);\n }\n /** @internal */\n onError(args) {\n this.error.emit(args);\n this.errored.emit(args);\n }\n /** @internal */\n captchaResponseCallback(response) {\n this.resolved.emit(response);\n }\n /** @internal */\n grecaptchaReset() {\n if (this.widget != null) {\n this.zone.runOutsideAngular(() => this.grecaptcha.reset(this.widget));\n }\n }\n /** @internal */\n renderRecaptcha() {\n // This `any` can be removed after @types/grecaptcha get updated\n const renderOptions = {\n badge: this.badge,\n callback: (response) => {\n this.zone.run(() => this.captchaResponseCallback(response));\n },\n \"expired-callback\": () => {\n this.zone.run(() => this.expired());\n },\n sitekey: this.siteKey,\n size: this.size,\n tabindex: this.tabIndex,\n theme: this.theme,\n type: this.type,\n };\n if (this.errorMode === \"handled\") {\n renderOptions[\"error-callback\"] = (...args) => {\n this.zone.run(() => this.onError(args));\n };\n }\n this.widget = this.grecaptcha.render(this.elementRef.nativeElement, renderOptions);\n if (this.executeRequested === true) {\n this.executeRequested = false;\n this.execute();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaComponent, deps: [{ token: i0.ElementRef }, { token: RecaptchaLoaderService }, { token: i0.NgZone }, { token: RECAPTCHA_SETTINGS, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"16.0.1\", type: RecaptchaComponent, selector: \"re-captcha\", inputs: { id: \"id\", siteKey: \"siteKey\", theme: \"theme\", type: \"type\", size: \"size\", tabIndex: \"tabIndex\", badge: \"badge\", errorMode: \"errorMode\" }, outputs: { resolved: \"resolved\", error: \"error\", errored: \"errored\" }, host: { properties: { \"attr.id\": \"this.id\" } }, exportAs: [\"reCaptcha\"], ngImport: i0, template: ``, isInline: true }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaComponent, decorators: [{\n type: Component,\n args: [{\n exportAs: \"reCaptcha\",\n selector: \"re-captcha\",\n template: ``,\n }]\n }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: RecaptchaLoaderService }, { type: i0.NgZone }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_SETTINGS]\n }] }]; }, propDecorators: { id: [{\n type: Input\n }, {\n type: HostBinding,\n args: [\"attr.id\"]\n }], siteKey: [{\n type: Input\n }], theme: [{\n type: Input\n }], type: [{\n type: Input\n }], size: [{\n type: Input\n }], tabIndex: [{\n type: Input\n }], badge: [{\n type: Input\n }], errorMode: [{\n type: Input\n }], resolved: [{\n type: Output\n }], error: [{\n type: Output\n }], errored: [{\n type: Output\n }] } });\n\nclass RecaptchaCommonModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaCommonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaCommonModule, declarations: [RecaptchaComponent], exports: [RecaptchaComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaCommonModule }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaCommonModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [RecaptchaComponent],\n exports: [RecaptchaComponent],\n }]\n }] });\n\nclass RecaptchaModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaModule, imports: [RecaptchaCommonModule], exports: [RecaptchaComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaModule, providers: [RecaptchaLoaderService], imports: [RecaptchaCommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [RecaptchaComponent],\n imports: [RecaptchaCommonModule],\n providers: [RecaptchaLoaderService],\n }]\n }] });\n\n/**\n * The main service for working with reCAPTCHA v3 APIs.\n *\n * Use the `execute` method for executing a single action, and\n * `onExecute` observable for listening to all actions at once.\n */\nclass ReCaptchaV3Service {\n constructor(zone, siteKey, \n // eslint-disable-next-line @typescript-eslint/ban-types\n platformId, baseUrl, nonce, language) {\n /** @internal */\n this.onLoadComplete = (grecaptcha) => {\n this.grecaptcha = grecaptcha;\n if (this.actionBacklog && this.actionBacklog.length > 0) {\n this.actionBacklog.forEach(([action, subject]) => this.executeActionWithSubject(action, subject));\n this.actionBacklog = undefined;\n }\n };\n this.zone = zone;\n this.isBrowser = isPlatformBrowser(platformId);\n this.siteKey = siteKey;\n this.nonce = nonce;\n this.language = language;\n this.baseUrl = baseUrl;\n this.init();\n }\n get onExecute() {\n if (!this.onExecuteSubject) {\n this.onExecuteSubject = new Subject();\n this.onExecuteObservable = this.onExecuteSubject.asObservable();\n }\n return this.onExecuteObservable;\n }\n get onExecuteError() {\n if (!this.onExecuteErrorSubject) {\n this.onExecuteErrorSubject = new Subject();\n this.onExecuteErrorObservable = this.onExecuteErrorSubject.asObservable();\n }\n return this.onExecuteErrorObservable;\n }\n /**\n * Executes the provided `action` with reCAPTCHA v3 API.\n * Use the emitted token value for verification purposes on the backend.\n *\n * For more information about reCAPTCHA v3 actions and tokens refer to the official documentation at\n * https://developers.google.com/recaptcha/docs/v3.\n *\n * @param {string} action the action to execute\n * @returns {Observable} an `Observable` that will emit the reCAPTCHA v3 string `token` value whenever ready.\n * The returned `Observable` completes immediately after emitting a value.\n */\n execute(action) {\n const subject = new Subject();\n if (this.isBrowser) {\n if (!this.grecaptcha) {\n if (!this.actionBacklog) {\n this.actionBacklog = [];\n }\n this.actionBacklog.push([action, subject]);\n }\n else {\n this.executeActionWithSubject(action, subject);\n }\n }\n return subject.asObservable();\n }\n /** @internal */\n executeActionWithSubject(action, subject) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const onError = (error) => {\n this.zone.run(() => {\n subject.error(error);\n if (this.onExecuteErrorSubject) {\n // We don't know any better at this point, unfortunately, so have to resort to `any`\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n this.onExecuteErrorSubject.next({ action, error });\n }\n });\n };\n this.zone.runOutsideAngular(() => {\n try {\n this.grecaptcha.execute(this.siteKey, { action }).then((token) => {\n this.zone.run(() => {\n subject.next(token);\n subject.complete();\n if (this.onExecuteSubject) {\n this.onExecuteSubject.next({ action, token });\n }\n });\n }, onError);\n }\n catch (e) {\n onError(e);\n }\n });\n }\n /** @internal */\n init() {\n if (this.isBrowser) {\n if (\"grecaptcha\" in window) {\n this.grecaptcha = grecaptcha;\n }\n else {\n const langParam = this.language ? \"&hl=\" + this.language : \"\";\n loader.loadScript(this.siteKey, this.onLoadComplete, langParam, this.baseUrl, this.nonce);\n }\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: ReCaptchaV3Service, deps: [{ token: i0.NgZone }, { token: RECAPTCHA_V3_SITE_KEY }, { token: PLATFORM_ID }, { token: RECAPTCHA_BASE_URL, optional: true }, { token: RECAPTCHA_NONCE, optional: true }, { token: RECAPTCHA_LANGUAGE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: ReCaptchaV3Service }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: ReCaptchaV3Service, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [RECAPTCHA_V3_SITE_KEY]\n }] }, { type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_BASE_URL]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_NONCE]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [RECAPTCHA_LANGUAGE]\n }] }]; } });\n\nclass RecaptchaV3Module {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaV3Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaV3Module }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaV3Module, providers: [ReCaptchaV3Service] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaV3Module, decorators: [{\n type: NgModule,\n args: [{\n providers: [ReCaptchaV3Service],\n }]\n }] });\n\nclass RecaptchaValueAccessorDirective {\n constructor(host) {\n this.host = host;\n this.requiresControllerReset = false;\n }\n writeValue(value) {\n if (!value) {\n this.host.reset();\n }\n else {\n // In this case, it is most likely that a form controller has requested to write a specific value into the component.\n // This isn't really a supported case - reCAPTCHA values are single-use, and, in a sense, readonly.\n // What this means is that the form controller has recaptcha control state of X, while reCAPTCHA itself can't \"restore\"\n // to that state. In order to make form controller aware of this discrepancy, and to fix the said misalignment,\n // we'll be telling the controller to \"reset\" the value back to null.\n if (this.host.__unsafe_widgetValue !== value && Boolean(this.host.__unsafe_widgetValue) === false) {\n this.requiresControllerReset = true;\n }\n }\n }\n registerOnChange(fn) {\n this.onChange = fn;\n if (this.requiresControllerReset) {\n this.requiresControllerReset = false;\n this.onChange(null);\n }\n }\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n onResolve($event) {\n if (this.onChange) {\n this.onChange($event);\n }\n if (this.onTouched) {\n this.onTouched();\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaValueAccessorDirective, deps: [{ token: RecaptchaComponent }], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"16.0.1\", type: RecaptchaValueAccessorDirective, selector: \"re-captcha[formControlName],re-captcha[formControl],re-captcha[ngModel]\", host: { listeners: { \"resolved\": \"onResolve($event)\" } }, providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RecaptchaValueAccessorDirective),\n },\n ], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaValueAccessorDirective, decorators: [{\n type: Directive,\n args: [{\n providers: [\n {\n multi: true,\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RecaptchaValueAccessorDirective),\n },\n ],\n selector: \"re-captcha[formControlName],re-captcha[formControl],re-captcha[ngModel]\",\n }]\n }], ctorParameters: function () { return [{ type: RecaptchaComponent }]; }, propDecorators: { onResolve: [{\n type: HostListener,\n args: [\"resolved\", [\"$event\"]]\n }] } });\n\nclass RecaptchaFormsModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaFormsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaFormsModule, declarations: [RecaptchaValueAccessorDirective], imports: [FormsModule, RecaptchaCommonModule], exports: [RecaptchaValueAccessorDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaFormsModule, imports: [FormsModule, RecaptchaCommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"16.0.1\", ngImport: i0, type: RecaptchaFormsModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [RecaptchaValueAccessorDirective],\n exports: [RecaptchaValueAccessorDirective],\n imports: [FormsModule, RecaptchaCommonModule],\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { RECAPTCHA_BASE_URL, RECAPTCHA_LANGUAGE, RECAPTCHA_NONCE, RECAPTCHA_SETTINGS, RECAPTCHA_V3_SITE_KEY, ReCaptchaV3Service, RecaptchaComponent, RecaptchaFormsModule, RecaptchaLoaderService, RecaptchaModule, RecaptchaV3Module, RecaptchaValueAccessorDirective };\n","import { Injectable } from '@angular/core';\n\nimport { BuildDetailsService } from './build-details.service';\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\nimport { BuildDetails } from './build-details';\n\n@Injectable({ providedIn: 'root' })\nexport class BuildDetailsHttpService {\n\n constructor(private http: HttpClient, private buildDetailsService: BuildDetailsService) {\n }\n\n fetchBuildDetails(): Promise {\n\n const httpOptions = {\n headers: new HttpHeaders({\n 'Cache-Control': 'no-cache'\n })\n };\n\n return new Promise(\n (resolve) => {\n this.http.get('build-details.json', httpOptions)\n .toPromise()\n .then(response => {\n this.buildDetailsService.buildDetails = response;\n resolve(this.buildDetailsService.buildDetails);\n });\n }\n );\n }\n}","/*! @azure/msal-browser v3.5.0 2023-11-07 */\n'use strict';\nimport { Logger } from '@azure/msal-common';\nimport { buildConfiguration } from '../config/Configuration.mjs';\nimport { name, version } from '../packageMetadata.mjs';\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * Base class for operating context\n * Operating contexts are contexts in which MSAL.js is being run\n * More than one operating context may be available at a time\n * It's important from a logging and telemetry point of view for us to be able to identify the operating context.\n * For example: Some operating contexts will pre-cache tokens impacting performance telemetry\n */\nclass BaseOperatingContext {\n constructor(config) {\n /*\n * If loaded in an environment where window is not available,\n * set internal flag to false so that further requests fail.\n * This is to support server-side rendering environments.\n */\n this.browserEnvironment = typeof window !== \"undefined\";\n this.config = buildConfiguration(config, this.browserEnvironment);\n this.logger = new Logger(this.config.system.loggerOptions, name, version);\n this.available = false;\n }\n /**\n * Return the MSAL config\n * @returns BrowserConfiguration\n */\n getConfig() {\n return this.config;\n }\n /**\n * Returns the MSAL Logger\n * @returns Logger\n */\n getLogger() {\n return this.logger;\n }\n isAvailable() {\n return this.available;\n }\n isBrowserEnvironment() {\n return this.browserEnvironment;\n }\n}\n\nexport { BaseOperatingContext };\n","/*! @azure/msal-browser v3.5.0 2023-11-07 */\n'use strict';\nimport { BaseOperatingContext } from './BaseOperatingContext.mjs';\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nclass StandardOperatingContext extends BaseOperatingContext {\n /**\n * Return the module name. Intended for use with import() to enable dynamic import\n * of the implementation associated with this operating context\n * @returns\n */\n getModuleName() {\n return StandardOperatingContext.MODULE_NAME;\n }\n /**\n * Returns the unique identifier for this operating context\n * @returns string\n */\n getId() {\n return StandardOperatingContext.ID;\n }\n /**\n * Checks whether the operating context is available.\n * Confirms that the code is running a browser rather. This is required.\n * @returns Promise indicating whether this operating context is currently available.\n */\n async initialize() {\n this.available = typeof window !== \"undefined\";\n return this.available;\n /*\n * NOTE: The standard context is available as long as there is a window. If/when we split out WAM from Browser\n * We can move the current contents of the initialize method to here and verify that the WAM extension is available\n */\n }\n}\n/*\n * TODO: Once we have determine the bundling code return here to specify the name of the bundle\n * containing the implementation for this operating context\n */\nStandardOperatingContext.MODULE_NAME = \"\";\n/**\n * Unique identifier for the operating context\n */\nStandardOperatingContext.ID = \"StandardOperatingContext\";\n\nexport { StandardOperatingContext };\n","/*! @azure/msal-browser v3.5.0 2023-11-07 */\n'use strict';\nimport { TeamsAppOperatingContext } from '../operatingcontext/TeamsAppOperatingContext.mjs';\nimport { StandardOperatingContext } from '../operatingcontext/StandardOperatingContext.mjs';\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\nasync function createV3Controller(config) {\n const standard = new StandardOperatingContext(config);\n await standard.initialize();\n const controller = await import('./StandardController.mjs');\n return await controller.StandardController.createController(standard);\n}\nasync function createController(config) {\n const standard = new StandardOperatingContext(config);\n const teamsApp = new TeamsAppOperatingContext(config);\n const operatingContexts = [standard.initialize(), teamsApp.initialize()];\n await Promise.all(operatingContexts);\n if (teamsApp.isAvailable() &&\n teamsApp.getConfig().auth.supportsNestedAppAuth) {\n const controller = await import('./NestedAppAuthController.mjs');\n return await controller.NestedAppAuthController.createController(teamsApp);\n }\n else if (standard.isAvailable()) {\n const controller = await import('./StandardController.mjs');\n return await controller.StandardController.createController(standard);\n }\n else {\n // Since neither of the actual operating contexts are available keep the UnknownOperatingContextController\n return null;\n }\n}\n\nexport { createController, createV3Controller };\n","/*! @azure/msal-browser v3.5.0 2023-11-07 */\n'use strict';\nimport { createV3Controller } from '../controllers/ControllerFactory.mjs';\nimport { StandardController } from '../controllers/StandardController.mjs';\nimport { StandardOperatingContext } from '../operatingcontext/StandardOperatingContext.mjs';\n\n/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n/**\n * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications\n * to obtain JWT tokens as described in the OAuth 2.0 Authorization Code Flow with PKCE specification.\n */\nclass PublicClientApplication {\n static async createPublicClientApplication(configuration) {\n const controller = await createV3Controller(configuration);\n const pca = new PublicClientApplication(configuration, controller);\n return pca;\n }\n /**\n * @constructor\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\n *\n * Important attributes in the Configuration object for auth are:\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\n * - authority: the authority URL for your application.\n * - redirect_uri: the uri of your application registered in the portal.\n *\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\n *\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\n * Full B2C functionality will be available in this library in future versions.\n *\n * @param configuration Object for the MSAL PublicClientApplication instance\n * @param IController Optional parameter to explictly set the controller. (Will be removed when we remove public constructor)\n */\n constructor(configuration, controller) {\n if (controller) {\n this.controller = controller;\n }\n else {\n const standardOperatingContext = new StandardOperatingContext(configuration);\n this.controller = new StandardController(standardOperatingContext);\n }\n }\n /**\n * Initializer function to perform async startup tasks such as connecting to WAM extension\n */\n async initialize() {\n return this.controller.initialize();\n }\n /**\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\n *\n * @param request\n *\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n async acquireTokenPopup(request) {\n return this.controller.acquireTokenPopup(request);\n }\n /**\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint. This function redirects\n * the page, so any code that follows this function will not execute.\n *\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\n *\n * @param request\n */\n acquireTokenRedirect(request) {\n return this.controller.acquireTokenRedirect(request);\n }\n /**\n * Silently acquire an access token for a given set of scopes. Returns currently processing promise if parallel requests are made.\n *\n * @param {@link (SilentRequest:type)}\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthenticationResult} object\n */\n acquireTokenSilent(silentRequest) {\n return this.controller.acquireTokenSilent(silentRequest);\n }\n /**\n * This function redeems an authorization code (passed as code) from the eSTS token endpoint.\n * This authorization code should be acquired server-side using a confidential client to acquire a spa_code.\n * This API is not indended for normal authorization code acquisition and redemption.\n *\n * Redemption of this authorization code will not require PKCE, as it was acquired by a confidential client.\n *\n * @param request {@link AuthorizationCodeRequest}\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n acquireTokenByCode(request) {\n return this.controller.acquireTokenByCode(request);\n }\n /**\n * Adds event callbacks to array\n * @param callback\n */\n addEventCallback(callback) {\n return this.controller.addEventCallback(callback);\n }\n /**\n * Removes callback with provided id from callback array\n * @param callbackId\n */\n removeEventCallback(callbackId) {\n return this.controller.removeEventCallback(callbackId);\n }\n /**\n * Registers a callback to receive performance events.\n *\n * @param {PerformanceCallbackFunction} callback\n * @returns {string}\n */\n addPerformanceCallback(callback) {\n return this.controller.addPerformanceCallback(callback);\n }\n /**\n * Removes a callback registered with addPerformanceCallback.\n *\n * @param {string} callbackId\n * @returns {boolean}\n */\n removePerformanceCallback(callbackId) {\n return this.controller.removePerformanceCallback(callbackId);\n }\n /**\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\n */\n enableAccountStorageEvents() {\n this.controller.enableAccountStorageEvents();\n }\n /**\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\n */\n disableAccountStorageEvents() {\n this.controller.disableAccountStorageEvents();\n }\n /**\n * Returns the first account found in the cache that matches the account filter passed in.\n * @param accountFilter\n * @returns The first account found in the cache matching the provided filter or null if no account could be found.\n */\n getAccount(accountFilter) {\n return this.controller.getAccount(accountFilter);\n }\n /**\n * Returns the signed in account matching homeAccountId.\n * (the account object is created at the time of successful login)\n * or null when no matching account is found\n * @param homeAccountId\n * @returns The account object stored in MSAL\n * @deprecated - Use getAccount instead\n */\n getAccountByHomeId(homeAccountId) {\n return this.controller.getAccountByHomeId(homeAccountId);\n }\n /**\n * Returns the signed in account matching localAccountId.\n * (the account object is created at the time of successful login)\n * or null when no matching account is found\n * @param localAccountId\n * @returns The account object stored in MSAL\n * @deprecated - Use getAccount instead\n */\n getAccountByLocalId(localId) {\n return this.controller.getAccountByLocalId(localId);\n }\n /**\n * Returns the signed in account matching username.\n * (the account object is created at the time of successful login)\n * or null when no matching account is found.\n * This API is provided for convenience but getAccountById should be used for best reliability\n * @param userName\n * @returns The account object stored in MSAL\n * @deprecated - Use getAccount instead\n */\n getAccountByUsername(userName) {\n return this.controller.getAccountByUsername(userName);\n }\n /**\n * Returns all the accounts in the cache that match the optional filter. If no filter is provided, all accounts are returned.\n * @param accountFilter - (Optional) filter to narrow down the accounts returned\n * @returns Array of AccountInfo objects in cache\n */\n getAllAccounts(accountFilter) {\n return this.controller.getAllAccounts(accountFilter);\n }\n /**\n * Event handler function which allows users to fire events after the PublicClientApplication object\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\n * auth flows.\n * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\n */\n handleRedirectPromise(hash) {\n return this.controller.handleRedirectPromise(hash);\n }\n /**\n * Use when initiating the login process via opening a popup window in the user's browser\n *\n * @param request\n *\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n loginPopup(request) {\n return this.controller.loginPopup(request);\n }\n /**\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\n * any code that follows this function will not execute.\n *\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\n *\n * @param request\n */\n loginRedirect(request) {\n return this.controller.loginRedirect(request);\n }\n /**\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\n * @param logoutRequest\n * @deprecated\n */\n logout(logoutRequest) {\n return this.controller.logout(logoutRequest);\n }\n /**\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\n * Default behaviour is to redirect the user to `window.location.href`.\n * @param logoutRequest\n */\n logoutRedirect(logoutRequest) {\n return this.controller.logoutRedirect(logoutRequest);\n }\n /**\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\n * @param logoutRequest\n */\n logoutPopup(logoutRequest) {\n return this.controller.logoutPopup(logoutRequest);\n }\n /**\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\n * - Any browser using a form of Intelligent Tracking Prevention\n * - If there is not an established session with the service\n *\n * In these cases, the request must be done inside a popup or full frame redirect.\n *\n * For the cases where interaction is required, you cannot send a request with prompt=none.\n *\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\n * you session on the server still exists.\n * @param request {@link SsoSilentRequest}\n *\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\n */\n ssoSilent(request) {\n return this.controller.ssoSilent(request);\n }\n /**\n * Gets the token cache for the application.\n */\n getTokenCache() {\n return this.controller.getTokenCache();\n }\n /**\n * Returns the logger instance\n */\n getLogger() {\n return this.controller.getLogger();\n }\n /**\n * Replaces the default logger set in configurations with new Logger with new configurations\n * @param logger Logger instance\n */\n setLogger(logger) {\n this.controller.setLogger(logger);\n }\n /**\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\n * @param account\n */\n setActiveAccount(account) {\n this.controller.setActiveAccount(account);\n }\n /**\n * Gets the currently active account\n */\n getActiveAccount() {\n return this.controller.getActiveAccount();\n }\n /**\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\n * @param sku\n * @param version\n */\n initializeWrapperLibrary(sku, version) {\n return this.controller.initializeWrapperLibrary(sku, version);\n }\n /**\n * Sets navigation client\n * @param navigationClient\n */\n setNavigationClient(navigationClient) {\n this.controller.setNavigationClient(navigationClient);\n }\n /**\n * Returns the configuration object\n * @internal\n */\n getConfiguration() {\n return this.controller.getConfiguration();\n }\n /**\n * Hydrates cache with the tokens and account in the AuthenticationResult object\n * @param result\n * @param request - The request object that was used to obtain the AuthenticationResult\n * @returns\n */\n async hydrateCache(result, request) {\n return this.controller.hydrateCache(result, request);\n }\n /**\n * Clears tokens and account from the browser cache.\n * @param logoutRequest\n */\n clearCache(logoutRequest) {\n return this.controller.clearCache(logoutRequest);\n }\n}\n\nexport { PublicClientApplication };\n","import { Injectable } from '@angular/core';\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpErrorResponse } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\nimport { Router } from '@angular/router';\n\n@Injectable()\nexport class ErrorInterceptor implements HttpInterceptor {\n constructor(private router: Router) { }\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n\n const allowedApis = [\n '/api/CheckDomainEnabledForSSO'\n ];\n\n const isTargetedApi = allowedApis.some(api => req.url.includes(api));\n\n if (isTargetedApi) {\n return next.handle(req).pipe(\n catchError((error: HttpErrorResponse) => {\n if (error.status !== 200) {\n this.router.navigate(['/application-down']);\n }\n return throwError(error);\n })\n );\n }\n\n return next.handle(req);\n }\n}\n","import { APP_INITIALIZER, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { HttpClientModule, HTTP_INTERCEPTORS, HttpClient } from '@angular/common/http';\nimport { environment } from '../environments/environment';\n\n\nimport { AppRoutingModule } from './app-routing.module';\nimport { AppComponent } from './app.component';\nimport { NgbModule, NgbTooltipModule, NgbPopoverModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap';\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\nimport { LayoutsModule } from './layouts/layouts.module';\nimport { PagesModule } from './pages/pages.module';\nimport { ToastrModule } from 'ngx-toastr';\nimport { OAuthModule } from 'angular-oauth2-oidc';\nimport { ServiceWorkerModule } from '@angular/service-worker';\nimport { setHeader } from './_helpers/setRequestHeader';\nimport { TranslationLoader } from './TranslationLoader.service';\nimport { DatePipe, DecimalPipe } from '@angular/common';\n//import { LoginComponent } from './user/login';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport {\n RECAPTCHA_SETTINGS,\n RecaptchaModule,\n RecaptchaSettings,\n} from \"ng-recaptcha\";\nimport { TimeFormatPipe, TimeFormatPipeNew, MonthFormatPipe } from './_helpers/pipe.module';\nimport { FormlyRadioInputWithSideDescriptionComponent } from './shared/forms/form-controls/formly-radio-input-with-side-description/formly-radio-input-with-side-description.component';\nimport { BuildDetailsHttpService } from './build-details.http.service';\n\n\n\n\nimport {\n IPublicClientApplication,\n PublicClientApplication,\n BrowserCacheLocation,\n LogLevel,\n InteractionType,\n} from '@azure/msal-browser';\nimport {\n MSAL_INSTANCE,\n MSAL_INTERCEPTOR_CONFIG,\n MsalInterceptorConfiguration,\n MSAL_GUARD_CONFIG,\n MsalGuardConfiguration,\n MsalBroadcastService,\n MsalService,\n MsalGuard,\n MsalModule,\n MsalInterceptor,\n} from '@azure/msal-angular';\nimport { LoggingPanelComponent } from './shared/logging-panel/logging-panel.component';\nimport { CanDeactivateGuard } from './_guards/canDeactivate.guard';\nimport { AlertModule } from './alert-panel/alert.module';\nimport { ErrorInterceptor } from './_helpers/error.interceptor';\n\nconst GRAPH_ENDPOINT = 'https://graph.microsoft.com/v1.0/me';\n\nconst isIE =\n window.navigator.userAgent.indexOf('MSIE ') > -1 ||\n window.navigator.userAgent.indexOf('Trident/') > -1;\n\nexport function loggerCallback(logLevel: LogLevel, message: string) {\n}\n\nexport function MSALInstanceFactory(): IPublicClientApplication {\n return new PublicClientApplication({\n auth: {\n clientId: '1e16a093-0850-4b9c-9ef5-5f8ee7bbf41e',\n authority: 'https://login.microsoftonline.com/common',\n redirectUri: environment.AppUrl + 'orglogin'// 'https://demo.expenseondemand.com/orglogin',\n },\n cache: {\n cacheLocation: BrowserCacheLocation.LocalStorage,\n storeAuthStateInCookie: isIE, // set to true for IE 11\n },\n system: {\n loggerOptions: {\n loggerCallback,\n logLevel: LogLevel.Info,\n piiLoggingEnabled: false,\n },\n },\n });\n}\n\nexport function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {\n const protectedResourceMap = new Map>();\n protectedResourceMap.set(GRAPH_ENDPOINT, ['Calendars.Read']);\n\n return {\n interactionType: InteractionType.Redirect,\n protectedResourceMap,\n };\n}\n\nexport function MSALGuardConfigFactory(): MsalGuardConfiguration {\n return {\n interactionType: InteractionType.Redirect,\n authRequest: {\n scopes: ['Calendars.Read'],\n },\n };\n}\n\nexport function createTranslateLoader(http: HttpClient): any {\n return new TranslateHttpLoader(http, 'assets/i18n/', '.json');\n}\n\nconst globalSettings: RecaptchaSettings = {\n siteKey: \"6LcDN4AUAAAAAEfgraLH8JvgyQiE5zql0wynjr89\",\n};\n\nexport function HttpLoaderFactory(http: HttpClient) {\n return new TranslationLoader(http);\n}\n\nexport function fetchBuildDetails(buildDetailsService: BuildDetailsHttpService) {\n return () => buildDetailsService.fetchBuildDetails();\n}\n\n\n@NgModule({\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n declarations: [\n AppComponent,\n TimeFormatPipe,\n TimeFormatPipeNew,\n MonthFormatPipe,\n FormlyRadioInputWithSideDescriptionComponent,\n LoggingPanelComponent\n ],\n imports: [\n TranslateModule.forRoot({\n loader: {\n provide: TranslateLoader,\n useFactory: (HttpLoaderFactory),\n deps: [HttpClient],\n },\n }),\n HttpClientModule,\n FormsModule,\n BrowserAnimationsModule,\n RecaptchaModule,\n ReactiveFormsModule,\n BrowserModule,\n AppRoutingModule,\n PagesModule,\n NgbModule,\n NgbTooltipModule,\n NgbPopoverModule,\n NgbNavModule,\n LayoutsModule,\n TranslateModule,\n AlertModule,\n ToastrModule.forRoot({\n positionClass: \"toast-top-right\",\n closeButton: true,\n preventDuplicates: true,\n timeOut: 2000,\n }),\n OAuthModule.forRoot(),\n ServiceWorkerModule.register('ngsw-worker.js', {\n enabled: true,\n registrationStrategy: 'registerImmediately:30000'\n }),\n MsalModule\n\n ],\n providers: [\n setHeader,\n DatePipe,\n TimeFormatPipe,\n TimeFormatPipeNew,\n DecimalPipe,\n MonthFormatPipe,\n {\n provide: RECAPTCHA_SETTINGS,\n useValue: globalSettings,\n },\n {\n provide: HTTP_INTERCEPTORS,\n useClass: MsalInterceptor,\n multi: true,\n },\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\n {\n provide: MSAL_INSTANCE,\n useFactory: MSALInstanceFactory,\n },\n {\n provide: MSAL_GUARD_CONFIG,\n useFactory: MSALGuardConfigFactory,\n },\n {\n provide: MSAL_INTERCEPTOR_CONFIG,\n useFactory: MSALInterceptorConfigFactory,\n },\n MsalService,\n MsalGuard,\n MsalBroadcastService,\n CanDeactivateGuard,\n { provide: APP_INITIALIZER, useFactory: fetchBuildDetails, deps: [BuildDetailsHttpService], multi: true },\n { provide: 'googleTagManagerId', useValue: 'GTM-5DNQVG9' }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => {});\n","export class Constants {\n static readonly MONTH_FMT = 'MMMM';\n static readonly DATE_FMT = 'dd-MMM-yyyy';\n static readonly TIME_FMT = `hh:mm a`;\n static readonly TIME_FMT_HHmm = `HH:mm`;\n static readonly EODDATE_FMT = 'dd-MMM-yyyy HH:mm:ss';\n\n static readonly ADDITIONAL_FIELD_DYNAMIC_KEY = 'additionalField-';\n static readonly ADDITIONAL_FIELD_DYNAMIC_ID_KEY = '-Id';\n static readonly CUSTOM_FIELD_DYNAMIC_KEY = 'customField';\n\n}\nexport const PASSWORD_REGEX = /^(?=.*[a-z])(?=.*[A-Z])((?=.*[0-9])|(?=.*[$@#$!%*?&])[A-Za-z\\d$@#$!%*?&]).{8,}$/;\nexport const EMAIL_REGEX = /^([\\w-'\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([\\w-]+\\.)+))([a-zA-Z]{2,50}|[0-9]{1,50})(\\]?)$/;\n","/**\n * @ag-grid-community/all-modules - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue * @version v30.2.0\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// class returns a unique id to use for the column. it checks the existing columns, and if the requested\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 // no point in stringing this, object treats it the same anyway.\n idToTry = count;\n }\n if (!this.existingKeys[idToTry]) {\n this.existingKeys[idToTry] = true;\n return String(idToTry);\n }\n count++;\n }\n };\n return ColumnKeyCreator;\n}());\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$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};\nfunction iterateObject(object, callback) {\n var e_1, _a;\n if (object == null) {\n return;\n }\n if (Array.isArray(object)) {\n for (var i = 0; i < object.length; i++) {\n callback(i.toString(), object[i]);\n }\n return;\n }\n try {\n for (var _b = __values$8(Object.entries(object)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$z(_c.value, 2), key = _d[0], value = _d[1];\n callback(key, value);\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}\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 // Create empty objects\n keys.forEach(function (key, i) {\n if (!objectToUpdate[key]) {\n objectToUpdate[key] = {};\n }\n if (i < keys.length - 1) {\n objectToUpdate = objectToUpdate[key];\n }\n });\n objectToUpdate[keys[keys.length - 1]] = value;\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 getValueUsingField: getValueUsingField,\n removeAllReferences: removeAllReferences,\n isNonNullObject: isNonNullObject\n});\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 * @param {Function} func The function to be debounced\n * @param {number} delay The time in ms to debounce\n * @return {Function} The debounced function\n */\nfunction debounce(func, delay) {\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 var context = this;\n window.clearTimeout(timeout);\n // Set the new timeout\n timeout = window.setTimeout(function () {\n func.apply(context, args);\n }, delay);\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\nvar ModuleNames;\n(function (ModuleNames) {\n ModuleNames[\"CommunityCoreModule\"] = \"@ag-grid-community/core\";\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 don't need to import on this, but other enterprise modules do\n ModuleNames[\"EnterpriseCoreModule\"] = \"@ag-grid-enterprise/core\";\n // enterprise modules\n ModuleNames[\"RowGroupingModule\"] = \"@ag-grid-enterprise/row-grouping\";\n ModuleNames[\"ColumnsToolPanelModule\"] = \"@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 ModuleNames[\"AdvancedFilterModule\"] = \"@ag-grid-enterprise/advanced-filter\";\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 // 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\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 __spreadArray$r = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar ModuleRegistry = /** @class */ (function () {\n function ModuleRegistry() {\n }\n /**\n * Globally register the given module for all grids.\n * @param module - module to register\n */\n ModuleRegistry.register = function (module) {\n ModuleRegistry.__register(module, true, undefined);\n };\n /**\n * Globally register the given modules for all grids.\n * @param modules - modules to register\n */\n ModuleRegistry.registerModules = function (modules) {\n ModuleRegistry.__registerModules(modules, true, undefined);\n };\n /** AG GRID INTERNAL - Module registration helper. */\n ModuleRegistry.__register = function (module, moduleBased, gridId) {\n ModuleRegistry.runVersionChecks(module);\n if (gridId !== undefined) {\n ModuleRegistry.areGridScopedModules = true;\n if (ModuleRegistry.gridModulesMap[gridId] === undefined) {\n ModuleRegistry.gridModulesMap[gridId] = {};\n }\n ModuleRegistry.gridModulesMap[gridId][module.moduleName] = module;\n }\n else {\n ModuleRegistry.globalModulesMap[module.moduleName] = module;\n }\n ModuleRegistry.setModuleBased(moduleBased);\n };\n /** AG GRID INTERNAL - Unregister grid scoped module. */\n ModuleRegistry.__unRegisterGridModules = function (gridId) {\n delete ModuleRegistry.gridModulesMap[gridId];\n };\n /** AG GRID INTERNAL - Module registration helper. */\n ModuleRegistry.__registerModules = function (modules, moduleBased, gridId) {\n ModuleRegistry.setModuleBased(moduleBased);\n if (!modules) {\n return;\n }\n modules.forEach(function (module) { return ModuleRegistry.__register(module, moduleBased, gridId); });\n };\n ModuleRegistry.isValidModuleVersion = function (module) {\n var _a = __read$y(module.version.split('.') || [], 2), moduleMajor = _a[0], moduleMinor = _a[1];\n var _b = __read$y(ModuleRegistry.currentModuleVersion.split('.') || [], 2), currentModuleMajor = _b[0], currentModuleMinor = _b[1];\n return moduleMajor === currentModuleMajor && moduleMinor === currentModuleMinor;\n };\n ModuleRegistry.runVersionChecks = function (module) {\n if (!ModuleRegistry.currentModuleVersion) {\n ModuleRegistry.currentModuleVersion = module.version;\n }\n if (!module.version) {\n console.error(\"AG Grid: You are using incompatible versions of AG Grid modules. Major and minor versions should always match across modules. '\" + module.moduleName + \"' is incompatible. Please update all modules to the same version.\");\n }\n else if (!ModuleRegistry.isValidModuleVersion(module)) {\n console.error(\"AG Grid: You are using incompatible versions of AG Grid modules. Major and minor versions should always match across modules. '\" + module.moduleName + \"' is version \" + module.version + \" but the other modules are version \" + this.currentModuleVersion + \". Please update all modules to the same version.\");\n }\n if (module.validate) {\n var result = module.validate();\n if (!result.isValid) {\n var errorResult = result;\n console.error(\"AG Grid: \" + errorResult.message);\n }\n }\n };\n ModuleRegistry.setModuleBased = function (moduleBased) {\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 /**\n * AG GRID INTERNAL - Set if files are being served from a single UMD bundle to provide accurate enterprise upgrade steps.\n */\n ModuleRegistry.__setIsBundled = function () {\n ModuleRegistry.isBundled = true;\n };\n /** AG GRID INTERNAL - Assert a given module has been register, globally or individually with this grid. */\n ModuleRegistry.__assertRegistered = function (moduleName, reason, gridId) {\n var _a;\n if (this.__isRegistered(moduleName, gridId)) {\n return true;\n }\n var warningKey = reason + moduleName;\n var warningMessage;\n if (ModuleRegistry.isBundled) {\n {\n warningMessage =\n \"AG Grid: unable to use \" + reason + \" as 'ag-grid-enterprise' has not been loaded. Check you are using the Enterprise bundle:\\n \\n \\n \\nFor more info see: https://ag-grid.com/javascript-data-grid/getting-started/#getting-started-with-ag-grid-enterprise\";\n }\n }\n else if (ModuleRegistry.moduleBased || ModuleRegistry.moduleBased === undefined) {\n var modName = (_a = Object.entries(ModuleNames).find(function (_a) {\n var _b = __read$y(_a, 2); _b[0]; var v = _b[1];\n return v === moduleName;\n })) === null || _a === void 0 ? void 0 : _a[0];\n warningMessage =\n \"AG Grid: unable to use \" + reason + \" as the \" + modName + \" is not registered\" + (ModuleRegistry.areGridScopedModules ? \" for gridId: \" + gridId : '') + \". Check if you have registered the module:\\n \\n import { ModuleRegistry } from '@ag-grid-community/core';\\n import { \" + modName + \" } from '\" + moduleName + \"';\\n \\n ModuleRegistry.registerModules([ \" + modName + \" ]);\\n\\nFor more info see: https://www.ag-grid.com/javascript-grid/modules/\";\n }\n else {\n warningMessage =\n \"AG Grid: unable to use \" + reason + \" as package 'ag-grid-enterprise' has not been imported. Check that you have imported the package:\\n \\n import 'ag-grid-enterprise';\\n \\nFor more info see: https://www.ag-grid.com/javascript-grid/packages/\";\n }\n doOnce(function () {\n console.warn(warningMessage);\n }, warningKey);\n return false;\n };\n /** AG GRID INTERNAL - Is the given module registered, globally or individually with this grid. */\n ModuleRegistry.__isRegistered = function (moduleName, gridId) {\n var _a;\n return !!ModuleRegistry.globalModulesMap[moduleName] || !!((_a = ModuleRegistry.gridModulesMap[gridId]) === null || _a === void 0 ? void 0 : _a[moduleName]);\n };\n /** AG GRID INTERNAL - Get all registered modules globally / individually for this grid. */\n ModuleRegistry.__getRegisteredModules = function (gridId) {\n return __spreadArray$r(__spreadArray$r([], __read$y(values(ModuleRegistry.globalModulesMap))), __read$y(values(ModuleRegistry.gridModulesMap[gridId] || {})));\n };\n /** AG GRID INTERNAL - Get the list of modules registered individually for this grid. */\n ModuleRegistry.__getGridRegisteredModules = function (gridId) {\n var _a;\n return values((_a = ModuleRegistry.gridModulesMap[gridId]) !== null && _a !== void 0 ? _a : {}) || [];\n };\n /** INTERNAL */\n ModuleRegistry.__isPackageBased = function () {\n return !ModuleRegistry.moduleBased;\n };\n // having in a map a) removes duplicates and b) allows fast lookup\n ModuleRegistry.globalModulesMap = {};\n ModuleRegistry.gridModulesMap = {};\n ModuleRegistry.areGridScopedModules = false;\n return ModuleRegistry;\n}());\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 __spreadArray$q = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\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 = new (beanEntry.bean.bind.apply(beanEntry.bean, __spreadArray$q([null], __read$x(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 (this.destroyed) {\n this.logger.log(\"AG Grid: bean reference \" + beanName + \" is used after the grid is destroyed!\");\n return null;\n }\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 // Set before doing the destroy, so if context.destroy() gets called via another bean\n // we are marked as destroyed already to prevent running destroy() twice\n this.destroyed = true;\n this.logger.log(\">> Shutting down ag-Application Context\");\n var beanInstances = this.getBeanInstances();\n this.destroyBeans(beanInstances);\n this.contextParams.providedBeanInstances = null;\n ModuleRegistry.__unRegisterGridModules(this.contextParams.gridId);\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 Context.prototype.isDestroyed = function () {\n return this.destroyed;\n };\n Context.prototype.getGridId = function () {\n return this.contextParams.gridId;\n };\n return Context;\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\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 __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, gridOptionsService, frameworkOverrides, globalEventListener, globalSyncEventListener) {\n if (globalEventListener === void 0) { globalEventListener = null; }\n if (globalSyncEventListener === void 0) { globalSyncEventListener = null; }\n this.frameworkOverrides = frameworkOverrides;\n this.gridOptionsService = gridOptionsService;\n if (globalEventListener) {\n var async = gridOptionsService.useAsyncEvents();\n this.addGlobalListener(globalEventListener, async);\n }\n if (globalSyncEventListener) {\n this.addGlobalListener(globalSyncEventListener, false);\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.gridOptionsService) {\n // Apply common properties to all dispatched events if this event service has had its beans set with gridOptionsService.\n // Note there are multiple instances of EventService that are used local to components which do not set gridOptionsService.\n var _a = this.gridOptionsService, api = _a.api, columnApi = _a.columnApi, context = _a.context;\n agEvent.api = api;\n agEvent.columnApi = columnApi;\n agEvent.context = context;\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 if (async && 'event' in event) {\n var browserEvent = event.event;\n if (browserEvent instanceof Event) {\n // AG-7893 - Persist composedPath() so that its result can still be accessed by the user asynchronously.\n // Within an async event handler if they call composedPath() on the event it will always return an empty [].\n event.eventPath = browserEvent.composedPath();\n }\n }\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 // create a shallow copy to prevent listeners cyclically adding more listeners to capture this event\n var listeners = new Set(this.getListeners(eventType, async, false));\n if (listeners.size > 0) {\n processEventListeners(listeners);\n }\n var globalListeners = new Set(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$2J([\n __param$a(0, Qualifier('loggerFactory')),\n __param$a(1, Qualifier('gridOptionsService')),\n __param$a(2, Qualifier('frameworkOverrides')),\n __param$a(3, Qualifier('globalEventListener')),\n __param$a(4, Qualifier('globalSyncEventListener'))\n ], EventService.prototype, \"setBeans\", null);\n EventService = __decorate$2J([\n Bean('eventService')\n ], EventService);\n return EventService;\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 __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 __spreadArray$p = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar instanceIdSequence$4 = 0;\nfunction getNextColInstanceId() {\n return instanceIdSequence$4++;\n}\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. also used to\n // identify old vs new columns for destroying cols when no longer used.\n this.instanceId = getNextColInstanceId();\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.lastLeftPinned = false;\n this.firstRightPinned = false;\n this.filterActive = false;\n this.eventService = new EventService();\n this.tooltipEnabled = false;\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 === 'asc' || colDef.sort === 'desc') {\n this.sort = colDef.sort;\n }\n }\n else {\n if (colDef.initialSort === 'asc' || colDef.initialSort === '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('colDefChanged', \"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 /**\n * Used for marryChildren, helps with comparing when duplicate groups have been created to manage split groups.\n *\n * Parent may contain a duplicate but not identical group when the group is split.\n */\n Column.prototype.getOriginalParent = function () {\n return this.originalParent;\n };\n // this is done after constructor as it uses gridOptionsService\n Column.prototype.initialise = function () {\n this.initMinAndMaxWidths();\n this.resetActualWidth('gridInitializing');\n this.initDotNotation();\n this.initTooltip();\n this.validate();\n };\n Column.prototype.initDotNotation = function () {\n var suppressDotNotation = this.gridOptionsService.is('suppressFieldDotNotation');\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.initTooltip = function () {\n this.tooltipEnabled = exists(this.colDef.tooltipField) ||\n exists(this.colDef.tooltipValueGetter) ||\n exists(this.colDef.tooltipComponent);\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;\n return filterDefined;\n };\n Column.prototype.isFieldContainsDots = function () {\n return this.fieldContainsDots;\n };\n Column.prototype.isTooltipEnabled = function () {\n return this.tooltipEnabled;\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.gridOptionsService.isRowModelType('clientSide');\n if (usingCSRM && !ModuleRegistry.__isRegistered(ModuleNames.RowGroupingModule, this.gridOptionsService.getGridId())) {\n var rowGroupingItems = ['enableRowGroup', 'rowGroup', 'rowGroupIndex', 'enablePivot', 'enableValue', 'pivot', 'pivotIndex', 'aggFunc'];\n var itemsUsed = rowGroupingItems.filter(function (x) { return exists(colDefAny[x]); });\n if (itemsUsed.length > 0) {\n ModuleRegistry.__assertRegistered(ModuleNames.RowGroupingModule, itemsUsed.map(function (i) { return 'colDef.' + i; }).join(', '), this.gridOptionsService.getGridId());\n }\n }\n if (this.colDef.cellEditor === 'agRichSelect' || this.colDef.cellEditor === 'agRichSelectCellEditor') {\n ModuleRegistry.__assertRegistered(ModuleNames.RichSelectModule, this.colDef.cellEditor, this.gridOptionsService.getGridId());\n }\n if (this.gridOptionsService.is('treeData')) {\n var itemsNotAllowedWithTreeData = ['rowGroup', 'rowGroupIndex', 'pivot', 'pivotIndex'];\n var itemsUsed = itemsNotAllowedWithTreeData.filter(function (x) { return exists(colDefAny[x]); });\n if (itemsUsed.length > 0) {\n warnOnce(\"AG Grid: \" + itemsUsed.join() + \" is not possible when doing tree data, your column definition should not have \" + itemsUsed.join(), 'TreeDataCannotRowGroup');\n }\n }\n if (exists(colDefAny.menuTabs)) {\n if (Array.isArray(colDefAny.menuTabs)) {\n var communityMenuTabs_1 = ['filterMenuTab'];\n var enterpriseMenuTabs_1 = ['columnsMenuTab', 'generalMenuTab'];\n var itemsUsed = enterpriseMenuTabs_1.filter(function (x) { return colDefAny.menuTabs.includes(x); });\n if (itemsUsed.length > 0) {\n ModuleRegistry.__assertRegistered(ModuleNames.MenuModule, \"menuTab(s): \" + itemsUsed.map(function (t) { return \"'\" + t + \"'\"; }).join(), this.gridOptionsService.getGridId());\n }\n colDefAny.menuTabs.forEach(function (tab) {\n if (!enterpriseMenuTabs_1.includes(tab) && !communityMenuTabs_1.includes(tab)) {\n warnOnce(\"AG Grid: '\" + tab + \"' is not valid for 'colDef.menuTabs'. Valid values are: \" + __spreadArray$p(__spreadArray$p([], __read$w(communityMenuTabs_1)), __read$w(enterpriseMenuTabs_1)).map(function (t) { return \"'\" + t + \"'\"; }).join() + \".\", 'wrongValue_menuTabs_' + tab);\n }\n });\n }\n else {\n warnOnce(\"AG Grid: The typeof 'colDef.menuTabs' should be an array not:\" + typeof colDefAny.menuTabs, 'wrongType_menuTabs');\n }\n }\n if (exists(colDefAny.columnsMenuParams)) {\n ModuleRegistry.__assertRegistered(ModuleNames.MenuModule, 'columnsMenuParams', this.gridOptionsService.getGridId());\n }\n if (exists(colDefAny.columnsMenuParams)) {\n ModuleRegistry.__assertRegistered(ModuleNames.ColumnsToolPanelModule, 'columnsMenuParams', this.gridOptionsService.getGridId());\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');\n }\n if (exists(colDefAny.columnGroupShow) && colDefAny.columnGroupShow !== 'closed' && colDefAny.columnGroupShow !== 'open') {\n warnOnce(\"AG Grid: '\" + colDefAny.columnGroupShow + \"' is not valid for columnGroupShow. Valid values are 'open', 'closed', undefined, null\", 'columnGroupShow_invalid');\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.gridOptionsService.context,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi\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 /**\n * Returns `true` if the cell for this column is editable for the given `rowNode`, otherwise `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.gridOptionsService.is('enableGroupEdit')) {\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('movingChanged', 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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\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('sortChanged', source));\n }\n this.dispatchStateUpdatedEvent('sort');\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('menuVisibleChanged', source));\n }\n };\n Column.prototype.isMenuVisible = function () {\n return this.menuVisible;\n };\n Column.prototype.isSortAscending = function () {\n return this.sort === 'asc';\n };\n Column.prototype.isSortDescending = function () {\n return this.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 this.dispatchStateUpdatedEvent('sortIndex');\n };\n Column.prototype.setAggFunc = function (aggFunc) {\n this.aggFunc = aggFunc;\n this.dispatchStateUpdatedEvent('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('leftChanged', 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('filterActiveChanged', source));\n }\n var filterChangedEvent = this.createColumnEvent('filterChanged', source);\n if (additionalEventAttributes) {\n mergeDeep(filterChangedEvent, additionalEventAttributes);\n }\n this.eventService.dispatchEvent(filterChangedEvent);\n };\n /** Returns `true` when this `Column` is hovered, otherwise `false` */\n Column.prototype.isHovered = function () {\n return this.columnHoverService.isHovered(this);\n };\n Column.prototype.setPinned = function (pinned) {\n if (pinned === true || pinned === 'left') {\n this.pinned = 'left';\n }\n else if (pinned === 'right') {\n this.pinned = 'right';\n }\n else {\n this.pinned = null;\n }\n this.dispatchStateUpdatedEvent('pinned');\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('firstRightPinnedChanged', 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('lastLeftPinnedChanged', 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 === 'left' || this.pinned === 'right';\n };\n Column.prototype.isPinnedLeft = function () {\n return this.pinned === 'left';\n };\n Column.prototype.isPinnedRight = function () {\n return this.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('visibleChanged', source));\n }\n this.dispatchStateUpdatedEvent('hide');\n };\n Column.prototype.isVisible = function () {\n return this.visible;\n };\n Column.prototype.isSpanHeaderHeight = function () {\n var colDef = this.getColDef();\n return !colDef.suppressSpanHeaderHeight && !colDef.autoHeaderHeight;\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.colId;\n };\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getColId`, `getId` */\n Column.prototype.getUniqueId = function () {\n return this.colId;\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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\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 this.dispatchStateUpdatedEvent('width');\n };\n Column.prototype.fireColumnWidthChangedEvent = function (source) {\n this.eventService.dispatchEvent(this.createColumnEvent('widthChanged', 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 applyColumnState method.\n Column.prototype.setFlex = function (flex) {\n if (this.flex !== flex) {\n this.flex = flex;\n }\n this.dispatchStateUpdatedEvent('flex');\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('columnRowGroupChanged', source));\n }\n this.dispatchStateUpdatedEvent('rowGroup');\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('columnPivotChanged', source));\n }\n this.dispatchStateUpdatedEvent('pivot');\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('columnValueChanged', 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 Column.prototype.dispatchStateUpdatedEvent = function (key) {\n this.eventService.dispatchEvent({\n type: Column.EVENT_STATE_UPDATED,\n key: key\n });\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 // + dataTypeService - when waiting to infer cell data types\n Column.EVENT_STATE_UPDATED = 'columnStateUpdated';\n __decorate$2I([\n Autowired('gridOptionsService')\n ], Column.prototype, \"gridOptionsService\", void 0);\n __decorate$2I([\n Autowired('columnUtils')\n ], Column.prototype, \"columnUtils\", void 0);\n __decorate$2I([\n Autowired('columnHoverService')\n ], Column.prototype, \"columnHoverService\", void 0);\n __decorate$2I([\n PostConstruct\n ], Column.prototype, \"initialise\", null);\n return Column;\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 ProvidedColumnGroup = /** @class */ (function () {\n function ProvidedColumnGroup(colGroupDef, groupId, padding, level) {\n this.localEventService = new EventService();\n this.expandable = false;\n // used by React (and possibly other frameworks) as key for rendering. also used to\n // identify old vs new columns for destroying cols when no longer used.\n this.instanceId = getNextColInstanceId();\n this.expandableListenerRemoveCallback = null;\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.destroy = function () {\n if (this.expandableListenerRemoveCallback) {\n this.reset(null, undefined);\n }\n };\n ProvidedColumnGroup.prototype.reset = function (colGroupDef, level) {\n this.colGroupDef = colGroupDef;\n this.level = level;\n this.originalParent = null;\n if (this.expandableListenerRemoveCallback) {\n this.expandableListenerRemoveCallback();\n }\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.getInstanceId = function () {\n return this.instanceId;\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 if (this.expandableListenerRemoveCallback) {\n this.expandableListenerRemoveCallback();\n }\n var listener = this.onColumnVisibilityChanged.bind(this);\n this.getLeafColumns().forEach(function (col) { return col.addEventListener('visibleChanged', listener); });\n this.expandableListenerRemoveCallback = function () {\n _this.getLeafColumns().forEach(function (col) { return col.removeEventListener('visibleChanged', listener); });\n _this.expandableListenerRemoveCallback = null;\n };\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 === 'open') {\n atLeastOneShowingWhenOpen = true;\n atLeastOneChangeable = true;\n }\n else if (headerGroupShow === '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 __decorate$2H([\n PreDestroy\n ], ProvidedColumnGroup.prototype, \"destroy\", null);\n return ProvidedColumnGroup;\n}());\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\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 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 removeFromUnorderedArray(array, object) {\n var index = array.indexOf(object);\n if (index >= 0) {\n // preserve the last element, then shorten array length by 1 to delete index\n array[index] = array[array.length - 1];\n array.pop();\n }\n}\nfunction removeFromArray(array, object) {\n var index = array.indexOf(object);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction removeAllFromUnorderedArray(array, toRemove) {\n for (var i = 0; i < toRemove.length; i++) {\n removeFromUnorderedArray(array, toRemove[i]);\n }\n}\nfunction removeAllFromArray(array, toRemove) {\n for (var i = 0; i < toRemove.length; i++) {\n removeFromArray(array, toRemove[i]);\n }\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 shallowCompare: shallowCompare,\n sortNumerically: sortNumerically,\n removeRepeatsFromArray: removeRepeatsFromArray,\n removeFromUnorderedArray: removeFromUnorderedArray,\n removeFromArray: removeFromArray,\n removeAllFromUnorderedArray: removeAllFromUnorderedArray,\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\nvar AG_GRID_STOP_PROPAGATION = '__ag_Grid_Stop_Propagation';\nvar PASSIVE_EVENTS$1 = ['touchstart', 'touchend', 'touchmove', 'touchcancel', 'scroll'];\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 getCtrlForEventTarget(gridOptionsService, eventTarget, type) {\n var sourceElement = eventTarget;\n while (sourceElement) {\n var renderedComp = gridOptionsService.getDomData(sourceElement, type);\n if (renderedComp) {\n return renderedComp;\n }\n sourceElement = sourceElement.parentElement;\n }\n return null;\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 * Gets the path for a browser Event or from the target on an AG Grid Event\n * https://developer.mozilla.org/en-US/docs/Web/API/Event\n * @param {Event| { target: EventTarget }} event\n * @returns {EventTarget[]}\n */\nfunction getEventPath(event) {\n // This can be called with either a browser event or an AG Grid Event that has a target property.\n var eventNoType = event;\n if (eventNoType.path) {\n return eventNoType.path;\n }\n if (eventNoType.composedPath) {\n return eventNoType.composedPath();\n }\n // If this is an AG Grid event build the path ourselves\n return createEventPath(eventNoType);\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 getCtrlForEventTarget: getCtrlForEventTarget,\n isElementInEventPath: isElementInEventPath,\n createEventPath: createEventPath,\n getEventPath: getEventPath,\n addSafePassiveEventListener: addSafePassiveEventListener\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 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 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 // Enable multiple grid properties to be updated together by the user but only trigger shared logic once.\n // Closely related to logic in ComponentUtil.ts\n this.lastChangeSetIdLookup = {};\n this.propertyListenerId = 0;\n this.isAlive = function () { return !_this.destroyed; };\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.setupGridOptionListener = function (event, listener) {\n var _this = this;\n this.gridOptionsService.addEventListener(event, listener);\n var destroyFunc = function () {\n _this.gridOptionsService.removeEventListener(event, listener);\n _this.destroyFunctions = _this.destroyFunctions.filter(function (fn) { return fn !== destroyFunc; });\n return null;\n };\n this.destroyFunctions.push(destroyFunc);\n };\n /**\n * Setup a managed property listener for the given GridOption property.\n * @param event GridOption property to listen to changes for.\n * @param listener Listener to run when property value changes\n */\n BeanStub.prototype.addManagedPropertyListener = function (event, listener) {\n if (this.destroyed) {\n return;\n }\n this.setupGridOptionListener(event, listener);\n };\n /**\n * Setup managed property listeners for the given set of GridOption properties.\n * The listener will be run if any of the property changes but will only run once if\n * multiple of the properties change within the same framework lifecycle event.\n * Works on the basis that GridOptionsService updates all properties *before* any property change events are fired.\n * @param events Array of GridOption properties to listen for changes too.\n * @param listener Shared listener to run if any of the properties change\n */\n BeanStub.prototype.addManagedPropertyListeners = function (events, listener) {\n var _this = this;\n if (this.destroyed) {\n return;\n }\n // Ensure each set of events can run for the same changeSetId\n var eventsKey = events.join('-') + this.propertyListenerId++;\n var wrappedListener = function (event) {\n if (event.changeSet) {\n // ChangeSet is only set when the property change is part of a group of changes from ComponentUtils\n // Direct api calls should always be run as \n if (event.changeSet && event.changeSet.id === _this.lastChangeSetIdLookup[eventsKey]) {\n // Already run the listener for this set of prop changes so don't run again\n return;\n }\n _this.lastChangeSetIdLookup[eventsKey] = event.changeSet.id;\n }\n // Don't expose the underlying event value changes to the group listener.\n var propertiesChangeEvent = {\n type: 'gridPropertyChanged',\n changeSet: event.changeSet,\n };\n listener(propertiesChangeEvent);\n };\n events.forEach(function (event) { return _this.setupGridOptionListener(event, wrappedListener); });\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$2G([\n Autowired('frameworkOverrides')\n ], BeanStub.prototype, \"frameworkOverrides\", void 0);\n __decorate$2G([\n Autowired('context')\n ], BeanStub.prototype, \"context\", void 0);\n __decorate$2G([\n Autowired('eventService')\n ], BeanStub.prototype, \"eventService\", void 0);\n __decorate$2G([\n Autowired('gridOptionsService')\n ], BeanStub.prototype, \"gridOptionsService\", void 0);\n __decorate$2G([\n Autowired('localeService')\n ], BeanStub.prototype, \"localeService\", void 0);\n __decorate$2G([\n Autowired('environment')\n ], BeanStub.prototype, \"environment\", void 0);\n __decorate$2G([\n PreDestroy\n ], BeanStub.prototype, \"destroy\", null);\n return BeanStub;\n}());\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __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$36(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.createBean(autoGroup);\n autoGroup.setChildren([nextChild]);\n nextChild.setOriginalParent(autoGroup);\n nextChild = autoGroup;\n }\n if (dept === 0) {\n column.setOriginalParent(null);\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.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 if (!defs)\n return [];\n var result = new Array(defs.length);\n for (var i = 0; i < result.length; i++) {\n var def = defs[i];\n if (this.isColumnGroup(def)) {\n result[i] = this.createColumnGroup(primaryColumns, def, level, existingColsCopy, columnKeyCreator, existingGroups);\n }\n else {\n result[i] = this.createColumn(primaryColumns, def, existingColsCopy, columnKeyCreator);\n }\n }\n return result;\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 providedGroup = new ProvidedColumnGroup(colGroupDefMerged, groupId, false, level);\n this.createBean(providedGroup);\n var existingGroupAndIndex = this.findExistingGroup(colGroupDef, existingGroups);\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 (existingGroupAndIndex) {\n existingGroups.splice(existingGroupAndIndex.idx, 1);\n }\n var existingGroup = existingGroupAndIndex === null || existingGroupAndIndex === void 0 ? void 0 : existingGroupAndIndex.group;\n if (existingGroup) {\n providedGroup.setExpanded(existingGroup.isExpanded());\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.gridOptionsService.get('defaultColGroupDef'));\n Object.assign(colGroupDefMerged, colGroupDef);\n return colGroupDefMerged;\n };\n ColumnFactory.prototype.createColumn = function (primaryColumns, colDef, existingColsCopy, columnKeyCreator) {\n // see if column already exists\n var existingColAndIndex = 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 (existingColAndIndex) {\n existingColsCopy === null || existingColsCopy === void 0 ? void 0 : existingColsCopy.splice(existingColAndIndex.idx, 1);\n }\n var column = existingColAndIndex === null || existingColAndIndex === void 0 ? void 0 : existingColAndIndex.column;\n if (!column) {\n // no existing column, need to create one\n var colId = columnKeyCreator.getUniqueKey(colDef.colId, colDef.field);\n var colDefMerged = this.addColumnDefaultAndTypes(colDef, colId);\n column = new Column(colDefMerged, colDef, colId, primaryColumns);\n this.context.createBean(column);\n }\n else {\n var colDefMerged = this.addColumnDefaultAndTypes(colDef, column.getColId());\n column.setColDef(colDefMerged, colDef);\n this.applyColumnState(column, colDefMerged);\n }\n this.dataTypeService.addColumnListeners(column);\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 == 'asc' || colDef.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 if (!existingColsCopy)\n return undefined;\n for (var i = 0; i < existingColsCopy.length; i++) {\n var def = existingColsCopy[i].getUserProvidedColDef();\n if (!def)\n continue;\n var newHasId = newColDef.colId != null;\n if (newHasId) {\n if (existingColsCopy[i].getId() === newColDef.colId) {\n return { idx: i, column: existingColsCopy[i] };\n }\n continue;\n }\n var newHasField = newColDef.field != null;\n if (newHasField) {\n if (def.field === newColDef.field) {\n return { idx: i, column: existingColsCopy[i] };\n }\n continue;\n }\n if (def === newColDef) {\n return { idx: i, column: existingColsCopy[i] };\n }\n }\n return undefined;\n };\n ColumnFactory.prototype.findExistingGroup = function (newGroupDef, existingGroups) {\n var newHasId = newGroupDef.groupId != null;\n if (!newHasId) {\n return undefined;\n }\n for (var i = 0; i < existingGroups.length; i++) {\n var existingGroup = existingGroups[i];\n var existingDef = existingGroup.getColGroupDef();\n if (!existingDef) {\n continue;\n }\n if (existingGroup.getId() === newGroupDef.groupId) {\n return { idx: i, group: existingGroup };\n }\n }\n return undefined;\n };\n ColumnFactory.prototype.addColumnDefaultAndTypes = function (colDef, colId) {\n // start with empty merged definition\n var res = {};\n // merge properties from default column definitions\n var defaultColDef = this.gridOptionsService.get('defaultColDef');\n mergeDeep(res, defaultColDef, false, true);\n var columnType = this.dataTypeService.updateColDefAndGetColumnType(res, colDef, colId);\n if (columnType) {\n this.assignColumnTypes(columnType, res);\n }\n // merge properties from column definitions\n mergeDeep(res, colDef, false, true);\n var autoGroupColDef = this.gridOptionsService.get('autoGroupColumnDef');\n var isSortingCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n if (colDef.rowGroup && autoGroupColDef && isSortingCoupled) {\n // override the sort for row group columns where the autoGroupColDef defines these values.\n mergeDeep(res, { sort: autoGroupColDef.sort, initialSort: autoGroupColDef.initialSort }, false, true);\n }\n this.dataTypeService.validateColDef(res);\n return res;\n };\n ColumnFactory.prototype.assignColumnTypes = function (typeKeys, colDefMerged) {\n if (!typeKeys.length) {\n return;\n }\n // merge user defined with default column types\n var allColumnTypes = Object.assign({}, DefaultColumnTypes);\n var userTypes = this.gridOptionsService.get('columnTypes') || {};\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 // if object has children, we assume it's a group\n ColumnFactory.prototype.isColumnGroup = function (abstractColDef) {\n return abstractColDef.children !== undefined;\n };\n __decorate$2F([\n Autowired('columnUtils')\n ], ColumnFactory.prototype, \"columnUtils\", void 0);\n __decorate$2F([\n Autowired('dataTypeService')\n ], ColumnFactory.prototype, \"dataTypeService\", void 0);\n __decorate$2F([\n __param$9(0, Qualifier('loggerFactory'))\n ], ColumnFactory.prototype, \"setBeans\", null);\n ColumnFactory = __decorate$2F([\n Bean('columnFactory')\n ], ColumnFactory);\n return ColumnFactory;\n}(BeanStub));\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 ColumnGroup = /** @class */ (function () {\n function ColumnGroup(providedColumnGroup, groupId, partId, 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.partId = partId;\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.partId);\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.gridOptionsService.is('enableRtl')) {\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.getPartId = function () {\n return this.partId;\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 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 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 '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 '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.EVENT_LEFT_CHANGED = 'leftChanged';\n ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED = 'displayedChildrenChanged';\n __decorate$2E([\n Autowired('gridOptionsService')\n ], ColumnGroup.prototype, \"gridOptionsService\", void 0);\n return ColumnGroup;\n}());\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 applyColumnState() */\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 v28 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_CUT_START = 'cutStart';\n Events.EVENT_CUT_END = 'cutEnd';\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_RANGE_DELETE_START = 'rangeDeleteStart';\n Events.EVENT_RANGE_DELETE_END = 'rangeDeleteEnd';\n /** Undo operation has started. */\n Events.EVENT_UNDO_STARTED = 'undoStarted';\n /** Undo operation has ended. */\n Events.EVENT_UNDO_ENDED = 'undoEnded';\n /** Redo operation has started. */\n Events.EVENT_REDO_STARTED = 'redoStarted';\n /** Redo operation has ended. */\n Events.EVENT_REDO_ENDED = 'redoEnded';\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_CELL_FOCUS_CLEARED = 'cellFocusCleared';\n Events.EVENT_FULL_WIDTH_ROW_FOCUSED = 'fullWidthRowFocused';\n Events.EVENT_ROW_SELECTED = 'rowSelected';\n Events.EVENT_SELECTION_CHANGED = 'selectionChanged';\n Events.EVENT_TOOLTIP_SHOW = 'tooltipShow';\n Events.EVENT_TOOLTIP_HIDE = 'tooltipHide';\n Events.EVENT_CELL_KEY_DOWN = 'cellKeyDown';\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_ADVANCED_FILTER_BUILDER_VISIBLE_CHANGED = 'advancedFilterBuilderVisibleChanged';\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 /** Called once when the grid is about to get destroyed. */\n Events.EVENT_GRID_PRE_DESTROYED = 'gridPreDestroyed';\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 /** Only used by the SSRM, called when the grid has no more rows to refresh */\n Events.EVENT_STORE_REFRESHED = 'storeRefreshed';\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 // environment\n Events.EVENT_GRID_STYLES_CHANGED = 'gridStylesChanged';\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 Events.EVENT_FILTER_DESTROYED = 'filterDestroyed';\n Events.EVENT_ROW_DATA_UPDATE_STARTED = 'rowDataUpdateStarted';\n // Advanced Filters\n Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED = 'advancedFilterEnabledChanged';\n Events.EVENT_DATA_TYPES_INFERRED = 'dataTypesInferred';\n // Widgets\n Events.EVENT_FIELD_VALUE_CHANGED = 'fieldValueChanged';\n Events.EVENT_FIELD_PICKER_VALUE_SELECTED = 'fieldPickerValueSelected';\n return Events;\n}());\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 GROUP_AUTO_COLUMN_ID = 'ag-Grid-AutoColumn';\nvar AutoGroupColService = /** @class */ (function (_super) {\n __extends$35(AutoGroupColService, _super);\n function AutoGroupColService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AutoGroupColService.prototype.createAutoGroupColumns = function (rowGroupColumns) {\n var _this = this;\n var groupAutoColumns = [];\n var doingTreeData = this.gridOptionsService.is('treeData');\n var doingMultiAutoColumn = this.gridOptionsService.isGroupMultiAutoColumn();\n if (doingTreeData && doingMultiAutoColumn) {\n console.warn('AG Grid: you cannot mix groupDisplayType = \"multipleColumns\" with treeData, only one column can be used to display groups when doing tree data');\n doingMultiAutoColumn = false;\n }\n // if doing groupDisplayType = \"multipleColumns\", 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(rowGroupCol, index));\n });\n }\n else {\n groupAutoColumns.push(this.createOneAutoGroupColumn());\n }\n return groupAutoColumns;\n };\n AutoGroupColService.prototype.updateAutoGroupColumns = function (autoGroupColumns) {\n var _this = this;\n autoGroupColumns.forEach(function (column, index) { return _this.updateOneAutoGroupColumn(column, index); });\n };\n // rowGroupCol and index are missing if groupDisplayType != \"multipleColumns\"\n AutoGroupColService.prototype.createOneAutoGroupColumn = function (rowGroupCol, index) {\n // if doing multi, set the field\n var colId;\n if (rowGroupCol) {\n colId = GROUP_AUTO_COLUMN_ID + \"-\" + rowGroupCol.getId();\n }\n else {\n colId = GROUP_AUTO_COLUMN_ID;\n }\n var colDef = this.createAutoGroupColDef(colId, rowGroupCol, index);\n colDef.colId = colId;\n var newCol = new Column(colDef, null, colId, true);\n this.context.createBean(newCol);\n return newCol;\n };\n /**\n * Refreshes an auto group col to load changes from defaultColDef or autoGroupColDef\n */\n AutoGroupColService.prototype.updateOneAutoGroupColumn = function (colToUpdate, index) {\n var oldColDef = colToUpdate.getColDef();\n var underlyingColId = typeof oldColDef.showRowGroup == 'string' ? oldColDef.showRowGroup : undefined;\n var underlyingColumn = underlyingColId != null ? this.columnModel.getPrimaryColumn(underlyingColId) : undefined;\n var colDef = this.createAutoGroupColDef(colToUpdate.getId(), underlyingColumn !== null && underlyingColumn !== void 0 ? underlyingColumn : undefined, index);\n colToUpdate.setColDef(colDef, null);\n this.columnFactory.applyColumnState(colToUpdate, colDef);\n };\n AutoGroupColService.prototype.createAutoGroupColDef = function (colId, underlyingColumn, index) {\n // if one provided by user, use it, otherwise create one\n var res = this.createBaseColDef(underlyingColumn);\n var autoGroupColumnDef = this.gridOptionsService.get('autoGroupColumnDef');\n mergeDeep(res, autoGroupColumnDef);\n res = this.columnFactory.addColumnDefaultAndTypes(res, colId);\n // For tree data the filter is always allowed\n if (!this.gridOptionsService.is('treeData')) {\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(res.field) &&\n missing(res.valueGetter) &&\n missing(res.filterValueGetter) &&\n res.filter !== 'agGroupColumnFilter';\n if (noFieldOrValueGetter) {\n res.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 res.headerCheckboxSelection = false;\n }\n var isSortingCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n var hasOwnData = res.valueGetter || res.field != null;\n if (isSortingCoupled && !hasOwnData) {\n // if col is coupled sorting, and has sort attribute, we want to ignore this\n // because we only accept the sort on creation of the col\n res.sortIndex = undefined;\n res.initialSort = undefined;\n }\n return res;\n };\n AutoGroupColService.prototype.createBaseColDef = function (rowGroupCol) {\n var userDef = this.gridOptionsService.get('autoGroupColumnDef');\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var res = {\n headerName: localeTextFunc('group', 'Group')\n };\n var userHasProvidedGroupCellRenderer = userDef &&\n (userDef.cellRenderer || 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) {\n Object.assign(res, {\n cellRendererParams: {\n innerRenderer: colDef.cellRenderer,\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 __decorate$2D([\n Autowired('columnModel')\n ], AutoGroupColService.prototype, \"columnModel\", void 0);\n __decorate$2D([\n Autowired('columnFactory')\n ], AutoGroupColService.prototype, \"columnFactory\", void 0);\n AutoGroupColService = __decorate$2D([\n Bean('autoGroupColService')\n ], AutoGroupColService);\n return AutoGroupColService;\n}(BeanStub));\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}\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 startCase\n * @param {string} camelCase\n * @return {string}\n */\nfunction camelCaseToHumanText(camelCase) {\n if (!camelCase || camelCase == null) {\n return null;\n }\n // either split on a lowercase followed by uppercase ie asHereTo -> as Here To\n var rex = /([a-z])([A-Z])/g;\n // or starts with uppercase and we take all expect the last which is assumed to be part of next word if followed by lowercase HEREToThere -> HERE To There\n var rexCaps = /([A-Z]+)([A-Z])([a-z])/g;\n var words = camelCase\n .replace(rex, '$1 $2')\n .replace(rexCaps, '$1 $2$3')\n .replace(/\\./g, ' ')\n .split(' ');\n return words.map(function (word) { return word.substring(0, 1).toUpperCase() + ((word.length > 1) ? word.substring(1, word.length) : ''); }).join(' ');\n}\n/**\n * Converts a camelCase string into hyphenated string\n * @param {string} camelCase\n * @return {string}\n */\nfunction camelCaseToHyphenated(camelCase) {\n return camelCase.replace(/[A-Z]/g, function (s) { return \"-\" + s.toLocaleLowerCase(); });\n}\n\nvar StringUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n utf8_encode: utf8_encode,\n capitalise: capitalise,\n escapeString: escapeString,\n camelCaseToHumanText: camelCaseToHumanText,\n camelCaseToHyphenated: camelCaseToHyphenated\n});\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\nvar ColDefUtil = /** @class */ (function () {\n function ColDefUtil() {\n }\n ColDefUtil.ColDefPropertyMap = {\n headerName: undefined,\n columnGroupShow: undefined,\n headerClass: undefined,\n toolPanelClass: undefined,\n headerValueGetter: undefined,\n pivotKeys: undefined,\n groupId: undefined,\n colId: undefined,\n sort: undefined,\n initialSort: undefined,\n field: undefined,\n type: undefined,\n cellDataType: undefined,\n tooltipComponent: undefined,\n tooltipField: undefined,\n headerTooltip: undefined,\n cellClass: undefined,\n showRowGroup: undefined,\n filter: undefined,\n initialAggFunc: undefined,\n defaultAggFunc: undefined,\n aggFunc: undefined,\n pinned: undefined,\n initialPinned: undefined,\n chartDataType: undefined,\n cellEditorPopupPosition: undefined,\n headerGroupComponent: undefined,\n headerGroupComponentParams: undefined,\n cellStyle: undefined,\n cellRenderer: undefined,\n cellRendererParams: undefined,\n cellEditor: undefined,\n cellEditorParams: undefined,\n filterParams: undefined,\n pivotValueColumn: undefined,\n headerComponent: undefined,\n headerComponentParams: undefined,\n floatingFilterComponent: undefined,\n floatingFilterComponentParams: undefined,\n tooltipComponentParams: undefined,\n refData: undefined,\n columnsMenuParams: undefined,\n children: undefined,\n sortingOrder: undefined,\n allowedAggFuncs: undefined,\n menuTabs: undefined,\n pivotTotalColumnIds: undefined,\n cellClassRules: undefined,\n icons: undefined,\n sortIndex: undefined,\n initialSortIndex: undefined,\n flex: undefined,\n initialFlex: undefined,\n width: undefined,\n initialWidth: undefined,\n minWidth: undefined,\n maxWidth: undefined,\n rowGroupIndex: undefined,\n initialRowGroupIndex: undefined,\n pivotIndex: undefined,\n initialPivotIndex: undefined,\n suppressCellFlash: undefined,\n suppressColumnsToolPanel: undefined,\n suppressFiltersToolPanel: undefined,\n openByDefault: undefined,\n marryChildren: undefined,\n suppressStickyLabel: undefined,\n hide: undefined,\n initialHide: undefined,\n rowGroup: undefined,\n initialRowGroup: undefined,\n pivot: undefined,\n initialPivot: undefined,\n checkboxSelection: undefined,\n showDisabledCheckboxes: undefined,\n headerCheckboxSelection: undefined,\n headerCheckboxSelectionFilteredOnly: undefined,\n headerCheckboxSelectionCurrentPageOnly: undefined,\n suppressMenu: undefined,\n suppressMovable: undefined,\n lockPosition: undefined,\n lockVisible: undefined,\n lockPinned: undefined,\n unSortIcon: undefined,\n suppressSizeToFit: undefined,\n suppressAutoSize: undefined,\n enableRowGroup: undefined,\n enablePivot: undefined,\n enableValue: undefined,\n editable: undefined,\n suppressPaste: undefined,\n suppressNavigable: undefined,\n enableCellChangeFlash: undefined,\n rowDrag: undefined,\n dndSource: undefined,\n autoHeight: undefined,\n wrapText: undefined,\n sortable: undefined,\n resizable: undefined,\n singleClickEdit: undefined,\n floatingFilter: undefined,\n cellEditorPopup: undefined,\n suppressFillHandle: undefined,\n wrapHeaderText: undefined,\n autoHeaderHeight: undefined,\n dndSourceOnRowDrag: undefined,\n valueGetter: undefined,\n valueSetter: undefined,\n filterValueGetter: undefined,\n keyCreator: undefined,\n valueFormatter: undefined,\n valueParser: undefined,\n comparator: undefined,\n equals: undefined,\n pivotComparator: undefined,\n suppressKeyboardEvent: undefined,\n suppressHeaderKeyboardEvent: undefined,\n colSpan: undefined,\n rowSpan: undefined,\n getQuickFilterText: undefined,\n onCellValueChanged: undefined,\n onCellClicked: undefined,\n onCellDoubleClicked: undefined,\n onCellContextMenu: undefined,\n rowDragText: undefined,\n tooltipValueGetter: undefined,\n cellRendererSelector: undefined,\n cellEditorSelector: undefined,\n suppressSpanHeaderHeight: undefined,\n useValueFormatterForExport: undefined,\n useValueParserForImport: undefined,\n };\n ColDefUtil.ALL_PROPERTIES = Object.keys(ColDefUtil.ColDefPropertyMap);\n return ColDefUtil;\n}());\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 __spreadArray$o = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\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', 'gridId',\n 'quickFilterText', 'rowModelType', 'editType', 'domLayout', 'clipboardDelimiter', 'rowGroupPanelShow',\n 'multiSortKey', 'pivotColumnGroupTotals', 'pivotRowTotals', 'pivotPanelShow', 'fillHandleDirection',\n 'serverSideStoreType', 'groupDisplayType', 'treeDataDisplayType', 'colResizeDefault', 'tooltipTrigger',\n 'serverSidePivotResultFieldSeparator',\n ];\n PropertyKeys.OBJECT_PROPERTIES = [\n 'components', 'rowStyle', 'context', 'autoGroupColumnDef', 'localeText', 'icons',\n 'datasource', 'serverSideDatasource', 'viewportDatasource', 'groupRowRendererParams', 'aggFuncs', 'fullWidthCellRendererParams',\n 'defaultColGroupDef', 'defaultColDef', 'defaultCsvExportParams', 'defaultExcelExportParams', 'columnTypes',\n 'rowClassRules', 'detailCellRendererParams', 'loadingCellRendererParams', 'loadingOverlayComponentParams',\n 'noRowsOverlayComponentParams', 'popupParent', 'statusBar', 'sideBar', 'chartThemeOverrides',\n 'customChartThemes', 'chartToolPanelsDef', 'dataTypeDefinitions', 'advancedFilterModel', 'advancedFilterParent',\n 'advancedFilterBuilderParams',\n ];\n PropertyKeys.ARRAY_PROPERTIES = [\n 'sortingOrder', 'alignedGrids', 'rowData', 'columnDefs', 'excelStyles', 'pinnedTopRowData', 'pinnedBottomRowData', 'chartThemes', 'rowClass',\n ];\n PropertyKeys.NUMBER_PROPERTIES = [\n 'rowHeight', 'detailRowHeight', 'rowBuffer', 'headerHeight', 'groupHeaderHeight', 'floatingFiltersHeight',\n 'pivotHeaderHeight', 'pivotGroupHeaderHeight', 'groupDefaultExpanded', 'pivotDefaultExpanded', 'viewportRowModelPageSize',\n 'viewportRowModelBufferSize', 'autoSizePadding', 'maxBlocksInCache', 'maxConcurrentDatasourceRequests', 'tooltipShowDelay',\n 'tooltipHideDelay', 'cacheOverflowSize', 'paginationPageSize', 'cacheBlockSize', 'infiniteInitialRowCount', 'serverSideInitialRowCount', 'scrollbarWidth',\n 'asyncTransactionWaitMillis', 'blockLoadDebounceMillis', 'keepDetailRowsCount',\n 'undoRedoCellEditingLimit', 'cellFlashDelay', 'cellFadeDelay', 'tabIndex'\n ];\n PropertyKeys.BOOLEAN_PROPERTIES = [\n 'suppressMakeColumnVisibleAfterUnGroup', 'suppressRowClickSelection', 'suppressCellFocus', 'suppressHorizontalScroll',\n 'alwaysShowHorizontalScroll', 'alwaysShowVerticalScroll', 'debug', 'enableBrowserTooltips', 'enableCellExpressions', 'groupSelectsChildren',\n 'groupIncludeTotalFooter', 'groupSuppressBlankHeader', 'suppressMenuHide', 'suppressRowDeselection', 'unSortIcon',\n 'suppressMultiSort', 'alwaysMultiSort', 'singleClickEdit', 'suppressLoadingOverlay', 'suppressNoRowsOverlay', 'suppressAutoSize',\n 'skipHeaderOnAutoSize', 'suppressParentsInRowNodes', 'suppressColumnMoveAnimation', 'suppressMovableColumns', 'suppressFieldDotNotation',\n 'enableRangeSelection', 'enableRangeHandle', 'enableFillHandle', 'suppressClearOnFillReduction', 'deltaSort', 'suppressTouch', 'suppressAsyncEvents',\n 'allowContextMenuWithControlKey', 'suppressContextMenu', 'rememberGroupStateWhenNewData', 'enableCellChangeFlash', 'suppressDragLeaveHidesColumns',\n 'suppressRowGroupHidesColumns', 'suppressMiddleClickScrolls', 'suppressPreventDefaultOnMouseWheel', 'suppressCopyRowsToClipboard', 'copyHeadersToClipboard',\n 'copyGroupHeadersToClipboard', 'pivotMode', 'suppressAggFuncInHeader', 'suppressColumnVirtualisation', 'alwaysAggregateAtRootLevel', 'suppressAggAtRootLevel',\n 'suppressFocusAfterRefresh', 'functionsPassive', 'functionsReadOnly', 'animateRows', 'groupSelectsFiltered', 'groupRemoveSingleChildren',\n 'groupRemoveLowestSingleChildren', 'enableRtl', 'suppressClickEdit', 'rowDragEntireRow', 'rowDragManaged', 'suppressRowDrag', 'suppressMoveWhenRowDragging',\n 'rowDragMultiRow', 'enableGroupEdit', 'embedFullWidthRows', 'suppressPaginationPanel', 'groupHideOpenParents', 'groupAllowUnbalanced', 'pagination',\n 'paginationAutoPageSize', 'suppressScrollOnNewData', 'suppressScrollWhenPopupsAreOpen', 'purgeClosedRowNodes', 'cacheQuickFilter', 'includeHiddenColumnsInQuickFilter',\n 'excludeHiddenColumnsFromQuickFilter', 'ensureDomOrder', 'accentedSort', 'suppressChangeDetection', 'valueCache', 'valueCacheNeverExpires', 'aggregateOnlyChangedColumns',\n 'suppressAnimationFrame', 'suppressExcelExport', 'suppressCsvExport', 'treeData', 'masterDetail', 'suppressMultiRangeSelection', 'enterMovesDown',\n 'enterMovesDownAfterEdit', 'enterNavigatesVerticallyAfterEdit', 'enterNavigatesVertically', 'suppressPropertyNamesCheck', 'rowMultiSelectWithClick',\n 'suppressRowHoverHighlight', 'suppressRowTransform', 'suppressClipboardPaste', 'suppressLastEmptyLineOnPaste', 'enableCharts', 'enableChartToolPanelsButton',\n 'suppressChartToolPanelsButton', 'suppressMaintainUnsortedOrder', 'enableCellTextSelection', 'suppressBrowserResizeObserver', 'suppressMaxRenderedRowRestriction',\n 'excludeChildrenWhenTreeDataFiltering', 'tooltipMouseTrack', 'tooltipInteraction', 'keepDetailRows', 'paginateChildRows', 'preventDefaultOnContextMenu',\n 'undoRedoCellEditing', 'allowDragFromColumnsToolPanel', 'pivotSuppressAutoColumn', 'suppressExpandablePivotGroups', 'debounceVerticalScrollbar', 'detailRowAutoHeight',\n 'serverSideFilteringAlwaysResets', 'serverSideFilterAllLevels', 'serverSideSortingAlwaysResets', 'serverSideSortAllLevels', 'serverSideOnlyRefreshFilteredGroups',\n 'serverSideSortOnServer', 'serverSideFilterOnServer', 'suppressAggFilteredOnly', 'showOpenedGroup', 'suppressClipboardApi', 'suppressModelUpdateAfterUpdateTransaction',\n 'stopEditingWhenCellsLoseFocus', 'maintainColumnOrder', 'groupMaintainOrder', 'columnHoverHighlight', 'suppressReactUi', 'readOnlyEdit', 'suppressRowVirtualisation',\n 'enableCellEditingOnBackspace', 'resetRowDataOnUpdate', 'removePivotHeaderRowWhenSingleValueColumn', 'suppressCopySingleCellRanges', 'suppressGroupRowsSticky',\n 'suppressServerSideInfiniteScroll', 'rowGroupPanelSuppressSort', 'allowShowChangeAfterFilter', 'suppressCutToClipboard', 'enableAdvancedFilter',\n 'includeHiddenColumnsInAdvancedFilter',\n ];\n /** You do not need to include event callbacks in this list, as they are generated automatically. */\n PropertyKeys.FUNCTIONAL_PROPERTIES = [\n 'doesExternalFilterPass', 'processSecondaryColDef', 'processSecondaryColGroupDef', 'processPivotResultColDef',\n 'processPivotResultColGroupDef', 'getBusinessKeyForNode', 'isRowSelectable', 'rowDragText',\n 'groupRowRenderer', 'fullWidthCellRenderer',\n 'loadingCellRenderer', 'loadingOverlayComponent', 'noRowsOverlayComponent',\n 'detailCellRenderer', 'quickFilterParser', 'quickFilterMatcher'\n ];\n PropertyKeys.CALLBACK_PROPERTIES = [\n 'getLocaleText', 'isExternalFilterPresent', 'getRowHeight', 'getRowClass', 'getRowStyle', 'getContextMenuItems', 'getMainMenuItems',\n 'processRowPostCreate', 'processCellForClipboard', 'getGroupRowAgg', 'isFullWidthRow',\n 'sendToClipboard', 'navigateToNextHeader', 'tabToNextHeader', 'navigateToNextCell',\n 'tabToNextCell', 'processCellFromClipboard', 'getDocument', 'postProcessPopup', 'getChildCount', 'getDataPath', 'isRowMaster', 'postSortRows', 'processHeaderForClipboard',\n 'processGroupHeaderForClipboard', 'paginationNumberFormatter', 'processDataFromClipboard', 'getServerSideGroupKey', 'isServerSideGroup',\n 'createChartContainer', 'getChartToolbarItems', 'fillOperation', 'isApplyServerSideTransaction', 'getServerSideStoreParams', 'getServerSideGroupLevelParams',\n 'isServerSideGroupOpenByDefault', 'isGroupOpenByDefault', 'initialGroupOrderComparator', 'groupIncludeFooter',\n 'loadingCellRendererSelector', 'getRowId', 'groupAggFiltering'\n ];\n PropertyKeys.FUNCTION_PROPERTIES = __spreadArray$o(__spreadArray$o([], __read$v(PropertyKeys.FUNCTIONAL_PROPERTIES)), __read$v(PropertyKeys.CALLBACK_PROPERTIES));\n PropertyKeys.ALL_PROPERTIES = __spreadArray$o(__spreadArray$o(__spreadArray$o(__spreadArray$o(__spreadArray$o(__spreadArray$o([], __read$v(PropertyKeys.ARRAY_PROPERTIES)), __read$v(PropertyKeys.OBJECT_PROPERTIES)), __read$v(PropertyKeys.STRING_PROPERTIES)), __read$v(PropertyKeys.NUMBER_PROPERTIES)), __read$v(PropertyKeys.FUNCTION_PROPERTIES)), __read$v(PropertyKeys.BOOLEAN_PROPERTIES));\n return PropertyKeys;\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 __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 __spreadArray$n = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar ComponentUtil = /** @class */ (function () {\n function ComponentUtil() {\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.getCoercionLookup = function () {\n var coercionLookup = {};\n __spreadArray$n(__spreadArray$n(__spreadArray$n(__spreadArray$n(__spreadArray$n([], __read$u(ComponentUtil.ARRAY_PROPERTIES)), __read$u(ComponentUtil.OBJECT_PROPERTIES)), __read$u(ComponentUtil.STRING_PROPERTIES)), __read$u(ComponentUtil.FUNCTION_PROPERTIES)), __read$u(ComponentUtil.EVENT_CALLBACKS)).forEach(function (key) { return coercionLookup[key] = 'none'; });\n ComponentUtil.BOOLEAN_PROPERTIES\n .forEach(function (key) { return coercionLookup[key] = 'boolean'; });\n ComponentUtil.NUMBER_PROPERTIES\n .forEach(function (key) { return coercionLookup[key] = 'number'; });\n return coercionLookup;\n };\n ComponentUtil.getValue = function (key, rawValue) {\n var coercionStep = ComponentUtil.coercionLookup[key];\n if (coercionStep) {\n var newValue = rawValue;\n switch (coercionStep) {\n case 'number': {\n newValue = ComponentUtil.toNumber(rawValue);\n break;\n }\n case 'boolean': {\n newValue = ComponentUtil.toBoolean(rawValue);\n break;\n }\n case 'none': {\n // if groupAggFiltering exists and isn't a function, handle as a boolean.\n if (key === 'groupAggFiltering' && typeof rawValue !== 'function') {\n newValue = ComponentUtil.toBoolean(rawValue);\n }\n break;\n }\n }\n return newValue;\n }\n return undefined;\n };\n ComponentUtil.getGridOptionKeys = function (component, isVue) {\n // Vue does not have keys in prod so instead need to run through all the \n // gridOptions checking for presence of a gridOption key.\n return isVue\n ? Object.keys(ComponentUtil.coercionLookup)\n : Object.keys(component);\n };\n ComponentUtil.copyAttributesToGridOptions = function (gridOptions, component, isVue) {\n if (isVue === void 0) { isVue = false; }\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 keys = ComponentUtil.getGridOptionKeys(component, isVue);\n // Loop through component props, if they are not undefined and a valid gridOption copy to gridOptions\n keys.forEach(function (key) {\n var value = component[key];\n if (typeof value !== 'undefined') {\n var coercedValue = ComponentUtil.getValue(key, value);\n if (coercedValue !== undefined) {\n pGridOptions[key] = coercedValue;\n }\n }\n });\n return gridOptions;\n };\n ComponentUtil.processOnChange = function (changes, api) {\n var _this = this;\n if (!changes || Object.keys(changes).length === 0) {\n return;\n }\n this.changeSetId++;\n var changesToApply = __assign$n({}, changes);\n // We manually call these updates so that we can provide a different source of gridOptionsChanged\n // We do not call setProperty as this will be called by the grid api methods\n if (changesToApply.columnTypes) {\n api.setColumnTypes(changesToApply.columnTypes.currentValue, \"gridOptionsChanged\");\n delete changesToApply.columnTypes;\n }\n if (changesToApply.autoGroupColumnDef) {\n api.setAutoGroupColumnDef(changesToApply.autoGroupColumnDef.currentValue, \"gridOptionsChanged\");\n delete changesToApply.autoGroupColumnDef;\n }\n if (changesToApply.defaultColDef) {\n api.setDefaultColDef(changesToApply.defaultColDef.currentValue, \"gridOptionsChanged\");\n delete changesToApply.defaultColDef;\n }\n if (changesToApply.columnDefs) {\n api.setColumnDefs(changesToApply.columnDefs.currentValue, \"gridOptionsChanged\");\n delete changesToApply.columnDefs;\n }\n // Update all the properties on GridOptions first so that we can optimise updates\n // and so that any update logic triggered off events is only run after all the\n // props have been updated. This avoids potential sync issues\n var updates = Object.keys(changesToApply).map(function (key) {\n var gridKey = key;\n var coercedValue = ComponentUtil.getValue(gridKey, changesToApply[gridKey].currentValue);\n // Use isChanged to control event via force option as by the time we call __updateProperty the gridOptions[key] will already contain the new value.\n var isChanged = api.__setPropertyOnly(gridKey, coercedValue);\n return { gridKey: gridKey, coercedValue: coercedValue, isChanged: isChanged };\n })\n // Only include properties that have changed\n .filter(function (u) { return u.isChanged; });\n // Then cause any property change event listeners to be fired.\n var updatedKeys = updates.map(function (u) { return u.gridKey; });\n updates.forEach(function (u) { return api.__updateProperty(u.gridKey, u.coercedValue, u.isChanged, { id: _this.changeSetId, properties: updatedKeys }); });\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 events\n ComponentUtil.EVENTS = values(Events);\n // events that are internal to AG Grid and should not be exposed to users via documentation or generated framework components\n /** Exclude the following internal events from code generation to prevent exposing these events via framework components */\n ComponentUtil.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 Events.EVENT_CELL_FOCUS_CLEARED,\n Events.EVENT_GRID_STYLES_CHANGED,\n Events.EVENT_FILTER_DESTROYED,\n Events.EVENT_ROW_DATA_UPDATE_STARTED,\n Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED,\n Events.EVENT_DATA_TYPES_INFERRED,\n Events.EVENT_FIELD_VALUE_CHANGED,\n Events.EVENT_FIELD_PICKER_VALUE_SELECTED\n ];\n // events that are available for use by users of AG Grid and so should be documented\n /** EVENTS that should be exposed via code generation for the framework components. */\n ComponentUtil.PUBLIC_EVENTS = ComponentUtil.EVENTS.filter(function (e) { return !includes(ComponentUtil.EXCLUDED_INTERNAL_EVENTS, e); });\n // onXXX methods, based on the above events\n ComponentUtil.EVENT_CALLBACKS = ComponentUtil.EVENTS.map(function (event) { return ComponentUtil.getCallbackForEvent(event); });\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 ComponentUtil.ALL_PROPERTIES_SET = new Set(PropertyKeys.ALL_PROPERTIES);\n ComponentUtil.changeSetId = 0;\n ComponentUtil.coercionLookup = ComponentUtil.getCoercionLookup();\n return ComponentUtil;\n}());\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};\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).values;\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 */\nfunction fuzzySuggestions(inputValue, allSuggestions, hideIrrelevant, filterByPercentageOfBestMatch) {\n var e_1, _a;\n var thisSuggestions = allSuggestions.map(function (text, idx) { return ({\n value: text,\n relevance: stringWeightedDistances(inputValue.toLowerCase(), text.toLocaleLowerCase()),\n idx: idx\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 if (thisSuggestions.length > 0 && filterByPercentageOfBestMatch && filterByPercentageOfBestMatch > 0) {\n var bestMatch = thisSuggestions[0].relevance;\n var limit_1 = bestMatch * filterByPercentageOfBestMatch;\n thisSuggestions = thisSuggestions.filter(function (suggestion) { return limit_1 - suggestion.relevance < 0; });\n }\n var values = [];\n var indices = [];\n try {\n for (var thisSuggestions_1 = __values$7(thisSuggestions), thisSuggestions_1_1 = thisSuggestions_1.next(); !thisSuggestions_1_1.done; thisSuggestions_1_1 = thisSuggestions_1.next()) {\n var suggestion = thisSuggestions_1_1.value;\n values.push(suggestion.value);\n indices.push(suggestion.idx);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (thisSuggestions_1_1 && !thisSuggestions_1_1.done && (_a = thisSuggestions_1.return)) _a.call(thisSuggestions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return { values: values, indices: indices };\n}\nfunction stringWeightedDistances(str1, str2) {\n var a = str1.replace(/\\s/g, '');\n var b = str2.replace(/\\s/g, '');\n var weight = 0;\n var lastIndex = -1;\n for (var i = 0; i < a.length; i++) {\n var idx = b.indexOf(a[i], lastIndex + 1);\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});\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 __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 __spreadArray$m = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nfunction logDeprecation(version, oldProp, newProp, message) {\n var newPropMsg = newProp ? \"Please use '\" + newProp + \"' instead. \" : '';\n doOnce(function () { return console.warn(\"AG Grid: since v\" + version + \", '\" + oldProp + \"' is deprecated. \" + newPropMsg + (message !== null && message !== void 0 ? message : '')); }, \"Deprecated_\" + oldProp);\n}\n// Vue adds these properties to all objects, so we ignore them when checking for invalid properties\nvar VUE_FRAMEWORK_PROPS = ['__ob__', '__v_skip', '__metadata__'];\nvar GridOptionsValidator = /** @class */ (function () {\n function GridOptionsValidator() {\n this.deprecatedProperties = {\n rememberGroupStateWhenNewData: { version: '24', message: 'Now that transaction updates are possible and they keep group state, this feature is no longer needed.' },\n serverSideFilteringAlwaysResets: { version: '28.0', newProp: 'serverSideOnlyRefreshFilteredGroups', copyToNewProp: true, },\n serverSideSortingAlwaysResets: { version: '28.0', newProp: 'serverSideSortAllLevels', copyToNewProp: true, },\n suppressReactUi: { version: '28', message: 'The legacy React rendering engine is deprecated and will be removed in the next major version of the grid.' },\n processSecondaryColDef: { version: '28', newProp: 'processPivotResultColDef', copyToNewProp: true },\n processSecondaryColGroupDef: { version: '28', newProp: 'processPivotResultColGroupDef', copyToNewProp: true },\n getServerSideStoreParams: { version: '28', newProp: 'getServerSideGroupLevelParams', copyToNewProp: true },\n serverSideInfiniteScroll: { version: '29', message: 'Infinite Scrolling is now the default behaviour. This can be suppressed with `suppressServerSideInfiniteScroll`.' },\n enableChartToolPanelsButton: { version: '29', message: 'The Chart Tool Panels button is now enabled by default. To hide the Chart Tool Panels button and display the hamburger button instead, set suppressChartToolPanelsButton=true.' },\n functionsPassive: { version: '29.2' },\n onColumnRowGroupChangeRequest: { version: '29.2' },\n onColumnPivotChangeRequest: { version: '29.2' },\n onColumnValueChangeRequest: { version: '29.2' },\n onColumnAggFuncChangeRequest: { version: '29.2' },\n serverSideFilterAllLevels: { version: '30', message: 'All server-side group levels are now filtered by default. This can be toggled using `serverSideOnlyRefreshFilteredGroups`.' },\n suppressAggAtRootLevel: { version: '30', message: 'The root level aggregation is now suppressed by default. This can be toggled using `alwaysAggregateAtRootLevel`.' },\n excludeHiddenColumnsFromQuickFilter: { version: '30', message: 'Hidden columns are now excluded from the Quick Filter by default. This can be toggled using `includeHiddenColumnsInQuickFilter`.' },\n enterMovesDown: { version: '30', newProp: 'enterNavigatesVertically', copyToNewProp: true },\n enterMovesDownAfterEdit: { version: '30', newProp: 'enterNavigatesVerticallyAfterEdit', copyToNewProp: true },\n suppressParentsInRowNodes: { version: '30.2', message: 'Using suppressParentsInRowNodes is no longer recommended. To serialize nodes it is now recommended to instead remove the parent node reference before serialization.' },\n };\n }\n GridOptionsValidator.prototype.pickOneWarning = function (prop1, prop2) {\n console.warn(\"AG Grid: \" + prop1 + \" and \" + prop2 + \" do not work with each other, you need to pick one.\");\n };\n GridOptionsValidator.prototype.init = function () {\n var _this = this;\n this.checkForDeprecated();\n this.checkForViolations();\n if (this.gridOptions.suppressPropertyNamesCheck !== true) {\n this.checkGridOptionsProperties();\n this.checkColumnDefProperties();\n }\n this.checkColumnDefViolations();\n if (this.gridOptionsService.is('groupSelectsChildren') && this.gridOptionsService.is('suppressParentsInRowNodes')) {\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.gridOptionsService.is('groupSelectsChildren')) {\n if (this.gridOptionsService.get('rowSelection') !== 'multiple') {\n console.warn(\"AG Grid: rowSelection must be 'multiple' for groupSelectsChildren to make sense\");\n }\n }\n if (this.gridOptionsService.is('groupRemoveSingleChildren') && this.gridOptionsService.is('groupHideOpenParents')) {\n this.pickOneWarning('groupRemoveSingleChildren', 'groupHideOpenParents');\n }\n if (this.gridOptionsService.isRowModelType('serverSide')) {\n var msg = function (prop, alt) { return (\"AG Grid: '\" + prop + \"' is not supported on the Server-Side Row Model.\" + (alt ? \" Please use \" + alt + \" instead.\" : '')); };\n if (this.gridOptionsService.exists('groupDefaultExpanded')) {\n console.warn(msg('groupDefaultExpanded', 'isServerSideGroupOpenByDefault callback'));\n }\n if (this.gridOptionsService.exists('groupIncludeFooter') && this.gridOptionsService.is('suppressServerSideInfiniteScroll')) {\n console.warn(msg('groupIncludeFooter'));\n }\n if (this.gridOptionsService.exists('groupIncludeTotalFooter')) {\n console.warn(msg('groupIncludeTotalFooter'));\n }\n }\n if (this.gridOptionsService.is('enableRangeSelection')) {\n ModuleRegistry.__assertRegistered(ModuleNames.RangeSelectionModule, 'enableRangeSelection', this.gridOptionsService.getGridId());\n }\n else if (this.gridOptionsService.is('enableRangeHandle') || this.gridOptionsService.is('enableFillHandle')) {\n console.warn(\"AG Grid: 'enableRangeHandle' or 'enableFillHandle' will not work unless 'enableRangeSelection' is set to true\");\n }\n var validateRegistered = function (prop, module) { return _this.gridOptionsService.exists(prop) && ModuleRegistry.__assertRegistered(module, prop, _this.gridOptionsService.getGridId()); };\n // Ensure the SideBar is registered which will then lead them to register Column / Filter Tool panels as required by their config.\n // It is possible to use the SideBar only with your own custom tool panels.\n validateRegistered('sideBar', ModuleNames.SideBarModule);\n validateRegistered('statusBar', ModuleNames.StatusBarModule);\n validateRegistered('enableCharts', ModuleNames.GridChartsModule);\n validateRegistered('getMainMenuItems', ModuleNames.MenuModule);\n validateRegistered('getContextMenuItems', ModuleNames.MenuModule);\n validateRegistered('allowContextMenuWithControlKey', ModuleNames.MenuModule);\n validateRegistered('enableAdvancedFilter', ModuleNames.AdvancedFilterModule);\n validateRegistered('treeData', ModuleNames.RowGroupingModule);\n validateRegistered('enableRangeSelection', ModuleNames.RangeSelectionModule);\n validateRegistered('masterDetail', ModuleNames.MasterDetailModule);\n };\n GridOptionsValidator.prototype.checkColumnDefProperties = function () {\n var _this = this;\n if (this.gridOptions.columnDefs == null) {\n return;\n }\n var validProperties = ColDefUtil.ALL_PROPERTIES;\n var validateColDef = function (colDef, propertyName) {\n var userProperties = Object.getOwnPropertyNames(colDef);\n _this.checkProperties(userProperties, __spreadArray$m(__spreadArray$m([], __read$t(validProperties)), __read$t(VUE_FRAMEWORK_PROPS)), validProperties, propertyName, 'https://www.ag-grid.com/javascript-data-grid/column-properties/');\n if (colDef.children) {\n colDef.children.forEach(function (child) { return validateColDef(child, 'columnDefs.children'); });\n }\n };\n this.gridOptions.columnDefs.forEach(function (colDef) { return validateColDef(colDef, 'columnDefs'); });\n if (this.gridOptions.defaultColDef) {\n validateColDef(this.gridOptions.defaultColDef, 'defaultColDef');\n }\n };\n GridOptionsValidator.prototype.checkColumnDefViolations = function () {\n var _a;\n var rowModel = (_a = this.gridOptionsService.get('rowModelType')) !== null && _a !== void 0 ? _a : 'clientSide';\n var unsupportedPropertiesMap = {\n infinite: ['headerCheckboxSelection', 'headerCheckboxSelectionFilteredOnly', 'headerCheckboxSelectionCurrentPageOnly'],\n viewport: ['headerCheckboxSelection', 'headerCheckboxSelectionFilteredOnly', 'headerCheckboxSelectionCurrentPageOnly'],\n serverSide: ['headerCheckboxSelectionFilteredOnly', 'headerCheckboxSelectionCurrentPageOnly'],\n clientSide: [],\n };\n var unsupportedProperties = unsupportedPropertiesMap[rowModel];\n if (!unsupportedProperties) {\n return;\n }\n var isMultiSelect = this.gridOptionsService.get('rowSelection') === 'multiple';\n var multiSelectDependencies = ['headerCheckboxSelection', 'headerCheckboxSelectionFilteredOnly', 'headerCheckboxSelectionCurrentPageOnly'];\n var validateColDef = function (colDef) {\n if (!isMultiSelect) {\n multiSelectDependencies.forEach(function (property) {\n if (property in colDef && !!colDef[property]) {\n console.warn(\"AG Grid: Column property \" + property + \" is not supported unless rowSelection='multiple'.\");\n }\n });\n }\n unsupportedProperties.forEach(function (property) {\n if (property in colDef && !!colDef[property]) {\n console.warn(\"AG Grid: Column property \" + property + \" is not supported with the row model type \" + rowModel + \".\");\n }\n });\n };\n if (this.gridOptions.columnDefs != null) {\n this.gridOptions.columnDefs.forEach(function (colDef) { return validateColDef(colDef); });\n }\n if (this.gridOptions.autoGroupColumnDef != null) {\n validateColDef(this.gridOptions.autoGroupColumnDef);\n }\n if (this.gridOptions.defaultColDef != null) {\n validateColDef(this.gridOptions.defaultColDef);\n }\n };\n GridOptionsValidator.prototype.checkGridOptionsProperties = function () {\n var userProperties = Object.getOwnPropertyNames(this.gridOptions);\n var validProperties = __spreadArray$m(__spreadArray$m([], __read$t(PropertyKeys.ALL_PROPERTIES)), __read$t(ComponentUtil.EVENT_CALLBACKS));\n var validPropertiesAndExceptions = __spreadArray$m(__spreadArray$m(__spreadArray$m(__spreadArray$m([], __read$t(validProperties)), ['api', 'columnApi']), __read$t(VUE_FRAMEWORK_PROPS)), __read$t(Object.keys(this.deprecatedProperties)));\n this.checkProperties(userProperties, validPropertiesAndExceptions, validProperties, 'gridOptions', 'https://www.ag-grid.com/javascript-data-grid/grid-options/');\n };\n GridOptionsValidator.prototype.checkProperties = function (userProperties, validPropertiesAndExceptions, validProperties, containerName, docsUrl) {\n var invalidProperties = fuzzyCheckStrings(userProperties, validPropertiesAndExceptions, validProperties);\n iterateObject(invalidProperties, function (key, value) {\n doOnce(function () { return console.warn(\"AG Grid: invalid \" + containerName + \" property '\" + key + \"' did you mean any of these: \" + value.slice(0, 8).join(\", \")); }, 'invalidProperty' + containerName + key);\n });\n if (Object.keys(invalidProperties).length > 0) {\n doOnce(function () { return console.warn(\"AG Grid: to see all the valid \" + containerName + \" properties please check: \" + docsUrl); }, 'invalidProperties' + containerName + docsUrl);\n }\n };\n GridOptionsValidator.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 Object.entries(this.deprecatedProperties).forEach(function (_a) {\n var _b;\n var _c = __read$t(_a, 2), oldProp = _c[0], details = _c[1];\n var oldPropValue = options[oldProp];\n if (oldPropValue) {\n logDeprecation(details.version, oldProp, details.newProp, details.message);\n if (details.copyToNewProp && details.newProp && options[details.newProp] == null) {\n options[details.newProp] = (_b = details.newPropValue) !== null && _b !== void 0 ? _b : oldPropValue;\n }\n }\n });\n // Manual messages and deprecation behaviour that don't fit our standard approach above.\n if (options.serverSideStoreType) {\n console.warn('AG Grid: since v29.0, `serverSideStoreType` has been replaced by `suppressServerSideInfiniteScroll`. Set to false to use Partial Store, and true to use Full Store.');\n options.suppressServerSideInfiniteScroll = options.serverSideStoreType !== 'partial';\n }\n };\n GridOptionsValidator.prototype.checkForViolations = function () {\n if (this.gridOptionsService.is('treeData')) {\n this.treeDataViolations();\n }\n };\n GridOptionsValidator.prototype.treeDataViolations = function () {\n if (this.gridOptionsService.isRowModelType('clientSide')) {\n if (!this.gridOptionsService.exists('getDataPath')) {\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.gridOptionsService.isRowModelType('serverSide')) {\n if (!this.gridOptionsService.exists('isServerSideGroup')) {\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 (!this.gridOptionsService.exists('getServerSideGroupKey')) {\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 __decorate$2C([\n Autowired('gridOptions')\n ], GridOptionsValidator.prototype, \"gridOptions\", void 0);\n __decorate$2C([\n Autowired('gridOptionsService')\n ], GridOptionsValidator.prototype, \"gridOptionsService\", void 0);\n __decorate$2C([\n PostConstruct\n ], GridOptionsValidator.prototype, \"init\", null);\n GridOptionsValidator = __decorate$2C([\n Bean('gridOptionsValidator')\n ], GridOptionsValidator);\n return GridOptionsValidator;\n}());\nfunction matchesGroupDisplayType(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}\nfunction matchesTreeDataDisplayType(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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __param$8 = (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 __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 __spreadArray$l = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\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};\nvar ColumnModel = /** @class */ (function (_super) {\n __extends$34(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 // when we're waiting for cell data types to be inferred, we need to defer column resizing\n _this.shouldQueueResizeOperations = false;\n _this.resizeOperationQueue = [];\n return _this;\n }\n ColumnModel.prototype.init = function () {\n var _this = this;\n this.suppressColumnVirtualisation = this.gridOptionsService.is('suppressColumnVirtualisation');\n var pivotMode = this.gridOptionsService.is('pivotMode');\n if (this.isPivotSettingAllowed(pivotMode)) {\n this.pivotMode = pivotMode;\n }\n this.addManagedPropertyListeners(['groupDisplayType', 'treeData'], function () { return _this.buildAutoGroupColumns(); });\n this.addManagedPropertyListener('autoGroupColumnDef', function () { return _this.onAutoGroupColumnDefChanged(); });\n this.addManagedPropertyListener('defaultColDef', function (params) { return _this.onSharedColDefChanged(params.source); });\n this.addManagedPropertyListener('columnTypes', function (params) { return _this.onSharedColDefChanged(params.source); });\n };\n ColumnModel.prototype.buildAutoGroupColumns = function () {\n // Possible for update to be called before columns are present in which case there is nothing to do here.\n if (!this.columnDefs) {\n return;\n }\n this.autoGroupsNeedBuilding = true;\n this.forceRecreateAutoGroups = true;\n this.updateGridColumns();\n this.updateDisplayedColumns('gridOptionsChanged');\n };\n ColumnModel.prototype.onAutoGroupColumnDefChanged = function () {\n if (this.groupAutoColumns) {\n this.autoGroupColService.updateAutoGroupColumns(this.groupAutoColumns);\n }\n };\n ColumnModel.prototype.onSharedColDefChanged = function (source) {\n if (source === void 0) { source = 'api'; }\n // if we aren't going to force, update the auto cols in place\n if (this.groupAutoColumns) {\n this.autoGroupColService.updateAutoGroupColumns(this.groupAutoColumns);\n }\n this.createColumnsFromColumnDefs(true, source);\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.recreateColumnDefs = function (source) {\n if (source === void 0) { source = 'api'; }\n this.onSharedColDefChanged(source);\n };\n ColumnModel.prototype.destroyOldColumns = function (oldTree, newTree) {\n var oldObjectsById = {};\n if (!oldTree) {\n return;\n }\n // add in all old columns to be destroyed\n this.columnUtils.depthFirstOriginalTreeSearch(null, oldTree, function (child) {\n oldObjectsById[child.getInstanceId()] = child;\n });\n // however we don't destroy anything in the new tree. if destroying the grid, there is no new tree\n if (newTree) {\n this.columnUtils.depthFirstOriginalTreeSearch(null, newTree, function (child) {\n oldObjectsById[child.getInstanceId()] = null;\n });\n }\n // what's left can be destroyed\n var colsToDestroy = Object.values(oldObjectsById).filter(function (item) { return item != null; });\n this.destroyBeans(colsToDestroy);\n };\n ColumnModel.prototype.destroyColumns = function () {\n this.destroyOldColumns(this.primaryColumnTree);\n this.destroyOldColumns(this.secondaryBalancedTree);\n this.destroyOldColumns(this.groupAutoColsBalancedTree);\n };\n ColumnModel.prototype.createColumnsFromColumnDefs = function (colsPreviouslyExisted, source) {\n var _this = this;\n if (source === void 0) { source = 'api'; }\n // only need to dispatch before/after events if updating columns, never if setting columns for first time\n var dispatchEventsFunc = colsPreviouslyExisted ? this.compareColumnStatesAndDispatchEvents(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.destroyOldColumns(this.primaryColumnTree, balancedTreeResult.columnTree);\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 // unless the auto column needs rebuilt, 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 || this.autoGroupsNeedBuilding;\n if (processGridCols) {\n this.updateGridColumns();\n if (colsPreviouslyExisted && this.gridColsArePrimary && !this.gridOptionsService.is('maintainColumnOrder')) {\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 (dispatchEventsFunc) {\n dispatchEventsFunc();\n }\n this.dispatchNewColumnsLoaded(source);\n };\n ColumnModel.prototype.dispatchNewColumnsLoaded = function (source) {\n var newColumnsLoadedEvent = {\n type: Events.EVENT_NEW_COLUMNS_LOADED,\n source: source\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 var primaryColsOrdered = primaryColumns.filter(function (col) { return _this.gridColumns.indexOf(col) >= 0; });\n var otherCols = this.gridColumns.filter(function (col) { return primaryColsOrdered.indexOf(col) < 0; });\n this.gridColumns = __spreadArray$l(__spreadArray$l([], __read$s(otherCols)), __read$s(primaryColsOrdered));\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.gridOptionsService.is('enableRtl')) {\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. dispatches an event\n // if the list of columns has changed.\n // + setColumnWidth(), setViewportPosition(), setColumnDefs(), sizeColumnsToFit()\n ColumnModel.prototype.checkViewportColumns = function (afterScroll) {\n if (afterScroll === void 0) { afterScroll = false; }\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 afterScroll: afterScroll,\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.setViewportPosition = function (scrollWidth, scrollPosition, afterScroll) {\n if (afterScroll === void 0) { afterScroll = false; }\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(afterScroll);\n }\n }\n };\n ColumnModel.prototype.isPivotMode = function () {\n return this.pivotMode;\n };\n ColumnModel.prototype.isPivotSettingAllowed = function (pivot) {\n if (pivot && this.gridOptionsService.is('treeData')) {\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 groupDisplayType = 'custom', 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.gridOptionsService.is('enableRtl')) {\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 if (this.shouldQueueResizeOperations) {\n this.resizeOperationQueue.push(function () { return _this.autoSizeColumns(params); });\n return;\n }\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.gridOptionsService.is('skipHeaderOnAutoSize');\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, source, stopAtGroup);\n }\n this.dispatchColumnResizedEvent(columnsAutosized, true, 'autosizeColumns');\n };\n ColumnModel.prototype.dispatchColumnResizedEvent = 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.dispatchColumnChangedEvent = 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.dispatchColumnMovedEvent = function (params) {\n var movedColumns = params.movedColumns, source = params.source, toIndex = params.toIndex, finished = params.finished;\n var event = {\n type: Events.EVENT_COLUMN_MOVED,\n columns: movedColumns,\n column: movedColumns && movedColumns.length === 1 ? movedColumns[0] : null,\n toIndex: toIndex,\n finished: finished,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.dispatchColumnPinnedEvent = 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.dispatchColumnVisibleEvent = 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.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, source, 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$6(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$6(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(source);\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 var _this = this;\n if (source === void 0) { source = \"api\"; }\n if (this.shouldQueueResizeOperations) {\n this.resizeOperationQueue.push(function () { return _this.autoSizeAllColumns(skipHeader, source); });\n return;\n }\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.isColSpanActive = function () {\n return this.colSpanActive;\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, true, 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.gridOptionsService.is('suppressRowGroupHidesColumns')) {\n this.setColumnVisible(column, false, source);\n }\n if (!active && !this.gridOptionsService.is('suppressMakeColumnVisibleAfterUnGroup')) {\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, true, 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, detectOrderChange, columnCallback, source) {\n var _this = this;\n var changes = new Map();\n // store all original cols and their index.\n masterList.forEach(function (col, idx) { return changes.set(col, idx); });\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 masterList.forEach(function (col, idx) {\n var oldIndex = changes.get(col);\n // if the column was not in the list, we add it as it's a change\n // idx is irrelevant now.\n if (oldIndex === undefined) {\n changes.set(col, 0);\n return;\n }\n if (detectOrderChange && oldIndex !== idx) {\n // if we're detecting order changes, and the indexes differ, we retain this as it's changed\n return;\n }\n // otherwise remove this col, as it's unchanged.\n changes.delete(col);\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.dispatchColumnChangedEvent(eventName, __spreadArray$l([], __read$s(changes.keys())), 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, false, 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.gridOptionsService.get('colResizeDefault') === '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 dispatch event when finished\n if (finished) {\n var columns = resizeSets && resizeSets.length > 0 ? resizeSets[0].columns : null;\n this.dispatchColumnResizedEvent(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 dispatch '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 dispatch 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.dispatchColumnResizedEvent(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.dispatchColumnChangedEvent(Events.EVENT_COLUMN_VALUE_CHANGED, [column], source);\n };\n ColumnModel.prototype.moveRowGroupColumn = function (fromIndex, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n var column = this.rowGroupColumns[fromIndex];\n var impactedColumns = this.rowGroupColumns.slice(fromIndex, toIndex);\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: impactedColumns,\n column: impactedColumns.length === 1 ? impactedColumns[0] : null,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.moveColumns = function (columnsToMoveKeys, toIndex, source, finished) {\n if (source === void 0) { source = \"api\"; }\n if (finished === void 0) { finished = true; }\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 movedColumns = this.getGridColumns(columnsToMoveKeys);\n var failedRules = !this.doesMovePassRules(movedColumns, toIndex);\n if (failedRules) {\n return;\n }\n moveInArray(this.gridColumns, movedColumns, toIndex);\n this.updateDisplayedColumns(source);\n this.dispatchColumnMovedEvent({ movedColumns: movedColumns, source: source, toIndex: toIndex, finished: finished });\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 'left':\n return this.leftWidth;\n case '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 'left':\n return this.getDisplayedLeftColumns();\n case '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.gridOptionsService.isDomLayout('print')) {\n console.warn(\"AG Grid: 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 === 'left') {\n actualPinned = 'left';\n }\n else if (pinned === 'right') {\n actualPinned = '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, [\n this.primaryColumns || [],\n this.groupAutoColumns || [],\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 var _this = this;\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 stateItem = _this.getColumnStateFromColDef(column);\n if (missing(stateItem.rowGroupIndex) && stateItem.rowGroup) {\n stateItem.rowGroupIndex = letRowGroupIndex++;\n }\n if (missing(stateItem.pivotIndex) && stateItem.pivot) {\n stateItem.pivotIndex = letPivotIndex++;\n }\n columnStates.push(stateItem);\n });\n this.applyColumnState({ state: columnStates, applyOrder: true }, source);\n };\n ColumnModel.prototype.getColumnStateFromColDef = 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 return {\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 };\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 dispatchEventsFunc = _this.compareColumnStatesAndDispatchEvents(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(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 dispatchEventsFunc(); // 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(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.compareColumnStatesAndDispatchEvents = 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 var colsForState = _this.getPrimaryAndSecondaryAndAutoColumns();\n // dispatches generic ColumnEvents where all columns are returned rather than what has changed\n var dispatchWhenListsDifferent = 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 var changes = new Set(colsBefore);\n colsAfter.forEach(function (id) {\n // if the first list had it, delete it, as it's unchanged.\n if (!changes.delete(id)) {\n // if the second list has it, and first doesn't, add it.\n changes.add(id);\n }\n });\n var changesArr = __spreadArray$l([], __read$s(changes));\n var event = {\n type: eventType,\n columns: changesArr,\n column: changesArr.length === 1 ? changesArr[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 dispatchWhenListsDifferent(Events.EVENT_COLUMN_ROW_GROUP_CHANGED, startState.rowGroupColumns, _this.rowGroupColumns, columnIdMapper);\n dispatchWhenListsDifferent(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 _this.dispatchColumnChangedEvent(Events.EVENT_COLUMN_VALUE_CHANGED, changedValues, source);\n }\n var resizeChangePredicate = function (cs, c) { return cs.width != c.getActualWidth(); };\n _this.dispatchColumnResizedEvent(getChangedColumns(resizeChangePredicate), true, source);\n var pinnedChangePredicate = function (cs, c) { return cs.pinned != c.getPinned(); };\n _this.dispatchColumnPinnedEvent(getChangedColumns(pinnedChangePredicate), source);\n var visibilityChangePredicate = function (cs, c) { return cs.hide == c.isVisible(); };\n _this.dispatchColumnVisibleEvent(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.normaliseColumnMovedEventForColumnState(columnStateBefore, source);\n };\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.normaliseColumnMovedEventForColumnState = 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 this.dispatchColumnMovedEvent({ movedColumns: movedColumns, source: source, finished: true });\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 === 'desc' || 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.lookupGridColumn = function (key) {\n return this.gridColumnsMap[key];\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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\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.gridOptionsService.is('suppressAggFuncInHeader')) {\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.gridOptionsService.is('removePivotHeaderRowWhenSingleValueColumn') && 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.localeService.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, partId) {\n if (!colId) {\n return null;\n }\n if (colId instanceof ColumnGroup) {\n return colId;\n }\n var allColumnGroups = this.getAllDisplayedTrees();\n var checkPartId = typeof partId === '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 (checkPartId) {\n matched = colId === columnGroup.getGroupId() && partId === columnGroup.getPartId();\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 };\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 // 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.destroyOldColumns(this.secondaryBalancedTree, balancedTreeResult.columnTree);\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.gridOptionsService.get('processPivotResultColDef') || this.gridOptionsService.get('processSecondaryColDef');\n var groupCallback = this.gridOptionsService.get('processPivotResultColGroupDef') || this.gridOptionsService.get('processSecondaryColGroupDef');\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: applyColumnState, 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;\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 = __spreadArray$l(__spreadArray$l([], __read$s(this.groupAutoColumns)), __read$s(sortOrderToRecover));\n }\n this.addAutoGroupToGridColumns();\n this.orderGridColsLike(sortOrderToRecover);\n this.gridColumns = this.placeLockedColumns(this.gridColumns);\n this.calculateColumnsForGroupDisplay();\n this.refreshQuickFilterColumns();\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 supportedRowModel = this.gridOptionsService.isRowModelType('clientSide') || this.gridOptionsService.isRowModelType('serverSide');\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, __spreadArray$l([], __read$s(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.refreshQuickFilterColumns = function () {\n var _a;\n var columnsForQuickFilter = (_a = (this.isPivotMode() ? this.secondaryColumns : this.primaryColumns)) !== null && _a !== void 0 ? _a : [];\n if (this.groupAutoColumns) {\n columnsForQuickFilter = columnsForQuickFilter.concat(this.groupAutoColumns);\n }\n this.columnsForQuickFilter = this.gridOptionsService.is('includeHiddenColumnsInQuickFilter')\n ? columnsForQuickFilter\n : columnsForQuickFilter.filter(function (col) { return col.isVisible() || col.isRowGroupActive(); });\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 __spreadArray$l(__spreadArray$l(__spreadArray$l([], __read$s(left)), __read$s(normal)), __read$s(right));\n };\n ColumnModel.prototype.addAutoGroupToGridColumns = function () {\n if (missing(this.groupAutoColumns)) {\n this.destroyOldColumns(this.groupAutoColsBalancedTree);\n this.groupAutoColsBalancedTree = null;\n return;\n }\n this.gridColumns = this.groupAutoColumns ? this.groupAutoColumns.concat(this.gridColumns) : this.gridColumns;\n var newAutoColsTree = this.columnFactory.createForAutoGroups(this.groupAutoColumns, this.gridBalancedTree);\n this.destroyOldColumns(this.groupAutoColsBalancedTree, newAutoColsTree);\n this.groupAutoColsBalancedTree = newAutoColsTree;\n this.gridBalancedTree = newAutoColsTree.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.gridOptionsService.is('enableRtl')) {\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.gridOptionsService.is('enableRtl');\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 removeAllFromUnorderedArray(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 'left':\n result = this.viewportRowLeft[dept];\n break;\n case '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 _a;\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 var allResizingCols = new Set(params.resizingCols);\n // find the last resizing col, as only cols after this one are affected by the resizing\n var displayedCols = this.displayedColumnsCenter;\n for (var i = displayedCols.length - 1; i >= 0; i--) {\n if (allResizingCols.has(displayedCols[i])) {\n flexAfterDisplayIndex = i;\n break;\n }\n }\n }\n // the width of all of the columns for which the width has been determined\n var knownColumnsWidth = 0;\n var flexingColumns = [];\n // store the minimum width of all the flex columns, so we can determine if flex is even possible more quickly\n var minimumFlexedWidth = 0;\n var totalFlex = 0;\n for (var i = 0; i < this.displayedColumnsCenter.length; i++) {\n var isFlex = this.displayedColumnsCenter[i].getFlex() && i > flexAfterDisplayIndex;\n if (isFlex) {\n flexingColumns.push(this.displayedColumnsCenter[i]);\n totalFlex += this.displayedColumnsCenter[i].getFlex();\n minimumFlexedWidth += (_a = this.displayedColumnsCenter[i].getMinWidth()) !== null && _a !== void 0 ? _a : 0;\n }\n else {\n knownColumnsWidth += this.displayedColumnsCenter[i].getActualWidth();\n }\n }\n if (!flexingColumns.length) {\n return [];\n }\n var changedColumns = [];\n // this is for performance to prevent trying to flex when unnecessary\n if (knownColumnsWidth + minimumFlexedWidth > this.flexViewportWidth) {\n // known columns and the minimum width of all the flex cols are too wide for viewport\n // so don't flex\n flexingColumns.forEach(function (col) { var _a; return col.setActualWidth((_a = col.getMinWidth()) !== null && _a !== void 0 ? _a : 0, source); });\n // No columns should flex, but all have been changed. Swap arrays so events fire properly.\n // Expensive logic won't execute as flex columns is empty.\n changedColumns = flexingColumns;\n flexingColumns = [];\n }\n var flexingColumnSizes = [];\n var spaceForFlexingColumns;\n outer: while (true) {\n spaceForFlexingColumns = this.flexViewportWidth - knownColumnsWidth;\n var spacePerFlex = spaceForFlexingColumns / totalFlex;\n for (var i = 0; i < flexingColumns.length; i++) {\n var col = flexingColumns[i];\n var widthByFlexRule = spacePerFlex * col.getFlex();\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 removeFromUnorderedArray(flexingColumns, col);\n totalFlex -= col.getFlex();\n changedColumns.push(col);\n knownColumnsWidth += col.getActualWidth();\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.dispatchColumnResizedEvent(changedColumns, true, source, flexingColumns);\n }\n return flexingColumns;\n };\n // called from api\n ColumnModel.prototype.sizeColumnsToFit = function (gridWidth, source, silent, params) {\n var _this = this;\n var _a, _b, _c, _d, _e;\n if (source === void 0) { source = \"sizeColumnsToFit\"; }\n if (this.shouldQueueResizeOperations) {\n this.resizeOperationQueue.push(function () { return _this.sizeColumnsToFit(gridWidth, source, silent, params); });\n return;\n }\n var limitsMap = {};\n if (params) {\n (_a = params === null || params === void 0 ? void 0 : params.columnLimits) === null || _a === void 0 ? void 0 : _a.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 colsToDispatchEventFor = 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 dispatch resize events after the resize has been done for each column.\n colsToSpread.forEach(function (column) {\n var _a, _b;\n column.resetActualWidth(source);\n var widthOverride = limitsMap === null || limitsMap === void 0 ? void 0 : limitsMap[column.getId()];\n var minOverride = ((_a = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.minWidth) !== null && _a !== void 0 ? _a : params === null || params === void 0 ? void 0 : params.defaultMinWidth);\n var maxOverride = ((_b = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.maxWidth) !== null && _b !== void 0 ? _b : params === null || params === void 0 ? void 0 : params.defaultMaxWidth);\n var colWidth = column.getActualWidth();\n if (typeof minOverride === 'number' && colWidth < minOverride) {\n column.setActualWidth(minOverride, source, true);\n }\n else if (typeof maxOverride === 'number' && colWidth > maxOverride) {\n column.setActualWidth(maxOverride, source, true);\n }\n });\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;\n var widthOverride = (_b = (_a = limitsMap === null || limitsMap === void 0 ? void 0 : limitsMap[column.getId()]) === null || _a === void 0 ? void 0 : _a.minWidth) !== null && _b !== void 0 ? _b : params === null || params === void 0 ? void 0 : params.defaultMinWidth;\n if (typeof widthOverride === 'number') {\n column.setActualWidth(widthOverride, source, true);\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 = limitsMap === null || limitsMap === void 0 ? void 0 : limitsMap[column.getId()];\n var minOverride = ((_b = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.minWidth) !== null && _b !== void 0 ? _b : params === null || params === void 0 ? void 0 : params.defaultMinWidth);\n var maxOverride = ((_c = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.maxWidth) !== null && _c !== void 0 ? _c : params === null || params === void 0 ? void 0 : params.defaultMaxWidth);\n var colMinWidth = (_d = column.getMinWidth()) !== null && _d !== void 0 ? _d : 0;\n var colMaxWidth = (_e = column.getMaxWidth()) !== null && _e !== void 0 ? _e : 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 colsToDispatchEventFor.forEach(function (col) {\n col.fireColumnWidthChangedEvent(source);\n });\n this.setLeftValues(source);\n this.updateBodyWidths();\n if (silent) {\n return;\n }\n this.dispatchColumnResizedEvent(colsToDispatchEventFor, 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, groupInstanceIdCreator, 'left', this.displayedTreeLeft);\n this.displayedTreeRight = this.displayedGroupCreator.createDisplayedGroups(rightVisibleColumns, groupInstanceIdCreator, 'right', this.displayedTreeRight);\n this.displayedTreeCentre = this.displayedGroupCreator.createDisplayedGroups(centerVisibleColumns, 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 child.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 var forceRecreateAutoGroups = this.forceRecreateAutoGroups;\n this.forceRecreateAutoGroups = false;\n if (!this.autoGroupsNeedBuilding) {\n return false;\n }\n this.autoGroupsNeedBuilding = false;\n var groupFullWidthRow = this.gridOptionsService.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.gridOptionsService.is('pivotSuppressAutoColumn') : this.isGroupSuppressAutoColumn();\n var groupingActive = this.rowGroupColumns.length > 0 || this.gridOptionsService.is('treeData');\n var needAutoColumns = groupingActive && !suppressAutoColumn && !groupFullWidthRow;\n if (needAutoColumns) {\n var newAutoGroupCols = this.autoGroupColService.createAutoGroupColumns(this.rowGroupColumns);\n var autoColsDifferent = !this.autoColsEqual(newAutoGroupCols, this.groupAutoColumns);\n // we force recreate 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 || forceRecreateAutoGroups) {\n this.groupAutoColumns = newAutoGroupCols;\n return true;\n }\n }\n else {\n this.groupAutoColumns = null;\n }\n return false;\n };\n ColumnModel.prototype.isGroupSuppressAutoColumn = function () {\n var groupDisplayType = this.gridOptionsService.get('groupDisplayType');\n var isCustomRowGroups = groupDisplayType ? matchesGroupDisplayType('custom', groupDisplayType) : false;\n if (isCustomRowGroups) {\n return true;\n }\n var treeDataDisplayType = this.gridOptionsService.get('treeDataDisplayType');\n return treeDataDisplayType ? matchesTreeDataDisplayType('custom', treeDataDisplayType) : 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.getFirstDisplayedColumn = function () {\n var isRtl = this.gridOptionsService.is('enableRtl');\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.getPivotGroupHeaderHeight();\n }\n return this.getGroupHeaderHeight();\n };\n ColumnModel.prototype.getColumnHeaderRowHeight = function () {\n var defaultHeight = (this.isPivotMode() ?\n this.getPivotHeaderHeight() :\n this.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, __spreadArray$l([defaultHeight], __read$s(displayedHeights)));\n };\n ColumnModel.prototype.getHeaderHeight = function () {\n var _a;\n return (_a = this.gridOptionsService.getNum('headerHeight')) !== null && _a !== void 0 ? _a : this.environment.getFromTheme(25, 'headerHeight');\n };\n ColumnModel.prototype.getFloatingFiltersHeight = function () {\n var _a;\n return (_a = this.gridOptionsService.getNum('floatingFiltersHeight')) !== null && _a !== void 0 ? _a : this.getHeaderHeight();\n };\n ColumnModel.prototype.getGroupHeaderHeight = function () {\n var _a;\n return (_a = this.gridOptionsService.getNum('groupHeaderHeight')) !== null && _a !== void 0 ? _a : this.getHeaderHeight();\n };\n ColumnModel.prototype.getPivotHeaderHeight = function () {\n var _a;\n return (_a = this.gridOptionsService.getNum('pivotHeaderHeight')) !== null && _a !== void 0 ? _a : this.getHeaderHeight();\n };\n ColumnModel.prototype.getPivotGroupHeaderHeight = function () {\n var _a;\n return (_a = this.gridOptionsService.getNum('pivotGroupHeaderHeight')) !== null && _a !== void 0 ? _a : this.getGroupHeaderHeight();\n };\n ColumnModel.prototype.queueResizeOperations = function () {\n this.shouldQueueResizeOperations = true;\n };\n ColumnModel.prototype.processResizeOperations = function () {\n this.shouldQueueResizeOperations = false;\n this.resizeOperationQueue.forEach(function (resizeOperation) { return resizeOperation(); });\n this.resizeOperationQueue = [];\n };\n ColumnModel.prototype.resetColumnDefIntoColumn = function (column) {\n var userColDef = column.getUserProvidedColDef();\n if (!userColDef) {\n return false;\n }\n var newColDef = this.columnFactory.addColumnDefaultAndTypes(userColDef, column.getColId());\n column.setColDef(newColDef, userColDef);\n return true;\n };\n ColumnModel.prototype.generateColumnStateForRowGroupAndPivotIndexes = function (updatedRowGroupColumnState, updatedPivotColumnState) {\n // Generally columns should appear in the order they were before. For any new columns, these should appear in the original col def order.\n // The exception is for columns that were added via `addGroupColumns`. These should appear at the end.\n // We don't have to worry about full updates, as in this case the arrays are correct, and they won't appear in the updated lists.\n var _this = this;\n var existingColumnStateUpdates = {};\n var orderColumns = function (updatedColumnState, colList, enableProp, initialEnableProp, indexProp, initialIndexProp) {\n if (!colList.length || !_this.primaryColumns) {\n return [];\n }\n var updatedColIdArray = Object.keys(updatedColumnState);\n var updatedColIds = new Set(updatedColIdArray);\n var newColIds = new Set(updatedColIdArray);\n var allColIds = new Set(colList.map(function (column) {\n var colId = column.getColId();\n newColIds.delete(colId);\n return colId;\n }).concat(updatedColIdArray));\n var colIdsInOriginalOrder = [];\n var originalOrderMap = {};\n var orderIndex = 0;\n for (var i = 0; i < _this.primaryColumns.length; i++) {\n var colId = _this.primaryColumns[i].getColId();\n if (allColIds.has(colId)) {\n colIdsInOriginalOrder.push(colId);\n originalOrderMap[colId] = orderIndex++;\n }\n }\n // follow approach in `resetColumnState`\n var index = 1000;\n var hasAddedNewCols = false;\n var lastIndex = 0;\n var processPrecedingNewCols = function (colId) {\n var originalOrderIndex = originalOrderMap[colId];\n for (var i = lastIndex; i < originalOrderIndex; i++) {\n var newColId = colIdsInOriginalOrder[i];\n if (newColIds.has(newColId)) {\n updatedColumnState[newColId][indexProp] = index++;\n newColIds.delete(newColId);\n }\n }\n lastIndex = originalOrderIndex;\n };\n colList.forEach(function (column) {\n var colId = column.getColId();\n if (updatedColIds.has(colId)) {\n // New col already exists. Add any other new cols that should be before it.\n processPrecedingNewCols(colId);\n updatedColumnState[colId][indexProp] = index++;\n }\n else {\n var colDef = column.getColDef();\n var missingIndex = colDef[indexProp] === null || (colDef[indexProp] === undefined && colDef[initialIndexProp] == null);\n if (missingIndex) {\n if (!hasAddedNewCols) {\n var propEnabled = colDef[enableProp] || (colDef[enableProp] === undefined && colDef[initialEnableProp]);\n if (propEnabled) {\n processPrecedingNewCols(colId);\n }\n else {\n // Reached the first manually added column. Add all the new columns now.\n newColIds.forEach(function (newColId) {\n // Rather than increment the index, just use the original order index - doesn't need to be contiguous.\n updatedColumnState[newColId][indexProp] = index + originalOrderMap[newColId];\n });\n index += colIdsInOriginalOrder.length;\n hasAddedNewCols = true;\n }\n }\n if (!existingColumnStateUpdates[colId]) {\n existingColumnStateUpdates[colId] = { colId: colId };\n }\n existingColumnStateUpdates[colId][indexProp] = index++;\n }\n }\n });\n };\n orderColumns(updatedRowGroupColumnState, this.rowGroupColumns, 'rowGroup', 'initialRowGroup', 'rowGroupIndex', 'initialRowGroupIndex');\n orderColumns(updatedPivotColumnState, this.pivotColumns, 'pivot', 'initialPivot', 'pivotIndex', 'initialPivotIndex');\n return Object.values(existingColumnStateUpdates);\n };\n __decorate$2B([\n Autowired('expressionService')\n ], ColumnModel.prototype, \"expressionService\", void 0);\n __decorate$2B([\n Autowired('columnFactory')\n ], ColumnModel.prototype, \"columnFactory\", void 0);\n __decorate$2B([\n Autowired('displayedGroupCreator')\n ], ColumnModel.prototype, \"displayedGroupCreator\", void 0);\n __decorate$2B([\n Autowired('ctrlsService')\n ], ColumnModel.prototype, \"ctrlsService\", void 0);\n __decorate$2B([\n Autowired('autoWidthCalculator')\n ], ColumnModel.prototype, \"autoWidthCalculator\", void 0);\n __decorate$2B([\n Autowired('columnUtils')\n ], ColumnModel.prototype, \"columnUtils\", void 0);\n __decorate$2B([\n Autowired('columnAnimationService')\n ], ColumnModel.prototype, \"columnAnimationService\", void 0);\n __decorate$2B([\n Autowired('autoGroupColService')\n ], ColumnModel.prototype, \"autoGroupColService\", void 0);\n __decorate$2B([\n Optional('aggFuncService')\n ], ColumnModel.prototype, \"aggFuncService\", void 0);\n __decorate$2B([\n Optional('valueCache')\n ], ColumnModel.prototype, \"valueCache\", void 0);\n __decorate$2B([\n Optional('animationFrameService')\n ], ColumnModel.prototype, \"animationFrameService\", void 0);\n __decorate$2B([\n Autowired('sortController')\n ], ColumnModel.prototype, \"sortController\", void 0);\n __decorate$2B([\n Autowired('columnDefFactory')\n ], ColumnModel.prototype, \"columnDefFactory\", void 0);\n __decorate$2B([\n PostConstruct\n ], ColumnModel.prototype, \"init\", null);\n __decorate$2B([\n PreDestroy\n ], ColumnModel.prototype, \"destroyColumns\", null);\n __decorate$2B([\n __param$8(0, Qualifier('loggerFactory'))\n ], ColumnModel.prototype, \"setBeans\", null);\n ColumnModel = __decorate$2B([\n Bean('columnModel')\n ], ColumnModel);\n return ColumnModel;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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};\n// takes in a list of columns, as specified by the column definitions, and returns column groups\nvar ColumnUtils = /** @class */ (function (_super) {\n __extends$33(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.environment.getMinColWidth();\n };\n ColumnUtils.prototype.calculateColMaxWidth = function (colDef) {\n return colDef.maxWidth != null ? colDef.maxWidth : 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 = 200;\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$2A([\n Bean('columnUtils')\n ], ColumnUtils);\n return ColumnUtils;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\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};\n// takes in a list of columns, as specified by the column definitions, and returns column groups\nvar DisplayedGroupCreator = /** @class */ (function (_super) {\n __extends$32(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 // 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 oldColumnsMapped = this.mapOldGroupsById(oldDisplayedGroups);\n /**\n * The following logic starts at the leaf level of columns, iterating through them to build their parent\n * groups when the parents match.\n *\n * The created groups are then added to an array, and similarly iterated on until we reach the top level.\n *\n * When row groups have no original parent, it's added to the result.\n */\n var topLevelResultCols = [];\n // this is an array of cols or col groups at one level of depth, starting from leaf and ending at root\n var groupsOrColsAtCurrentLevel = sortedVisibleColumns;\n var _loop_1 = function () {\n // store what's currently iterating so the function can build the next level of col groups\n var currentlyIterating = groupsOrColsAtCurrentLevel;\n groupsOrColsAtCurrentLevel = [];\n // store the index of the last row which was different from the previous row, this is used as a slice\n // index for finding the children to group together\n var lastGroupedColIdx = 0;\n // create a group of children from lastGroupedColIdx to the provided `to` parameter\n var createGroupToIndex = function (to) {\n var from = lastGroupedColIdx;\n lastGroupedColIdx = to;\n var previousNode = currentlyIterating[from];\n var previousNodeProvided = previousNode instanceof ColumnGroup ? previousNode.getProvidedColumnGroup() : previousNode;\n var previousNodeParent = previousNodeProvided.getOriginalParent();\n if (previousNodeParent == null) {\n // if the last node was different, and had a null parent, then we add all the nodes to the final\n // results)\n for (var i = from; i < to; i++) {\n topLevelResultCols.push(currentlyIterating[i]);\n }\n return;\n }\n // the parent differs from the previous node, so we create a group from the previous node\n // and add all to the result array, except the current node.\n var newGroup = _this.createColumnGroup(previousNodeParent, groupInstanceIdCreator, oldColumnsMapped, pinned);\n for (var i = from; i < to; i++) {\n newGroup.addChild(currentlyIterating[i]);\n }\n groupsOrColsAtCurrentLevel.push(newGroup);\n };\n for (var i = 1; i < currentlyIterating.length; i++) {\n var thisNode = currentlyIterating[i];\n var thisNodeProvided = thisNode instanceof ColumnGroup ? thisNode.getProvidedColumnGroup() : thisNode;\n var thisNodeParent = thisNodeProvided.getOriginalParent();\n var previousNode = currentlyIterating[lastGroupedColIdx];\n var previousNodeProvided = previousNode instanceof ColumnGroup ? previousNode.getProvidedColumnGroup() : previousNode;\n var previousNodeParent = previousNodeProvided.getOriginalParent();\n if (thisNodeParent !== previousNodeParent) {\n createGroupToIndex(i);\n }\n }\n if (lastGroupedColIdx < currentlyIterating.length) {\n createGroupToIndex(currentlyIterating.length);\n }\n };\n while (groupsOrColsAtCurrentLevel.length) {\n _loop_1();\n }\n this.setupParentsIntoColumns(topLevelResultCols, null);\n return topLevelResultCols;\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 = __decorate$2z([\n Bean('displayedGroupCreator')\n ], DisplayedGroupCreator);\n return DisplayedGroupCreator;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\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 AgStackComponentsRegistry = /** @class */ (function (_super) {\n __extends$31(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 // 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$2y([\n Bean('agStackComponentsRegistry')\n ], AgStackComponentsRegistry);\n return AgStackComponentsRegistry;\n}(BeanStub));\n\n// ARIA HELPER FUNCTIONS\nfunction toggleAriaAttribute(element, attribute, value) {\n if (value == null || value == '') {\n removeAriaAttribute(element, attribute);\n }\n else {\n setAriaAttribute(element, attribute, value);\n }\n}\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(sortDirection) {\n var sort;\n if (sortDirection === 'asc') {\n sort = 'ascending';\n }\n else if (sortDirection === 'desc') {\n sort = 'descending';\n }\n else if (sortDirection === 'mixed') {\n sort = 'other';\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 toggleAriaAttribute(element, 'label', label);\n}\nfunction setAriaLabelledBy(element, labelledBy) {\n toggleAriaAttribute(element, 'labelledby', labelledBy);\n}\nfunction setAriaDescription(element, description) {\n toggleAriaAttribute(element, 'description', description);\n}\nfunction setAriaDescribedBy(element, describedby) {\n toggleAriaAttribute(element, 'describedby', describedby);\n}\nfunction setAriaLive(element, live) {\n toggleAriaAttribute(element, 'live', live);\n}\nfunction setAriaLevel(element, level) {\n toggleAriaAttribute(element, 'level', level);\n}\nfunction setAriaDisabled(element, disabled) {\n toggleAriaAttribute(element, 'disabled', disabled);\n}\nfunction setAriaHidden(element, hidden) {\n toggleAriaAttribute(element, 'hidden', hidden);\n}\nfunction setAriaActiveDescendant(element, descendantId) {\n toggleAriaAttribute(element, 'activedescendant', descendantId);\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 toggleAriaAttribute(element, 'selected', selected);\n}\nfunction setAriaChecked(element, checked) {\n setAriaAttribute(element, 'checked', checked === undefined ? 'mixed' : checked);\n}\nfunction setAriaControls(controllerElement, controlledElement) {\n toggleAriaAttribute(controllerElement, 'controls', controlledElement.id);\n setAriaLabelledBy(controlledElement, controllerElement.id);\n}\nfunction getAriaCheckboxStateName(translate, state) {\n return state === undefined\n ? translate('ariaIndeterminate', 'indeterminate')\n : (state === true\n ? translate('ariaChecked', 'checked')\n : translate('ariaUnchecked', 'unchecked'));\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 setAriaLive: setAriaLive,\n setAriaLevel: setAriaLevel,\n setAriaDisabled: setAriaDisabled,\n setAriaHidden: setAriaHidden,\n setAriaActiveDescendant: setAriaActiveDescendant,\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 setAriaControls: setAriaControls,\n getAriaCheckboxStateName: getAriaCheckboxStateName\n});\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 */\nvar isSafari;\nvar safariVersion;\nvar isChrome;\nvar isFirefox;\nvar isMacOs;\nvar isIOS;\nvar invisibleScrollbar;\nvar browserScrollbarWidth;\nfunction isBrowserSafari() {\n if (isSafari === undefined) {\n isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n }\n return isSafari;\n}\nfunction getSafariVersion() {\n if (safariVersion === undefined) {\n if (isBrowserSafari()) {\n var versionMatch = navigator.userAgent.match(/version\\/(\\d+)/i);\n if (versionMatch) {\n safariVersion = versionMatch[1] != null ? parseFloat(versionMatch[1]) : 0;\n }\n }\n else {\n safariVersion = 0;\n }\n }\n return safariVersion;\n}\n/**\n * Returns true for Chrome and also for Edge (Chromium)\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 isFirefox = /(firefox)/i.test(navigator.userAgent);\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 isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||\n // eslint-disable-next-line\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1));\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() || getSafariVersion() >= 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 getBodyWidth() {\n var _a, _b, _c;\n return (_b = (_a = document.body) === null || _a === void 0 ? void 0 : _a.clientWidth) !== null && _b !== void 0 ? _b : (window.innerHeight || ((_c = document.documentElement) === null || _c === void 0 ? void 0 : _c.clientWidth) || -1);\n}\nfunction getBodyHeight() {\n var _a, _b, _c;\n return (_b = (_a = document.body) === null || _a === void 0 ? void 0 : _a.clientHeight) !== null && _b !== void 0 ? _b : (window.innerHeight || ((_c = document.documentElement) === null || _c === void 0 ? void 0 : _c.clientHeight) || -1);\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\nvar BrowserUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isBrowserSafari: isBrowserSafari,\n getSafariVersion: getSafariVersion,\n isBrowserChrome: isBrowserChrome,\n isBrowserFirefox: isBrowserFirefox,\n isMacOsUserAgent: isMacOsUserAgent,\n isIOSUserAgent: isIOSUserAgent,\n browserSupportsPreventScroll: browserSupportsPreventScroll,\n getTabIndex: getTabIndex,\n getMaxDivHeight: getMaxDivHeight,\n getBodyWidth: getBodyWidth,\n getBodyHeight: getBodyHeight,\n getScrollbarWidth: getScrollbarWidth,\n isInvisibleScrollbar: isInvisibleScrollbar\n});\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}\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}\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 (!isNaN(valueNumber) && isFinite(valueNumber) && valueNumber > 0) {\n return valueNumber;\n }\n return defaultValue;\n}\n\nvar NumberUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n padStartWidthZeros: padStartWidthZeros,\n createArrayOfNumbers: createArrayOfNumbers,\n cleanNumber: cleanNumber,\n decToHex: decToHex,\n formatNumberTwoDecimalPlacesAndCommas: formatNumberTwoDecimalPlacesAndCommas,\n formatNumberCommas: formatNumberCommas,\n sum: sum,\n zeroOrGreater: zeroOrGreater,\n oneOrGreater: oneOrGreater\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};\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$r(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$r(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$r(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\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 __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 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}\nvar FOCUSABLE_SELECTOR = '[tabindex], input, select, button, textarea, [href]';\nvar FOCUSABLE_EXCLUDE = '.ag-hidden, .ag-hidden *, [disabled], .ag-disabled:not(.ag-button), .ag-disabled *';\nfunction isFocusableFormField(element) {\n var matches = Element.prototype.matches || Element.prototype.msMatchesSelector;\n var inputSelector = 'input, select, button, textarea';\n var isFocusable = matches.call(element, inputSelector);\n var isNotFocusable = matches.call(element, FOCUSABLE_EXCLUDE);\n var isElementVisible = isVisible(element);\n var focusable = isFocusable && !isNotFocusable && isElementVisible;\n return focusable;\n}\nfunction setDisplayed(element, displayed, options) {\n if (options === void 0) { options = {}; }\n var skipAriaHidden = options.skipAriaHidden;\n element.classList.toggle('ag-hidden', !displayed);\n if (!skipAriaHidden) {\n setAriaHidden(element, !displayed);\n }\n}\nfunction setVisible(element, visible, options) {\n if (options === void 0) { options = {}; }\n var skipAriaHidden = options.skipAriaHidden;\n element.classList.toggle('ag-invisible', !visible);\n if (!skipAriaHidden) {\n setAriaHidden(element, !visible);\n }\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, borderTopWidth = _a.borderTopWidth, borderRightWidth = _a.borderRightWidth, borderBottomWidth = _a.borderBottomWidth, borderLeftWidth = _a.borderLeftWidth, 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 borderTopWidth: parseFloat(borderTopWidth),\n borderRightWidth: parseFloat(borderRightWidth),\n borderBottomWidth: parseFloat(borderBottomWidth),\n borderLeftWidth: parseFloat(borderLeftWidth),\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 getElementRectWithOffset(el) {\n var offsetElementRect = el.getBoundingClientRect();\n var _a = getElementSize(el), borderTopWidth = _a.borderTopWidth, borderLeftWidth = _a.borderLeftWidth, borderRightWidth = _a.borderRightWidth, borderBottomWidth = _a.borderBottomWidth;\n return {\n top: offsetElementRect.top + (borderTopWidth || 0),\n left: offsetElementRect.left + (borderLeftWidth || 0),\n right: offsetElementRect.right + (borderRightWidth || 0),\n bottom: offsetElementRect.bottom + (borderBottomWidth || 0),\n };\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 var e_1, _a;\n if (!styles) {\n return;\n }\n try {\n for (var _b = __values$5(Object.entries(styles)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$q(_c.value, 2), key = _d[0], value = _d[1];\n if (!key || !key.length || value == null) {\n continue;\n }\n // changes the key from camelCase into a hyphenated-string\n var parsedKey = camelCaseToHyphenated(key);\n var valueAsString = value.toString();\n var parsedValue = valueAsString.replace(/\\s*!important/g, '');\n var priority = parsedValue.length != valueAsString.length ? 'important' : undefined;\n eElement.style.setProperty(parsedKey, parsedValue, priority);\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}\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}\nfunction isNodeOrElement(o) {\n return o instanceof Node || o instanceof HTMLElement;\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}\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/**\n * cell renderers are used in a few places. they bind to dom slightly differently to other cell renders as they\n * can return back strings (instead of html element) 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 DomUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n radioCssClass: radioCssClass,\n FOCUSABLE_SELECTOR: FOCUSABLE_SELECTOR,\n FOCUSABLE_EXCLUDE: FOCUSABLE_EXCLUDE,\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 getElementRectWithOffset: getElementRectWithOffset,\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 isNodeOrElement: isNodeOrElement,\n copyNodeList: copyNodeList,\n iterateNamedNodeMap: iterateNamedNodeMap,\n addOrRemoveAttribute: addOrRemoveAttribute,\n nodeListForEach: nodeListForEach,\n bindCellRendererToHtmlElement: bindCellRendererToHtmlElement\n});\n\n//\n// IMPORTANT NOTE!\n//\n// If you change the list below, copy/paste the new content into the docs page custom-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 // set filter tree list group contracted (click to expand)\n setFilterGroupClosed: 'tree-closed',\n // set filter tree list group expanded (click to contract)\n setFilterGroupOpen: 'tree-open',\n // set filter tree list expand/collapse all button, shown when some children are expanded and\n // others are collapsed\n setFilterGroupIndeterminate: 'tree-indeterminate',\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 cut item\n clipboardCut: 'cut',\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 // Builder button in Advanced Filter\n advancedFilterBuilder: 'group',\n // drag handle used to pick up Advanced Filter Builder rows\n advancedFilterBuilderDrag: 'grip',\n // Advanced Filter Builder row validation error\n advancedFilterBuilderInvalid: 'not-allowed',\n // shown on Advanced Filter Builder rows to move them up\n advancedFilterBuilderMoveUp: 'up',\n // shown on Advanced Filter Builder rows to move them down\n advancedFilterBuilderMoveDown: 'down',\n // shown on Advanced Filter Builder rows to add new rows\n advancedFilterBuilderAdd: 'plus',\n // shown on Advanced Filter Builder rows to remove row\n advancedFilterBuilderRemove: 'minus',\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 {GridOptionsService} gridOptionsService\n * @param {Column | null} [column]\n * @returns {Element}\n */\nfunction createIcon(iconName, gridOptionsService, column) {\n var iconContents = createIconNoSpan(iconName, gridOptionsService, column);\n if (iconContents) {\n var className = iconContents.className;\n if ((typeof className === 'string' && className.indexOf('ag-icon') > -1) ||\n (typeof className === 'object' && className['ag-icon'])) {\n return iconContents;\n }\n }\n var eResult = document.createElement('span');\n eResult.appendChild(iconContents);\n return eResult;\n}\nfunction createIconNoSpan(iconName, gridOptionsService, 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 (gridOptionsService && !userProvidedIcon) {\n var optionsIcons = gridOptionsService.get('icons');\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\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.D = 'KeyD';\n KeyCode.V = 'KeyV';\n KeyCode.X = 'KeyX';\n KeyCode.Y = 'KeyY';\n KeyCode.Z = 'KeyZ';\n return KeyCode;\n}());\n\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 return printableCharacter;\n}\n/**\n * Allows user to tell the grid to skip specific keyboard events\n * @param {GridOptionsService} gridOptionsService\n * @param {KeyboardEvent} keyboardEvent\n * @param {IRowNode} rowNode\n * @param {Column} column\n * @param {boolean} editing\n * @returns {boolean}\n */\nfunction isUserSuppressingKeyboardEvent(gridOptionsService, keyboardEvent, rowNode, column, editing) {\n var colDefFunc = column ? column.getColDef().suppressKeyboardEvent : undefined;\n // if no callbacks provided by user, then do nothing\n if (!colDefFunc) {\n return false;\n }\n var params = {\n event: keyboardEvent,\n editing: editing,\n column: column,\n api: gridOptionsService.api,\n node: rowNode,\n data: rowNode.data,\n colDef: column.getColDef(),\n context: gridOptionsService.context,\n columnApi: gridOptionsService.columnApi\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 // otherwise return false, don't suppress, as colDef didn't suppress and no func on gridOptions\n return false;\n}\nfunction isUserSuppressingHeaderKeyboardEvent(gridOptionsService, 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: gridOptionsService.api,\n columnApi: gridOptionsService.columnApi,\n context: gridOptionsService.context,\n colDef: colDef,\n column: column,\n headerRowIndex: headerRowIndex,\n event: keyboardEvent\n };\n return !!colDefFunc(params);\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 * `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 * 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\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\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 utils = __assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m({}, AriaUtils), ArrayUtils), BrowserUtils), DateUtils), DomUtils), EventUtils), FunctionUtils), FuzzyMatchUtils), GenericUtils), IconUtils), KeyboardUtils), MapUtils), MouseUtils), NumberUtils), ObjectUtils), RowNodeUtils), SetUtils), StringUtils);\nvar _ = utils;\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\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 * 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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 __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 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 TooltipTrigger;\n(function (TooltipTrigger) {\n TooltipTrigger[TooltipTrigger[\"HOVER\"] = 0] = \"HOVER\";\n TooltipTrigger[TooltipTrigger[\"FOCUS\"] = 1] = \"FOCUS\";\n})(TooltipTrigger || (TooltipTrigger = {}));\nvar CustomTooltipFeature = /** @class */ (function (_super) {\n __extends$30(CustomTooltipFeature, _super);\n function CustomTooltipFeature(parentComp, tooltipShowDelayOverride, tooltipHideDelayOverride) {\n var _this = _super.call(this) || this;\n _this.parentComp = parentComp;\n _this.tooltipShowDelayOverride = tooltipShowDelayOverride;\n _this.tooltipHideDelayOverride = tooltipHideDelayOverride;\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.INTERACTIVE_HIDE_DELAY = 100;\n _this.interactionEnabled = false;\n _this.isInteractingWithTooltip = false;\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 return _this;\n }\n CustomTooltipFeature.prototype.postConstruct = function () {\n if (this.gridOptionsService.is('tooltipInteraction')) {\n this.interactionEnabled = true;\n }\n this.tooltipTrigger = this.getTooltipTrigger();\n this.tooltipShowDelay = this.getTooltipDelay('show');\n this.tooltipHideDelay = this.getTooltipDelay('hide');\n this.tooltipMouseTrack = this.gridOptionsService.is('tooltipMouseTrack');\n var el = this.parentComp.getGui();\n if (this.tooltipTrigger === TooltipTrigger.HOVER) {\n this.addManagedListener(el, 'mouseenter', this.onMouseEnter.bind(this));\n this.addManagedListener(el, 'mouseleave', this.onMouseLeave.bind(this));\n }\n if (this.tooltipTrigger === TooltipTrigger.FOCUS) {\n this.addManagedListener(el, 'focusin', this.onFocusIn.bind(this));\n this.addManagedListener(el, 'focusout', this.onFocusOut.bind(this));\n }\n this.addManagedListener(el, 'mousemove', this.onMouseMove.bind(this));\n if (!this.interactionEnabled) {\n this.addManagedListener(el, 'mousedown', this.onMouseDown.bind(this));\n this.addManagedListener(el, 'keydown', this.onKeyDown.bind(this));\n }\n };\n CustomTooltipFeature.prototype.getGridOptionsTooltipDelay = function (delayOption) {\n var delay = this.gridOptionsService.getNum(delayOption);\n if (exists(delay)) {\n if (delay < 0) {\n doOnce(function () { return console.warn(\"AG Grid: \" + delayOption + \" should not be lower than 0\"); }, delayOption + \"Warn\");\n }\n return Math.max(200, delay);\n }\n return undefined;\n };\n CustomTooltipFeature.prototype.getTooltipDelay = function (type) {\n var _a, _b, _c, _d;\n if (type === 'show') {\n return (_b = (_a = this.getGridOptionsTooltipDelay('tooltipShowDelay')) !== null && _a !== void 0 ? _a : this.tooltipShowDelayOverride) !== null && _b !== void 0 ? _b : this.DEFAULT_SHOW_TOOLTIP_DELAY;\n }\n else {\n return (_d = (_c = this.getGridOptionsTooltipDelay('tooltipHideDelay')) !== null && _c !== void 0 ? _c : this.tooltipHideDelayOverride) !== null && _d !== void 0 ? _d : this.DEFAULT_HIDE_TOOLTIP_DELAY;\n }\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.getTooltipTrigger = function () {\n var trigger = this.gridOptionsService.get('tooltipTrigger');\n if (!trigger || trigger === 'hover') {\n return TooltipTrigger.HOVER;\n }\n return TooltipTrigger.FOCUS;\n };\n CustomTooltipFeature.prototype.onMouseEnter = function (e) {\n var _this = this;\n // if `interactiveTooltipTimeoutId` is set, it means that this cell has a tooltip\n // and we are in the process of moving the cursor from the tooltip back to the cell\n // so we need to unlock this service here.\n if (this.interactionEnabled && this.interactiveTooltipTimeoutId) {\n this.unlockService();\n this.startHideTimeout();\n }\n if (isIOSUserAgent()) {\n return;\n }\n if (CustomTooltipFeature.isLocked) {\n this.showTooltipTimeoutId = window.setTimeout(function () {\n _this.prepareToShowTooltip(e);\n }, this.INTERACTIVE_HIDE_DELAY);\n }\n else {\n this.prepareToShowTooltip(e);\n }\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 if (this.lastMouseEvent) {\n this.lastMouseEvent = e;\n }\n if (this.tooltipMouseTrack &&\n this.state === TooltipStates.SHOWING &&\n this.tooltipComp) {\n this.positionTooltip();\n }\n };\n CustomTooltipFeature.prototype.onMouseDown = function () {\n this.setToDoNothing();\n };\n CustomTooltipFeature.prototype.onMouseLeave = function () {\n // if interaction is enabled, we need to verify if the user is moving\n // the cursor from the cell onto the tooltip, so we lock the service \n // for 100ms to prevent other tooltips from being created while this is happening.\n if (this.interactionEnabled) {\n this.lockService();\n }\n else {\n this.setToDoNothing();\n }\n };\n CustomTooltipFeature.prototype.onFocusIn = function () {\n this.prepareToShowTooltip();\n };\n CustomTooltipFeature.prototype.onFocusOut = function (e) {\n var _a;\n var relatedTarget = e.relatedTarget;\n var parentCompGui = this.parentComp.getGui();\n var tooltipGui = (_a = this.tooltipComp) === null || _a === void 0 ? void 0 : _a.getGui();\n if (this.isInteractingWithTooltip ||\n parentCompGui.contains(relatedTarget) ||\n (this.interactionEnabled && (tooltipGui === null || tooltipGui === void 0 ? void 0 : tooltipGui.contains(relatedTarget)))) {\n return;\n }\n this.setToDoNothing();\n };\n CustomTooltipFeature.prototype.onKeyDown = function () {\n this.setToDoNothing();\n };\n CustomTooltipFeature.prototype.prepareToShowTooltip = function (mouseEvent) {\n // every mouseenter should be following by a mouseleave, however for some unknown, 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 || CustomTooltipFeature.isLocked) {\n return false;\n }\n // if we are showing the tooltip because of focus, no delay at all\n // if another tooltip was hidden very recently, we only wait 200ms to show, not the normal waiting time\n var delay = 0;\n if (mouseEvent) {\n delay = this.isLastTooltipHiddenRecently() ? 200 : this.tooltipShowDelay;\n }\n this.lastMouseEvent = mouseEvent || null;\n this.showTooltipTimeoutId = window.setTimeout(this.showTooltip.bind(this), delay);\n this.state = TooltipStates.WAITING_TO_SHOW;\n return true;\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.setToDoNothing = function () {\n if (this.state === TooltipStates.SHOWING) {\n this.hideTooltip();\n }\n if (this.onBodyScrollEventCallback) {\n this.onBodyScrollEventCallback();\n this.onBodyScrollEventCallback = undefined;\n }\n if (this.onColumnMovedEventCallback) {\n this.onColumnMovedEventCallback();\n this.onColumnMovedEventCallback = undefined;\n }\n this.clearTimeouts();\n this.state = TooltipStates.NOTHING;\n this.lastMouseEvent = null;\n };\n CustomTooltipFeature.prototype.showTooltip = function () {\n var params = __assign$l({}, 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.hideTooltip = function (forceHide) {\n if (!forceHide && this.isInteractingWithTooltip) {\n return;\n }\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 var event = {\n type: Events.EVENT_TOOLTIP_HIDE,\n parentGui: this.parentComp.getGui()\n };\n this.eventService.dispatchEvent(event);\n this.state = TooltipStates.NOTHING;\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 if (this.tooltipTrigger === TooltipTrigger.HOVER) {\n eGui.classList.add('ag-tooltip-animate');\n }\n if (this.interactionEnabled) {\n eGui.classList.add('ag-tooltip-interactive');\n }\n var translate = this.localeService.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.positionTooltip();\n if (this.tooltipTrigger === TooltipTrigger.FOCUS) {\n this.onBodyScrollEventCallback = this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.setToDoNothing.bind(this));\n this.onColumnMovedEventCallback = this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.setToDoNothing.bind(this));\n }\n if (this.interactionEnabled) {\n if (this.tooltipTrigger === TooltipTrigger.HOVER) {\n this.tooltipMouseEnterListener = this.addManagedListener(eGui, 'mouseenter', this.onTooltipMouseEnter.bind(this)) || null;\n this.tooltipMouseLeaveListener = this.addManagedListener(eGui, 'mouseleave', this.onTooltipMouseLeave.bind(this)) || null;\n }\n else {\n this.tooltipFocusInListener = this.addManagedListener(eGui, 'focusin', this.onTooltipFocusIn.bind(this)) || null;\n this.tooltipFocusOutListener = this.addManagedListener(eGui, 'focusout', this.onTooltipFocusOut.bind(this)) || null;\n }\n }\n var event = {\n type: Events.EVENT_TOOLTIP_SHOW,\n tooltipGui: eGui,\n parentGui: this.parentComp.getGui()\n };\n this.eventService.dispatchEvent(event);\n this.startHideTimeout();\n };\n CustomTooltipFeature.prototype.onTooltipMouseEnter = function () {\n this.isInteractingWithTooltip = true;\n this.unlockService();\n };\n CustomTooltipFeature.prototype.onTooltipMouseLeave = function () {\n this.isInteractingWithTooltip = false;\n this.lockService();\n };\n CustomTooltipFeature.prototype.onTooltipFocusIn = function () {\n this.isInteractingWithTooltip = true;\n };\n CustomTooltipFeature.prototype.onTooltipFocusOut = function (e) {\n var _a;\n var parentGui = this.parentComp.getGui();\n var tooltipGui = (_a = this.tooltipComp) === null || _a === void 0 ? void 0 : _a.getGui();\n var relatedTarget = e.relatedTarget;\n // focusout is dispatched when inner elements lose focus\n // so we need to verify if focus is contained within the tooltip\n if (tooltipGui === null || tooltipGui === void 0 ? void 0 : tooltipGui.contains(relatedTarget)) {\n return;\n }\n this.isInteractingWithTooltip = false;\n // if we move the focus from the tooltip back to the original cell\n // the tooltip should remain open, but we need to restart the hide timeout counter\n if (parentGui.contains(relatedTarget)) {\n this.startHideTimeout();\n }\n // if the parent cell doesn't contain the focus, simply hide the tooltip\n else {\n this.hideTooltip();\n }\n };\n CustomTooltipFeature.prototype.positionTooltip = function () {\n var params = {\n type: 'tooltip',\n ePopup: this.tooltipComp.getGui(),\n nudgeY: 18,\n skipObserver: this.tooltipMouseTrack\n };\n if (this.lastMouseEvent) {\n this.popupService.positionPopupUnderMouseEvent(__assign$l(__assign$l({}, params), { mouseEvent: this.lastMouseEvent }));\n }\n else {\n this.popupService.positionPopupByComponent(__assign$l(__assign$l({}, params), { eventSource: this.parentComp.getGui(), position: 'under', keepWithinBounds: true, nudgeY: 5 }));\n }\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 var delay = this.tooltipTrigger === TooltipTrigger.HOVER ? this.FADE_OUT_TOOLTIP_TIMEOUT : 0;\n window.setTimeout(function () {\n tooltipPopupDestroyFunc();\n _this.getContext().destroyBean(tooltipComp);\n }, delay);\n this.clearTooltipListeners();\n this.tooltipPopupDestroyFunc = undefined;\n this.tooltipComp = undefined;\n };\n CustomTooltipFeature.prototype.clearTooltipListeners = function () {\n [\n this.tooltipMouseEnterListener, this.tooltipMouseLeaveListener,\n this.tooltipFocusInListener, this.tooltipFocusOutListener\n ].forEach(function (listener) {\n if (listener) {\n listener();\n }\n });\n this.tooltipMouseEnterListener = this.tooltipMouseLeaveListener =\n this.tooltipFocusInListener = this.tooltipFocusOutListener = null;\n };\n CustomTooltipFeature.prototype.lockService = function () {\n var _this = this;\n CustomTooltipFeature.isLocked = true;\n this.interactiveTooltipTimeoutId = window.setTimeout(function () {\n _this.unlockService();\n _this.setToDoNothing();\n }, this.INTERACTIVE_HIDE_DELAY);\n };\n CustomTooltipFeature.prototype.unlockService = function () {\n CustomTooltipFeature.isLocked = false;\n this.clearInteractiveTimeout();\n };\n CustomTooltipFeature.prototype.startHideTimeout = function () {\n this.clearHideTimeout();\n this.hideTooltipTimeoutId = window.setTimeout(this.hideTooltip.bind(this), this.tooltipHideDelay);\n };\n CustomTooltipFeature.prototype.clearShowTimeout = function () {\n if (!this.showTooltipTimeoutId) {\n return;\n }\n window.clearTimeout(this.showTooltipTimeoutId);\n this.showTooltipTimeoutId = undefined;\n };\n CustomTooltipFeature.prototype.clearHideTimeout = function () {\n if (!this.hideTooltipTimeoutId) {\n return;\n }\n window.clearTimeout(this.hideTooltipTimeoutId);\n this.hideTooltipTimeoutId = undefined;\n };\n CustomTooltipFeature.prototype.clearInteractiveTimeout = function () {\n if (!this.interactiveTooltipTimeoutId) {\n return;\n }\n window.clearTimeout(this.interactiveTooltipTimeoutId);\n this.interactiveTooltipTimeoutId = undefined;\n };\n CustomTooltipFeature.prototype.clearTimeouts = function () {\n this.clearShowTimeout();\n this.clearHideTimeout();\n this.clearInteractiveTimeout();\n };\n CustomTooltipFeature.isLocked = false;\n __decorate$2x([\n Autowired('popupService')\n ], CustomTooltipFeature.prototype, \"popupService\", void 0);\n __decorate$2x([\n Autowired('userComponentFactory')\n ], CustomTooltipFeature.prototype, \"userComponentFactory\", void 0);\n __decorate$2x([\n PostConstruct\n ], CustomTooltipFeature.prototype, \"postConstruct\", null);\n return CustomTooltipFeature;\n}(BeanStub));\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 compIdSequence = new NumberSequence();\nvar Component = /** @class */ (function (_super) {\n __extends$2$(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.gridOptionsService.is('enableBrowserTooltips');\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, showDelayOverride, hideDelayOverride) {\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, showDelayOverride, hideDelayOverride));\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.activateTabIndex = function (elements) {\n var tabIndex = this.gridOptionsService.getNum('tabIndex') || 0;\n if (!elements) {\n elements = [];\n }\n if (!elements.length) {\n elements.push(this.getGui());\n }\n elements.forEach(function (el) { return el.setAttribute('tabindex', tabIndex.toString()); });\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.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.getAriaElement = function () {\n return this.getFocusableElement();\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, options) {\n if (options === void 0) { options = {}; }\n if (visible !== this.visible) {\n this.visible = visible;\n var skipAriaHidden = options.skipAriaHidden;\n setVisible(this.eGui, visible, { skipAriaHidden: skipAriaHidden });\n }\n };\n Component.prototype.setDisplayed = function (displayed, options) {\n if (options === void 0) { options = {}; }\n if (displayed !== this.displayed) {\n this.displayed = displayed;\n var skipAriaHidden = options.skipAriaHidden;\n setDisplayed(this.eGui, displayed, { skipAriaHidden: skipAriaHidden });\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 if (this.parentComponent) {\n this.parentComponent = undefined;\n }\n var eGui = this.eGui;\n if (eGui && eGui.__agComponent) {\n eGui.__agComponent = undefined;\n }\n _super.prototype.destroy.call(this);\n };\n Component.prototype.addGuiEventListener = function (event, listener, options) {\n var _this = this;\n this.eGui.addEventListener(event, listener, options);\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$2w([\n Autowired('agStackComponentsRegistry')\n ], Component.prototype, \"agStackComponentsRegistry\", void 0);\n __decorate$2w([\n PreConstruct\n ], Component.prototype, \"preConstructOnComponent\", null);\n __decorate$2w([\n PreConstruct\n ], Component.prototype, \"createChildComponentsPreConstruct\", null);\n return Component;\n}(BeanStub));\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\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};\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$2_(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.localeService.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 ReadOnlyFloatingFilter.prototype.onParamsUpdated = function (params) {\n this.init(params);\n };\n __decorate$2v([\n RefSelector('eFloatingFilterText')\n ], ReadOnlyFloatingFilter.prototype, \"eFloatingFilterText\", void 0);\n __decorate$2v([\n Autowired('columnModel')\n ], ReadOnlyFloatingFilter.prototype, \"columnModel\", void 0);\n return ReadOnlyFloatingFilter;\n}(Component));\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.updateParams = function (params) {\n var _a;\n if (((_a = this.dateComp) === null || _a === void 0 ? void 0 : _a.onParamsUpdated) && typeof this.dateComp.onParamsUpdated === 'function') {\n this.dateComp.onParamsUpdated(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/* 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 };\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 _this.customFilterOptions[filterOption.displayKey] = filterOption;\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\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 ManagedFocusFeature = /** @class */ (function (_super) {\n __extends$2Z(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$k({ 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$2u([\n Autowired('focusService')\n ], ManagedFocusFeature.prototype, \"focusService\", void 0);\n __decorate$2u([\n PostConstruct\n ], ManagedFocusFeature.prototype, \"postConstruct\", null);\n return ManagedFocusFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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};\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$2Y(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 if (this.positioned) {\n return;\n }\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) {\n var boundaryEl = this.boundaryEl;\n var initialisedDuringPositioning = true;\n if (!boundaryEl) {\n boundaryEl = this.findBoundaryElement();\n initialisedDuringPositioning = false;\n }\n if (boundaryEl) {\n var top_1 = parseFloat(boundaryEl.style.top);\n var left = parseFloat(boundaryEl.style.left);\n if (initialisedDuringPositioning) {\n this.offsetElement(isNaN(left) ? 0 : left, isNaN(top_1) ? 0 : top_1);\n }\n else {\n this.setPosition(left, top_1);\n }\n }\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 isSideResizable = !!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 (isSideResizable || (!_this.isAlive() && !isSideResizable)) {\n if (isSideResizable) {\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] = isSideResizable;\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 {\n height = Math.max(this.minHeight, height);\n if (this.positioned) {\n var availableHeight = this.getAvailableHeight();\n if (availableHeight && height > availableHeight) {\n height = availableHeight;\n }\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.getAvailableHeight = function () {\n var _a = this.config, popup = _a.popup, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent;\n if (!this.positioned) {\n this.initialisePosition();\n }\n var clientHeight = this.offsetParent.clientHeight;\n if (!clientHeight) {\n return null;\n }\n var elRect = this.element.getBoundingClientRect();\n var offsetParentRect = this.offsetParent.getBoundingClientRect();\n var yPosition = popup ? this.position.y : elRect.top;\n var parentTop = popup ? 0 : offsetParentRect.top;\n // When `forcePopupParentAsOffsetParent`, there may be elements that appear after the resizable element, but aren't included in the height.\n // Take these into account here\n var additionalHeight = 0;\n if (forcePopupParentAsOffsetParent) {\n var parentEl = this.element.parentElement;\n if (parentEl) {\n var bottom = parentEl.getBoundingClientRect().bottom;\n additionalHeight = bottom - elRect.bottom;\n }\n }\n var availableHeight = clientHeight + parentTop - yPosition - additionalHeight;\n return availableHeight;\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 forcePopupParentAsOffsetParent = this.config.forcePopupParentAsOffsetParent;\n var ePopup = forcePopupParentAsOffsetParent ? this.boundaryEl : this.element;\n if (!ePopup) {\n return;\n }\n this.popupService.positionPopup({\n ePopup: ePopup,\n keepWithinBounds: true,\n skipObserver: this.movable || this.isResizable(),\n updatePosition: function () { return ({ x: x, y: y }); }\n });\n this.setPosition(parseFloat(ePopup.style.left), parseFloat(ePopup.style.top));\n };\n PositionableFeature.prototype.constrainSizeToAvailableHeight = function (constrain) {\n var _this = this;\n if (!this.config.forcePopupParentAsOffsetParent) {\n return;\n }\n var applyMaxHeightToElement = function () {\n var availableHeight = _this.getAvailableHeight();\n _this.element.style.setProperty('max-height', availableHeight + \"px\");\n };\n if (constrain) {\n this.resizeObserverSubscriber = this.resizeObserverService.observeResize(this.popupService.getPopupParent(), applyMaxHeightToElement);\n }\n else {\n this.element.style.removeProperty('max-height');\n if (this.resizeObserverSubscriber) {\n this.resizeObserverSubscriber();\n this.resizeObserverSubscriber = undefined;\n }\n }\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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi\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.constrainSizeToAvailableHeight(false);\n this.clearResizeListeners();\n this.removeResizers();\n };\n __decorate$2t([\n Autowired('popupService')\n ], PositionableFeature.prototype, \"popupService\", void 0);\n __decorate$2t([\n Autowired('resizeObserverService')\n ], PositionableFeature.prototype, \"resizeObserverService\", void 0);\n __decorate$2t([\n Autowired('dragService')\n ], PositionableFeature.prototype, \"dragService\", void 0);\n return PositionableFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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/**\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$2X(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 _this.debouncePending = false;\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 this.positionableFeature = new PositionableFeature(this.getPositionableElement(), {\n forcePopupParentAsOffsetParent: true\n });\n this.createBean(this.positionableFeature);\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 _this = this;\n var debounceMs = ProvidedFilter.getDebounceMs(this.providedFilterParams, this.getDefaultDebounceMs());\n var debounceFunc = debounce(this.checkApplyDebounce.bind(this), debounceMs);\n this.onBtApplyDebounce = function () {\n _this.debouncePending = true;\n debounceFunc();\n };\n };\n ProvidedFilter.prototype.checkApplyDebounce = function () {\n if (this.debouncePending) {\n // May already have been applied, so don't apply again (e.g. closing filter before debounce timeout)\n this.debouncePending = false;\n this.onBtApply();\n }\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('api');\n });\n };\n ProvidedFilter.prototype.onBtCancel = function (e) {\n var _this = this;\n this.resetUiToActiveModel(this.getModel(), function () {\n _this.handleCancelEnd(e);\n });\n };\n ProvidedFilter.prototype.handleCancelEnd = function (e) {\n if (this.providedFilterParams.closeOnApply) {\n this.close(e);\n }\n };\n ProvidedFilter.prototype.resetUiToActiveModel = function (currentModel, afterUiUpdatedFunc) {\n var _this = this;\n var afterAppliedFunc = function () {\n _this.onUiChanged(false, 'prevent');\n afterUiUpdatedFunc === null || afterUiUpdatedFunc === void 0 ? void 0 : afterUiUpdatedFunc();\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 (source) {\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(afterDataChange ? 'rowDataUpdated' : 'ui')) {\n // the floating filter uses 'afterFloatingFilter' info, so it doesn't refresh after filter changed if change\n // came from floating filter\n var source = 'columnFilter';\n this.providedFilterParams.filterChangedCallback({ afterFloatingFilter: afterFloatingFilter, afterDataChange: afterDataChange, source: source });\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) {\n this.hidePopup = params.hidePopup;\n }\n this.refreshFilterResizer(params === null || params === void 0 ? void 0 : params.container);\n };\n ProvidedFilter.prototype.refreshFilterResizer = function (containerType) {\n // tool panel is scrollable, so don't need to size\n if (!this.positionableFeature || containerType === 'toolPanel') {\n return;\n }\n var isFloatingFilter = containerType === 'floatingFilter';\n var _a = this, positionableFeature = _a.positionableFeature, gridOptionsService = _a.gridOptionsService;\n if (isFloatingFilter) {\n positionableFeature.restoreLastSize();\n positionableFeature.setResizable(gridOptionsService.is('enableRtl')\n ? { bottom: true, bottomLeft: true, left: true }\n : { bottom: true, bottomRight: true, right: true });\n }\n else {\n this.positionableFeature.removeSizeFromEl();\n this.positionableFeature.setResizable(false);\n }\n this.positionableFeature.constrainSizeToAvailableHeight(true);\n };\n ProvidedFilter.prototype.afterGuiDetached = function () {\n this.checkApplyDebounce();\n if (this.positionableFeature) {\n this.positionableFeature.constrainSizeToAvailableHeight(false);\n }\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 if (this.positionableFeature) {\n this.positionableFeature = this.destroyBean(this.positionableFeature);\n }\n _super.prototype.destroy.call(this);\n };\n ProvidedFilter.prototype.translate = function (key) {\n var translate = this.localeService.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 // override to control positionable feature\n ProvidedFilter.prototype.getPositionableElement = function () {\n return this.eFilterBody;\n };\n __decorate$2s([\n Autowired('rowModel')\n ], ProvidedFilter.prototype, \"rowModel\", void 0);\n __decorate$2s([\n RefSelector('eFilterBody')\n ], ProvidedFilter.prototype, \"eFilterBody\", void 0);\n __decorate$2s([\n PostConstruct\n ], ProvidedFilter.prototype, \"postConstruct\", null);\n return ProvidedFilter;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AgAbstractLabel = /** @class */ (function (_super) {\n __extends$2W(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 setDisplayed(this.eLabel, false);\n setAriaRole(this.eLabel, 'presentation');\n }\n else {\n setDisplayed(this.eLabel, true);\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.setLabelEllipsis = function (hasEllipsis) {\n this.eLabel.classList.toggle('ag-label-ellipsis', hasEllipsis);\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$2r([\n PostConstruct\n ], AgAbstractLabel.prototype, \"postConstruct\", null);\n return AgAbstractLabel;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$2V(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, Events.EVENT_FIELD_VALUE_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: Events.EVENT_FIELD_VALUE_CHANGED });\n }\n return this;\n };\n return AgAbstractField;\n}(AgAbstractLabel));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\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 TEMPLATE$1 = /* html */ \"\\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \";\nvar AgPickerField = /** @class */ (function (_super) {\n __extends$2U(AgPickerField, _super);\n function AgPickerField(config) {\n var _this = _super.call(this, config, (config === null || config === void 0 ? void 0 : config.template) || TEMPLATE$1, config === null || config === void 0 ? void 0 : config.className) || this;\n _this.isPickerDisplayed = false;\n _this.skipClick = false;\n _this.pickerGap = 4;\n _this.hideCurrentPicker = null;\n _this.ariaRole = config === null || config === void 0 ? void 0 : config.ariaRole;\n _this.onPickerFocusIn = _this.onPickerFocusIn.bind(_this);\n _this.onPickerFocusOut = _this.onPickerFocusOut.bind(_this);\n if (!config) {\n return _this;\n }\n var pickerGap = config.pickerGap, maxPickerHeight = config.maxPickerHeight, variableWidth = config.variableWidth, minPickerWidth = config.minPickerWidth, maxPickerWidth = config.maxPickerWidth;\n if (pickerGap != null) {\n _this.pickerGap = pickerGap;\n }\n _this.variableWidth = !!variableWidth;\n if (maxPickerHeight != null) {\n _this.setPickerMaxHeight(maxPickerHeight);\n }\n if (minPickerWidth != null) {\n _this.setPickerMinWidth(minPickerWidth);\n }\n if (maxPickerWidth != null) {\n _this.setPickerMaxWidth(maxPickerWidth);\n }\n return _this;\n }\n AgPickerField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.setupAria();\n var displayId = \"ag-\" + this.getCompId() + \"-display\";\n this.eDisplayField.setAttribute('id', displayId);\n var ariaEl = this.getAriaElement();\n setAriaDescribedBy(ariaEl, displayId);\n this.addManagedListener(ariaEl, 'keydown', this.onKeyDown.bind(this));\n this.addManagedListener(this.eLabel, 'mousedown', this.onLabelOrWrapperMouseDown.bind(this));\n this.addManagedListener(this.eWrapper, 'mousedown', this.onLabelOrWrapperMouseDown.bind(this));\n var pickerIcon = this.config.pickerIcon;\n if (pickerIcon) {\n var icon = createIconNoSpan(pickerIcon, this.gridOptionsService);\n if (icon) {\n this.eIcon.appendChild(icon);\n }\n }\n };\n AgPickerField.prototype.setupAria = function () {\n var ariaEl = this.getAriaElement();\n ariaEl.setAttribute('tabindex', (this.gridOptionsService.getNum('tabIndex') || 0).toString());\n setAriaExpanded(ariaEl, false);\n if (this.ariaRole) {\n setAriaRole(ariaEl, this.ariaRole);\n }\n };\n AgPickerField.prototype.refreshLabel = function () {\n var _a;\n var ariaEl = this.getAriaElement();\n setAriaLabelledBy(ariaEl, (_a = this.getLabelId()) !== null && _a !== void 0 ? _a : '');\n _super.prototype.refreshLabel.call(this);\n };\n AgPickerField.prototype.onLabelOrWrapperMouseDown = function () {\n if (this.skipClick) {\n this.skipClick = false;\n return;\n }\n if (this.isDisabled()) {\n return;\n }\n if (this.isPickerDisplayed) {\n this.hidePicker();\n }\n else {\n this.showPicker();\n }\n };\n AgPickerField.prototype.onKeyDown = function (e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n e.preventDefault();\n this.onLabelOrWrapperMouseDown();\n break;\n case KeyCode.ESCAPE:\n if (this.isPickerDisplayed) {\n e.preventDefault();\n e.stopPropagation();\n if (this.hideCurrentPicker) {\n this.hideCurrentPicker();\n }\n }\n break;\n }\n };\n AgPickerField.prototype.showPicker = function () {\n this.isPickerDisplayed = true;\n if (!this.pickerComponent) {\n this.pickerComponent = this.createPickerComponent();\n }\n var pickerGui = this.pickerComponent.getGui();\n pickerGui.addEventListener('focusin', this.onPickerFocusIn);\n pickerGui.addEventListener('focusout', this.onPickerFocusOut);\n this.hideCurrentPicker = this.renderAndPositionPicker();\n this.toggleExpandedStyles(true);\n };\n AgPickerField.prototype.renderAndPositionPicker = function () {\n var _this = this;\n var eDocument = this.gridOptionsService.getDocument();\n var ePicker = this.pickerComponent.getGui();\n if (!this.gridOptionsService.is('suppressScrollWhenPopupsAreOpen')) {\n this.destroyMouseWheelFunc = this.addManagedListener(eDocument.body, 'wheel', function (e) {\n if (!ePicker.contains(e.target)) {\n _this.hidePicker();\n }\n });\n }\n var translate = this.localeService.getLocaleTextFunc();\n var _a = this.config, pickerType = _a.pickerType, pickerAriaLabelKey = _a.pickerAriaLabelKey, pickerAriaLabelValue = _a.pickerAriaLabelValue, _b = _a.modalPicker, modalPicker = _b === void 0 ? true : _b;\n var popupParams = {\n modal: modalPicker,\n eChild: ePicker,\n closeOnEsc: true,\n closedCallback: function () {\n var shouldRestoreFocus = eDocument.activeElement === eDocument.body;\n _this.beforeHidePicker();\n if (shouldRestoreFocus && _this.isAlive()) {\n _this.getFocusableElement().focus();\n }\n },\n ariaLabel: translate(pickerAriaLabelKey, pickerAriaLabelValue),\n };\n var addPopupRes = this.popupService.addPopup(popupParams);\n var _c = this, maxPickerHeight = _c.maxPickerHeight, minPickerWidth = _c.minPickerWidth, maxPickerWidth = _c.maxPickerWidth, pickerGap = _c.pickerGap, variableWidth = _c.variableWidth;\n if (variableWidth) {\n if (minPickerWidth) {\n ePicker.style.minWidth = minPickerWidth;\n }\n ePicker.style.width = formatSize(getAbsoluteWidth(this.eWrapper));\n if (maxPickerWidth) {\n ePicker.style.maxWidth = maxPickerWidth;\n }\n }\n else {\n setElementWidth(ePicker, maxPickerWidth !== null && maxPickerWidth !== void 0 ? maxPickerWidth : getAbsoluteWidth(this.eWrapper));\n }\n var maxHeight = maxPickerHeight !== null && maxPickerHeight !== void 0 ? maxPickerHeight : getInnerHeight(this.popupService.getPopupParent()) + \"px\";\n ePicker.style.setProperty('max-height', maxHeight);\n ePicker.style.position = 'absolute';\n var alignSide = this.gridOptionsService.is('enableRtl') ? 'right' : 'left';\n this.popupService.positionPopupByComponent({\n type: pickerType,\n eventSource: this.eWrapper,\n ePopup: ePicker,\n position: 'under',\n alignSide: alignSide,\n keepWithinBounds: true,\n nudgeY: pickerGap\n });\n return addPopupRes.hideFunc;\n };\n AgPickerField.prototype.beforeHidePicker = function () {\n if (this.destroyMouseWheelFunc) {\n this.destroyMouseWheelFunc();\n this.destroyMouseWheelFunc = undefined;\n }\n this.toggleExpandedStyles(false);\n var pickerGui = this.pickerComponent.getGui();\n pickerGui.removeEventListener('focusin', this.onPickerFocusIn);\n pickerGui.removeEventListener('focusout', this.onPickerFocusOut);\n this.isPickerDisplayed = false;\n this.pickerComponent = undefined;\n this.hideCurrentPicker = null;\n };\n AgPickerField.prototype.toggleExpandedStyles = function (expanded) {\n if (!this.isAlive()) {\n return;\n }\n var ariaEl = this.getAriaElement();\n setAriaExpanded(ariaEl, expanded);\n this.eWrapper.classList.toggle('ag-picker-expanded', expanded);\n this.eWrapper.classList.toggle('ag-picker-collapsed', !expanded);\n };\n AgPickerField.prototype.onPickerFocusIn = function () {\n this.togglePickerHasFocus(true);\n };\n AgPickerField.prototype.onPickerFocusOut = function (e) {\n var _a;\n if (!((_a = this.pickerComponent) === null || _a === void 0 ? void 0 : _a.getGui().contains(e.relatedTarget))) {\n this.togglePickerHasFocus(false);\n }\n };\n AgPickerField.prototype.togglePickerHasFocus = function (focused) {\n if (!this.pickerComponent) {\n return;\n }\n this.eWrapper.classList.toggle('ag-picker-has-focus', focused);\n };\n AgPickerField.prototype.hidePicker = function () {\n if (this.hideCurrentPicker) {\n this.hideCurrentPicker();\n }\n };\n AgPickerField.prototype.setAriaLabel = function (label) {\n setAriaLabel(this.getAriaElement(), 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 AgPickerField.prototype.setPickerGap = function (gap) {\n this.pickerGap = gap;\n return this;\n };\n AgPickerField.prototype.setPickerMinWidth = function (width) {\n if (typeof width === 'number') {\n width = width + \"px\";\n }\n this.minPickerWidth = width == null ? undefined : width;\n return this;\n };\n AgPickerField.prototype.setPickerMaxWidth = function (width) {\n if (typeof width === 'number') {\n width = width + \"px\";\n }\n this.maxPickerWidth = width == null ? undefined : width;\n return this;\n };\n AgPickerField.prototype.setPickerMaxHeight = function (height) {\n if (typeof height === 'number') {\n height = height + \"px\";\n }\n this.maxPickerHeight = height == null ? undefined : height;\n return this;\n };\n AgPickerField.prototype.destroy = function () {\n this.hidePicker();\n _super.prototype.destroy.call(this);\n };\n __decorate$2q([\n Autowired('popupService')\n ], AgPickerField.prototype, \"popupService\", void 0);\n __decorate$2q([\n RefSelector('eLabel')\n ], AgPickerField.prototype, \"eLabel\", void 0);\n __decorate$2q([\n RefSelector('eWrapper')\n ], AgPickerField.prototype, \"eWrapper\", void 0);\n __decorate$2q([\n RefSelector('eDisplayField')\n ], AgPickerField.prototype, \"eDisplayField\", void 0);\n __decorate$2q([\n RefSelector('eIcon')\n ], AgPickerField.prototype, \"eIcon\", void 0);\n return AgPickerField;\n}(AgAbstractField));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AgList = /** @class */ (function (_super) {\n __extends$2T(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: Events.EVENT_FIELD_VALUE_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$2p([\n PostConstruct\n ], AgList.prototype, \"init\", null);\n return AgList;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 AgSelect = /** @class */ (function (_super) {\n __extends$2S(AgSelect, _super);\n function AgSelect(config) {\n return _super.call(this, __assign$j({ pickerAriaLabelKey: 'ariaLabelSelectField', pickerAriaLabelValue: 'Select Field', pickerType: 'ag-list', className: 'ag-select', pickerIcon: 'smallDown', ariaRole: 'listbox' }, config)) || this;\n }\n AgSelect.prototype.postConstruct = function () {\n var _a;\n _super.prototype.postConstruct.call(this);\n this.createListComponent();\n this.eWrapper.tabIndex = (_a = this.gridOptionsService.getNum('tabIndex')) !== null && _a !== void 0 ? _a : 0;\n };\n AgSelect.prototype.createListComponent = function () {\n var _this = this;\n this.listComponent = this.createBean(new AgList('select'));\n this.listComponent.setParentComponent(this);\n this.listComponent.addGuiEventListener('keydown', function (e) {\n if (e.key === KeyCode.TAB) {\n e.preventDefault();\n e.stopImmediatePropagation();\n _this.getGui().dispatchEvent(new KeyboardEvent('keydown', {\n key: e.key,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n bubbles: true\n }));\n }\n });\n this.listComponent.addManagedListener(this.listComponent, AgList.EVENT_ITEM_SELECTED, function () {\n _this.hidePicker();\n _this.dispatchEvent({ type: AgSelect.EVENT_ITEM_SELECTED });\n });\n this.listComponent.addManagedListener(this.listComponent, Events.EVENT_FIELD_VALUE_CHANGED, function () {\n if (!_this.listComponent) {\n return;\n }\n _this.setValue(_this.listComponent.getValue(), false, true);\n _this.hidePicker();\n });\n };\n AgSelect.prototype.createPickerComponent = function () {\n // do not create the picker every time to save state\n return this.listComponent;\n };\n AgSelect.prototype.showPicker = function () {\n if (!this.listComponent) {\n return;\n }\n _super.prototype.showPicker.call(this);\n this.listComponent.refreshHighlighted();\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 || !this.listComponent) {\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.listComponent) {\n this.destroyBean(this.listComponent);\n this.listComponent = undefined;\n }\n _super.prototype.destroy.call(this);\n };\n AgSelect.EVENT_ITEM_SELECTED = 'selectedItem';\n return AgSelect;\n}(AgPickerField));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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};\nvar AgAbstractInputField = /** @class */ (function (_super) {\n __extends$2R(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 this.activateTabIndex([this.eInput]);\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 AgAbstractInputField.prototype.setAutoComplete = function (value) {\n if (value === true) {\n // Remove the autocomplete attribute if the value is explicitly set to true\n // to allow the default browser autocomplete/autofill behaviour.\n addOrRemoveAttribute(this.eInput, 'autocomplete', null);\n }\n else {\n // When a string is provided, use it as the value of the autocomplete attribute.\n // This enables users to specify how they want to the browser to handle the autocomplete on the input, as per spec:\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values\n var autoCompleteValue = typeof value === 'string' ? value : 'off';\n addOrRemoveAttribute(this.eInput, 'autocomplete', autoCompleteValue);\n }\n return this;\n };\n __decorate$2o([\n RefSelector('eLabel')\n ], AgAbstractInputField.prototype, \"eLabel\", void 0);\n __decorate$2o([\n RefSelector('eWrapper')\n ], AgAbstractInputField.prototype, \"eWrapper\", void 0);\n __decorate$2o([\n RefSelector('eInput')\n ], AgAbstractInputField.prototype, \"eInput\", void 0);\n return AgAbstractInputField;\n}(AgAbstractField));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$2Q(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: Events.EVENT_FIELD_VALUE_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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$2P(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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 __spreadArray$k = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar SimpleFilterModelFormatter = /** @class */ (function () {\n function SimpleFilterModelFormatter(localeService, optionsFactory, valueFormatter) {\n this.localeService = localeService;\n this.optionsFactory = optionsFactory;\n this.valueFormatter = valueFormatter;\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 SimpleFilterModelFormatter.prototype.getModelAsString = function (model) {\n var _this = this;\n if (!model) {\n return null;\n }\n var isCombined = model.operator != null;\n var translate = this.localeService.getLocaleTextFunc();\n if (isCombined) {\n var combinedModel = model;\n var conditions = combinedModel.conditions;\n if (!conditions) {\n var condition1 = combinedModel.condition1, condition2 = combinedModel.condition2;\n conditions = [condition1, condition2];\n }\n var customOptions = conditions.map(function (condition) { return _this.getModelAsString(condition); });\n var joinOperatorTranslateKey = combinedModel.operator === 'AND' ? 'andCondition' : 'orCondition';\n return customOptions.join(\" \" + translate(joinOperatorTranslateKey, DEFAULT_FILTER_LOCALE_TEXT[joinOperatorTranslateKey]) + \" \");\n }\n else if (model.type === SimpleFilter.BLANK || model.type === SimpleFilter.NOT_BLANK) {\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 _a = customOption || {}, displayKey = _a.displayKey, displayName = _a.displayName, numberOfInputs = _a.numberOfInputs;\n if (displayKey && displayName && numberOfInputs === 0) {\n translate(displayKey, displayName);\n return displayName;\n }\n return this.conditionToString(condition, customOption);\n }\n };\n SimpleFilterModelFormatter.prototype.updateParams = function (params) {\n this.optionsFactory = params.optionsFactory;\n };\n SimpleFilterModelFormatter.prototype.formatValue = function (value) {\n var _a;\n return this.valueFormatter ? ((_a = this.valueFormatter(value !== null && value !== void 0 ? value : null)) !== null && _a !== void 0 ? _a : '') : String(value);\n };\n return SimpleFilterModelFormatter;\n}());\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$2O(SimpleFilter, _super);\n function SimpleFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.eTypes = [];\n _this.eJoinOperatorPanels = [];\n _this.eJoinOperatorsAnd = [];\n _this.eJoinOperatorsOr = [];\n _this.eConditionBodies = [];\n _this.listener = function () { return _this.onUiChanged(); };\n _this.lastUiCompletePosition = null;\n _this.joinOperatorId = 0;\n return _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 var _this = this;\n this.eTypes.forEach(function (eType, position) {\n if (position === 0) {\n eType.setValue(type, true);\n }\n else {\n eType.setValue(_this.optionsFactory.getDefaultOption(), true);\n }\n });\n };\n SimpleFilter.prototype.getModelFromUi = function () {\n var conditions = this.getUiCompleteConditions();\n if (conditions.length === 0) {\n return null;\n }\n if (this.maxNumConditions > 1 && conditions.length > 1) {\n return {\n filterType: this.getFilterType(),\n operator: this.getJoinOperator(),\n condition1: conditions[0],\n condition2: conditions[1],\n conditions: conditions\n };\n }\n return conditions[0];\n };\n SimpleFilter.prototype.getConditionTypes = function () {\n return this.eTypes.map(function (eType) { return eType.getValue(); });\n };\n SimpleFilter.prototype.getConditionType = function (position) {\n return this.eTypes[position].getValue();\n };\n SimpleFilter.prototype.getJoinOperator = function () {\n if (this.eJoinOperatorsOr.length === 0) {\n return this.defaultJoinOperator;\n }\n return this.eJoinOperatorsOr[0].getValue() === true ? 'OR' : 'AND';\n };\n SimpleFilter.prototype.areModelsEqual = function (a, b) {\n var _this = this;\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 && areEqual(aCombined.conditions, bCombined.conditions, function (aModel, bModel) { return _this.areSimpleModelsEqual(aModel, bModel); });\n }\n return res;\n };\n SimpleFilter.prototype.setModelIntoUi = function (model) {\n var _this = this;\n var isCombined = model.operator;\n if (isCombined) {\n var combinedModel = model;\n if (!combinedModel.conditions) {\n combinedModel.conditions = [\n combinedModel.condition1,\n combinedModel.condition2\n ];\n }\n var numConditions = this.validateAndUpdateConditions(combinedModel.conditions);\n var numPrevConditions = this.getNumConditions();\n if (numConditions < numPrevConditions) {\n this.removeConditionsAndOperators(numConditions);\n }\n else if (numConditions > numPrevConditions) {\n for (var i = numPrevConditions; i < numConditions; i++) {\n this.createJoinOperatorPanel();\n this.createOption();\n }\n }\n var orChecked_1 = combinedModel.operator === 'OR';\n this.eJoinOperatorsAnd.forEach(function (eJoinOperatorAnd) { return eJoinOperatorAnd.setValue(!orChecked_1, true); });\n this.eJoinOperatorsOr.forEach(function (eJoinOperatorOr) { return eJoinOperatorOr.setValue(orChecked_1, true); });\n combinedModel.conditions.forEach(function (condition, position) {\n _this.eTypes[position].setValue(condition.type, true);\n _this.setConditionIntoUi(condition, position);\n });\n }\n else {\n var simpleModel = model;\n if (this.getNumConditions() > 1) {\n this.removeConditionsAndOperators(1);\n }\n this.eTypes[0].setValue(simpleModel.type, true);\n this.setConditionIntoUi(simpleModel, 0);\n }\n this.lastUiCompletePosition = this.getNumConditions() - 1;\n this.createMissingConditionsAndOperators();\n this.onUiChanged();\n return AgPromise.resolve();\n };\n SimpleFilter.prototype.validateAndUpdateConditions = function (conditions) {\n var numConditions = conditions.length;\n if (numConditions > this.maxNumConditions) {\n conditions.splice(this.maxNumConditions);\n doOnce(function () { return console.warn('AG Grid: Filter Model contains more conditions than \"filterParams.maxNumConditions\". Additional conditions have been ignored.'); }, 'simpleFilterSetModelMaxNumConditions');\n numConditions = this.maxNumConditions;\n }\n return numConditions;\n };\n SimpleFilter.prototype.doesFilterPass = function (params) {\n var _this = this;\n var _a;\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.apply(models, __spreadArray$k([], __read$p(((_a = combinedModel.conditions) !== null && _a !== void 0 ? _a : []))));\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.setNumConditions(params);\n this.defaultJoinOperator = this.getDefaultJoinOperator(params.defaultJoinOperator);\n this.filterPlaceholder = params.filterPlaceholder;\n this.optionsFactory = new OptionsFactory();\n this.optionsFactory.init(params, this.getDefaultFilterOptions());\n this.createFilterListOptions();\n this.createOption();\n this.createMissingConditionsAndOperators();\n if (this.isReadOnly()) {\n // only do this when read only (so no other focusable elements), otherwise the tab order breaks\n // as the tabbed layout managed focus feature will focus the body when it shouldn't\n this.eFilterBody.setAttribute('tabindex', '-1');\n }\n };\n SimpleFilter.prototype.setNumConditions = function (params) {\n var _a, _b;\n if (params.suppressAndOrCondition != null) {\n doOnce(function () { return console.warn('AG Grid: Since v29.2 \"filterParams.suppressAndOrCondition\" is deprecated. Use \"filterParams.maxNumConditions = 1\" instead.'); }, 'simpleFilterSuppressAndOrCondition');\n }\n if (params.alwaysShowBothConditions != null) {\n doOnce(function () { return console.warn('AG Grid: Since v29.2 \"filterParams.alwaysShowBothConditions\" is deprecated. Use \"filterParams.numAlwaysVisibleConditions = 2\" instead.'); }, 'simpleFilterAlwaysShowBothConditions');\n }\n this.maxNumConditions = (_a = params.maxNumConditions) !== null && _a !== void 0 ? _a : (params.suppressAndOrCondition ? 1 : 2);\n if (this.maxNumConditions < 1) {\n doOnce(function () { return console.warn('AG Grid: \"filterParams.maxNumConditions\" must be greater than or equal to zero.'); }, 'simpleFilterMaxNumConditions');\n this.maxNumConditions = 1;\n }\n this.numAlwaysVisibleConditions = (_b = params.numAlwaysVisibleConditions) !== null && _b !== void 0 ? _b : (params.alwaysShowBothConditions ? 2 : 1);\n if (this.numAlwaysVisibleConditions < 1) {\n doOnce(function () { return console.warn('AG Grid: \"filterParams.numAlwaysVisibleConditions\" must be greater than or equal to zero.'); }, 'simpleFilterNumAlwaysVisibleConditions');\n this.numAlwaysVisibleConditions = 1;\n }\n if (this.numAlwaysVisibleConditions > this.maxNumConditions) {\n doOnce(function () { return console.warn('AG Grid: \"filterParams.numAlwaysVisibleConditions\" cannot be greater than \"filterParams.maxNumConditions\".'); }, 'simpleFilterNumAlwaysVisibleGreaterThanMaxNumConditions');\n this.numAlwaysVisibleConditions = this.maxNumConditions;\n }\n };\n SimpleFilter.prototype.createOption = function () {\n var _this = this;\n var eType = this.createManagedBean(new AgSelect());\n this.eTypes.push(eType);\n eType.addCssClass('ag-filter-select');\n this.eFilterBody.appendChild(eType.getGui());\n var eConditionBody = this.createValueElement();\n this.eConditionBodies.push(eConditionBody);\n this.eFilterBody.appendChild(eConditionBody);\n this.putOptionsIntoDropdown(eType);\n this.resetType(eType);\n var position = this.getNumConditions() - 1;\n this.forEachPositionInput(position, function (element) { return _this.resetInput(element); });\n this.addChangedListeners(eType, position);\n };\n SimpleFilter.prototype.createJoinOperatorPanel = function () {\n var eJoinOperatorPanel = document.createElement('div');\n this.eJoinOperatorPanels.push(eJoinOperatorPanel);\n eJoinOperatorPanel.classList.add('ag-filter-condition');\n var eJoinOperatorAnd = this.createJoinOperator(this.eJoinOperatorsAnd, eJoinOperatorPanel, 'and');\n var eJoinOperatorOr = this.createJoinOperator(this.eJoinOperatorsOr, eJoinOperatorPanel, 'or');\n this.eFilterBody.appendChild(eJoinOperatorPanel);\n var index = this.eJoinOperatorPanels.length - 1;\n var uniqueGroupId = this.joinOperatorId++;\n this.resetJoinOperatorAnd(eJoinOperatorAnd, index, uniqueGroupId);\n this.resetJoinOperatorOr(eJoinOperatorOr, index, uniqueGroupId);\n if (!this.isReadOnly()) {\n eJoinOperatorAnd.onValueChange(this.listener);\n eJoinOperatorOr.onValueChange(this.listener);\n }\n };\n SimpleFilter.prototype.createJoinOperator = function (eJoinOperators, eJoinOperatorPanel, andOr) {\n var eJoinOperator = this.createManagedBean(new AgRadioButton());\n eJoinOperators.push(eJoinOperator);\n eJoinOperator.addCssClass('ag-filter-condition-operator');\n eJoinOperator.addCssClass(\"ag-filter-condition-operator-\" + andOr);\n eJoinOperatorPanel.appendChild(eJoinOperator.getGui());\n return eJoinOperator;\n };\n SimpleFilter.prototype.getDefaultJoinOperator = function (defaultJoinOperator) {\n return defaultJoinOperator === 'AND' || defaultJoinOperator === 'OR' ? defaultJoinOperator : 'AND';\n };\n SimpleFilter.prototype.createFilterListOptions = function () {\n var _this = this;\n var filterOptions = this.optionsFactory.getFilterOptions();\n this.filterListOptions = filterOptions.map(function (option) {\n return typeof option === 'string' ?\n _this.createBoilerplateListOption(option) :\n _this.createCustomListOption(option);\n });\n };\n SimpleFilter.prototype.putOptionsIntoDropdown = function (eType) {\n // Add specified options to condition drop-down.\n this.filterListOptions.forEach(function (listOption) {\n eType.addOption(listOption);\n });\n // Make drop-downs read-only if there is only one option.\n eType.setDisabled(this.filterListOptions.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.localeService.getLocaleTextFunc()(customOption.displayKey, customOption.displayName) :\n this.translate(displayKey),\n };\n };\n /**\n * @deprecated As of v29.2 filters can have more than two conditions. Check `colDef.filterParams.maxNumConditions` instead.\n */\n SimpleFilter.prototype.isAllowTwoConditions = function () {\n return this.maxNumConditions >= 2;\n };\n SimpleFilter.prototype.createBodyTemplate = function () {\n // created dynamically\n return '';\n };\n SimpleFilter.prototype.getCssIdentifier = function () {\n return 'simple-filter';\n };\n SimpleFilter.prototype.updateUiVisibility = function () {\n var joinOperator = this.getJoinOperator();\n this.updateNumConditions();\n // from here, the number of elements in all the collections is correct, so can just update the values/statuses\n this.updateConditionStatusesAndValues(this.lastUiCompletePosition, joinOperator);\n };\n SimpleFilter.prototype.updateNumConditions = function () {\n var _a;\n // Collection sizes are already correct if updated via API, so only need to handle UI updates here\n var lastUiCompletePosition = -1;\n var areAllConditionsUiComplete = true;\n for (var position = 0; position < this.getNumConditions(); position++) {\n if (this.isConditionUiComplete(position)) {\n lastUiCompletePosition = position;\n }\n else {\n areAllConditionsUiComplete = false;\n }\n }\n if (this.shouldAddNewConditionAtEnd(areAllConditionsUiComplete)) {\n this.createJoinOperatorPanel();\n this.createOption();\n }\n else {\n var activePosition = (_a = this.lastUiCompletePosition) !== null && _a !== void 0 ? _a : this.getNumConditions() - 2;\n if (lastUiCompletePosition < activePosition) {\n // remove any incomplete conditions at the end, excluding the active position\n this.removeConditionsAndOperators(activePosition + 1);\n var removeStartPosition = lastUiCompletePosition + 1;\n var numConditionsToRemove = activePosition - removeStartPosition;\n if (numConditionsToRemove > 0) {\n this.removeConditionsAndOperators(removeStartPosition, numConditionsToRemove);\n }\n this.createMissingConditionsAndOperators();\n }\n }\n this.lastUiCompletePosition = lastUiCompletePosition;\n };\n SimpleFilter.prototype.updateConditionStatusesAndValues = function (lastUiCompletePosition, joinOperator) {\n var _this = this;\n this.eTypes.forEach(function (eType, position) {\n var disabled = _this.isConditionDisabled(position, lastUiCompletePosition);\n eType.setDisabled(disabled || _this.filterListOptions.length <= 1);\n if (position === 1) {\n setDisabled(_this.eJoinOperatorPanels[0], disabled);\n _this.eJoinOperatorsAnd[0].setDisabled(disabled);\n _this.eJoinOperatorsOr[0].setDisabled(disabled);\n }\n });\n this.eConditionBodies.forEach(function (element, index) {\n setDisplayed(element, _this.isConditionBodyVisible(index));\n });\n var orChecked = (joinOperator !== null && joinOperator !== void 0 ? joinOperator : this.getJoinOperator()) === 'OR';\n this.eJoinOperatorsAnd.forEach(function (eJoinOperatorAnd, index) {\n eJoinOperatorAnd.setValue(!orChecked, true);\n });\n this.eJoinOperatorsOr.forEach(function (eJoinOperatorOr, index) {\n eJoinOperatorOr.setValue(orChecked, true);\n });\n this.forEachInput(function (element, index, position, numberOfInputs) {\n _this.setElementDisplayed(element, index < numberOfInputs);\n _this.setElementDisabled(element, _this.isConditionDisabled(position, lastUiCompletePosition));\n });\n this.resetPlaceholder();\n };\n SimpleFilter.prototype.shouldAddNewConditionAtEnd = function (areAllConditionsUiComplete) {\n return areAllConditionsUiComplete && this.getNumConditions() < this.maxNumConditions && !this.isReadOnly();\n };\n SimpleFilter.prototype.removeConditionsAndOperators = function (startPosition, deleteCount) {\n if (startPosition >= this.getNumConditions()) {\n return;\n }\n this.removeComponents(this.eTypes, startPosition, deleteCount);\n this.removeElements(this.eConditionBodies, startPosition, deleteCount);\n this.removeValueElements(startPosition, deleteCount);\n var joinOperatorIndex = Math.max(startPosition - 1, 0);\n this.removeElements(this.eJoinOperatorPanels, joinOperatorIndex, deleteCount);\n this.removeComponents(this.eJoinOperatorsAnd, joinOperatorIndex, deleteCount);\n this.removeComponents(this.eJoinOperatorsOr, joinOperatorIndex, deleteCount);\n };\n SimpleFilter.prototype.removeElements = function (elements, startPosition, deleteCount) {\n var removedElements = this.removeItems(elements, startPosition, deleteCount);\n removedElements.forEach(function (element) { return removeFromParent(element); });\n };\n SimpleFilter.prototype.removeComponents = function (components, startPosition, deleteCount) {\n var _this = this;\n var removedComponents = this.removeItems(components, startPosition, deleteCount);\n removedComponents.forEach(function (comp) {\n removeFromParent(comp.getGui());\n _this.destroyBean(comp);\n });\n };\n SimpleFilter.prototype.removeItems = function (items, startPosition, deleteCount) {\n return deleteCount == null ? items.splice(startPosition) : items.splice(startPosition, deleteCount);\n };\n SimpleFilter.prototype.afterGuiAttached = function (params) {\n _super.prototype.afterGuiAttached.call(this, params);\n this.resetPlaceholder();\n if (!(params === null || params === void 0 ? void 0 : params.suppressFocus)) {\n if (this.isReadOnly()) {\n // something needs focus otherwise keyboard navigation breaks, so focus the filter body\n this.eFilterBody.focus();\n }\n else {\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 };\n SimpleFilter.prototype.afterGuiDetached = function () {\n _super.prototype.afterGuiDetached.call(this);\n var appliedModel = this.getModel();\n if (!this.areModelsEqual(appliedModel, this.getModelFromUi()) || this.hasInvalidInputs()) {\n this.resetUiToActiveModel(appliedModel);\n }\n // remove incomplete positions\n var lastUiCompletePosition = -1;\n // as we remove incomplete positions, the last UI complete position will change\n var updatedLastUiCompletePosition = -1;\n var conditionsRemoved = false;\n var joinOperator = this.getJoinOperator();\n for (var position = this.getNumConditions() - 1; position >= 0; position--) {\n if (this.isConditionUiComplete(position)) {\n if (lastUiCompletePosition === -1) {\n lastUiCompletePosition = position;\n updatedLastUiCompletePosition = position;\n }\n }\n else {\n var shouldRemovePositionAtEnd = position >= this.numAlwaysVisibleConditions && !this.isConditionUiComplete(position - 1);\n var positionBeforeLastUiCompletePosition = position < lastUiCompletePosition;\n if (shouldRemovePositionAtEnd || positionBeforeLastUiCompletePosition) {\n this.removeConditionsAndOperators(position, 1);\n conditionsRemoved = true;\n if (positionBeforeLastUiCompletePosition) {\n updatedLastUiCompletePosition--;\n }\n }\n }\n }\n var shouldUpdateConditionStatusesAndValues = false;\n if (this.getNumConditions() < this.numAlwaysVisibleConditions) {\n // if conditions have been removed, need to recreate new ones at the end up to the number required\n this.createMissingConditionsAndOperators();\n shouldUpdateConditionStatusesAndValues = true;\n }\n if (this.shouldAddNewConditionAtEnd(updatedLastUiCompletePosition === this.getNumConditions() - 1)) {\n this.createJoinOperatorPanel();\n this.createOption();\n shouldUpdateConditionStatusesAndValues = true;\n }\n if (shouldUpdateConditionStatusesAndValues) {\n this.updateConditionStatusesAndValues(updatedLastUiCompletePosition, joinOperator);\n }\n if (conditionsRemoved) {\n this.updateJoinOperatorsDisabled();\n }\n this.lastUiCompletePosition = updatedLastUiCompletePosition;\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 = this.eTypes[position].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.localeService.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, fromFloatingFilter) {\n if (element instanceof AgAbstractInputField) {\n element.setValue(value != null ? String(value) : null, true);\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 this.getConditionTypes().forEach(function (type, position) {\n _this.forEachPositionTypeInput(position, type, cb);\n });\n };\n SimpleFilter.prototype.forEachPositionInput = function (position, cb) {\n var type = this.getConditionType(position);\n this.forEachPositionTypeInput(position, type, cb);\n };\n SimpleFilter.prototype.forEachPositionTypeInput = function (position, type, cb) {\n var numberOfInputs = this.getNumberOfInputs(type);\n var inputs = this.getInputs(position);\n for (var index = 0; index < inputs.length; index++) {\n var input = inputs[index];\n if (input != null) {\n cb(input, index, position, numberOfInputs);\n }\n }\n };\n SimpleFilter.prototype.isConditionDisabled = function (position, lastUiCompletePosition) {\n if (this.isReadOnly()) {\n return true;\n } // Read-only mode trumps everything.\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 and no subsequent conditions are complete.\n return position > lastUiCompletePosition + 1;\n };\n SimpleFilter.prototype.isConditionBodyVisible = function (position) {\n // Check that the condition needs inputs.\n var type = this.getConditionType(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 if (position >= this.getNumConditions()) {\n return false;\n } // Condition doesn't exist.\n var type = this.getConditionType(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.getNumConditions = function () {\n return this.eTypes.length;\n };\n SimpleFilter.prototype.getUiCompleteConditions = function () {\n var conditions = [];\n for (var position = 0; position < this.getNumConditions(); position++) {\n if (this.isConditionUiComplete(position)) {\n conditions.push(this.createCondition(position));\n }\n }\n return conditions;\n };\n SimpleFilter.prototype.createMissingConditionsAndOperators = function () {\n if (this.isReadOnly()) {\n return;\n } // don't show incomplete conditions when read only\n for (var i = this.getNumConditions(); i < this.numAlwaysVisibleConditions; i++) {\n this.createJoinOperatorPanel();\n this.createOption();\n }\n };\n SimpleFilter.prototype.resetUiToDefaults = function (silent) {\n var _this = this;\n this.removeConditionsAndOperators(this.isReadOnly() ? 1 : this.numAlwaysVisibleConditions);\n this.eTypes.forEach(function (eType) { return _this.resetType(eType); });\n this.eJoinOperatorsAnd.forEach(function (eJoinOperatorAnd, index) { return _this.resetJoinOperatorAnd(eJoinOperatorAnd, index, _this.joinOperatorId + index); });\n this.eJoinOperatorsOr.forEach(function (eJoinOperatorOr, index) { return _this.resetJoinOperatorOr(eJoinOperatorOr, index, _this.joinOperatorId + index); });\n this.joinOperatorId++;\n this.forEachInput(function (element) { return _this.resetInput(element); });\n this.resetPlaceholder();\n this.createMissingConditionsAndOperators();\n this.lastUiCompletePosition = null;\n if (!silent) {\n this.onUiChanged();\n }\n return AgPromise.resolve();\n };\n SimpleFilter.prototype.resetType = function (eType) {\n var translate = this.localeService.getLocaleTextFunc();\n var filteringLabel = translate('ariaFilteringOperator', 'Filtering operator');\n eType\n .setValue(this.optionsFactory.getDefaultOption(), true)\n .setAriaLabel(filteringLabel)\n .setDisabled(this.isReadOnly() || this.filterListOptions.length <= 1);\n };\n SimpleFilter.prototype.resetJoinOperatorAnd = function (eJoinOperatorAnd, index, uniqueGroupId) {\n this.resetJoinOperator(eJoinOperatorAnd, index, this.isDefaultOperator('AND'), this.translate('andCondition'), uniqueGroupId);\n };\n SimpleFilter.prototype.resetJoinOperatorOr = function (eJoinOperatorOr, index, uniqueGroupId) {\n this.resetJoinOperator(eJoinOperatorOr, index, this.isDefaultOperator('OR'), this.translate('orCondition'), uniqueGroupId);\n };\n SimpleFilter.prototype.resetJoinOperator = function (eJoinOperator, index, value, label, uniqueGroupId) {\n this.updateJoinOperatorDisabled(eJoinOperator\n .setValue(value, true)\n .setName(\"ag-simple-filter-and-or-\" + this.getCompId() + \"-\" + uniqueGroupId)\n .setLabel(label), index);\n };\n SimpleFilter.prototype.updateJoinOperatorsDisabled = function () {\n var _this = this;\n this.eJoinOperatorsAnd.forEach(function (eJoinOperator, index) { return _this.updateJoinOperatorDisabled(eJoinOperator, index); });\n this.eJoinOperatorsOr.forEach(function (eJoinOperator, index) { return _this.updateJoinOperatorDisabled(eJoinOperator, index); });\n };\n SimpleFilter.prototype.updateJoinOperatorDisabled = function (eJoinOperator, index) {\n eJoinOperator.setDisabled(this.isReadOnly() || index > 0);\n };\n SimpleFilter.prototype.resetInput = function (element) {\n this.setElementValue(element, null);\n this.setElementDisabled(element, this.isReadOnly());\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, true);\n });\n };\n SimpleFilter.prototype.isDefaultOperator = function (operator) {\n return operator === this.defaultJoinOperator;\n };\n SimpleFilter.prototype.addChangedListeners = function (eType, position) {\n var _this = this;\n if (this.isReadOnly()) {\n return;\n }\n eType.onValueChange(this.listener);\n this.forEachPositionInput(position, function (element) {\n _this.attachElementOnChange(element, _this.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.prototype.hasInvalidInputs = function () {\n return false;\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 return SimpleFilter;\n}(ProvidedFilter));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$2N(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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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$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 DEFAULT_MIN_YEAR = 1000;\nvar DEFAULT_MAX_YEAR = Infinity;\nvar DateFilterModelFormatter = /** @class */ (function (_super) {\n __extends$2M(DateFilterModelFormatter, _super);\n function DateFilterModelFormatter(dateFilterParams, localeService, optionsFactory) {\n var _this = _super.call(this, localeService, optionsFactory) || this;\n _this.dateFilterParams = dateFilterParams;\n return _this;\n }\n DateFilterModelFormatter.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.dateFilterParams.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 DateFilterModelFormatter.prototype.updateParams = function (params) {\n _super.prototype.updateParams.call(this, params);\n this.dateFilterParams = params.dateFilterParams;\n };\n return DateFilterModelFormatter;\n}(SimpleFilterModelFormatter));\nvar DateFilter = /** @class */ (function (_super) {\n __extends$2M(DateFilter, _super);\n function DateFilter() {\n var _this = _super.call(this, 'dateFilter') || this;\n _this.eConditionPanelsFrom = [];\n _this.eConditionPanelsTo = [];\n _this.dateConditionFromComps = [];\n _this.dateConditionToComps = [];\n _this.minValidYear = DEFAULT_MIN_YEAR;\n _this.maxValidYear = DEFAULT_MAX_YEAR;\n _this.minValidDate = null;\n _this.maxValidDate = null;\n return _this;\n }\n DateFilter.prototype.afterGuiAttached = function (params) {\n _super.prototype.afterGuiAttached.call(this, params);\n this.dateConditionFromComps[0].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 this.dateFilterParams = params;\n _super.prototype.setParams.call(this, 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 if (params.minValidDate) {\n this.minValidDate = params.minValidDate instanceof Date ? params.minValidDate : parseDateTimeFromString(params.minValidDate);\n }\n else {\n this.minValidDate = null;\n }\n if (params.maxValidDate) {\n this.maxValidDate = params.maxValidDate instanceof Date ? params.maxValidDate : parseDateTimeFromString(params.maxValidDate);\n }\n else {\n this.maxValidDate = null;\n }\n if (this.minValidDate && this.maxValidDate && this.minValidDate > this.maxValidDate) {\n console.warn(\"AG Grid: DateFilter minValidDate should be <= maxValidDate\");\n }\n this.filterModelFormatter = new DateFilterModelFormatter(this.dateFilterParams, this.localeService, this.optionsFactory);\n };\n DateFilter.prototype.createDateCompWrapper = function (element) {\n var _this = this;\n var dateCompWrapper = new DateCompWrapper(this.getContext(), this.userComponentFactory, {\n onDateChanged: function () { return _this.onUiChanged(); },\n filterParams: this.dateFilterParams\n }, element);\n this.addDestroyFunc(function () { return dateCompWrapper.destroy(); });\n return dateCompWrapper;\n };\n DateFilter.prototype.setElementValue = function (element, value) {\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.createValueElement = function () {\n var eCondition = document.createElement('div');\n eCondition.classList.add('ag-filter-body');\n this.createFromToElement(eCondition, this.eConditionPanelsFrom, this.dateConditionFromComps, 'from');\n this.createFromToElement(eCondition, this.eConditionPanelsTo, this.dateConditionToComps, 'to');\n return eCondition;\n };\n DateFilter.prototype.createFromToElement = function (eCondition, eConditionPanels, dateConditionComps, fromTo) {\n var eConditionPanel = document.createElement('div');\n eConditionPanel.classList.add(\"ag-filter-\" + fromTo);\n eConditionPanel.classList.add(\"ag-filter-date-\" + fromTo);\n eConditionPanels.push(eConditionPanel);\n eCondition.appendChild(eConditionPanel);\n dateConditionComps.push(this.createDateCompWrapper(eConditionPanel));\n };\n DateFilter.prototype.removeValueElements = function (startPosition, deleteCount) {\n this.removeDateComps(this.dateConditionFromComps, startPosition, deleteCount);\n this.removeDateComps(this.dateConditionToComps, startPosition, deleteCount);\n this.removeItems(this.eConditionPanelsFrom, startPosition, deleteCount);\n this.removeItems(this.eConditionPanelsTo, startPosition, deleteCount);\n };\n DateFilter.prototype.removeDateComps = function (components, startPosition, deleteCount) {\n var removedComponents = this.removeItems(components, startPosition, deleteCount);\n removedComponents.forEach(function (comp) { return comp.destroy(); });\n };\n DateFilter.prototype.isValidDateValue = function (value) {\n if (value === null) {\n return false;\n }\n if (this.minValidDate) {\n if (value < this.minValidDate) {\n return false;\n }\n }\n else {\n if (value.getUTCFullYear() < this.minValidYear) {\n return false;\n }\n }\n if (this.maxValidDate) {\n if (value > this.maxValidDate) {\n return false;\n }\n }\n else {\n if (value.getUTCFullYear() > this.maxValidYear) {\n return false;\n }\n }\n return true;\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 valid = true;\n this.forEachInput(function (element, index, elPosition, numberOfInputs) {\n if (elPosition !== position || !valid || index >= numberOfInputs) {\n return;\n }\n valid = valid && _this.isValidDateValue(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.getConditionType(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$i({ dateFrom: null, dateTo: null, filterType: this.getFilterType(), type: type }, model);\n };\n DateFilter.prototype.resetPlaceholder = function () {\n var globalTranslate = this.localeService.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 (position) {\n if (position >= this.dateConditionFromComps.length) {\n return [null, null];\n }\n return [this.dateConditionFromComps[position], this.dateConditionToComps[position]];\n };\n DateFilter.prototype.getValues = function (position) {\n var result = [];\n this.forEachPositionInput(position, function (element, index, _elPosition, numberOfInputs) {\n if (index < numberOfInputs) {\n result.push(element.getDate());\n }\n });\n return result;\n };\n DateFilter.prototype.getModelAsString = function (model) {\n var _a;\n return (_a = this.filterModelFormatter.getModelAsString(model)) !== null && _a !== void 0 ? _a : '';\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$2n([\n Autowired('userComponentFactory')\n ], DateFilter.prototype, \"userComponentFactory\", void 0);\n return DateFilter;\n}(ScalarFilter));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$2L(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 SimpleFloatingFilter.prototype.isEventFromFloatingFilter = function (event) {\n return event && event.afterFloatingFilter;\n };\n SimpleFloatingFilter.prototype.isEventFromDataChange = function (event) {\n return event === null || event === void 0 ? void 0 : event.afterDataChange;\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.conditions[0];\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.setSimpleParams(params);\n };\n SimpleFloatingFilter.prototype.setSimpleParams = 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 ProvidedFilterParams - 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.onParamsUpdated = function (params) {\n this.setSimpleParams(params);\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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};\nvar DateFloatingFilter = /** @class */ (function (_super) {\n __extends$2K(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.init = function (params) {\n _super.prototype.init.call(this, params);\n this.params = params;\n this.filterParams = params.filterParams;\n this.createDateComponent();\n this.filterModelFormatter = new DateFilterModelFormatter(this.filterParams, this.localeService, this.optionsFactory);\n var translate = this.localeService.getLocaleTextFunc();\n this.eReadOnlyText\n .setDisabled(true)\n .setInputAriaLabel(translate('ariaDateFilterInput', 'Date Filter Input'));\n };\n DateFloatingFilter.prototype.onParamsUpdated = function (params) {\n _super.prototype.onParamsUpdated.call(this, params);\n this.params = params;\n this.filterParams = params.filterParams;\n this.updateDateComponent();\n this.filterModelFormatter.updateParams({ optionsFactory: this.optionsFactory, dateFilterParams: this.filterParams });\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 // This is similar for data changes, which don't affect provided date floating filters\n if (this.isEventFromFloatingFilter(event) || this.isEventFromDataChange(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.filterModelFormatter.getModelAsString(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.getDateComponentParams = function () {\n var debounceMs = ProvidedFilter.getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());\n return {\n onDateChanged: debounce(this.onDateChanged.bind(this), debounceMs),\n filterParams: this.params.column.getColDef().filterParams\n };\n };\n DateFloatingFilter.prototype.createDateComponent = function () {\n var _this = this;\n this.dateComp = new DateCompWrapper(this.getContext(), this.userComponentFactory, this.getDateComponentParams(), this.eDateWrapper);\n this.addDestroyFunc(function () { return _this.dateComp.destroy(); });\n };\n DateFloatingFilter.prototype.updateDateComponent = function () {\n var params = this.getDateComponentParams();\n var _a = this.gridOptionsService, api = _a.api, columnApi = _a.columnApi, context = _a.context;\n params.api = api;\n params.columnApi = columnApi;\n params.context = context;\n this.dateComp.updateParams(params);\n };\n DateFloatingFilter.prototype.getFilterModelFormatter = function () {\n return this.filterModelFormatter;\n };\n __decorate$2m([\n Autowired('userComponentFactory')\n ], DateFloatingFilter.prototype, \"userComponentFactory\", void 0);\n __decorate$2m([\n RefSelector('eReadOnlyText')\n ], DateFloatingFilter.prototype, \"eReadOnlyText\", void 0);\n __decorate$2m([\n RefSelector('eDateWrapper')\n ], DateFloatingFilter.prototype, \"eDateWrapper\", void 0);\n return DateFloatingFilter;\n}(SimpleFloatingFilter));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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$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 DefaultDateComponent = /** @class */ (function (_super) {\n __extends$2J(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 this.params = params;\n this.setParams(params);\n var eDocument = this.gridOptionsService.getDocument();\n var inputElement = this.eDateInput.getInputElement();\n // ensures that the input element is focussed when a clear button is clicked,\n // unless using safari as there is no clear button and focus does not work properly\n this.addManagedListener(inputElement, 'mousedown', function () {\n if (_this.eDateInput.isDisabled() || _this.usingSafariDatePicker) {\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 _this.params.onDateChanged();\n });\n };\n DefaultDateComponent.prototype.setParams = function (params) {\n var inputElement = this.eDateInput.getInputElement();\n var shouldUseBrowserDatePicker = this.shouldUseBrowserDatePicker(params);\n this.usingSafariDatePicker = shouldUseBrowserDatePicker && isBrowserSafari();\n inputElement.type = shouldUseBrowserDatePicker ? 'date' : 'text';\n var _a = params.filterParams || {}, minValidYear = _a.minValidYear, maxValidYear = _a.maxValidYear, minValidDate = _a.minValidDate, maxValidDate = _a.maxValidDate;\n if (minValidDate && minValidYear) {\n doOnce(function () { return console.warn('AG Grid: DateFilter should not have both minValidDate and minValidYear parameters set at the same time! minValidYear will be ignored.'); }, 'DateFilter.minValidDateAndMinValidYearWarning');\n }\n if (maxValidDate && maxValidYear) {\n doOnce(function () { return console.warn('AG Grid: DateFilter should not have both maxValidDate and maxValidYear parameters set at the same time! maxValidYear will be ignored.'); }, 'DateFilter.maxValidDateAndMaxValidYearWarning');\n }\n if (minValidDate && maxValidDate) {\n var _b = __read$o([minValidDate, maxValidDate]\n .map(function (v) { return v instanceof Date ? v : parseDateTimeFromString(v); }), 2), parsedMinValidDate = _b[0], parsedMaxValidDate = _b[1];\n if (parsedMinValidDate && parsedMaxValidDate && parsedMinValidDate.getTime() > parsedMaxValidDate.getTime()) {\n doOnce(function () { return console.warn('AG Grid: DateFilter parameter minValidDate should always be lower than or equal to parameter maxValidDate.'); }, 'DateFilter.minValidDateAndMaxValidDateWarning');\n }\n }\n if (minValidDate) {\n if (minValidDate instanceof Date) {\n inputElement.min = dateToFormattedString(minValidDate);\n }\n else {\n inputElement.min = minValidDate;\n }\n }\n else {\n if (minValidYear) {\n inputElement.min = minValidYear + \"-01-01\";\n }\n }\n if (maxValidDate) {\n if (maxValidDate instanceof Date) {\n inputElement.max = dateToFormattedString(maxValidDate);\n }\n else {\n inputElement.max = maxValidDate;\n }\n }\n else {\n if (maxValidYear) {\n inputElement.max = maxValidYear + \"-12-31\";\n }\n }\n };\n DefaultDateComponent.prototype.onParamsUpdated = function (params) {\n this.params = params;\n this.setParams(params);\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() || (isBrowserSafari() && getSafariVersion() >= 14.1);\n };\n __decorate$2l([\n RefSelector('eDateInput')\n ], DefaultDateComponent.prototype, \"eDateInput\", void 0);\n return DefaultDateComponent;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$2I(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 // update the input before we call super.setValue, so it's updated before the value changed event is fired\n if (this.eInput.value !== value) {\n this.eInput.value = exists(value) ? value : '';\n }\n return _super.prototype.setValue.call(this, value, silent);\n };\n /** Used to set an initial value into the input without necessarily setting `this.value` or triggering events (e.g. to set an invalid value) */\n AgInputTextField.prototype.setStartValue = function (value) {\n this.setValue(value, true);\n };\n AgInputTextField.prototype.preventDisallowedCharacters = function () {\n var pattern = new RegExp(\"[\" + this.config.allowedCharPattern + \"]\");\n var preventCharacters = function (event) {\n if (!isEventFromPrintableCharacter(event)) {\n return;\n }\n if (event.key && !pattern.test(event.key)) {\n event.preventDefault();\n }\n };\n this.addManagedListener(this.eInput, 'keydown', preventCharacters);\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$2H(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 != null) {\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, isScientificNotation) {\n if (this.precision == null) {\n return value;\n }\n if (isScientificNotation) {\n var floatString = parseFloat(value).toFixed(this.precision);\n return parseFloat(floatString).toString();\n }\n // can't use toFixed here because we don't want to round up\n var parts = String(value).split('.');\n if (parts.length > 1) {\n if (parts[1].length <= this.precision) {\n return value;\n }\n else if (this.precision > 0) {\n return parts[0] + \".\" + parts[1].slice(0, this.precision);\n }\n }\n return parts[0];\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 var _this = this;\n return this.setValueOrInputValue(function (v) { return _super.prototype.setValue.call(_this, v, silent); }, function () { return _this; }, value);\n };\n AgInputNumberField.prototype.setStartValue = function (value) {\n var _this = this;\n return this.setValueOrInputValue(function (v) { return _super.prototype.setValue.call(_this, v, true); }, function (v) { _this.eInput.value = v; }, value);\n };\n AgInputNumberField.prototype.setValueOrInputValue = function (setValueFunc, setInputValueOnlyFunc, value) {\n if (exists(value)) {\n // need to maintain the scientific notation format whilst typing (e.g. 1e10)\n var setInputValueOnly = this.isScientificNotation(value);\n if (setInputValueOnly && this.eInput.validity.valid) {\n return setValueFunc(value);\n }\n if (!setInputValueOnly) {\n value = this.adjustPrecision(value);\n var normalizedValue = this.normalizeValue(value);\n // outside of valid range\n setInputValueOnly = value != normalizedValue;\n }\n if (setInputValueOnly) {\n return setInputValueOnlyFunc(value);\n }\n }\n return setValueFunc(value);\n };\n AgInputNumberField.prototype.getValue = function () {\n if (!this.eInput.validity.valid) {\n return undefined;\n }\n var inputValue = this.eInput.value;\n if (this.isScientificNotation(inputValue)) {\n return this.adjustPrecision(inputValue, true);\n }\n return _super.prototype.getValue.call(this);\n };\n AgInputNumberField.prototype.isScientificNotation = function (value) {\n return typeof value === 'string' && value.includes('e');\n };\n return AgInputNumberField;\n}(AgInputTextField));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar NumberFilterModelFormatter = /** @class */ (function (_super) {\n __extends$2G(NumberFilterModelFormatter, _super);\n function NumberFilterModelFormatter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NumberFilterModelFormatter.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 this.formatValue(condition.filter) + \"-\" + this.formatValue(condition.filterTo);\n }\n // cater for when the type doesn't need a value\n if (condition.filter != null) {\n return this.formatValue(condition.filter);\n }\n return \"\" + condition.type;\n };\n return NumberFilterModelFormatter;\n}(SimpleFilterModelFormatter));\nfunction getAllowedCharPattern(filterParams) {\n var allowedCharPattern = (filterParams !== null && filterParams !== void 0 ? filterParams : {}).allowedCharPattern;\n return allowedCharPattern !== null && allowedCharPattern !== void 0 ? allowedCharPattern : null;\n}\nvar NumberFilter = /** @class */ (function (_super) {\n __extends$2G(NumberFilter, _super);\n function NumberFilter() {\n var _this = _super.call(this, 'numberFilter') || this;\n _this.eValuesFrom = [];\n _this.eValuesTo = [];\n return _this;\n }\n NumberFilter.prototype.mapValuesFromModel = function (filterModel) {\n var _a = filterModel || {}, filter = _a.filter, filterTo = _a.filterTo, type = _a.type;\n return [\n this.processValue(filter),\n this.processValue(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 _super.prototype.setParams.call(this, params);\n this.filterModelFormatter = new NumberFilterModelFormatter(this.localeService, this.optionsFactory, this.numberFilterParams.numberFormatter);\n };\n NumberFilter.prototype.getDefaultFilterOptions = function () {\n return NumberFilter.DEFAULT_FILTER_OPTIONS;\n };\n NumberFilter.prototype.setElementValue = function (element, value, fromFloatingFilter) {\n // values from floating filter are directly from the input, not from the model\n var valueToSet = !fromFloatingFilter && this.numberFilterParams.numberFormatter\n ? this.numberFilterParams.numberFormatter(value !== null && value !== void 0 ? value : null)\n : value;\n _super.prototype.setElementValue.call(this, element, valueToSet);\n };\n NumberFilter.prototype.createValueElement = function () {\n var allowedCharPattern = getAllowedCharPattern(this.numberFilterParams);\n var eCondition = document.createElement('div');\n eCondition.classList.add('ag-filter-body');\n setAriaRole(eCondition, 'presentation');\n this.createFromToElement(eCondition, this.eValuesFrom, 'from', allowedCharPattern);\n this.createFromToElement(eCondition, this.eValuesTo, 'to', allowedCharPattern);\n return eCondition;\n };\n NumberFilter.prototype.createFromToElement = function (eCondition, eValues, fromTo, allowedCharPattern) {\n var eValue = this.createManagedBean(allowedCharPattern ? new AgInputTextField({ allowedCharPattern: allowedCharPattern }) : new AgInputNumberField());\n eValue.addCssClass(\"ag-filter-\" + fromTo);\n eValue.addCssClass('ag-filter-filter');\n eValues.push(eValue);\n eCondition.appendChild(eValue.getGui());\n };\n NumberFilter.prototype.removeValueElements = function (startPosition, deleteCount) {\n this.removeComponents(this.eValuesFrom, startPosition, deleteCount);\n this.removeComponents(this.eValuesTo, startPosition, deleteCount);\n };\n NumberFilter.prototype.getValues = function (position) {\n var _this = this;\n var result = [];\n this.forEachPositionInput(position, function (element, index, _elPosition, numberOfInputs) {\n if (index < numberOfInputs) {\n result.push(_this.processValue(_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.processValue = function (value) {\n if (value == null) {\n return null;\n }\n return isNaN(value) ? null : value;\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.getConditionType(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 (position) {\n if (position >= this.eValuesFrom.length) {\n return [null, null];\n }\n return [this.eValuesFrom[position], this.eValuesTo[position]];\n };\n NumberFilter.prototype.getModelAsString = function (model) {\n var _a;\n return (_a = this.filterModelFormatter.getModelAsString(model)) !== null && _a !== void 0 ? _a : '';\n };\n NumberFilter.prototype.hasInvalidInputs = function () {\n var invalidInputs = false;\n this.forEachInput(function (element) {\n if (!element.getInputElement().validity.valid) {\n invalidInputs = true;\n return;\n }\n });\n return invalidInputs;\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 return NumberFilter;\n}(ScalarFilter));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 TextFilterModelFormatter = /** @class */ (function (_super) {\n __extends$2F(TextFilterModelFormatter, _super);\n function TextFilterModelFormatter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextFilterModelFormatter.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 return TextFilterModelFormatter;\n}(SimpleFilterModelFormatter));\nvar TextFilter = /** @class */ (function (_super) {\n __extends$2F(TextFilter, _super);\n function TextFilter() {\n var _this = _super.call(this, 'textFilter') || this;\n _this.eValuesFrom = [];\n _this.eValuesTo = [];\n return _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 this.textFilterParams = params;\n _super.prototype.setParams.call(this, params);\n this.matcher = this.getTextMatcher();\n this.formatter = this.textFilterParams.textFormatter ||\n (this.textFilterParams.caseSensitive ? TextFilter.DEFAULT_FORMATTER : TextFilter.DEFAULT_LOWERCASE_FORMATTER);\n this.filterModelFormatter = new TextFilterModelFormatter(this.localeService, this.optionsFactory);\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.getConditionType(position);\n var model = {\n filterType: this.getFilterType(),\n type: type,\n };\n var values = this.getValuesWithSideEffects(position, true);\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 (position) {\n if (position >= this.eValuesFrom.length) {\n return [null, null];\n }\n return [this.eValuesFrom[position], this.eValuesTo[position]];\n };\n TextFilter.prototype.getValues = function (position) {\n return this.getValuesWithSideEffects(position, false);\n };\n TextFilter.prototype.getValuesWithSideEffects = function (position, applySideEffects) {\n var _this = this;\n var result = [];\n this.forEachPositionInput(position, function (element, index, _elPosition, numberOfInputs) {\n var _a;\n if (index < numberOfInputs) {\n var value = makeNull(element.getValue());\n if (applySideEffects && _this.textFilterParams.trimInput) {\n value = (_a = TextFilter.trimInput(value)) !== null && _a !== void 0 ? _a : null;\n element.setValue(value, true); // ensure clean value is visible\n }\n result.push(value);\n }\n });\n return result;\n };\n TextFilter.prototype.getDefaultFilterOptions = function () {\n return TextFilter.DEFAULT_FILTER_OPTIONS;\n };\n TextFilter.prototype.createValueElement = function () {\n var eCondition = document.createElement('div');\n eCondition.classList.add('ag-filter-body');\n setAriaRole(eCondition, 'presentation');\n this.createFromToElement(eCondition, this.eValuesFrom, 'from');\n this.createFromToElement(eCondition, this.eValuesTo, 'to');\n return eCondition;\n };\n TextFilter.prototype.createFromToElement = function (eCondition, eValues, fromTo) {\n var eValue = this.createManagedBean(new AgInputTextField());\n eValue.addCssClass(\"ag-filter-\" + fromTo);\n eValue.addCssClass('ag-filter-filter');\n eValues.push(eValue);\n eCondition.appendChild(eValue.getGui());\n };\n TextFilter.prototype.removeValueElements = function (startPosition, deleteCount) {\n this.removeComponents(this.eValuesFrom, startPosition, deleteCount);\n this.removeComponents(this.eValuesTo, startPosition, deleteCount);\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$h(__assign$h({}, matcherParams), { filterText: v })); });\n };\n TextFilter.prototype.getModelAsString = function (model) {\n var _a;\n return (_a = this.filterModelFormatter.getModelAsString(model)) !== null && _a !== void 0 ? _a : '';\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 return TextFilter;\n}(SimpleFilter));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 FloatingFilterTextInputService = /** @class */ (function (_super) {\n __extends$2E(FloatingFilterTextInputService, _super);\n function FloatingFilterTextInputService(params) {\n var _this = _super.call(this) || this;\n _this.params = params;\n _this.valueChangedListener = function () { };\n return _this;\n }\n FloatingFilterTextInputService.prototype.setupGui = function (parentElement) {\n var _this = this;\n var _a;\n this.eFloatingFilterTextInput = this.createManagedBean(new AgInputTextField((_a = this.params) === null || _a === void 0 ? void 0 : _a.config));\n var eInput = this.eFloatingFilterTextInput.getGui();\n parentElement.appendChild(eInput);\n this.addManagedListener(eInput, 'input', function (e) { return _this.valueChangedListener(e); });\n this.addManagedListener(eInput, 'keydown', function (e) { return _this.valueChangedListener(e); });\n };\n FloatingFilterTextInputService.prototype.setEditable = function (editable) {\n this.eFloatingFilterTextInput.setDisabled(!editable);\n };\n FloatingFilterTextInputService.prototype.setAutoComplete = function (autoComplete) {\n this.eFloatingFilterTextInput.setAutoComplete(autoComplete);\n };\n FloatingFilterTextInputService.prototype.getValue = function () {\n return this.eFloatingFilterTextInput.getValue();\n };\n FloatingFilterTextInputService.prototype.setValue = function (value, silent) {\n this.eFloatingFilterTextInput.setValue(value, silent);\n };\n FloatingFilterTextInputService.prototype.setValueChangedListener = function (listener) {\n this.valueChangedListener = listener;\n };\n FloatingFilterTextInputService.prototype.setParams = function (params) {\n this.setAriaLabel(params.ariaLabel);\n if (params.autoComplete !== undefined) {\n this.setAutoComplete(params.autoComplete);\n }\n };\n FloatingFilterTextInputService.prototype.setAriaLabel = function (ariaLabel) {\n this.eFloatingFilterTextInput.setInputAriaLabel(ariaLabel);\n };\n return FloatingFilterTextInputService;\n}(BeanStub));\nvar TextInputFloatingFilter = /** @class */ (function (_super) {\n __extends$2E(TextInputFloatingFilter, _super);\n function TextInputFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextInputFloatingFilter.prototype.postConstruct = function () {\n this.setTemplate(/* html */ \"\\n
    \\n \");\n };\n TextInputFloatingFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n TextInputFloatingFilter.prototype.onParentModelChanged = function (model, event) {\n if (this.isEventFromFloatingFilter(event) || this.isEventFromDataChange(event)) {\n // if the floating filter triggered the change, it is already in sync.\n // Data changes also do not affect provided text floating filters\n return;\n }\n this.setLastTypeFromModel(model);\n this.setEditable(this.canWeEditAfterModelFromParentFilter(model));\n this.floatingFilterInputService.setValue(this.getFilterModelFormatter().getModelAsString(model));\n };\n TextInputFloatingFilter.prototype.init = function (params) {\n this.setupFloatingFilterInputService(params);\n _super.prototype.init.call(this, params);\n this.setTextInputParams(params);\n };\n TextInputFloatingFilter.prototype.setupFloatingFilterInputService = function (params) {\n this.floatingFilterInputService = this.createFloatingFilterInputService(params);\n this.floatingFilterInputService.setupGui(this.eFloatingFilterInputContainer);\n };\n TextInputFloatingFilter.prototype.setTextInputParams = function (params) {\n var _a;\n this.params = params;\n var autoComplete = (_a = params.browserAutoComplete) !== null && _a !== void 0 ? _a : false;\n this.floatingFilterInputService.setParams({\n ariaLabel: this.getAriaLabel(params),\n autoComplete: autoComplete,\n });\n this.applyActive = ProvidedFilter.isUseApplyButton(this.params.filterParams);\n if (!this.isReadOnly()) {\n var debounceMs = ProvidedFilter.getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());\n var toDebounce = debounce(this.syncUpWithParentFilter.bind(this), debounceMs);\n this.floatingFilterInputService.setValueChangedListener(toDebounce);\n }\n };\n TextInputFloatingFilter.prototype.onParamsUpdated = function (params) {\n _super.prototype.onParamsUpdated.call(this, params);\n this.setTextInputParams(params);\n };\n TextInputFloatingFilter.prototype.recreateFloatingFilterInputService = function (params) {\n var value = this.floatingFilterInputService.getValue();\n clearElement(this.eFloatingFilterInputContainer);\n this.destroyBean(this.floatingFilterInputService);\n this.setupFloatingFilterInputService(params);\n this.floatingFilterInputService.setValue(value, true);\n };\n TextInputFloatingFilter.prototype.getAriaLabel = function (params) {\n var displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);\n var translate = this.localeService.getLocaleTextFunc();\n return displayName + \" \" + translate('ariaFilterInput', 'Filter Input');\n };\n TextInputFloatingFilter.prototype.syncUpWithParentFilter = function (e) {\n var _this = this;\n var isEnterKey = e.key === KeyCode.ENTER;\n if (this.applyActive && !isEnterKey) {\n return;\n }\n var value = this.floatingFilterInputService.getValue();\n if (this.params.filterParams.trimInput) {\n value = TextFilter.trimInput(value);\n this.floatingFilterInputService.setValue(value, true); // ensure visible value is trimmed\n }\n this.params.parentFilterInstance(function (filterInstance) {\n if (filterInstance) {\n // NumberFilter is typed as number, but actually receives string values\n filterInstance.onFloatingFilterChanged(_this.getLastType() || null, value || null);\n }\n });\n };\n TextInputFloatingFilter.prototype.setEditable = function (editable) {\n this.floatingFilterInputService.setEditable(editable);\n };\n __decorate$2k([\n Autowired('columnModel')\n ], TextInputFloatingFilter.prototype, \"columnModel\", void 0);\n __decorate$2k([\n RefSelector('eFloatingFilterInputContainer')\n ], TextInputFloatingFilter.prototype, \"eFloatingFilterInputContainer\", void 0);\n __decorate$2k([\n PostConstruct\n ], TextInputFloatingFilter.prototype, \"postConstruct\", null);\n return TextInputFloatingFilter;\n}(SimpleFloatingFilter));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar FloatingFilterNumberInputService = /** @class */ (function (_super) {\n __extends$2D(FloatingFilterNumberInputService, _super);\n function FloatingFilterNumberInputService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.valueChangedListener = function () { };\n _this.numberInputActive = true;\n return _this;\n }\n FloatingFilterNumberInputService.prototype.setupGui = function (parentElement) {\n var _this = this;\n this.eFloatingFilterNumberInput = this.createManagedBean(new AgInputNumberField());\n this.eFloatingFilterTextInput = this.createManagedBean(new AgInputTextField());\n this.eFloatingFilterTextInput.setDisabled(true);\n var eNumberInput = this.eFloatingFilterNumberInput.getGui();\n var eTextInput = this.eFloatingFilterTextInput.getGui();\n parentElement.appendChild(eNumberInput);\n parentElement.appendChild(eTextInput);\n this.setupListeners(eNumberInput, function (e) { return _this.valueChangedListener(e); });\n this.setupListeners(eTextInput, function (e) { return _this.valueChangedListener(e); });\n };\n FloatingFilterNumberInputService.prototype.setEditable = function (editable) {\n this.numberInputActive = editable;\n this.eFloatingFilterNumberInput.setDisplayed(this.numberInputActive);\n this.eFloatingFilterTextInput.setDisplayed(!this.numberInputActive);\n };\n FloatingFilterNumberInputService.prototype.setAutoComplete = function (autoComplete) {\n this.eFloatingFilterNumberInput.setAutoComplete(autoComplete);\n this.eFloatingFilterTextInput.setAutoComplete(autoComplete);\n };\n FloatingFilterNumberInputService.prototype.getValue = function () {\n return this.getActiveInputElement().getValue();\n };\n FloatingFilterNumberInputService.prototype.setValue = function (value, silent) {\n this.getActiveInputElement().setValue(value, silent);\n };\n FloatingFilterNumberInputService.prototype.getActiveInputElement = function () {\n return this.numberInputActive ? this.eFloatingFilterNumberInput : this.eFloatingFilterTextInput;\n };\n FloatingFilterNumberInputService.prototype.setValueChangedListener = function (listener) {\n this.valueChangedListener = listener;\n };\n FloatingFilterNumberInputService.prototype.setupListeners = function (element, listener) {\n this.addManagedListener(element, 'input', listener);\n this.addManagedListener(element, 'keydown', listener);\n };\n FloatingFilterNumberInputService.prototype.setParams = function (params) {\n this.setAriaLabel(params.ariaLabel);\n if (params.autoComplete !== undefined) {\n this.setAutoComplete(params.autoComplete);\n }\n };\n FloatingFilterNumberInputService.prototype.setAriaLabel = function (ariaLabel) {\n this.eFloatingFilterNumberInput.setInputAriaLabel(ariaLabel);\n this.eFloatingFilterTextInput.setInputAriaLabel(ariaLabel);\n };\n return FloatingFilterNumberInputService;\n}(BeanStub));\nvar NumberFloatingFilter = /** @class */ (function (_super) {\n __extends$2D(NumberFloatingFilter, _super);\n function NumberFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NumberFloatingFilter.prototype.init = function (params) {\n var _a;\n _super.prototype.init.call(this, params);\n this.filterModelFormatter = new NumberFilterModelFormatter(this.localeService, this.optionsFactory, (_a = params.filterParams) === null || _a === void 0 ? void 0 : _a.numberFormatter);\n };\n NumberFloatingFilter.prototype.onParamsUpdated = function (params) {\n var allowedCharPattern = getAllowedCharPattern(params.filterParams);\n if (allowedCharPattern !== this.allowedCharPattern) {\n this.recreateFloatingFilterInputService(params);\n }\n _super.prototype.onParamsUpdated.call(this, params);\n this.filterModelFormatter.updateParams({ optionsFactory: this.optionsFactory });\n };\n NumberFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return NumberFilter.DEFAULT_FILTER_OPTIONS;\n };\n NumberFloatingFilter.prototype.getFilterModelFormatter = function () {\n return this.filterModelFormatter;\n };\n NumberFloatingFilter.prototype.createFloatingFilterInputService = function (params) {\n this.allowedCharPattern = getAllowedCharPattern(params.filterParams);\n if (this.allowedCharPattern) {\n // need to use text input\n return this.createManagedBean(new FloatingFilterTextInputService({\n config: { allowedCharPattern: this.allowedCharPattern },\n }));\n }\n return this.createManagedBean(new FloatingFilterNumberInputService());\n };\n return NumberFloatingFilter;\n}(TextInputFloatingFilter));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$2C(TextFloatingFilter, _super);\n function TextFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextFloatingFilter.prototype.init = function (params) {\n _super.prototype.init.call(this, params);\n this.filterModelFormatter = new TextFilterModelFormatter(this.localeService, this.optionsFactory);\n };\n TextFloatingFilter.prototype.onParamsUpdated = function (params) {\n _super.prototype.onParamsUpdated.call(this, params);\n this.filterModelFormatter.updateParams({ optionsFactory: this.optionsFactory });\n };\n TextFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return TextFilter.DEFAULT_FILTER_OPTIONS;\n };\n TextFloatingFilter.prototype.getFilterModelFormatter = function () {\n return this.filterModelFormatter;\n };\n TextFloatingFilter.prototype.createFloatingFilterInputService = function () {\n return this.createManagedBean(new FloatingFilterTextInputService());\n };\n return TextFloatingFilter;\n}(TextInputFloatingFilter));\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 SortIndicatorComp = /** @class */ (function (_super) {\n __extends$2B(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.gridOptionsService, 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 setDisplayed(this.eSortAsc, isAscending, { skipAriaHidden: true });\n }\n if (this.eSortDesc) {\n var isDescending = sortDirection === 'desc';\n setDisplayed(this.eSortDesc, isDescending, { skipAriaHidden: true });\n }\n if (this.eSortNone) {\n var alwaysHideNoSort = !this.column.getColDef().unSortIcon && !this.gridOptionsService.is('unSortIcon');\n var isNone = sortDirection === null || sortDirection === undefined;\n setDisplayed(this.eSortNone, !alwaysHideNoSort && isNone, { skipAriaHidden: true });\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.gridOptionsService.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 setDisplayed(this.eSortMixed, isMixedSort, { skipAriaHidden: true });\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)) !== null && _a !== void 0 ? _a : -1;\n var moreThanOneColSorting = allColumnsWithSorting.some(function (col) { var _a; return (_a = _this.sortController.getDisplaySortIndexForColumn(col)) !== null && _a !== void 0 ? _a : -1 >= 1; });\n var showIndex = indexThisCol >= 0 && moreThanOneColSorting;\n setDisplayed(this.eSortOrder, showIndex, { skipAriaHidden: true });\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$2j([\n RefSelector('eSortOrder')\n ], SortIndicatorComp.prototype, \"eSortOrder\", void 0);\n __decorate$2j([\n RefSelector('eSortAsc')\n ], SortIndicatorComp.prototype, \"eSortAsc\", void 0);\n __decorate$2j([\n RefSelector('eSortDesc')\n ], SortIndicatorComp.prototype, \"eSortDesc\", void 0);\n __decorate$2j([\n RefSelector('eSortMixed')\n ], SortIndicatorComp.prototype, \"eSortMixed\", void 0);\n __decorate$2j([\n RefSelector('eSortNone')\n ], SortIndicatorComp.prototype, \"eSortNone\", void 0);\n __decorate$2j([\n Autowired('columnModel')\n ], SortIndicatorComp.prototype, \"columnModel\", void 0);\n __decorate$2j([\n Autowired('sortController')\n ], SortIndicatorComp.prototype, \"sortController\", void 0);\n return SortIndicatorComp;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 HeaderComp = /** @class */ (function (_super) {\n __extends$2A(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.gridOptionsService, column);\n if (eIcon) {\n eParent.appendChild(eIcon);\n }\n };\n HeaderComp.prototype.setupTap = function () {\n var _this = this;\n var gridOptionsService = this.gridOptionsService;\n if (gridOptionsService.is('suppressTouch')) {\n return;\n }\n var touchListener = new TouchListener(this.getGui(), true);\n var suppressMenuHide = gridOptionsService.is('suppressMenuHide');\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 gridOptionsService.api.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.gridOptionsService.is('suppressMenuHide');\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.gridOptionsService.is('suppressMenuHide');\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.gridOptionsService.get('multiSortKey') === 'ctrl';\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 _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 = sourceColumns === null || sourceColumns === void 0 ? void 0 : sourceColumns.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 setDisplayed(this.eFilter, filterPresent, { skipAriaHidden: true });\n };\n HeaderComp.TEMPLATE = \"
    \\n \\n
    \\n \\n \\n \\n
    \\n
    \";\n __decorate$2i([\n Autowired('sortController')\n ], HeaderComp.prototype, \"sortController\", void 0);\n __decorate$2i([\n Autowired('menuFactory')\n ], HeaderComp.prototype, \"menuFactory\", void 0);\n __decorate$2i([\n Autowired('columnModel')\n ], HeaderComp.prototype, \"columnModel\", void 0);\n __decorate$2i([\n RefSelector('eFilter')\n ], HeaderComp.prototype, \"eFilter\", void 0);\n __decorate$2i([\n RefSelector('eSortIndicator')\n ], HeaderComp.prototype, \"eSortIndicator\", void 0);\n __decorate$2i([\n RefSelector('eMenu')\n ], HeaderComp.prototype, \"eMenu\", void 0);\n __decorate$2i([\n RefSelector('eLabel')\n ], HeaderComp.prototype, \"eLabel\", void 0);\n __decorate$2i([\n RefSelector('eText')\n ], HeaderComp.prototype, \"eText\", void 0);\n __decorate$2i([\n RefSelector('eSortOrder')\n ], HeaderComp.prototype, \"eSortOrder\", void 0);\n __decorate$2i([\n RefSelector('eSortAsc')\n ], HeaderComp.prototype, \"eSortAsc\", void 0);\n __decorate$2i([\n RefSelector('eSortDesc')\n ], HeaderComp.prototype, \"eSortDesc\", void 0);\n __decorate$2i([\n RefSelector('eSortMixed')\n ], HeaderComp.prototype, \"eSortMixed\", void 0);\n __decorate$2i([\n RefSelector('eSortNone')\n ], HeaderComp.prototype, \"eSortNone\", void 0);\n return HeaderComp;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 HeaderGroupComp = /** @class */ (function (_super) {\n __extends$2z(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.gridOptionsService, 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 var _a;\n // no renderer, default text render\n var _b = this.params, displayName = _b.displayName, columnGroup = _b.columnGroup;\n if (exists(displayName)) {\n var displayNameSanitised = escapeString(displayName);\n this.getRefElement('agLabel').innerHTML = displayNameSanitised;\n }\n this.addOrRemoveCssClass('ag-sticky-label', !((_a = columnGroup.getColGroupDef()) === null || _a === void 0 ? void 0 : _a.suppressStickyLabel));\n };\n HeaderGroupComp.TEMPLATE = \"
    \\n \\n \\n \\n
    \";\n __decorate$2h([\n Autowired(\"columnModel\")\n ], HeaderGroupComp.prototype, \"columnModel\", void 0);\n __decorate$2h([\n RefSelector(\"agOpened\")\n ], HeaderGroupComp.prototype, \"eOpenIcon\", void 0);\n __decorate$2h([\n RefSelector(\"agClosed\")\n ], HeaderGroupComp.prototype, \"eCloseIcon\", void 0);\n return HeaderGroupComp;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$2y(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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 LargeTextCellEditor = /** @class */ (function (_super) {\n __extends$2x(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, true)) {\n this.eTextArea.setValue(params.value.toString(), true);\n }\n this.addGuiEventListener('keydown', this.onKeyDown.bind(this));\n this.activateTabIndex();\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.localeService.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 var value = this.eTextArea.getValue();\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n return this.params.parseValue(value);\n };\n LargeTextCellEditor.TEMPLATE = \"
    \\n \\n
    \";\n __decorate$2g([\n RefSelector(\"eTextArea\")\n ], LargeTextCellEditor.prototype, \"eTextArea\", void 0);\n return LargeTextCellEditor;\n}(PopupComponent));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 SelectCellEditor = /** @class */ (function (_super) {\n __extends$2w(SelectCellEditor, _super);\n function SelectCellEditor() {\n var _this = _super.call(this, /* html */ \"
    \\n \\n
    \") || this;\n _this.startedByEnter = false;\n return _this;\n }\n SelectCellEditor.prototype.init = function (params) {\n this.focusAfterAttached = params.cellStartedEdit;\n var _a = this, eSelect = _a.eSelect, valueFormatterService = _a.valueFormatterService, gridOptionsService = _a.gridOptionsService;\n var values = params.values, value = params.value, eventKey = params.eventKey;\n if (missing(values)) {\n console.warn('AG Grid: no values found for select cellEditor');\n return;\n }\n this.startedByEnter = eventKey != null ? eventKey === KeyCode.ENTER : false;\n var hasValue = false;\n values.forEach(function (currentValue) {\n var option = { value: currentValue };\n var valueFormatted = valueFormatterService.formatValue(params.column, null, currentValue);\n var valueFormattedExits = valueFormatted !== null && valueFormatted !== undefined;\n option.text = valueFormattedExits ? valueFormatted : currentValue;\n eSelect.addOption(option);\n hasValue = hasValue || value === currentValue;\n });\n if (hasValue) {\n eSelect.setValue(params.value, true);\n }\n else if (params.values.length) {\n eSelect.setValue(params.values[0], true);\n }\n var valueListGap = params.valueListGap, valueListMaxWidth = params.valueListMaxWidth, valueListMaxHeight = params.valueListMaxHeight;\n if (valueListGap != null) {\n eSelect.setPickerGap(valueListGap);\n }\n if (valueListMaxHeight != null) {\n eSelect.setPickerMaxHeight(valueListMaxHeight);\n }\n if (valueListMaxWidth != null) {\n eSelect.setPickerMaxWidth(valueListMaxWidth);\n }\n // we don't want to add this if full row editing, otherwise selecting will stop the\n // full row editing.\n if (gridOptionsService.get('editType') !== 'fullRow') {\n this.addManagedListener(this.eSelect, AgSelect.EVENT_ITEM_SELECTED, function () { return params.stopEditing(); });\n }\n };\n SelectCellEditor.prototype.afterGuiAttached = function () {\n var _this = this;\n if (this.focusAfterAttached) {\n this.eSelect.getFocusableElement().focus();\n }\n if (this.startedByEnter) {\n setTimeout(function () {\n if (_this.isAlive()) {\n _this.eSelect.showPicker();\n }\n });\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$2f([\n Autowired('valueFormatterService')\n ], SelectCellEditor.prototype, \"valueFormatterService\", void 0);\n __decorate$2f([\n RefSelector('eSelect')\n ], SelectCellEditor.prototype, \"eSelect\", void 0);\n return SelectCellEditor;\n}(PopupComponent));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 SimpleCellEditor = /** @class */ (function (_super) {\n __extends$2v(SimpleCellEditor, _super);\n function SimpleCellEditor(cellEditorInput) {\n var _this = _super.call(this, /* html */ \"\\n
    \\n \" + cellEditorInput.getTemplate() + \"\\n
    \") || this;\n _this.cellEditorInput = cellEditorInput;\n return _this;\n }\n SimpleCellEditor.prototype.init = function (params) {\n this.params = params;\n var eInput = this.eInput;\n this.cellEditorInput.init(eInput, params);\n var startValue;\n // cellStartedEdit is only false if we are doing fullRow editing\n if (params.cellStartedEdit) {\n this.focusAfterAttached = true;\n var eventKey = params.eventKey;\n if (eventKey === KeyCode.BACKSPACE || params.eventKey === KeyCode.DELETE) {\n startValue = '';\n }\n else if (eventKey && eventKey.length === 1) {\n startValue = eventKey;\n }\n else {\n startValue = this.cellEditorInput.getStartValue();\n if (eventKey !== KeyCode.F2) {\n this.highlightAllOnFocus = true;\n }\n }\n }\n else {\n this.focusAfterAttached = false;\n startValue = this.cellEditorInput.getStartValue();\n }\n if (startValue != null) {\n eInput.setStartValue(startValue);\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 SimpleCellEditor.prototype.afterGuiAttached = function () {\n var _a, _b;\n var translate = this.localeService.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 (_b = (_a = this.cellEditorInput).setCaret) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n };\n // gets called when tabbing through cells and in full row edit mode\n SimpleCellEditor.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 SimpleCellEditor.prototype.getValue = function () {\n return this.cellEditorInput.getValue();\n };\n SimpleCellEditor.prototype.isPopup = function () {\n return false;\n };\n __decorate$2e([\n RefSelector('eInput')\n ], SimpleCellEditor.prototype, \"eInput\", void 0);\n return SimpleCellEditor;\n}(PopupComponent));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar TextCellEditorInput = /** @class */ (function () {\n function TextCellEditorInput() {\n }\n TextCellEditorInput.prototype.getTemplate = function () {\n return /* html */ \"\";\n };\n TextCellEditorInput.prototype.init = function (eInput, params) {\n this.eInput = eInput;\n this.params = params;\n if (params.maxLength != null) {\n eInput.setMaxLength(params.maxLength);\n }\n };\n TextCellEditorInput.prototype.getValue = function () {\n var value = this.eInput.getValue();\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n return this.params.parseValue(value);\n };\n TextCellEditorInput.prototype.getStartValue = function () {\n var formatValue = this.params.useFormatter || this.params.column.getColDef().refData;\n return formatValue ? this.params.formatValue(this.params.value) : this.params.value;\n };\n TextCellEditorInput.prototype.setCaret = function () {\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 = this.eInput.getValue();\n var len = (exists(value) && value.length) || 0;\n if (len) {\n this.eInput.getInputElement().setSelectionRange(len, len);\n }\n };\n return TextCellEditorInput;\n}());\nvar TextCellEditor = /** @class */ (function (_super) {\n __extends$2u(TextCellEditor, _super);\n function TextCellEditor() {\n return _super.call(this, new TextCellEditorInput()) || this;\n }\n return TextCellEditor;\n}(SimpleCellEditor));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 ARROW_UP = '\\u2191';\nvar ARROW_DOWN = '\\u2193';\nvar AnimateShowChangeCellRenderer = /** @class */ (function (_super) {\n __extends$2t(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$2d([\n Autowired('filterManager')\n ], AnimateShowChangeCellRenderer.prototype, \"filterManager\", void 0);\n return AnimateShowChangeCellRenderer;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AnimateSlideCellRenderer = /** @class */ (function (_super) {\n __extends$2s(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$2c([\n Autowired('filterManager')\n ], AnimateSlideCellRenderer.prototype, \"filterManager\", void 0);\n return AnimateSlideCellRenderer;\n}(Component));\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 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.hovered = false;\n this.selected = false;\n this.beans = beans;\n }\n /**\n * Replaces the data on the `rowNode`. When this method is called, the grid will refresh the entire rendered row if it is displayed.\n */\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 /**\n * Updates the data on the `rowNode`. When this method is called, the grid will refresh the entire rendered row if it is displayed.\n */\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 this.resetQuickFilterAggregateText();\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 === 'top') {\n return 't-' + this.rowIndex;\n }\n if (this.rowPinned === '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.checkRowSelectable();\n this.beans.selectionService.syncInRowNode(this, oldNode);\n var event = this.createDataChangedEvent(data, oldData, false);\n this.dispatchLocalEvent(event);\n };\n RowNode.prototype.checkRowSelectable = function () {\n var isRowSelectableFunc = this.beans.gridOptionsService.get('isRowSelectable');\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.gridOptionsService.is('groupSelectsChildren');\n if (isGroupSelectsChildren) {\n var selected = this.calculateSelectedFromChildren();\n this.setSelectedParams({\n newValue: selected !== null && selected !== void 0 ? selected : false,\n source: 'selectableChanged',\n });\n }\n }\n };\n RowNode.prototype.setId = function (id) {\n // see if user is providing the id's\n var getRowIdFunc = this.beans.gridOptionsService.getCallback('getRowId');\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.setHovered = function (hovered) {\n if (this.hovered === hovered) {\n return;\n }\n this.hovered = hovered;\n };\n RowNode.prototype.isHovered = function () {\n return this.hovered;\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 this.__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 _this = this;\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 // If column spanning is active a column may not provide auto height for a row if that\n // cell is not present for the given row due to a previous cell spanning over the auto height column.\n if (_this.beans.columnModel.isColSpanActive()) {\n var activeColsForRow = [];\n switch (col.getPinned()) {\n case 'left':\n activeColsForRow = _this.beans.columnModel.getDisplayedLeftColumnsForRow(_this);\n break;\n case 'right':\n activeColsForRow = _this.beans.columnModel.getDisplayedRightColumnsForRow(_this);\n break;\n case null:\n activeColsForRow = _this.beans.columnModel.getViewportCenterColumnsForRow(_this);\n break;\n }\n if (activeColsForRow.includes(col)) {\n // Column is present in the row, i.e not spanned over, but no auto height was provided so we cannot calculate the row height\n notAllPresent = true;\n return;\n }\n // Ignore this column as it is spanned over and not present in the row\n cellHeight = -1;\n }\n else {\n notAllPresent = true;\n return;\n }\n }\n else {\n // At least one auto height is present\n nonePresent = false;\n }\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.gridOptionsService.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.sibling) {\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.gridOptionsService.context,\n api: this.beans.gridOptionsService.api,\n columnApi: this.beans.gridOptionsService.columnApi\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 * **Note**: This method only fires `onCellEditRequest` when the Grid is in **Read Only** mode.\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 var _this = this;\n var getColumnFromKey = function () {\n var _a;\n if (typeof colKey !== 'string') {\n return colKey;\n }\n // if in pivot mode, grid columns wont include primary columns\n return (_a = _this.beans.columnModel.getGridColumn(colKey)) !== null && _a !== void 0 ? _a : _this.beans.columnModel.getPrimaryColumn(colKey);\n };\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 = getColumnFromKey();\n var oldValue = this.getValueFromValueService(column);\n if (this.beans.gridOptionsService.is('readOnlyEdit')) {\n this.dispatchEventForSaveValueReadOnly(column, oldValue, newValue, eventSource);\n return false;\n }\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.getValueFromValueService = function (column) {\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.leafGroup && this.beans.columnModel.isPivotMode();\n var isOpenGroup = this.group && this.expanded && !this.footer && !lockedClosedGroup;\n // are we showing group footers\n var getGroupIncludeFooter = this.beans.gridOptionsService.getGroupIncludeFooter();\n var groupFootersEnabled = getGroupIncludeFooter({ node: this });\n // if doing footers, we normally don't show agg data at group level when group is open\n var groupAlwaysShowAggData = this.beans.gridOptionsService.is('groupSuppressBlankHeader');\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(column, this, false, ignoreAggData);\n return value;\n };\n RowNode.prototype.dispatchEventForSaveValueReadOnly = function (column, oldValue, newValue, eventSource) {\n var event = {\n type: Events.EVENT_CELL_EDIT_REQUEST,\n event: null,\n rowIndex: this.rowIndex,\n rowPinned: this.rowPinned,\n column: column,\n colDef: column.getColDef(),\n context: this.beans.gridOptionsService.context,\n api: this.beans.gridOptionsService.api,\n columnApi: this.beans.gridOptionsService.columnApi,\n data: this.data,\n node: this,\n oldValue: oldValue,\n newValue: newValue,\n value: newValue,\n source: eventSource\n };\n this.beans.eventService.dispatchEvent(event);\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 value = _this.aggData ? _this.aggData[colId] : undefined;\n var oldValue = oldAggData ? oldAggData[colId] : undefined;\n if (value === oldValue) {\n return;\n }\n // do a quick lookup - despite the event it's possible the column no longer exists\n var column = _this.beans.columnModel.lookupGridColumn(colId);\n if (!column) {\n return;\n }\n _this.dispatchCellChangedEvent(column, value, oldValue);\n });\n }\n };\n RowNode.prototype.updateHasChildren = function () {\n // in CSRM, the group property will be set before the childrenAfterGroup property, check both to prevent flickering\n var newValue = (this.group && !this.footer) || (this.childrenAfterGroup && this.childrenAfterGroup.length > 0);\n var isSsrm = this.beans.gridOptionsService.isRowModelType('serverSide');\n if (isSsrm) {\n var isTreeData = this.beans.gridOptionsService.is('treeData');\n var isGroupFunc = this.beans.gridOptionsService.get('isServerSideGroup');\n // stubs and footers can never have children, as they're grid rows. if tree data the presence of children\n // is determined by the isServerSideGroup callback, if not tree data then the rows group property will be set.\n newValue = !this.stub && !this.footer && (isTreeData ? !!isGroupFunc && isGroupFunc(this.data) : !!this.group);\n }\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 /** Returns:\n * - `true` if the node can be expanded, i.e it is a group or master row.\n * - `false` if the node cannot be expanded\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 if (atLeastOneSelected) {\n return true;\n }\n if (atLeastOneDeSelected) {\n return false;\n }\n if (!this.selectable) {\n return null;\n }\n return this.selected;\n };\n RowNode.prototype.setSelectedInitialValue = function (selected) {\n this.selected = selected;\n };\n RowNode.prototype.selectThisNode = function (newValue, e, source) {\n if (source === void 0) { source = 'api'; }\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 var sibling = this.sibling;\n if (sibling && sibling.footer) {\n sibling.dispatchLocalEvent(sibling.createLocalRowEvent(RowNode.EVENT_ROW_SELECTED));\n }\n }\n var event = __assign$g(__assign$g({}, this.createGlobalRowEvent(Events.EVENT_ROW_SELECTED)), { event: e || null, source: source });\n this.beans.eventService.dispatchEvent(event);\n return true;\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 source - Source property that will appear in the `selectionChanged` event.\n */\n RowNode.prototype.setSelected = function (newValue, clearSelection, source) {\n if (clearSelection === void 0) { clearSelection = false; }\n if (source === void 0) { source = 'api'; }\n if (typeof source === 'boolean') {\n console.warn('AG Grid: since version v30, rowNode.setSelected() property `suppressFinishActions` has been removed, please use `gridApi.setNodesSelected()` for bulk actions, and the event `source` property for ignoring events instead.');\n return;\n }\n this.setSelectedParams({\n newValue: newValue,\n clearSelection: clearSelection,\n rangeSelect: false,\n source: source\n });\n };\n // this is for internal use only. 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 if (this.rowPinned) {\n console.warn('AG Grid: cannot select pinned rows');\n return 0;\n }\n if (this.id === undefined) {\n console.warn('AG Grid: cannot select node until id for node is known');\n return 0;\n }\n return this.beans.selectionService.setNodesSelected(__assign$g(__assign$g({}, params), { nodes: [this.footer ? this.sibling : this] }));\n };\n /**\n * Returns:\n * - `true` if node is either pinned to the `top` or `bottom`\n * - `false` if the node isn't pinned\n */\n RowNode.prototype.isRowPinned = function () {\n return this.rowPinned === 'top' || this.rowPinned === 'bottom';\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 /** 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 /**\n * Returns:\n * - `true` if the node is a full width cell\n * - `false` if the node is not a full width cell\n */\n RowNode.prototype.isFullWidthCell = function () {\n if (this.detail) {\n return true;\n }\n var isFullWidthCellFunc = this.beans.gridOptionsService.getCallback('isFullWidthRow');\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.prototype.createFooter = function () {\n var _this = this;\n // only create footer node once, otherwise we have daemons and\n // the animate screws up with the daemons hanging around\n if (this.sibling) {\n return;\n }\n // we don't copy these properties as they cause the footer node\n // to have properties which should be unique to the row.\n var ignoredProperties = new Set([\n 'eventService',\n '__objectId',\n 'sticky',\n ]);\n var footerNode = new RowNode(this.beans);\n Object.keys(this).forEach(function (key) {\n if (ignoredProperties.has(key)) {\n return;\n }\n footerNode[key] = _this[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 footerNode.id = 'rowGroupFooter_' + this.id;\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 = this;\n this.sibling = footerNode;\n };\n // Only used by SSRM. In CSRM this is never used as footers should always be present for\n // the purpose of exporting collapsed groups. In SSRM it is not possible to export collapsed\n // groups anyway, so can destroy footers.\n RowNode.prototype.destroyFooter = function () {\n if (!this.sibling) {\n return;\n }\n this.sibling.setRowTop(null);\n this.sibling.setRowIndex(null);\n this.sibling = undefined;\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 __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 CheckboxSelectionComponent = /** @class */ (function (_super) {\n __extends$2r(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 setAriaLive(this.eCheckbox.getInputElement(), 'polite');\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.localeService.getLocaleTextFunc();\n var state = this.rowNode.isSelected();\n var stateName = getAriaCheckboxStateName(translate, state);\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.onClicked = function (newValue, groupSelectsFiltered, event) {\n return this.rowNode.setSelectedParams({ newValue: newValue, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered, event: event, source: 'checkboxSelected' });\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 groupSelectsFiltered = _this.gridOptionsService.is('groupSelectsFiltered');\n var isSelected = _this.eCheckbox.getValue();\n if (_this.shouldHandleIndeterminateState(isSelected, groupSelectsFiltered)) {\n // try toggling children to determine action.\n var result = _this.onClicked(true, groupSelectsFiltered, event || {});\n if (result === 0) {\n _this.onClicked(false, groupSelectsFiltered, event);\n }\n }\n else if (isSelected) {\n _this.onClicked(false, groupSelectsFiltered, event);\n }\n else {\n _this.onClicked(true, groupSelectsFiltered, 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.gridOptionsService.get('isRowSelectable');\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.shouldHandleIndeterminateState = function (isSelected, groupSelectsFiltered) {\n // for CSRM groupSelectsFiltered, we can get an indeterminate state where all filtered children are selected,\n // and we would expect clicking to deselect all rather than select all\n return groupSelectsFiltered &&\n (this.eCheckbox.getPreviousValue() === undefined || isSelected === undefined) &&\n this.gridOptionsService.isRowModelType('clientSide');\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$f(__assign$f({}, 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 groupDisplayType = 'groupRows'\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$2b([\n RefSelector('eCheckbox')\n ], CheckboxSelectionComponent.prototype, \"eCheckbox\", void 0);\n __decorate$2b([\n PostConstruct\n ], CheckboxSelectionComponent.prototype, \"postConstruct\", null);\n return CheckboxSelectionComponent;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __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 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[\"AdvancedFilterBuilder\"] = 4] = \"AdvancedFilterBuilder\";\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$2q(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.gridOptionsService, null);\n this.eHideIcon = createIcon('columnMoveHide', this.gridOptionsService, null);\n this.eMoveIcon = createIcon('columnMoveMove', this.gridOptionsService, null);\n this.eLeftIcon = createIcon('columnMoveLeft', this.gridOptionsService, null);\n this.eRightIcon = createIcon('columnMoveRight', this.gridOptionsService, null);\n this.eGroupIcon = createIcon('columnMoveGroup', this.gridOptionsService, null);\n this.eAggregateIcon = createIcon('columnMoveValue', this.gridOptionsService, null);\n this.ePivotIcon = createIcon('columnMovePivot', this.gridOptionsService, null);\n this.eDropNotAllowedIcon = createIcon('dropNotAllowed', this.gridOptionsService, 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 includeTouch: allowTouch\n };\n this.dragSourceAndParamsList.push({ params: params, dragSource: dragSource });\n this.dragService.addDragSource(params);\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 this.dropTargets.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$4(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$4(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 rootNode = this.gridOptionsService.getRootNode();\n // elementsFromPoint return a list of elements under\n // the mouseEvent sorted from topMost to bottomMost\n var elementStack = rootNode.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$4(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$4(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 var browserWidth = getBodyWidth() - 2; // 2px for 1px borderLeft and 1px borderRight\n var browserHeight = getBodyHeight() - 2; // 2px for 1px borderTop and 1px borderBottom\n var offsetParentSize = getElementRectWithOffset(ghost.offsetParent);\n var clientY = event.clientY, clientX = event.clientX;\n var top = (clientY - offsetParentSize.top) - (ghostHeight / 2);\n var left = (clientX - offsetParentSize.left) - 10;\n var eDocument = this.gridOptionsService.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.gridOptionsService.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 var rootNode = this.gridOptionsService.getRootNode();\n var body = rootNode.querySelector('body');\n if (body) {\n targetEl = body;\n }\n else if (rootNode instanceof ShadowRoot) {\n targetEl = rootNode;\n }\n else {\n targetEl = rootNode === null || rootNode === void 0 ? void 0 : rootNode.documentElement;\n }\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.getDefaultIconName ? this.dragSource.getDefaultIconName() : 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.gridOptionsService.is('suppressDragLeaveHidesColumns')) {\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$2a([\n Autowired('dragService')\n ], DragAndDropService.prototype, \"dragService\", void 0);\n __decorate$2a([\n Autowired('mouseEventService')\n ], DragAndDropService.prototype, \"mouseEventService\", void 0);\n __decorate$2a([\n Autowired('columnApi')\n ], DragAndDropService.prototype, \"columnApi\", void 0);\n __decorate$2a([\n Autowired('gridApi')\n ], DragAndDropService.prototype, \"gridApi\", void 0);\n __decorate$2a([\n PostConstruct\n ], DragAndDropService.prototype, \"init\", null);\n __decorate$2a([\n PreDestroy\n ], DragAndDropService.prototype, \"clearDragSourceParamsList\", null);\n DragAndDropService = DragAndDropService_1 = __decorate$2a([\n Bean('dragAndDropService')\n ], DragAndDropService);\n return DragAndDropService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 RowDragComp = /** @class */ (function (_super) {\n __extends$2p(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.gridOptionsService, 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.gridOptionsService.is('rowDragManaged') ?\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.gridOptionsService.is('rowDragMultiRow');\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.gridOptionsService.is('rowDragManaged');\n var treeData = this.gridOptionsService.is('treeData');\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.getRowDragText = function (column) {\n if (column) {\n var colDef = column.getColDef();\n if (colDef.rowDragText) {\n return colDef.rowDragText;\n }\n }\n return this.gridOptionsService.get('rowDragText');\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.getRowDragText(this.column);\n var translate = this.localeService.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.gridOptionsService.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$29([\n Autowired('beans')\n ], RowDragComp.prototype, \"beans\", void 0);\n __decorate$29([\n PostConstruct\n ], RowDragComp.prototype, \"postConstruct\", null);\n __decorate$29([\n PreDestroy\n ], RowDragComp.prototype, \"removeDragSource\", null);\n return RowDragComp;\n}(Component));\nvar VisibilityStrategy = /** @class */ (function (_super) {\n __extends$2p(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 var displayedOptions = { skipAriaHidden: true };\n if (neverDisplayed) {\n this.parent.setDisplayed(false, displayedOptions);\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, displayedOptions);\n this.parent.setVisible(shown, displayedOptions);\n }\n else {\n this.parent.setDisplayed(shown, displayedOptions);\n this.parent.setVisible(true, displayedOptions);\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$2p(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.addManagedPropertyListener('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.gridOptionsService.is('suppressRowDrag');\n this.setDisplayedOrVisible(neverDisplayed);\n };\n __decorate$29([\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$2p(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.addManagedPropertyListener('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.gridOptionsService.is('suppressRowDrag');\n var hasExternalDropZones = this.beans.dragAndDropService.hasExternalDropZones();\n var neverDisplayed = (shouldPreventRowMove && !hasExternalDropZones) || suppressRowDrag;\n this.setDisplayedOrVisible(neverDisplayed);\n };\n __decorate$29([\n PostConstruct\n ], ManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n return ManagedVisibilityStrategy;\n}(VisibilityStrategy));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 GroupCellRendererCtrl = /** @class */ (function (_super) {\n __extends$2o(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 node = params.node, value = params.value, colDef = params.colDef;\n var topLevelFooter = this.isTopLevelFooter();\n // logic for skipping cells follows, never skip top level footer cell.\n if (!topLevelFooter) {\n var embeddedRowMismatch = this.isEmbeddedRowMismatch();\n if (embeddedRowMismatch) {\n return;\n }\n // when group column is multiple group columns, don't render for empty checkboxes\n // as UX becomes overloaded with empty cells including checkboxes.\n var isSingleGroupColumn = (colDef === null || colDef === void 0 ? void 0 : colDef.showRowGroup) === true;\n var isNullValueAndNotMaster = value == null && !node.master;\n if (!isSingleGroupColumn && isNullValueAndNotMaster) {\n return;\n }\n // this footer should only be non-top level. Don't need to check groupIncludeFooter\n // as we won't have footer rows in that instance.\n if (node.footer && this.gridOptionsService.is('groupHideOpenParents')) {\n var showRowGroup = colDef && colDef.showRowGroup;\n var rowGroupColumnId = node.rowGroupColumn && node.rowGroupColumn.getColId();\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 (showRowGroup !== rowGroupColumnId) {\n return;\n }\n }\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.gridOptionsService.is('groupIncludeTotalFooter')) {\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 (groupDisplayType: 'multipleColumns'), 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.gridOptionsService.is('embedFullWidthRows')) {\n return false;\n }\n var pinnedLeftCell = this.params.pinned === 'left';\n var pinnedRightCell = this.params.pinned === 'right';\n var bodyCell = !pinnedLeftCell && !pinnedRightCell;\n if (this.gridOptionsService.is('enableRtl')) {\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.gridOptionsService.is('groupHideOpenParents')) {\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;\n if (valueWhenNoRenderer == null) {\n if (value === '' && this.params.node.group) {\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n valueWhenNoRenderer = localeTextFunc('blanks', '(Blanks)');\n }\n else {\n valueWhenNoRenderer = value !== null && value !== void 0 ? value : null;\n }\n }\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$e(__assign$e({}, 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.gridOptionsService.get('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.gridOptionsService.is('treeData')) {\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 _a;\n var params = this.params;\n var eExpandedIcon = createIconNoSpan('groupExpanded', this.gridOptionsService, null);\n var eContractedIcon = createIconNoSpan('groupContracted', this.gridOptionsService, 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 var isDoubleClickEdit = ((_a = this.params.column) === null || _a === void 0 ? void 0 : _a.isCellEditable(params.node)) && this.gridOptionsService.is('enableGroupEdit');\n if (!isDoubleClickEdit && 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.gridOptionsService.is('groupHideOpenParents')) {\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.gridOptionsService.is('treeData');\n var manyDimensionThisColumn = !fullWithRow || treeData || params.colDef.showRowGroup === true;\n var paddingCount = manyDimensionThisColumn ? rowNode.uiLevel : 0;\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: this.params.node,\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 isEnterKey = event.key === KeyCode.ENTER;\n if (!isEnterKey || 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$28([\n Autowired('expressionService')\n ], GroupCellRendererCtrl.prototype, \"expressionService\", void 0);\n __decorate$28([\n Autowired('valueFormatterService')\n ], GroupCellRendererCtrl.prototype, \"valueFormatterService\", void 0);\n __decorate$28([\n Autowired('columnModel')\n ], GroupCellRendererCtrl.prototype, \"columnModel\", void 0);\n __decorate$28([\n Autowired('userComponentFactory')\n ], GroupCellRendererCtrl.prototype, \"userComponentFactory\", void 0);\n __decorate$28([\n Autowired(\"ctrlsService\")\n ], GroupCellRendererCtrl.prototype, \"ctrlsService\", void 0);\n return GroupCellRendererCtrl;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 GroupCellRenderer = /** @class */ (function (_super) {\n __extends$2n(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$27([\n RefSelector('eExpanded')\n ], GroupCellRenderer.prototype, \"eExpanded\", void 0);\n __decorate$27([\n RefSelector('eContracted')\n ], GroupCellRenderer.prototype, \"eContracted\", void 0);\n __decorate$27([\n RefSelector('eCheckbox')\n ], GroupCellRenderer.prototype, \"eCheckbox\", void 0);\n __decorate$27([\n RefSelector('eValue')\n ], GroupCellRenderer.prototype, \"eValue\", void 0);\n __decorate$27([\n RefSelector('eChildCount')\n ], GroupCellRenderer.prototype, \"eChildCount\", void 0);\n return GroupCellRenderer;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 LoadingCellRenderer = /** @class */ (function (_super) {\n __extends$2m(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.localeService.getLocaleTextFunc();\n this.eLoadingText.innerText = localeTextFunc('loadingError', 'ERR');\n };\n LoadingCellRenderer.prototype.setupLoading = function () {\n var eLoadingIcon = createIconNoSpan('groupLoading', this.gridOptionsService, null);\n if (eLoadingIcon) {\n this.eLoadingIcon.appendChild(eLoadingIcon);\n }\n var localeTextFunc = this.localeService.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$26([\n RefSelector('eLoadingIcon')\n ], LoadingCellRenderer.prototype, \"eLoadingIcon\", void 0);\n __decorate$26([\n RefSelector('eLoadingText')\n ], LoadingCellRenderer.prototype, \"eLoadingText\", void 0);\n return LoadingCellRenderer;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$2l(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 _a;\n var template = (_a = this.gridOptionsService.get('overlayLoadingTemplate')) !== null && _a !== void 0 ? _a : LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE;\n var localeTextFunc = this.localeService.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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$2k(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 _a;\n var template = (_a = this.gridOptionsService.get('overlayNoRowsTemplate')) !== null && _a !== void 0 ? _a : NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE;\n var localeTextFunc = this.localeService.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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$2j(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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar NumberCellEditorInput = /** @class */ (function () {\n function NumberCellEditorInput() {\n }\n NumberCellEditorInput.prototype.getTemplate = function () {\n return /* html */ \"\";\n };\n NumberCellEditorInput.prototype.init = function (eInput, params) {\n this.eInput = eInput;\n this.params = params;\n if (params.max != null) {\n eInput.setMax(params.max);\n }\n if (params.min != null) {\n eInput.setMin(params.min);\n }\n if (params.precision != null) {\n eInput.setPrecision(params.precision);\n }\n if (params.step != null) {\n eInput.setStep(params.step);\n }\n if (params.showStepperButtons) {\n eInput.getInputElement().classList.add('ag-number-field-input-stepper');\n }\n };\n NumberCellEditorInput.prototype.getValue = function () {\n var value = this.eInput.getValue();\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n var parsedValue = this.params.parseValue(value);\n if (parsedValue == null) {\n return parsedValue;\n }\n if (typeof parsedValue === 'string') {\n if (parsedValue === '') {\n return null;\n }\n parsedValue = Number(parsedValue);\n }\n return isNaN(parsedValue) ? null : parsedValue;\n };\n NumberCellEditorInput.prototype.getStartValue = function () {\n return this.params.value;\n };\n return NumberCellEditorInput;\n}());\nvar NumberCellEditor = /** @class */ (function (_super) {\n __extends$2i(NumberCellEditor, _super);\n function NumberCellEditor() {\n return _super.call(this, new NumberCellEditorInput()) || this;\n }\n return NumberCellEditor;\n}(SimpleCellEditor));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar DateCellEditorInput = /** @class */ (function () {\n function DateCellEditorInput() {\n }\n DateCellEditorInput.prototype.getTemplate = function () {\n return /* html */ \"\";\n };\n DateCellEditorInput.prototype.init = function (eInput, params) {\n this.eInput = eInput;\n this.params = params;\n if (params.min != null) {\n eInput.setMin(params.min);\n }\n if (params.max != null) {\n eInput.setMax(params.max);\n }\n if (params.step != null) {\n eInput.setStep(params.step);\n }\n };\n DateCellEditorInput.prototype.getValue = function () {\n var value = this.eInput.getDate();\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n return value !== null && value !== void 0 ? value : null;\n };\n DateCellEditorInput.prototype.getStartValue = function () {\n var value = this.params.value;\n if (!(value instanceof Date)) {\n return undefined;\n }\n return serialiseDate(value, false);\n };\n return DateCellEditorInput;\n}());\nvar DateCellEditor = /** @class */ (function (_super) {\n __extends$2h(DateCellEditor, _super);\n function DateCellEditor() {\n return _super.call(this, new DateCellEditorInput()) || this;\n }\n return DateCellEditor;\n}(SimpleCellEditor));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 DateStringCellEditorInput = /** @class */ (function () {\n function DateStringCellEditorInput(getDataTypeService) {\n this.getDataTypeService = getDataTypeService;\n }\n DateStringCellEditorInput.prototype.getTemplate = function () {\n return /* html */ \"\";\n };\n DateStringCellEditorInput.prototype.init = function (eInput, params) {\n this.eInput = eInput;\n this.params = params;\n if (params.min != null) {\n eInput.setMin(params.min);\n }\n if (params.max != null) {\n eInput.setMax(params.max);\n }\n if (params.step != null) {\n eInput.setStep(params.step);\n }\n };\n DateStringCellEditorInput.prototype.getValue = function () {\n var value = this.formatDate(this.eInput.getDate());\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n return this.params.parseValue(value !== null && value !== void 0 ? value : '');\n };\n DateStringCellEditorInput.prototype.getStartValue = function () {\n var _a, _b;\n return serialiseDate((_b = this.parseDate((_a = this.params.value) !== null && _a !== void 0 ? _a : undefined)) !== null && _b !== void 0 ? _b : null, false);\n };\n DateStringCellEditorInput.prototype.parseDate = function (value) {\n return this.getDataTypeService().getDateParserFunction()(value);\n };\n DateStringCellEditorInput.prototype.formatDate = function (value) {\n return this.getDataTypeService().getDateFormatterFunction()(value);\n };\n return DateStringCellEditorInput;\n}());\nvar DateStringCellEditor = /** @class */ (function (_super) {\n __extends$2g(DateStringCellEditor, _super);\n function DateStringCellEditor() {\n var _this = _super.call(this, new DateStringCellEditorInput(function () { return _this.dataTypeService; })) || this;\n return _this;\n }\n __decorate$25([\n Autowired('dataTypeService')\n ], DateStringCellEditor.prototype, \"dataTypeService\", void 0);\n return DateStringCellEditor;\n}(SimpleCellEditor));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 CheckboxCellRenderer = /** @class */ (function (_super) {\n __extends$2f(CheckboxCellRenderer, _super);\n function CheckboxCellRenderer() {\n return _super.call(this, CheckboxCellRenderer.TEMPLATE) || this;\n }\n CheckboxCellRenderer.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n this.updateCheckbox(params);\n this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');\n this.addManagedListener(this.eCheckbox.getInputElement(), 'click', function (event) {\n stopPropagationForAgGrid(event);\n if (_this.eCheckbox.isDisabled()) {\n return;\n }\n var isSelected = _this.eCheckbox.getValue();\n _this.onCheckboxChanged(isSelected);\n });\n this.addManagedListener(this.eCheckbox.getInputElement(), 'dblclick', function (event) {\n stopPropagationForAgGrid(event);\n });\n var eDocument = this.gridOptionsService.getDocument();\n this.addManagedListener(this.params.eGridCell, 'keydown', function (event) {\n if (event.key === KeyCode.SPACE && !_this.eCheckbox.isDisabled()) {\n if (_this.params.eGridCell === eDocument.activeElement) {\n _this.eCheckbox.toggle();\n }\n var isSelected = _this.eCheckbox.getValue();\n _this.onCheckboxChanged(isSelected);\n event.preventDefault();\n }\n });\n };\n CheckboxCellRenderer.prototype.refresh = function (params) {\n this.params = params;\n this.updateCheckbox(params);\n return true;\n };\n CheckboxCellRenderer.prototype.updateCheckbox = function (params) {\n var _a, _b, _c;\n var isSelected;\n var displayed = true;\n if (params.node.group && params.column) {\n var colId = params.column.getColId();\n if (colId.startsWith(GROUP_AUTO_COLUMN_ID)) {\n // if we're grouping by this column then the value is a string and we need to parse it\n isSelected = params.value == null || params.value === '' ? undefined : params.value === 'true';\n }\n else if (params.node.aggData && params.node.aggData[colId] !== undefined) {\n isSelected = (_a = params.value) !== null && _a !== void 0 ? _a : undefined;\n }\n else {\n displayed = false;\n }\n }\n else {\n isSelected = (_b = params.value) !== null && _b !== void 0 ? _b : undefined;\n }\n if (!displayed) {\n this.eCheckbox.setDisplayed(false);\n return;\n }\n this.eCheckbox.setValue(isSelected);\n var disabled = params.disabled != null ? params.disabled : !((_c = params.column) === null || _c === void 0 ? void 0 : _c.isCellEditable(params.node));\n this.eCheckbox.setDisabled(disabled);\n var translate = this.localeService.getLocaleTextFunc();\n var stateName = getAriaCheckboxStateName(translate, isSelected);\n var ariaLabel = disabled\n ? stateName\n : translate('ariaToggleCellValue', 'Press SPACE to toggle cell value') + \" (\" + stateName + \")\";\n this.eCheckbox.setInputAriaLabel(ariaLabel);\n };\n CheckboxCellRenderer.prototype.onCheckboxChanged = function (isSelected) {\n var _a = this.params, column = _a.column, node = _a.node, rowIndex = _a.rowIndex, value = _a.value;\n var eventStarted = {\n type: Events.EVENT_CELL_EDITING_STARTED,\n column: column,\n colDef: column === null || column === void 0 ? void 0 : column.getColDef(),\n data: node.data,\n node: node,\n rowIndex: rowIndex,\n rowPinned: node.rowPinned,\n value: value\n };\n this.eventService.dispatchEvent(eventStarted);\n var valueChanged = this.params.node.setDataValue(this.params.column, isSelected, 'edit');\n var eventStopped = {\n type: Events.EVENT_CELL_EDITING_STOPPED,\n column: column,\n colDef: column === null || column === void 0 ? void 0 : column.getColDef(),\n data: node.data,\n node: node,\n rowIndex: rowIndex,\n rowPinned: node.rowPinned,\n value: value,\n oldValue: value,\n newValue: isSelected,\n valueChanged: valueChanged\n };\n this.eventService.dispatchEvent(eventStopped);\n };\n CheckboxCellRenderer.TEMPLATE = \"\\n
    \\n \\n
    \";\n __decorate$24([\n RefSelector('eCheckbox')\n ], CheckboxCellRenderer.prototype, \"eCheckbox\", void 0);\n return CheckboxCellRenderer;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 CheckboxCellEditor = /** @class */ (function (_super) {\n __extends$2e(CheckboxCellEditor, _super);\n function CheckboxCellEditor() {\n return _super.call(this, /* html */ \"\\n
    \\n \\n
    \") || this;\n }\n CheckboxCellEditor.prototype.init = function (params) {\n var _this = this;\n var _a;\n this.params = params;\n var isSelected = (_a = params.value) !== null && _a !== void 0 ? _a : undefined;\n this.eCheckbox.setValue(isSelected);\n this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');\n this.setAriaLabel(isSelected);\n this.addManagedListener(this.eCheckbox, Events.EVENT_FIELD_VALUE_CHANGED, function (event) { return _this.setAriaLabel(event.selected); });\n };\n CheckboxCellEditor.prototype.getValue = function () {\n return this.eCheckbox.getValue();\n };\n CheckboxCellEditor.prototype.focusIn = function () {\n this.eCheckbox.getFocusableElement().focus();\n };\n CheckboxCellEditor.prototype.afterGuiAttached = function () {\n if (this.params.cellStartedEdit) {\n this.focusIn();\n }\n };\n CheckboxCellEditor.prototype.isPopup = function () {\n return false;\n };\n CheckboxCellEditor.prototype.setAriaLabel = function (isSelected) {\n var translate = this.localeService.getLocaleTextFunc();\n var stateName = getAriaCheckboxStateName(translate, isSelected);\n var ariaLabel = translate('ariaToggleCellValue', 'Press SPACE to toggle cell value');\n this.eCheckbox.setInputAriaLabel(ariaLabel + \" (\" + stateName + \")\");\n };\n __decorate$23([\n RefSelector('eCheckbox')\n ], CheckboxCellEditor.prototype, \"eCheckbox\", void 0);\n return CheckboxCellEditor;\n}(PopupComponent));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __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 __spreadArray$j = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar UserComponentRegistry = /** @class */ (function (_super) {\n __extends$2d(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 agCheckboxCellRenderer: CheckboxCellRenderer,\n //editors\n agCellEditor: TextCellEditor,\n agTextCellEditor: TextCellEditor,\n agNumberCellEditor: NumberCellEditor,\n agDateCellEditor: DateCellEditor,\n agDateStringCellEditor: DateStringCellEditor,\n agSelectCellEditor: SelectCellEditor,\n agLargeTextCellEditor: LargeTextCellEditor,\n agCheckboxCellEditor: CheckboxCellEditor,\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 /** Used to provide useful error messages if a user is trying to use an enterprise component without loading the module. */\n _this.enterpriseAgDefaultCompsModule = {\n agSetColumnFilter: ModuleNames.SetFilterModule,\n agSetColumnFloatingFilter: ModuleNames.SetFilterModule,\n agMultiColumnFilter: ModuleNames.MultiFilterModule,\n agMultiColumnFloatingFilter: ModuleNames.MultiFilterModule,\n agGroupColumnFilter: ModuleNames.RowGroupingModule,\n agGroupColumnFloatingFilter: ModuleNames.RowGroupingModule,\n agRichSelect: ModuleNames.RichSelectModule,\n agRichSelectCellEditor: ModuleNames.RichSelectModule,\n agDetailCellRenderer: ModuleNames.MasterDetailModule,\n agSparklineCellRenderer: ModuleNames.SparklinesModule\n };\n _this.jsComps = {};\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 };\n UserComponentRegistry.prototype.registerDefaultComponent = function (name, component) {\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 (name, component) {\n this.jsComps[name] = component;\n };\n UserComponentRegistry.prototype.retrieve = function (propertyName, name) {\n var _this = this;\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 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 var moduleForComponent = this.enterpriseAgDefaultCompsModule[name];\n if (moduleForComponent) {\n ModuleRegistry.__assertRegistered(moduleForComponent, \"AG Grid '\" + propertyName + \"' component: \" + name, this.context.getGridId());\n }\n else {\n doOnce(function () { _this.warnAboutMissingComponent(propertyName, name); }, \"MissingComp\" + name);\n }\n return null;\n };\n UserComponentRegistry.prototype.warnAboutMissingComponent = function (propertyName, componentName) {\n var validComponents = __spreadArray$j(__spreadArray$j([], __read$n(Object.keys(this.agGridDefaults).filter(function (k) { return !['agCellEditor', 'agGroupRowRenderer', 'agSortIndicator'].includes(k); }))), __read$n(Object.keys(this.jsComps)));\n var suggestions = fuzzySuggestions(componentName, validComponents, true, 0.8).values;\n console.warn(\"AG Grid: Could not find '\" + componentName + \"' component. It was configured as \\\"\" + propertyName + \": '\" + componentName + \"'\\\" but it wasn't found in the list of registered components.\");\n if (suggestions.length > 0) {\n console.warn(\" Did you mean: [\" + suggestions.slice(0, 3) + \"]?\");\n }\n console.warn(\"If using a custom component check it has been registered as described in: https://ag-grid.com/javascript-data-grid/components/\");\n };\n __decorate$22([\n Autowired('gridOptions')\n ], UserComponentRegistry.prototype, \"gridOptions\", void 0);\n __decorate$22([\n PostConstruct\n ], UserComponentRegistry.prototype, \"init\", null);\n UserComponentRegistry = __decorate$22([\n Bean('userComponentRegistry')\n ], UserComponentRegistry);\n return UserComponentRegistry;\n}(BeanStub));\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\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 group: 'agGroupColumnFloatingFilter',\n agGroupColumnFilter: 'agGroupColumnFloatingFilter',\n number: 'agNumberColumnFloatingFilter',\n agNumberColumnFilter: 'agNumberColumnFloatingFilter',\n date: 'agDateColumnFloatingFilter',\n agDateColumnFilter: 'agDateColumnFloatingFilter',\n text: 'agTextColumnFloatingFilter',\n agTextColumnFilter: 'agTextColumnFloatingFilter'\n };\n return FloatingFilterMapper;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 UserComponentFactory = /** @class */ (function (_super) {\n __extends$2c(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(propertyName, 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(\"AG Grid: 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) {\n if (typeof providedJsComp === 'string') {\n compName = providedJsComp;\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 };\n if (selectorRes) {\n assignComp(selectorRes.component);\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]);\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.gridOptionsService.context,\n columnApi: this.gridOptionsService.columnApi,\n api: this.gridOptionsService.api\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, getFromDefault) {\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 defaultFloatingFilterType = getFromDefault();\n }\n }\n return defaultFloatingFilterType;\n };\n __decorate$21([\n Autowired('gridOptions')\n ], UserComponentFactory.prototype, \"gridOptions\", void 0);\n __decorate$21([\n Autowired('agComponentUtils')\n ], UserComponentFactory.prototype, \"agComponentUtils\", void 0);\n __decorate$21([\n Autowired('componentMetadataProvider')\n ], UserComponentFactory.prototype, \"componentMetadataProvider\", void 0);\n __decorate$21([\n Autowired('userComponentRegistry')\n ], UserComponentFactory.prototype, \"userComponentRegistry\", void 0);\n __decorate$21([\n Optional('frameworkComponentWrapper')\n ], UserComponentFactory.prototype, \"frameworkComponentWrapper\", void 0);\n UserComponentFactory = __decorate$21([\n Bean('userComponentFactory')\n ], UserComponentFactory);\n return UserComponentFactory;\n}(BeanStub));\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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};\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$2b(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.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) {\n var _this = this;\n var mouseListener = this.onMouseDown.bind(this, params);\n var eElement = params.eElement, includeTouch = params.includeTouch, stopPropagationForTouch = params.stopPropagationForTouch;\n eElement.addEventListener('mousedown', mouseListener);\n var touchListener = null;\n var suppressTouch = this.gridOptionsService.is('suppressTouch');\n if (includeTouch && !suppressTouch) {\n touchListener = function (touchEvent) {\n if (isFocusableFormField(touchEvent.target)) {\n return;\n }\n if (touchEvent.cancelable) {\n touchEvent.preventDefault();\n if (stopPropagationForTouch) {\n touchEvent.stopPropagation();\n }\n }\n _this.onTouchStart(params, touchEvent);\n };\n // we set passive=false, as we want to prevent default on this event\n 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 DragService.prototype.getStartTarget = function () {\n return this.startTarget;\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: this.gridOptionsService.getRootNode(), 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 if (this.shouldPreventMouseEvent(mouseEvent)) {\n mouseEvent.preventDefault();\n }\n this.currentDragParams = params;\n this.dragging = false;\n this.mouseStartEvent = mouseEvent;\n this.startTarget = mouseEvent.target;\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 = this.gridOptionsService.getRootNode();\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 if (this.shouldPreventMouseEvent(mouseEvent)) {\n mouseEvent.preventDefault();\n }\n this.onCommonMove(mouseEvent, this.mouseStartEvent, el);\n };\n DragService.prototype.shouldPreventMouseEvent = function (mouseEvent) {\n var isEnableCellTextSelect = this.gridOptionsService.is('enableCellTextSelection');\n var isSafari = isBrowserSafari();\n var isMouseMove = mouseEvent.type === 'mousemove';\n return (\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, so also\n // prevent it on MouseDown.\n ((isEnableCellTextSelect && isMouseMove) || isSafari) &&\n mouseEvent.cancelable &&\n this.mouseEventService.isEventFromThisGrid(mouseEvent) &&\n !this.isOverFormFieldElement(mouseEvent));\n };\n DragService.prototype.isOverFormFieldElement = function (mouseEvent) {\n var el = mouseEvent.target;\n var tagName = el === null || el === void 0 ? void 0 : el.tagName.toLocaleLowerCase();\n return !!(tagName === null || tagName === void 0 ? void 0 : tagName.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.startTarget = 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$20([\n Autowired('mouseEventService')\n ], DragService.prototype, \"mouseEventService\", void 0);\n __decorate$20([\n PreDestroy\n ], DragService.prototype, \"removeAllListeners\", null);\n DragService = __decorate$20([\n Bean('dragService')\n ], DragService);\n return DragService;\n}(BeanStub));\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 LIST_ITEM_HOVERED = 'ag-list-item-hovered';\nvar VirtualListDragFeature = /** @class */ (function (_super) {\n __extends$2a(VirtualListDragFeature, _super);\n function VirtualListDragFeature(comp, virtualList, params) {\n var _this = _super.call(this) || this;\n _this.comp = comp;\n _this.virtualList = virtualList;\n _this.params = params;\n _this.currentDragValue = null;\n _this.lastHoveredListItem = null;\n return _this;\n }\n VirtualListDragFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.params.eventSource, this.params.listItemDragStartEvent, this.listItemDragStart.bind(this));\n this.addManagedListener(this.params.eventSource, this.params.listItemDragEndEvent, this.listItemDragEnd.bind(this));\n this.createDropTarget();\n this.createAutoScrollService();\n };\n VirtualListDragFeature.prototype.listItemDragStart = function (event) {\n this.currentDragValue = this.params.getCurrentDragValue(event);\n this.moveBlocked = this.params.isMoveBlocked(this.currentDragValue);\n };\n VirtualListDragFeature.prototype.listItemDragEnd = function () {\n var _this = this;\n window.setTimeout(function () {\n _this.currentDragValue = null;\n _this.moveBlocked = false;\n }, 10);\n };\n VirtualListDragFeature.prototype.createDropTarget = function () {\n var _this = this;\n var dropTarget = {\n isInterestedIn: function (type) { return type === _this.params.dragSourceType; },\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 VirtualListDragFeature.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 VirtualListDragFeature.prototype.onDragging = function (e) {\n if (!this.currentDragValue || this.moveBlocked) {\n return;\n }\n var hoveredListItem = this.getListDragItem(e);\n var comp = this.virtualList.getComponentAt(hoveredListItem.rowIndex);\n if (!comp) {\n return;\n }\n var el = comp.getGui().parentElement;\n if (this.lastHoveredListItem &&\n this.lastHoveredListItem.rowIndex === hoveredListItem.rowIndex &&\n this.lastHoveredListItem.position === hoveredListItem.position) {\n return;\n }\n this.autoScrollService.check(e.event);\n this.clearHoveredItems();\n this.lastHoveredListItem = hoveredListItem;\n radioCssClass(el, LIST_ITEM_HOVERED);\n radioCssClass(el, \"ag-item-highlight-\" + hoveredListItem.position);\n };\n VirtualListDragFeature.prototype.getListDragItem = 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.params.getNumRows(this.comp) - 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 VirtualListDragFeature.prototype.onDragStop = function () {\n if (this.moveBlocked) {\n return;\n }\n this.params.moveItem(this.currentDragValue, this.lastHoveredListItem);\n this.clearHoveredItems();\n this.autoScrollService.ensureCleared();\n };\n VirtualListDragFeature.prototype.onDragLeave = function () {\n this.clearHoveredItems();\n this.autoScrollService.ensureCleared();\n };\n VirtualListDragFeature.prototype.clearHoveredItems = function () {\n var virtualListGui = this.virtualList.getGui();\n virtualListGui.querySelectorAll(\".\" + LIST_ITEM_HOVERED).forEach(function (el) {\n [\n 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.lastHoveredListItem = null;\n };\n __decorate$1$([\n Autowired('dragAndDropService')\n ], VirtualListDragFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$1$([\n PostConstruct\n ], VirtualListDragFeature.prototype, \"postConstruct\", null);\n return VirtualListDragFeature;\n}(BeanStub));\n\nvar RowHighlightPosition;\n(function (RowHighlightPosition) {\n RowHighlightPosition[RowHighlightPosition[\"Above\"] = 0] = \"Above\";\n RowHighlightPosition[RowHighlightPosition[\"Below\"] = 1] = \"Below\";\n})(RowHighlightPosition || (RowHighlightPosition = {}));\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\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};\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 'clientSide':\n this.clientSideRowModel = this.rowModel;\n break;\n case 'infinite':\n this.infiniteRowModel = this.rowModel;\n break;\n case 'serverSide':\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 GridApi.prototype.getSetterMethod = function (key) {\n return \"set\" + key.charAt(0).toUpperCase() + key.substring(1);\n };\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n GridApi.prototype.__setPropertyOnly = function (propertyName, value) {\n return this.gos.__setPropertyOnly(propertyName, value);\n };\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n GridApi.prototype.__updateProperty = function (propertyName, value, force, changeSet) {\n if (changeSet === void 0) { changeSet = undefined; }\n // Ensure the GridOptions property gets updated and fires the change event as we\n // cannot assume that the dynamic Api call will updated GridOptions.\n this.gos.set(propertyName, value, force, {}, changeSet);\n // If the dynamic api does update GridOptions then change detection in the\n // GridOptionsService will prevent the event being fired twice.\n var setterName = this.getSetterMethod(propertyName);\n var dynamicApi = this;\n if (dynamicApi[setterName]) {\n dynamicApi[setterName](value);\n }\n };\n /** Returns the `gridId` for the current grid as specified via the gridOptions property `gridId` or the auto assigned grid id if none was provided. */\n GridApi.prototype.getGridId = function () {\n return this.context.getGridId();\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', this.context.getGridId())) {\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', this.context.getGridId())) {\n this.csvCreator.exportDataAsCsv(params);\n }\n };\n GridApi.prototype.getExcelExportMode = function (params) {\n var baseParams = this.gos.get('defaultExcelExportParams');\n var mergedParams = Object.assign({ exportMode: 'xlsx' }, baseParams, params);\n return mergedParams.exportMode;\n };\n GridApi.prototype.assertNotExcelMultiSheet = function (method, params) {\n if (!ModuleRegistry.__assertRegistered(ModuleNames.ExcelExportModule, 'api.' + method, this.context.getGridId())) {\n return false;\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 false;\n }\n return true;\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 (this.assertNotExcelMultiSheet('getDataAsExcel', params)) {\n return this.excelCreator.getDataAsExcel(params);\n }\n };\n /** Downloads an Excel export of the grid's data. */\n GridApi.prototype.exportDataAsExcel = function (params) {\n if (this.assertNotExcelMultiSheet('exportDataAsExcel', params)) {\n this.excelCreator.exportDataAsExcel(params);\n }\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', this.context.getGridId())) {\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', this.context.getGridId())) {\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', this.context.getGridId())) {\n return this.excelCreator.exportMultipleSheetsAsExcel(params);\n }\n };\n /** Sets the `treeData` property. */\n GridApi.prototype.setTreeData = function (newTreeData) {\n this.gos.set('treeData', newTreeData);\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 GridApi.prototype.logMissingRowModel = function (apiMethod) {\n var requiredRowModels = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n requiredRowModels[_i - 1] = arguments[_i];\n }\n console.error(\"AG Grid: api.\" + apiMethod + \" can only be called when gridOptions.rowModelType is \" + requiredRowModels.join(' or '));\n };\n /** Set new datasource for Server-Side Row Model. */\n GridApi.prototype.setServerSideDatasource = function (datasource) {\n if (this.serverSideRowModel) {\n this.serverSideRowModel.setDatasource(datasource);\n }\n else {\n this.logMissingRowModel('setServerSideDatasource', 'serverSide');\n }\n };\n /**\n * Updates the `cacheBlockSize` when requesting data from the server if `suppressServerSideInfiniteScroll` is not enabled.\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 this.gos.set('cacheBlockSize', blockSize);\n this.serverSideRowModel.resetRootStore();\n }\n else {\n this.logMissingRowModel('setCacheBlockSize', 'serverSide');\n }\n };\n /** Set new datasource for Infinite Row Model. */\n GridApi.prototype.setDatasource = function (datasource) {\n if (this.gos.isRowModelType('infinite')) {\n this.rowModel.setDatasource(datasource);\n }\n else {\n this.logMissingRowModel('setDatasource', 'infinite');\n }\n };\n /** Set new datasource for Viewport Row Model. */\n GridApi.prototype.setViewportDatasource = function (viewportDatasource) {\n if (this.gos.isRowModelType('viewport')) {\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 this.logMissingRowModel('setViewportDatasource', '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 this.logMissingRowModel('setRowData', 'clientSide');\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 /** 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 bottom 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 // Keep gridOptions.columnDefs in sync\n this.gos.set('columnDefs', colDefs, true, { source: 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 if (source === void 0) { source = \"api\"; }\n this.gos.set('autoGroupColumnDef', colDef, true, { source: source });\n };\n /** Call to set new Default Column Definition. */\n GridApi.prototype.setDefaultColDef = function (colDef, source) {\n if (source === void 0) { source = \"api\"; }\n this.gos.set('defaultColDef', colDef, true, { source: source });\n };\n /** Call to set new Column Types. */\n GridApi.prototype.setColumnTypes = function (columnTypes, source) {\n if (source === void 0) { source = \"api\"; }\n this.gos.set('columnTypes', columnTypes, true, { source: source });\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.gos.set('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.gos.set('alwaysShowVerticalScroll', show);\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 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.gos.set('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, column filter, external filter or advanced 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, optionally expanding/collapsing all of its parent nodes. */\n GridApi.prototype.setRowNodeExpanded = function (rowNode, expanded, expandParents) {\n if (rowNode) {\n // expand all parents recursively, except root node.\n if (expandParents && rowNode.parent && rowNode.parent.level !== -1) {\n this.setRowNodeExpanded(rowNode.parent, expanded, expandParents);\n }\n rowNode.setExpanded(expanded);\n }\n };\n /**\n * Informs the grid that row group expanded state has changed and it needs to rerender the group nodes.\n * Typically called after updating the row node expanded state explicitly, i.e `rowNode.expanded = false`,\n * across multiple groups and you want to update the grid view in a single rerender instead of on every group change.\n */\n GridApi.prototype.onGroupExpandedOrCollapsed = function () {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('onGroupExpandedOrCollapsed', 'clientSide');\n return;\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 /**\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 this.logMissingRowModel('refreshClientSideRowModel', 'clientSide');\n return;\n }\n this.clientSideRowModel.refreshModel(step);\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.gos.getRowHeightAsNumber(),\n headerHeight: this.columnModel.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 this.logMissingRowModel('expandAll', 'clientSide', 'serverSide');\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 this.logMissingRowModel('expandAll', 'clientSide', 'serverSide');\n }\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 this.rowRenderer.addRenderedRowListener(eventName, rowIndex, callback);\n };\n /** Get the current Quick Filter text from the grid, or `undefined` if none is set. */\n GridApi.prototype.getQuickFilter = function () {\n return this.gos.get('quickFilterText');\n };\n /** Pass a Quick Filter text into the grid for filtering. */\n GridApi.prototype.setQuickFilter = function (newFilter) {\n this.gos.set('quickFilterText', newFilter);\n };\n /**\n * @deprecated As of v30, hidden columns are excluded from the Quick Filter by default. To include hidden columns, use `setIncludeHiddenColumnsInQuickFilter` instead.\n */\n GridApi.prototype.setExcludeHiddenColumnsFromQuickFilter = function (value) {\n logDeprecation('30', 'setExcludeHiddenColumnsFromQuickFilter', undefined, 'Hidden columns are now excluded from the Quick Filter by default. This can be toggled using `setIncludeHiddenColumnsInQuickFilter`');\n this.setIncludeHiddenColumnsInQuickFilter(!value);\n };\n /**\n * Updates the `includeHiddenColumnsInQuickFilter` grid option.\n * By default hidden columns are excluded from the Quick Filter.\n * Set to `true` to include them.\n */\n GridApi.prototype.setIncludeHiddenColumnsInQuickFilter = function (value) {\n this.gos.set('includeHiddenColumnsInQuickFilter', value);\n };\n /**\n * Updates the `quickFilterParser` grid option,\n * which changes how the Quick Filter splits the Quick Filter text into search terms.\n */\n GridApi.prototype.setQuickFilterParser = function (quickFilterParser) {\n this.gos.set('quickFilterParser', quickFilterParser);\n };\n /**\n * Updates the `quickFilterMatcher` grid option,\n * which changes the matching logic for whether a row passes the Quick Filter.\n */\n GridApi.prototype.setQuickFilterMatcher = function (quickFilterMatcher) {\n this.gos.set('quickFilterMatcher', quickFilterMatcher);\n };\n /** Get the state of the Advanced Filter. Used for saving Advanced Filter state */\n GridApi.prototype.getAdvancedFilterModel = function () {\n if (ModuleRegistry.__assertRegistered(ModuleNames.AdvancedFilterModule, 'api.getAdvancedFilterModel', this.context.getGridId())) {\n return this.filterManager.getAdvancedFilterModel();\n }\n return null;\n };\n /** Set the state of the Advanced Filter. Used for restoring Advanced Filter state */\n GridApi.prototype.setAdvancedFilterModel = function (advancedFilterModel) {\n this.gos.set('advancedFilterModel', advancedFilterModel);\n };\n /** Enable/disable the Advanced Filter */\n GridApi.prototype.setEnableAdvancedFilter = function (enabled) {\n this.gos.set('enableAdvancedFilter', enabled);\n };\n /**\n * Updates the `includeHiddenColumnsInAdvancedFilter` grid option.\n * By default hidden columns are excluded from the Advanced Filter.\n * Set to `true` to include them.\n */\n GridApi.prototype.setIncludeHiddenColumnsInAdvancedFilter = function (value) {\n this.gos.set('includeHiddenColumnsInAdvancedFilter', value);\n };\n /**\n * DOM element to use as the parent for the Advanced Filter, to allow it to appear outside of the grid.\n * Set to `null` to appear inside the grid.\n */\n GridApi.prototype.setAdvancedFilterParent = function (advancedFilterParent) {\n this.gos.set('advancedFilterParent', advancedFilterParent);\n };\n /** Updates the Advanced Filter Builder parameters. */\n GridApi.prototype.setAdvancedFilterBuilderParams = function (params) {\n this.gos.set('advancedFilterBuilderParams', params);\n };\n /** Open the Advanced Filter Builder dialog (if enabled). */\n GridApi.prototype.showAdvancedFilterBuilder = function () {\n if (ModuleRegistry.__assertRegistered(ModuleNames.AdvancedFilterModule, 'api.setAdvancedFilterModel', this.context.getGridId())) {\n this.filterManager.showAdvancedFilterBuilder('api');\n }\n };\n /**\n * Set all of the provided nodes selection state to the provided value.\n */\n GridApi.prototype.setNodesSelected = function (params) {\n var allNodesValid = params.nodes.every(function (node) {\n if (node.rowPinned) {\n console.warn('AG Grid: cannot select pinned rows');\n return false;\n }\n if (node.id === undefined) {\n console.warn('AG Grid: cannot select node until id for node is known');\n return false;\n }\n return true;\n });\n if (!allNodesValid) {\n return;\n }\n var nodes = params.nodes, source = params.source, newValue = params.newValue;\n var nodesAsRowNode = nodes;\n this.selectionService.setNodesSelected({ nodes: nodesAsRowNode, source: source !== null && source !== void 0 ? source : 'api', newValue: newValue });\n };\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 * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAll'`\n */\n GridApi.prototype.selectAll = function (source) {\n if (source === void 0) { source = 'apiSelectAll'; }\n this.selectionService.selectAllRowNodes({ source: source });\n };\n /**\n * Clear all row selections, regardless of filtering.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAll'`\n */\n GridApi.prototype.deselectAll = function (source) {\n if (source === void 0) { source = 'apiSelectAll'; }\n this.selectionService.deselectAllRowNodes({ source: source });\n };\n /**\n * Select all filtered rows.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAllFiltered'`\n */\n GridApi.prototype.selectAllFiltered = function (source) {\n if (source === void 0) { source = 'apiSelectAllFiltered'; }\n this.selectionService.selectAllRowNodes({ source: source, justFiltered: true });\n };\n /**\n * Clear all filtered selections.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAllFiltered'`\n */\n GridApi.prototype.deselectAllFiltered = function (source) {\n if (source === void 0) { source = 'apiSelectAllFiltered'; }\n this.selectionService.deselectAllRowNodes({ source: source, justFiltered: true });\n };\n /**\n * Returns an object containing rules matching the selected rows in the SSRM.\n *\n * If `groupSelectsChildren=false` the returned object will be flat, and will conform to IServerSideSelectionState.\n * If `groupSelectsChildren=true` the returned object will be hierarchical, and will conform to IServerSideGroupSelectionState.\n */\n GridApi.prototype.getServerSideSelectionState = function () {\n if (missing(this.serverSideRowModel)) {\n this.logMissingRowModel('getServerSideSelectionState', 'serverSide');\n return null;\n }\n return this.selectionService.getServerSideSelectionState();\n };\n /**\n * Set the rules matching the selected rows in the SSRM.\n *\n * If `groupSelectsChildren=false` the param will be flat, and should conform to IServerSideSelectionState.\n * If `groupSelectsChildren=true` the param will be hierarchical, and should conform to IServerSideGroupSelectionState.\n */\n GridApi.prototype.setServerSideSelectionState = function (state) {\n if (missing(this.serverSideRowModel)) {\n this.logMissingRowModel('setServerSideSelectionState', 'serverSide');\n return;\n }\n this.selectionService.setServerSideSelectionState(state);\n };\n /**\n * Select all rows on the current page.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAllCurrentPage'`\n */\n GridApi.prototype.selectAllOnCurrentPage = function (source) {\n if (source === void 0) { source = 'apiSelectAllCurrentPage'; }\n this.selectionService.selectAllRowNodes({ source: source, justCurrentPage: true });\n };\n /**\n * Clear all filtered on the current page.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAllCurrentPage'`\n */\n GridApi.prototype.deselectAllOnCurrentPage = function (source) {\n if (source === void 0) { source = 'apiSelectAllCurrentPage'; }\n this.selectionService.deselectAllRowNodes({ source: source, justCurrentPage: true });\n };\n /**\n * Sets columns to adjust in size to fit the grid horizontally. If inferring cell data types with custom column types\n * and row data is provided asynchronously, the column sizing will happen asynchronously when row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition.\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 /**\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 if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('getBestCostNodeSelection', 'clientSide');\n return;\n }\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 /**\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 this.logMissingRowModel('forEachLeafNode', 'clientSide');\n return;\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, includeFooterNodes) {\n this.rowModel.forEachNode(callback, includeFooterNodes);\n };\n /** Similar to `forEachNode`, except skips any filtered out data. */\n GridApi.prototype.forEachNodeAfterFilter = function (callback) {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('forEachNodeAfterFilter', 'clientSide');\n return;\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 this.logMissingRowModel('forEachNodeAfterFilterAndSort', 'clientSide');\n return;\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 return this.filterManager.getFilterInstance(key, callback);\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, 'api');\n }\n };\n /** Gets the status panel instance corresponding to the supplied `id`. */\n GridApi.prototype.getStatusPanel = function (key) {\n if (!ModuleRegistry.__assertRegistered(ModuleNames.StatusBarModule, 'api.getStatusPanel', this.context.getGridId())) {\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 /**\n * Informs the grid that a filter has changed. This is typically called after a filter change through one of the filter APIs.\n * @param source The source of the filter change event. If not specified defaults to `'api'`.\n */\n GridApi.prototype.onFilterChanged = function (source) {\n if (source === void 0) { source = 'api'; }\n this.filterManager.onFilterChanged({ source: source });\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 /**\n * Sets the state of all the column filters. Provide it with what you get from `getFilterModel()` to restore filter state.\n * If inferring cell data types, and row data is provided asynchronously and is yet to be set,\n * the filter model will be applied asynchronously after row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition,\n * or provide cell data types for every column.\n */\n GridApi.prototype.setFilterModel = function (model) {\n this.filterManager.setFilterModel(model);\n };\n /** Gets the current state of all the column 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.gos.set('suppressRowDrag', value);\n };\n /** Sets the `suppressMoveWhenRowDragging` property. */\n GridApi.prototype.setSuppressMoveWhenRowDragging = function (value) {\n this.gos.set('suppressMoveWhenRowDragging', value);\n };\n /** Sets the `suppressRowClickSelection` property. */\n GridApi.prototype.setSuppressRowClickSelection = function (value) {\n this.gos.set('suppressRowClickSelection', 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.gos.set('headerHeight', 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.gos.set('domLayout', 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.gos.set('fillHandleDirection', direction);\n };\n /** Sets the height in pixels for the rows containing header column groups. */\n GridApi.prototype.setGroupHeaderHeight = function (headerHeight) {\n this.gos.set('groupHeaderHeight', headerHeight);\n };\n /** Sets the height in pixels for the row containing the floating filters. */\n GridApi.prototype.setFloatingFiltersHeight = function (headerHeight) {\n this.gos.set('floatingFiltersHeight', 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.gos.set('pivotHeaderHeight', 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.gos.set('pivotGroupHeaderHeight', headerHeight);\n };\n GridApi.prototype.setPivotMode = function (pivotMode) {\n this.columnModel.setPivotMode(pivotMode);\n };\n GridApi.prototype.setAnimateRows = function (animateRows) {\n this.gos.set('animateRows', animateRows);\n };\n GridApi.prototype.setIsExternalFilterPresent = function (isExternalFilterPresentFunc) {\n this.gos.set('isExternalFilterPresent', isExternalFilterPresentFunc);\n };\n GridApi.prototype.setDoesExternalFilterPass = function (doesExternalFilterPassFunc) {\n this.gos.set('doesExternalFilterPass', doesExternalFilterPassFunc);\n };\n GridApi.prototype.setNavigateToNextCell = function (navigateToNextCellFunc) {\n this.gos.set('navigateToNextCell', navigateToNextCellFunc);\n };\n GridApi.prototype.setTabToNextCell = function (tabToNextCellFunc) {\n this.gos.set('tabToNextCell', tabToNextCellFunc);\n };\n GridApi.prototype.setTabToNextHeader = function (tabToNextHeaderFunc) {\n this.gos.set('tabToNextHeader', tabToNextHeaderFunc);\n };\n GridApi.prototype.setNavigateToNextHeader = function (navigateToNextHeaderFunc) {\n this.gos.set('navigateToNextHeader', navigateToNextHeaderFunc);\n };\n GridApi.prototype.setRowGroupPanelShow = function (rowGroupPanelShow) {\n this.gos.set('rowGroupPanelShow', rowGroupPanelShow);\n };\n GridApi.prototype.setGetGroupRowAgg = function (getGroupRowAggFunc) {\n this.gos.set('getGroupRowAgg', getGroupRowAggFunc);\n };\n GridApi.prototype.setGetBusinessKeyForNode = function (getBusinessKeyForNodeFunc) {\n this.gos.set('getBusinessKeyForNode', getBusinessKeyForNodeFunc);\n };\n GridApi.prototype.setGetChildCount = function (getChildCountFunc) {\n this.gos.set('getChildCount', getChildCountFunc);\n };\n GridApi.prototype.setProcessRowPostCreate = function (processRowPostCreateFunc) {\n this.gos.set('processRowPostCreate', processRowPostCreateFunc);\n };\n GridApi.prototype.setGetRowId = function (getRowIdFunc) {\n this.gos.set('getRowId', getRowIdFunc);\n };\n GridApi.prototype.setGetRowClass = function (rowClassFunc) {\n this.gos.set('getRowClass', rowClassFunc);\n };\n GridApi.prototype.setIsFullWidthRow = function (isFullWidthRowFunc) {\n this.gos.set('isFullWidthRow', isFullWidthRowFunc);\n };\n GridApi.prototype.setIsRowSelectable = function (isRowSelectableFunc) {\n this.gos.set('isRowSelectable', isRowSelectableFunc);\n };\n GridApi.prototype.setIsRowMaster = function (isRowMasterFunc) {\n this.gos.set('isRowMaster', isRowMasterFunc);\n };\n GridApi.prototype.setPostSortRows = function (postSortRowsFunc) {\n this.gos.set('postSortRows', postSortRowsFunc);\n };\n GridApi.prototype.setGetDocument = function (getDocumentFunc) {\n this.gos.set('getDocument', getDocumentFunc);\n };\n GridApi.prototype.setGetContextMenuItems = function (getContextMenuItemsFunc) {\n this.gos.set('getContextMenuItems', getContextMenuItemsFunc);\n };\n GridApi.prototype.setGetMainMenuItems = function (getMainMenuItemsFunc) {\n this.gos.set('getMainMenuItems', getMainMenuItemsFunc);\n };\n GridApi.prototype.setProcessCellForClipboard = function (processCellForClipboardFunc) {\n this.gos.set('processCellForClipboard', processCellForClipboardFunc);\n };\n GridApi.prototype.setSendToClipboard = function (sendToClipboardFunc) {\n this.gos.set('sendToClipboard', sendToClipboardFunc);\n };\n GridApi.prototype.setProcessCellFromClipboard = function (processCellFromClipboardFunc) {\n this.gos.set('processCellFromClipboard', processCellFromClipboardFunc);\n };\n /** @deprecated v28 use `setProcessPivotResultColDef` instead */\n GridApi.prototype.setProcessSecondaryColDef = function (processSecondaryColDefFunc) {\n logDeprecation('28.0', 'setProcessSecondaryColDef', 'setProcessPivotResultColDef');\n this.setProcessPivotResultColDef(processSecondaryColDefFunc);\n };\n /** @deprecated v28 use `setProcessPivotResultColGroupDef` instead */\n GridApi.prototype.setProcessSecondaryColGroupDef = function (processSecondaryColGroupDefFunc) {\n logDeprecation('28.0', 'setProcessSecondaryColGroupDef', 'setProcessPivotResultColGroupDef');\n this.setProcessPivotResultColGroupDef(processSecondaryColGroupDefFunc);\n };\n GridApi.prototype.setProcessPivotResultColDef = function (processPivotResultColDefFunc) {\n this.gos.set('processPivotResultColDef', processPivotResultColDefFunc);\n };\n GridApi.prototype.setProcessPivotResultColGroupDef = function (processPivotResultColGroupDefFunc) {\n this.gos.set('processPivotResultColGroupDef', processPivotResultColGroupDefFunc);\n };\n GridApi.prototype.setPostProcessPopup = function (postProcessPopupFunc) {\n this.gos.set('postProcessPopup', postProcessPopupFunc);\n };\n GridApi.prototype.setInitialGroupOrderComparator = function (initialGroupOrderComparatorFunc) {\n this.gos.set('initialGroupOrderComparator', initialGroupOrderComparatorFunc);\n };\n GridApi.prototype.setGetChartToolbarItems = function (getChartToolbarItemsFunc) {\n this.gos.set('getChartToolbarItems', getChartToolbarItemsFunc);\n };\n GridApi.prototype.setPaginationNumberFormatter = function (paginationNumberFormatterFunc) {\n this.gos.set('paginationNumberFormatter', paginationNumberFormatterFunc);\n };\n /** @deprecated v28 use setGetServerSideGroupLevelParams instead */\n GridApi.prototype.setGetServerSideStoreParams = function (getServerSideStoreParamsFunc) {\n logDeprecation('28.0', 'setGetServerSideStoreParams', 'setGetServerSideGroupLevelParams');\n this.setGetServerSideGroupLevelParams(getServerSideStoreParamsFunc);\n };\n GridApi.prototype.setGetServerSideGroupLevelParams = function (getServerSideGroupLevelParamsFunc) {\n this.gos.set('getServerSideGroupLevelParams', getServerSideGroupLevelParamsFunc);\n };\n GridApi.prototype.setIsServerSideGroupOpenByDefault = function (isServerSideGroupOpenByDefaultFunc) {\n this.gos.set('isServerSideGroupOpenByDefault', isServerSideGroupOpenByDefaultFunc);\n };\n GridApi.prototype.setIsApplyServerSideTransaction = function (isApplyServerSideTransactionFunc) {\n this.gos.set('isApplyServerSideTransaction', isApplyServerSideTransactionFunc);\n };\n GridApi.prototype.setIsServerSideGroup = function (isServerSideGroupFunc) {\n this.gos.set('isServerSideGroup', isServerSideGroupFunc);\n };\n GridApi.prototype.setGetServerSideGroupKey = function (getServerSideGroupKeyFunc) {\n this.gos.set('getServerSideGroupKey', getServerSideGroupKeyFunc);\n };\n GridApi.prototype.setGetRowStyle = function (rowStyleFunc) {\n this.gos.set('getRowStyle', rowStyleFunc);\n };\n GridApi.prototype.setGetRowHeight = function (rowHeightFunc) {\n this.gos.set('getRowHeight', rowHeightFunc);\n };\n GridApi.prototype.assertSideBarLoaded = function (apiMethod) {\n return ModuleRegistry.__assertRegistered(ModuleNames.SideBarModule, 'api.' + apiMethod, this.context.getGridId());\n };\n /** Returns `true` if the side bar is visible. */\n GridApi.prototype.isSideBarVisible = function () {\n return this.assertSideBarLoaded('isSideBarVisible') && this.sideBarComp.isDisplayed();\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.assertSideBarLoaded('setSideBarVisible')) {\n this.sideBarComp.setDisplayed(show);\n }\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.assertSideBarLoaded('setSideBarPosition')) {\n this.sideBarComp.setSideBarPosition(position);\n }\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.assertSideBarLoaded('openToolPanel')) {\n this.sideBarComp.openToolPanel(key, 'api');\n }\n };\n /** Closes the currently open tool panel (if any). */\n GridApi.prototype.closeToolPanel = function () {\n if (this.assertSideBarLoaded('closeToolPanel')) {\n this.sideBarComp.close('api');\n }\n };\n /** Returns the ID of the currently shown tool panel if any, otherwise `null`. */\n GridApi.prototype.getOpenedToolPanel = function () {\n if (this.assertSideBarLoaded('getOpenedToolPanel')) {\n return this.sideBarComp.openedItem();\n }\n return null;\n };\n /** Force refresh all tool panels by calling their `refresh` method. */\n GridApi.prototype.refreshToolPanel = function () {\n if (this.assertSideBarLoaded('refreshToolPanel')) {\n this.sideBarComp.refresh();\n }\n };\n /** Returns `true` if the tool panel is showing, otherwise `false`. */\n GridApi.prototype.isToolPanelShowing = function () {\n return this.assertSideBarLoaded('isToolPanelShowing') && this.sideBarComp.isToolPanelShowing();\n };\n /** Gets the tool panel instance corresponding to the supplied `id`. */\n GridApi.prototype.getToolPanelInstance = function (id) {\n if (this.assertSideBarLoaded('getToolPanelInstance')) {\n var comp = this.sideBarComp.getToolPanelInstance(id);\n return unwrapUserComp(comp);\n }\n };\n /** Returns the current side bar configuration. If a shortcut was used, returns the detailed long form. */\n GridApi.prototype.getSideBar = function () {\n if (this.assertSideBarLoaded('getSideBar')) {\n return this.sideBarComp.getDef();\n }\n return undefined;\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.gos.set('sideBar', def);\n };\n GridApi.prototype.setSuppressClipboardPaste = function (value) {\n this.gos.set('suppressClipboardPaste', value);\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.gos.set('groupRemoveSingleChildren', value);\n };\n GridApi.prototype.setGroupRemoveLowestSingleChildren = function (value) {\n this.gos.set('groupRemoveLowestSingleChildren', value);\n };\n GridApi.prototype.setGroupDisplayType = function (value) {\n this.gos.set('groupDisplayType', value);\n };\n /**\n * Sets the `groupIncludeFooter` property\n */\n GridApi.prototype.setGroupIncludeFooter = function (value) {\n this.gos.set('groupIncludeFooter', value);\n };\n /**\n * Sets the `groupIncludeTotalFooter` property\n */\n GridApi.prototype.setGroupIncludeTotalFooter = function (value) {\n this.gos.set('groupIncludeTotalFooter', value);\n };\n GridApi.prototype.setRowClass = function (className) {\n this.gos.set('rowClass', className);\n };\n /** Sets the `deltaSort` property */\n GridApi.prototype.setDeltaSort = function (enable) {\n this.gos.set('deltaSort', enable);\n };\n /**\n * Sets the `rowCount` and `maxRowFound` properties.\n * The second parameter, `maxRowFound`, is optional and if left out, only `rowCount` is set.\n * Set `rowCount` to adjust the height of the vertical scroll.\n * Set `maxRowFound` 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 instruct the grid that the entire row count is no longer known.\n */\n GridApi.prototype.setRowCount = function (rowCount, maxRowFound) {\n if (this.serverSideRowModel) {\n if (this.columnModel.isRowGroupEmpty()) {\n this.serverSideRowModel.setRowCount(rowCount, maxRowFound);\n return;\n }\n console.error('AG Grid: setRowCount cannot be used while using row grouping.');\n return;\n }\n if (this.infiniteRowModel) {\n this.infiniteRowModel.setRowCount(rowCount, maxRowFound);\n return;\n }\n this.logMissingRowModel('setRowCount', 'infinite', 'serverSide');\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.gos.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.gos.useAsyncEvents();\n this.eventService.addGlobalListener(listener, async);\n };\n /** Remove an event listener. */\n GridApi.prototype.removeEventListener = function (eventType, listener) {\n var async = this.gos.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.gos.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 this.dispatchEvent({ type: Events.EVENT_GRID_PRE_DESTROYED });\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.filterManager.resetQuickFilterCache();\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 ModuleRegistry.__assertRegistered(ModuleNames.RangeSelectionModule, 'api.getCellRanges', this.context.getGridId());\n return null;\n };\n /** Adds the provided cell range to the selected ranges. */\n GridApi.prototype.addCellRange = function (params) {\n if (this.rangeService) {\n this.rangeService.addCellRange(params);\n return;\n }\n ModuleRegistry.__assertRegistered(ModuleNames.RangeSelectionModule, 'api.addCellRange', this.context.getGridId());\n };\n /** Clears the selected ranges. */\n GridApi.prototype.clearRangeSelection = function () {\n if (this.rangeService) {\n this.rangeService.removeAllCellRanges();\n }\n ModuleRegistry.__assertRegistered(ModuleNames.RangeSelectionModule, 'gridApi.clearRangeSelection', this.context.getGridId());\n };\n /** Reverts the last cell edit. */\n GridApi.prototype.undoCellEditing = function () {\n this.undoRedoService.undo('api');\n };\n /** Re-applies the most recently undone cell edit. */\n GridApi.prototype.redoCellEditing = function () {\n this.undoRedoService.redo('api');\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.GridChartsModule, 'api.getChartModels', this.context.getGridId())) {\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.GridChartsModule, 'api.getChartRef', this.context.getGridId())) {\n return this.chartService.getChartRef(chartId);\n }\n };\n /** Returns a base64-encoded image data URL for the referenced chartId. */\n GridApi.prototype.getChartImageDataURL = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.getChartImageDataURL', this.context.getGridId())) {\n return this.chartService.getChartImageDataURL(params);\n }\n };\n /** Starts a browser-based image download for the referenced chartId. */\n GridApi.prototype.downloadChart = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.downloadChart', this.context.getGridId())) {\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', this.context.getGridId())) {\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', this.context.getGridId())) {\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.GridChartsModule, 'api.createRangeChart', this.context.getGridId())) {\n return this.chartService.createRangeChart(params);\n }\n };\n /** Used to programmatically create pivot charts from a grid. */\n GridApi.prototype.createPivotChart = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.createPivotChart', this.context.getGridId())) {\n return this.chartService.createPivotChart(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.GridChartsModule, 'api.createCrossFilterChart', this.context.getGridId())) {\n return this.chartService.createCrossFilterChart(params);\n }\n };\n /** Used to programmatically update a chart. */\n GridApi.prototype.updateChart = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.updateChart', this.context.getGridId())) {\n this.chartService.updateChart(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.GridChartsModule, 'api.restoreChart', this.context.getGridId())) {\n return this.chartService.restoreChart(chartModel, chartContainer);\n }\n };\n /** Copies data to clipboard by following the same rules as pressing Ctrl+C. */\n GridApi.prototype.copyToClipboard = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api.copyToClipboard', this.context.getGridId())) {\n this.clipboardService.copyToClipboard(params);\n }\n };\n /** Cuts data to clipboard by following the same rules as pressing Ctrl+X. */\n GridApi.prototype.cutToClipboard = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api.cutToClipboard', this.context.getGridId())) {\n this.clipboardService.cutToClipboard(params, 'api');\n }\n };\n /** Copies the selected rows to the clipboard. */\n GridApi.prototype.copySelectedRowsToClipboard = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api.copySelectedRowsToClipboard', this.context.getGridId())) {\n this.clipboardService.copySelectedRowsToClipboard(params);\n }\n };\n /** Copies the selected ranges to the clipboard. */\n GridApi.prototype.copySelectedRangeToClipboard = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api.copySelectedRangeToClipboard', this.context.getGridId())) {\n this.clipboardService.copySelectedRangeToClipboard(params);\n }\n };\n /** Copies the selected range down, similar to `Ctrl + D` in Excel. */\n GridApi.prototype.copySelectedRangeDown = function () {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api.copySelectedRangeDown', this.context.getGridId())) {\n this.clipboardService.copyRangeDown();\n }\n };\n /** Pastes the data from the Clipboard into the focused cell of the grid. If no grid cell is focused, calling this method has no effect. */\n GridApi.prototype.pasteFromClipboard = function () {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api.pasteFromClipboard', this.context.getGridId())) {\n this.clipboardService.pasteFromClipboard();\n }\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.gos.set('popupParent', 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 if (!this.focusService.isCellFocused(cellPosition)) {\n this.focusService.setFocusedCell(cellPosition);\n }\n cell.startRowOrCellEdit(params.key);\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 this.logMissingRowModel('applyServerSideTransaction', 'serverSide');\n return;\n }\n return this.serverSideTransactionManager.applyTransaction(transaction);\n };\n /** Batch apply transactions to the server side row model. */\n GridApi.prototype.applyServerSideTransactionAsync = function (transaction, callback) {\n if (!this.serverSideTransactionManager) {\n this.logMissingRowModel('applyServerSideTransactionAsync', 'serverSide');\n return;\n }\n return this.serverSideTransactionManager.applyTransactionAsync(transaction, callback);\n };\n /**\n * Applies row data to a server side store.\n * New rows will overwrite rows at the same index in the same way as if provided by a datasource success callback.\n *\n * startRow is only applicable when `suppressServerSideInfiniteScroll=true`\n */\n GridApi.prototype.applyServerSideRowData = function (params) {\n var _a, _b;\n var startRow = (_a = params.startRow) !== null && _a !== void 0 ? _a : 0;\n var route = (_b = params.route) !== null && _b !== void 0 ? _b : [];\n if (startRow < 0) {\n console.warn(\"AG Grid: invalid value \" + params.startRow + \" for startRow, the value should be >= 0\");\n return;\n }\n if (this.serverSideRowModel) {\n this.serverSideRowModel.applyRowData(params.successParams, startRow, route);\n }\n else {\n this.logMissingRowModel('setServerSideDatasource', 'serverSide');\n }\n };\n /** Gets all failed server side loads to retry. */\n GridApi.prototype.retryServerSideLoads = function () {\n if (!this.serverSideRowModel) {\n this.logMissingRowModel('retryServerSideLoads', 'serverSide');\n return;\n }\n this.serverSideRowModel.retryLoads();\n };\n GridApi.prototype.flushServerSideAsyncTransactions = function () {\n if (!this.serverSideTransactionManager) {\n this.logMissingRowModel('flushServerSideAsyncTransactions', 'serverSide');\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 this.logMissingRowModel('applyTransaction', 'clientSide');\n return;\n }\n return this.clientSideRowModel.updateRowData(rowDataTransaction);\n };\n /** Same as `applyTransaction` except executes asynchronously for efficiency. */\n GridApi.prototype.applyTransactionAsync = function (rowDataTransaction, callback) {\n if (!this.clientSideRowModel) {\n this.logMissingRowModel('applyTransactionAsync', 'clientSide');\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 this.logMissingRowModel('flushAsyncTransactions', 'clientSide');\n return;\n }\n this.clientSideRowModel.flushAsyncTransactions();\n };\n GridApi.prototype.setSuppressModelUpdateAfterUpdateTransaction = function (value) {\n this.gos.set('suppressModelUpdateAfterUpdateTransaction', value);\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 this.logMissingRowModel('refreshInfiniteCache', 'infinite');\n }\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 this.logMissingRowModel('purgeInfiniteCache', 'infinite');\n }\n };\n /**\n * Refresh a server-side store level.\n * If you pass no parameters, then the top level store is refreshed.\n * To refresh a child level, pass in the string of keys to get to the desired level.\n * Once the store refresh is complete, the storeRefreshed event is fired.\n */\n GridApi.prototype.refreshServerSide = function (params) {\n if (!this.serverSideRowModel) {\n this.logMissingRowModel('refreshServerSide', 'serverSide');\n return;\n }\n this.serverSideRowModel.refreshStore(params);\n };\n /** @deprecated v28 use `refreshServerSide` instead */\n GridApi.prototype.refreshServerSideStore = function (params) {\n logDeprecation('28.0', 'refreshServerSideStore', 'refreshServerSide');\n return this.refreshServerSide(params);\n };\n /** @deprecated v28 use `getServerSideGroupLevelState` instead */\n GridApi.prototype.getServerSideStoreState = function () {\n logDeprecation('28.0', 'getServerSideStoreState', 'getServerSideGroupLevelState');\n return this.getServerSideGroupLevelState();\n };\n /** Returns info on all server side group levels. */\n GridApi.prototype.getServerSideGroupLevelState = function () {\n if (!this.serverSideRowModel) {\n this.logMissingRowModel('getServerSideGroupLevelState', 'serverSide');\n return [];\n }\n return this.serverSideRowModel.getStoreState();\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 this.logMissingRowModel('getInfiniteRowCount', 'infinite');\n }\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 this.logMissingRowModel('isLastRowIndexKnown', 'infinite');\n }\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 /** 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 /** 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 /** Resets the data type definitions. This will update the columns in the grid. */\n GridApi.prototype.setDataTypeDefinitions = function (dataTypeDefinitions) {\n this.gos.set('dataTypeDefinitions', dataTypeDefinitions);\n };\n /**\n * Set whether the grid paginates the data or not.\n * - `true` to enable pagination\n * - `false` to disable pagination\n */\n GridApi.prototype.setPagination = function (value) {\n this.gos.set('pagination', value);\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.gos.set('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 __decorate$1_([\n Optional('immutableService')\n ], GridApi.prototype, \"immutableService\", void 0);\n __decorate$1_([\n Optional('csvCreator')\n ], GridApi.prototype, \"csvCreator\", void 0);\n __decorate$1_([\n Optional('excelCreator')\n ], GridApi.prototype, \"excelCreator\", void 0);\n __decorate$1_([\n Autowired('rowRenderer')\n ], GridApi.prototype, \"rowRenderer\", void 0);\n __decorate$1_([\n Autowired('navigationService')\n ], GridApi.prototype, \"navigationService\", void 0);\n __decorate$1_([\n Autowired('filterManager')\n ], GridApi.prototype, \"filterManager\", void 0);\n __decorate$1_([\n Autowired('columnModel')\n ], GridApi.prototype, \"columnModel\", void 0);\n __decorate$1_([\n Autowired('selectionService')\n ], GridApi.prototype, \"selectionService\", void 0);\n __decorate$1_([\n Autowired('gridOptionsService')\n ], GridApi.prototype, \"gos\", void 0);\n __decorate$1_([\n Autowired('valueService')\n ], GridApi.prototype, \"valueService\", void 0);\n __decorate$1_([\n Autowired('alignedGridsService')\n ], GridApi.prototype, \"alignedGridsService\", void 0);\n __decorate$1_([\n Autowired('eventService')\n ], GridApi.prototype, \"eventService\", void 0);\n __decorate$1_([\n Autowired('pinnedRowModel')\n ], GridApi.prototype, \"pinnedRowModel\", void 0);\n __decorate$1_([\n Autowired('context')\n ], GridApi.prototype, \"context\", void 0);\n __decorate$1_([\n Autowired('rowModel')\n ], GridApi.prototype, \"rowModel\", void 0);\n __decorate$1_([\n Autowired('sortController')\n ], GridApi.prototype, \"sortController\", void 0);\n __decorate$1_([\n Autowired('paginationProxy')\n ], GridApi.prototype, \"paginationProxy\", void 0);\n __decorate$1_([\n Autowired('focusService')\n ], GridApi.prototype, \"focusService\", void 0);\n __decorate$1_([\n Autowired('dragAndDropService')\n ], GridApi.prototype, \"dragAndDropService\", void 0);\n __decorate$1_([\n Optional('rangeService')\n ], GridApi.prototype, \"rangeService\", void 0);\n __decorate$1_([\n Optional('clipboardService')\n ], GridApi.prototype, \"clipboardService\", void 0);\n __decorate$1_([\n Optional('aggFuncService')\n ], GridApi.prototype, \"aggFuncService\", void 0);\n __decorate$1_([\n Autowired('menuFactory')\n ], GridApi.prototype, \"menuFactory\", void 0);\n __decorate$1_([\n Optional('contextMenuFactory')\n ], GridApi.prototype, \"contextMenuFactory\", void 0);\n __decorate$1_([\n Autowired('valueCache')\n ], GridApi.prototype, \"valueCache\", void 0);\n __decorate$1_([\n Autowired('animationFrameService')\n ], GridApi.prototype, \"animationFrameService\", void 0);\n __decorate$1_([\n Optional('statusBarService')\n ], GridApi.prototype, \"statusBarService\", void 0);\n __decorate$1_([\n Optional('chartService')\n ], GridApi.prototype, \"chartService\", void 0);\n __decorate$1_([\n Optional('undoRedoService')\n ], GridApi.prototype, \"undoRedoService\", void 0);\n __decorate$1_([\n Optional('rowNodeBlockLoader')\n ], GridApi.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$1_([\n Optional('ssrmTransactionManager')\n ], GridApi.prototype, \"serverSideTransactionManager\", void 0);\n __decorate$1_([\n Autowired('ctrlsService')\n ], GridApi.prototype, \"ctrlsService\", void 0);\n __decorate$1_([\n PostConstruct\n ], GridApi.prototype, \"init\", null);\n __decorate$1_([\n PreDestroy\n ], GridApi.prototype, \"cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid\", null);\n GridApi = __decorate$1_([\n Bean('gridApi')\n ], GridApi);\n return GridApi;\n}());\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 QuickFilterService = /** @class */ (function (_super) {\n __extends$29(QuickFilterService, _super);\n function QuickFilterService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.quickFilter = null;\n _this.quickFilterParts = null;\n return _this;\n }\n QuickFilterService_1 = QuickFilterService;\n QuickFilterService.prototype.postConstruct = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, function () { return _this.resetQuickFilterCache(); });\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, function () { return _this.resetQuickFilterCache(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.resetQuickFilterCache(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, function () {\n if (!_this.gridOptionsService.is('includeHiddenColumnsInQuickFilter')) {\n _this.resetQuickFilterCache();\n }\n });\n this.addManagedPropertyListener('quickFilterText', function (e) { return _this.setQuickFilter(e.currentValue); });\n this.addManagedPropertyListener('includeHiddenColumnsInQuickFilter', function () { return _this.onIncludeHiddenColumnsInQuickFilterChanged(); });\n this.quickFilter = this.parseQuickFilter(this.gridOptionsService.get('quickFilterText'));\n this.parser = this.gridOptionsService.get('quickFilterParser');\n this.matcher = this.gridOptionsService.get('quickFilterMatcher');\n this.setQuickFilterParts();\n this.addManagedPropertyListeners(['quickFilterMatcher', 'quickFilterParser'], function () { return _this.setQuickFilterParserAndMatcher(); });\n };\n QuickFilterService.prototype.isQuickFilterPresent = function () {\n return this.quickFilter !== null;\n };\n QuickFilterService.prototype.doesRowPassQuickFilter = function (node) {\n var _this = this;\n var usingCache = this.gridOptionsService.is('cacheQuickFilter');\n if (this.matcher) {\n return this.doesRowPassQuickFilterMatcher(usingCache, node);\n }\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 QuickFilterService.prototype.resetQuickFilterCache = function () {\n this.rowModel.forEachNode(function (node) { return node.quickFilterAggregateText = null; });\n };\n QuickFilterService.prototype.setQuickFilterParts = function () {\n var _a = this, quickFilter = _a.quickFilter, parser = _a.parser;\n if (quickFilter) {\n this.quickFilterParts = parser ? parser(quickFilter) : quickFilter.split(' ');\n }\n else {\n this.quickFilterParts = null;\n }\n };\n QuickFilterService.prototype.parseQuickFilter = function (newFilter) {\n if (!exists(newFilter)) {\n return null;\n }\n if (!this.gridOptionsService.isRowModelType('clientSide')) {\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 QuickFilterService.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.dispatchEvent({ type: QuickFilterService_1.EVENT_QUICK_FILTER_CHANGED });\n }\n };\n QuickFilterService.prototype.setQuickFilterParserAndMatcher = function () {\n var parser = this.gridOptionsService.get('quickFilterParser');\n var matcher = this.gridOptionsService.get('quickFilterMatcher');\n var hasChanged = parser !== this.parser || matcher !== this.matcher;\n this.parser = parser;\n this.matcher = matcher;\n if (hasChanged) {\n this.setQuickFilterParts();\n this.dispatchEvent({ type: QuickFilterService_1.EVENT_QUICK_FILTER_CHANGED });\n }\n };\n QuickFilterService.prototype.onIncludeHiddenColumnsInQuickFilterChanged = function () {\n this.columnModel.refreshQuickFilterColumns();\n this.resetQuickFilterCache();\n if (this.isQuickFilterPresent()) {\n this.dispatchEvent({ type: QuickFilterService_1.EVENT_QUICK_FILTER_CHANGED });\n }\n };\n QuickFilterService.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 QuickFilterService.prototype.doesRowPassQuickFilterCache = function (node, filterPart) {\n this.checkGenerateQuickFilterAggregateText(node);\n return node.quickFilterAggregateText.indexOf(filterPart) >= 0;\n };\n QuickFilterService.prototype.doesRowPassQuickFilterMatcher = function (usingCache, node) {\n var quickFilterAggregateText;\n if (usingCache) {\n this.checkGenerateQuickFilterAggregateText(node);\n quickFilterAggregateText = node.quickFilterAggregateText;\n }\n else {\n quickFilterAggregateText = this.getQuickFilterAggregateText(node);\n }\n var _a = this, quickFilterParts = _a.quickFilterParts, matcher = _a.matcher;\n return matcher(quickFilterParts, quickFilterAggregateText);\n };\n QuickFilterService.prototype.checkGenerateQuickFilterAggregateText = function (node) {\n if (!node.quickFilterAggregateText) {\n node.quickFilterAggregateText = this.getQuickFilterAggregateText(node);\n }\n };\n QuickFilterService.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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n value = colDef.getQuickFilterText(params);\n }\n return exists(value) ? value.toString().toUpperCase() : null;\n };\n QuickFilterService.prototype.getQuickFilterAggregateText = 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 return stringParts.join(QuickFilterService_1.QUICK_FILTER_SEPARATOR);\n };\n var QuickFilterService_1;\n QuickFilterService.EVENT_QUICK_FILTER_CHANGED = 'quickFilterChanged';\n QuickFilterService.QUICK_FILTER_SEPARATOR = '\\n';\n __decorate$1Z([\n Autowired('valueService')\n ], QuickFilterService.prototype, \"valueService\", void 0);\n __decorate$1Z([\n Autowired('columnModel')\n ], QuickFilterService.prototype, \"columnModel\", void 0);\n __decorate$1Z([\n Autowired('rowModel')\n ], QuickFilterService.prototype, \"rowModel\", void 0);\n __decorate$1Z([\n PostConstruct\n ], QuickFilterService.prototype, \"postConstruct\", null);\n QuickFilterService = QuickFilterService_1 = __decorate$1Z([\n Bean('quickFilterService')\n ], QuickFilterService);\n return QuickFilterService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 FilterManager = /** @class */ (function (_super) {\n __extends$28(FilterManager, _super);\n function FilterManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.allColumnFilters = new Map();\n _this.allColumnListeners = new Map();\n _this.activeAggregateFilters = [];\n _this.activeColumnFilters = [];\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 // when we're waiting for cell data types to be inferred, we need to defer filter model updates\n _this.filterModelUpdateQueue = [];\n return _this;\n }\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.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, function () { return _this.updateAdvancedFilterColumns(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, function () { return _this.updateAdvancedFilterColumns(); });\n this.allowShowChangeAfterFilter = this.gridOptionsService.is('allowShowChangeAfterFilter');\n this.externalFilterPresent = this.isExternalFilterPresentCallback();\n this.updateAggFiltering();\n this.addManagedPropertyListener('groupAggFiltering', function () { return _this.updateAggFiltering(); });\n this.addManagedPropertyListener('advancedFilterModel', function (event) { return _this.setAdvancedFilterModel(event.currentValue); });\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, function (_a) {\n var enabled = _a.enabled;\n return _this.onAdvancedFilterEnabledChanged(enabled);\n });\n this.addManagedListener(this.eventService, Events.EVENT_DATA_TYPES_INFERRED, function () { return _this.processFilterModelUpdateQueue(); });\n this.addManagedListener(this.quickFilterService, QuickFilterService.EVENT_QUICK_FILTER_CHANGED, function () { return _this.onFilterChanged({ source: 'quickFilter' }); });\n };\n FilterManager.prototype.isExternalFilterPresentCallback = function () {\n var isFilterPresent = this.gridOptionsService.getCallback('isExternalFilterPresent');\n if (typeof isFilterPresent === 'function') {\n return isFilterPresent({});\n }\n return false;\n };\n FilterManager.prototype.doesExternalFilterPass = function (node) {\n var doesFilterPass = this.gridOptionsService.get('doesExternalFilterPass');\n if (typeof doesFilterPass === 'function') {\n return doesFilterPass(node);\n }\n return false;\n };\n FilterManager.prototype.setFilterModel = function (model) {\n var _this = this;\n if (this.isAdvancedFilterEnabled()) {\n this.warnAdvancedFilters();\n return;\n }\n if (this.dataTypeService.isPendingInference()) {\n this.filterModelUpdateQueue.push(model);\n return;\n }\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, source: 'api' });\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.isChildFilterPresent = function () {\n return this.isColumnFilterPresent()\n || this.isQuickFilterPresent()\n || this.isExternalFilterPresent()\n || this.isAdvancedFilterPresent();\n };\n FilterManager.prototype.isAdvancedFilterPresent = function () {\n return this.isAdvancedFilterEnabled() && this.advancedFilterService.isFilterPresent();\n };\n FilterManager.prototype.onAdvancedFilterEnabledChanged = function (enabled) {\n var _this = this;\n var _a;\n if (enabled) {\n if (this.allColumnFilters.size) {\n this.allColumnFilters.forEach(function (filterWrapper) { return _this.disposeFilterWrapper(filterWrapper, 'advancedFilterEnabled'); });\n this.onFilterChanged({ source: 'advancedFilter' });\n }\n }\n else {\n if ((_a = this.advancedFilterService) === null || _a === void 0 ? void 0 : _a.isFilterPresent()) {\n this.advancedFilterService.setModel(null);\n this.onFilterChanged({ source: 'advancedFilter' });\n }\n }\n };\n FilterManager.prototype.isAdvancedFilterEnabled = function () {\n var _a;\n return (_a = this.advancedFilterService) === null || _a === void 0 ? void 0 : _a.isEnabled();\n };\n FilterManager.prototype.isAdvancedFilterHeaderActive = function () {\n return this.isAdvancedFilterEnabled() && this.advancedFilterService.isHeaderActive();\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.gridOptionsService.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 // we are not pivoting, so we groupFilter when it's an agg column\n return groupFilterEnabled;\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.resetQuickFilterCache = function () {\n this.quickFilterService.resetQuickFilterCache();\n };\n FilterManager.prototype.refreshFiltersForAggregations = function () {\n var isAggFiltering = this.gridOptionsService.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 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 source = params.source, filterInstance = params.filterInstance, additionalEventAttributes = params.additionalEventAttributes, columns = params.columns;\n this.updateDependantFilters();\n this.updateActiveFilters();\n this.updateFilterFlagInColumns('filterChanged', additionalEventAttributes);\n this.externalFilterPresent = this.isExternalFilterPresentCallback();\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 source: source,\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.quickFilterService.isQuickFilterPresent();\n };\n FilterManager.prototype.updateAggFiltering = function () {\n this.aggFiltering = !!this.gridOptionsService.getGroupAggFiltering();\n };\n FilterManager.prototype.isAggregateQuickFilterPresent = function () {\n return this.isQuickFilterPresent() && (this.aggFiltering || this.columnModel.isPivotMode());\n };\n FilterManager.prototype.isNonAggregateQuickFilterPresent = function () {\n return this.isQuickFilterPresent() && !(this.aggFiltering || this.columnModel.isPivotMode());\n };\n FilterManager.prototype.doesRowPassOtherFilters = function (filterToSkip, node) {\n return this.doesRowPassFilter({ rowNode: node, filterInstanceToSkip: filterToSkip });\n };\n FilterManager.prototype.doesRowPassAggregateFilters = function (params) {\n // check quick filter\n if (this.isAggregateQuickFilterPresent() && !this.quickFilterService.doesRowPassQuickFilter(params.rowNode)) {\n return false;\n }\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.isNonAggregateQuickFilterPresent() && !this.quickFilterService.doesRowPassQuickFilter(params.rowNode)) {\n return false;\n }\n // secondly, give the client a chance to reject this row\n if (this.isExternalFilterPresent() && !this.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 if (this.isAdvancedFilterPresent() && !this.advancedFilterService.doesFilterPass(params.rowNode)) {\n return false;\n }\n // got this far, all filters pass\n return true;\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, { afterDataChange: true });\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 var _a;\n if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }\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 var _this = this;\n if (!column.isFilterAllowed()) {\n return null;\n }\n var filterWrapper = this.cachedFilter(column);\n if (!filterWrapper) {\n filterWrapper = this.createFilterWrapper(column, source);\n var colId_1 = column.getColId();\n this.allColumnFilters.set(colId_1, filterWrapper);\n this.allColumnListeners.set(colId_1, this.addManagedListener(column, Column.EVENT_COL_DEF_CHANGED, function () { return _this.checkDestroyFilter(colId_1); }));\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.getDefaultFilter = function (column) {\n var defaultFilter;\n if (ModuleRegistry.__isRegistered(ModuleNames.SetFilterModule, this.context.getGridId())) {\n defaultFilter = 'agSetColumnFilter';\n }\n else {\n var cellDataType = column.getColDef().cellDataType;\n if (cellDataType === 'number') {\n defaultFilter = 'agNumberColumnFilter';\n }\n else if (cellDataType === 'date' || cellDataType === 'dateString') {\n defaultFilter = 'agDateColumnFilter';\n }\n else {\n defaultFilter = 'agTextColumnFilter';\n }\n }\n return defaultFilter;\n };\n FilterManager.prototype.getDefaultFloatingFilter = function (column) {\n var defaultFloatingFilterType;\n if (ModuleRegistry.__isRegistered(ModuleNames.SetFilterModule, this.context.getGridId())) {\n defaultFloatingFilterType = 'agSetColumnFloatingFilter';\n }\n else {\n var cellDataType = column.getColDef().cellDataType;\n if (cellDataType === 'number') {\n defaultFloatingFilterType = 'agNumberColumnFloatingFilter';\n }\n else if (cellDataType === 'date' || cellDataType === 'dateString') {\n defaultFloatingFilterType = 'agDateColumnFloatingFilter';\n }\n else {\n defaultFloatingFilterType = 'agTextColumnFloatingFilter';\n }\n }\n return defaultFloatingFilterType;\n };\n FilterManager.prototype.createFilterInstance = function (column) {\n var _this = this;\n var defaultFilter = this.getDefaultFilter(column);\n var colDef = column.getColDef();\n var filterInstance;\n var params = __assign$d(__assign$d({}, 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 _a;\n var source = (_a = additionalEventAttributes === null || additionalEventAttributes === void 0 ? void 0 : additionalEventAttributes.source) !== null && _a !== void 0 ? _a : 'api';\n var params = {\n filterInstance: filterInstance,\n additionalEventAttributes: additionalEventAttributes,\n columns: [column],\n source: source,\n };\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 { filterPromise: null, compDetails: null };\n }\n return {\n filterPromise: function () {\n var filterPromise = compDetails.newAgStackInstance();\n if (filterPromise) {\n filterPromise.then(function (r) { return filterInstance = r; });\n }\n return filterPromise;\n },\n compDetails: compDetails\n };\n };\n FilterManager.prototype.createFilterParams = function (column, colDef) {\n var params = {\n column: column,\n colDef: cloneObject(colDef),\n rowModel: this.rowModel,\n filterChangedCallback: function () { },\n filterModifiedCallback: function () { },\n valueGetter: this.createValueGetter(column),\n doesRowPassOtherFilter: function () { return true; },\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n };\n return params;\n };\n FilterManager.prototype.createFilterWrapper = function (column, source) {\n var _a;\n var filterWrapper = {\n column: column,\n filterPromise: null,\n compiledElement: null,\n guiPromise: AgPromise.resolve(null),\n compDetails: null\n };\n var _b = this.createFilterInstance(column), filterPromise = _b.filterPromise, compDetails = _b.compDetails;\n filterWrapper.filterPromise = (_a = filterPromise === null || filterPromise === void 0 ? void 0 : filterPromise()) !== null && _a !== void 0 ? _a : null;\n filterWrapper.compDetails = compDetails;\n if (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, 'columnChanged');\n _this.disposeColumnListener(colId);\n });\n if (columns.length > 0) {\n // When a filter changes as a side effect of a column changes,\n // we report 'api' as the source, so that the client can distinguish\n this.onFilterChanged({ columns: columns, source: 'api' });\n }\n else {\n // onFilterChanged does this already\n this.updateDependantFilters();\n }\n };\n FilterManager.prototype.updateDependantFilters = function () {\n var _this = this;\n // Group column filters can be dependant on underlying column filters, but don't normally get created until they're used for the first time.\n // Instead, create them by default when any filter changes.\n var groupColumns = this.columnModel.getGroupAutoColumns();\n groupColumns === null || groupColumns === void 0 ? void 0 : groupColumns.forEach(function (groupColumn) {\n if (groupColumn.getColDef().filter === 'agGroupColumnFilter') {\n _this.getOrCreateFilterWrapper(groupColumn, 'NO_UI');\n }\n });\n };\n // for group filters, can change dynamically whether they are allowed or not\n FilterManager.prototype.isFilterAllowed = function (column) {\n var _a, _b;\n if (this.isAdvancedFilterEnabled()) {\n return false;\n }\n var isFilterAllowed = column.isFilterAllowed();\n if (!isFilterAllowed) {\n return false;\n }\n var filterWrapper = this.allColumnFilters.get(column.getColId());\n return (_b = (_a = filterWrapper === null || filterWrapper === void 0 ? void 0 : filterWrapper.filterPromise) === null || _a === void 0 ? void 0 : _a.resolveNow(true, \n // defer to filter component isFilterAllowed if it exists\n function (filter) {\n var _a, _b;\n return (typeof ((_a = filter) === null || _a === void 0 ? void 0 : _a.isFilterAllowed) === 'function')\n ? (_b = filter) === null || _b === void 0 ? void 0 : _b.isFilterAllowed()\n : true;\n })) !== null && _b !== void 0 ? _b : true;\n };\n FilterManager.prototype.getFloatingFilterCompDetails = function (column, showParentFilter) {\n var _this = this;\n var colDef = column.getColDef();\n var filterParams = this.createFilterParams(column, colDef);\n var finalFilterParams = this.userComponentFactory.mergeParamsWithApplicationProvidedParams(colDef, FilterComponent, filterParams);\n var defaultFloatingFilterType = this.userComponentFactory.getDefaultFloatingFilterType(colDef, function () { return _this.getDefaultFloatingFilter(column); });\n if (defaultFloatingFilterType == null) {\n defaultFloatingFilterType = 'agReadOnlyFloatingFilter';\n }\n var parentFilterInstance = function (callback) {\n var filterComponent = _this.getFilterComponent(column, 'NO_UI');\n if (filterComponent == null) {\n return;\n }\n filterComponent.then(function (instance) {\n callback(unwrapUserComp(instance));\n });\n };\n var params = {\n column: column,\n filterParams: finalFilterParams,\n currentParentModel: function () { return _this.getCurrentFloatingFilterParentModel(column); },\n parentFilterInstance: parentFilterInstance,\n showParentFilter: showParentFilter,\n suppressFilterButton: false // This one might be overridden from the colDef\n };\n return this.userComponentFactory.getFloatingFilterCompDetails(colDef, params, defaultFloatingFilterType);\n };\n FilterManager.prototype.getCurrentFloatingFilterParentModel = function (column) {\n var filterComponent = this.getFilterComponent(column, 'NO_UI', false);\n return filterComponent ? filterComponent.resolveNow(null, function (filter) { return filter && filter.getModel(); }) : null;\n };\n // destroys the filter, so it no longer takes part\n FilterManager.prototype.destroyFilter = function (column, source) {\n if (source === void 0) { source = 'api'; }\n var colId = column.getColId();\n var filterWrapper = this.allColumnFilters.get(colId);\n this.disposeColumnListener(colId);\n if (filterWrapper) {\n this.disposeFilterWrapper(filterWrapper, source);\n this.onFilterChanged({\n columns: [column],\n source: 'api',\n });\n }\n };\n FilterManager.prototype.disposeColumnListener = function (colId) {\n var columnListener = this.allColumnListeners.get(colId);\n if (columnListener) {\n this.allColumnListeners.delete(colId);\n columnListener();\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, 'filterDestroyed');\n _this.allColumnFilters.delete(filterWrapper.column.getColId());\n var event = {\n type: Events.EVENT_FILTER_DESTROYED,\n source: source,\n column: filterWrapper.column,\n };\n _this.eventService.dispatchEvent(event);\n });\n });\n };\n FilterManager.prototype.checkDestroyFilter = function (colId) {\n var filterWrapper = this.allColumnFilters.get(colId);\n if (!filterWrapper) {\n return;\n }\n var column = filterWrapper.column;\n var compDetails = (column.isFilterAllowed()\n ? this.createFilterInstance(column)\n : { compDetails: null }).compDetails;\n if (this.areFilterCompsDifferent(filterWrapper.compDetails, compDetails)) {\n this.destroyFilter(column, 'columnChanged');\n }\n };\n FilterManager.prototype.areFilterCompsDifferent = function (oldCompDetails, newCompDetails) {\n if (!newCompDetails || !oldCompDetails) {\n return true;\n }\n var oldComponentClass = oldCompDetails.componentClass;\n var newComponentClass = newCompDetails.componentClass;\n var isSameComponentClass = oldComponentClass === newComponentClass ||\n // react hooks returns new wrappers, so check nested render method\n ((oldComponentClass === null || oldComponentClass === void 0 ? void 0 : oldComponentClass.render) && (newComponentClass === null || newComponentClass === void 0 ? void 0 : newComponentClass.render) &&\n oldComponentClass.render === newComponentClass.render);\n return !isSameComponentClass;\n };\n FilterManager.prototype.getAdvancedFilterModel = function () {\n return this.isAdvancedFilterEnabled() ? this.advancedFilterService.getModel() : null;\n };\n FilterManager.prototype.setAdvancedFilterModel = function (expression) {\n if (!this.isAdvancedFilterEnabled()) {\n return;\n }\n this.advancedFilterService.setModel(expression !== null && expression !== void 0 ? expression : null);\n this.onFilterChanged({ source: 'advancedFilter' });\n };\n FilterManager.prototype.showAdvancedFilterBuilder = function (source) {\n if (!this.isAdvancedFilterEnabled()) {\n return;\n }\n this.advancedFilterService.getCtrl().toggleFilterBuilder(source, true);\n };\n FilterManager.prototype.updateAdvancedFilterColumns = function () {\n if (!this.isAdvancedFilterEnabled()) {\n return;\n }\n if (this.advancedFilterService.updateValidity()) {\n this.onFilterChanged({ source: 'advancedFilter' });\n }\n };\n FilterManager.prototype.hasFloatingFilters = function () {\n if (this.isAdvancedFilterEnabled()) {\n return false;\n }\n var gridColumns = this.columnModel.getAllGridColumns();\n if (!gridColumns) {\n return false;\n }\n return gridColumns.some(function (col) { return col.getColDef().floatingFilter; });\n };\n FilterManager.prototype.getFilterInstance = function (key, callback) {\n if (this.isAdvancedFilterEnabled()) {\n this.warnAdvancedFilters();\n return undefined;\n }\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 FilterManager.prototype.getFilterInstanceImpl = function (key, callback) {\n var column = this.columnModel.getPrimaryColumn(key);\n if (!column) {\n return undefined;\n }\n var filterPromise = this.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 FilterManager.prototype.warnAdvancedFilters = function () {\n doOnce(function () {\n console.warn('AG Grid: Column Filter API methods have been disabled as Advanced Filters are enabled.');\n }, 'advancedFiltersCompatibility');\n };\n FilterManager.prototype.setupAdvancedFilterHeaderComp = function (eCompToInsertBefore) {\n var _a;\n (_a = this.advancedFilterService) === null || _a === void 0 ? void 0 : _a.getCtrl().setupHeaderComp(eCompToInsertBefore);\n };\n FilterManager.prototype.getHeaderRowCount = function () {\n return this.isAdvancedFilterHeaderActive() ? 1 : 0;\n };\n FilterManager.prototype.getHeaderHeight = function () {\n return this.isAdvancedFilterHeaderActive() ? this.advancedFilterService.getCtrl().getHeaderHeight() : 0;\n };\n FilterManager.prototype.processFilterModelUpdateQueue = function () {\n var _this = this;\n this.filterModelUpdateQueue.forEach(function (model) { return _this.setFilterModel(model); });\n this.filterModelUpdateQueue = [];\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, 'gridDestroyed'); });\n // don't need to destroy the listeners as they are managed listeners\n this.allColumnListeners.clear();\n };\n __decorate$1Y([\n Autowired('valueService')\n ], FilterManager.prototype, \"valueService\", void 0);\n __decorate$1Y([\n Autowired('columnModel')\n ], FilterManager.prototype, \"columnModel\", void 0);\n __decorate$1Y([\n Autowired('rowModel')\n ], FilterManager.prototype, \"rowModel\", void 0);\n __decorate$1Y([\n Autowired('userComponentFactory')\n ], FilterManager.prototype, \"userComponentFactory\", void 0);\n __decorate$1Y([\n Autowired('rowRenderer')\n ], FilterManager.prototype, \"rowRenderer\", void 0);\n __decorate$1Y([\n Autowired('dataTypeService')\n ], FilterManager.prototype, \"dataTypeService\", void 0);\n __decorate$1Y([\n Autowired('quickFilterService')\n ], FilterManager.prototype, \"quickFilterService\", void 0);\n __decorate$1Y([\n Optional('advancedFilterService')\n ], FilterManager.prototype, \"advancedFilterService\", void 0);\n __decorate$1Y([\n PostConstruct\n ], FilterManager.prototype, \"init\", null);\n FilterManager = __decorate$1Y([\n Bean('filterManager')\n ], FilterManager);\n return FilterManager;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$27(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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 HeaderFilterCellComp = /** @class */ (function (_super) {\n __extends$26(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 setButtonWrapperDisplayed: function (displayed) { return setDisplayed(_this.eButtonWrapper, displayed); },\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 if (!compDetails) {\n this.destroyFloatingFilterComp();\n this.compPromise = null;\n return;\n }\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.destroyFloatingFilterComp = function () {\n if (this.floatingFilterComp) {\n this.eFloatingFilterBody.removeChild(this.floatingFilterComp.getGui());\n this.floatingFilterComp = this.destroyBean(this.floatingFilterComp);\n }\n };\n HeaderFilterCellComp.prototype.afterCompCreated = function (comp) {\n if (!comp) {\n return;\n }\n if (!this.isAlive()) {\n this.destroyBean(comp);\n return;\n }\n this.destroyFloatingFilterComp();\n this.floatingFilterComp = comp;\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$1X([\n RefSelector('eFloatingFilterBody')\n ], HeaderFilterCellComp.prototype, \"eFloatingFilterBody\", void 0);\n __decorate$1X([\n RefSelector('eButtonWrapper')\n ], HeaderFilterCellComp.prototype, \"eButtonWrapper\", void 0);\n __decorate$1X([\n RefSelector('eButtonShowMainFilter')\n ], HeaderFilterCellComp.prototype, \"eButtonShowMainFilter\", void 0);\n __decorate$1X([\n PostConstruct\n ], HeaderFilterCellComp.prototype, \"postConstruct\", null);\n __decorate$1X([\n PreDestroy\n ], HeaderFilterCellComp.prototype, \"destroyFloatingFilterComp\", null);\n return HeaderFilterCellComp;\n}(AbstractHeaderCellComp));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 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$25(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.addManagedPropertyListener('domLayout', this.updateLayoutClasses.bind(this));\n this.updateLayoutClasses();\n };\n LayoutFeature.prototype.updateLayoutClasses = function () {\n var domLayout = this.getDomLayout();\n var params = {\n autoHeight: domLayout === 'autoHeight',\n normal: domLayout === 'normal',\n print: domLayout === '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 // returns either 'print', 'autoHeight' or 'normal' (normal is the default)\n LayoutFeature.prototype.getDomLayout = function () {\n var _a;\n var domLayout = (_a = this.gridOptionsService.get('domLayout')) !== null && _a !== void 0 ? _a : 'normal';\n var validLayouts = ['normal', 'print', 'autoHeight'];\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 'normal', 'autoHeight', 'print'.\");\n }, 'warn about dom layout values');\n return 'normal';\n }\n return domLayout;\n };\n __decorate$1W([\n PostConstruct\n ], LayoutFeature.prototype, \"postConstruct\", null);\n return LayoutFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[ScrollDirection[\"Vertical\"] = 0] = \"Vertical\";\n ScrollDirection[ScrollDirection[\"Horizontal\"] = 1] = \"Horizontal\";\n})(ScrollDirection || (ScrollDirection = {}));\nvar ScrollSource;\n(function (ScrollSource) {\n ScrollSource[ScrollSource[\"Container\"] = 0] = \"Container\";\n ScrollSource[ScrollSource[\"FakeContainer\"] = 1] = \"FakeContainer\";\n})(ScrollSource || (ScrollSource = {}));\nvar GridBodyScrollFeature = /** @class */ (function (_super) {\n __extends$24(GridBodyScrollFeature, _super);\n function GridBodyScrollFeature(eBodyViewport) {\n var _this = _super.call(this) || this;\n _this.lastScrollSource = [null, null];\n _this.scrollLeft = -1;\n _this.nextScrollTop = -1;\n _this.scrollTop = -1;\n _this.eBodyViewport = eBodyViewport;\n _this.resetLastHScrollDebounced = debounce(function () { return _this.lastScrollSource[ScrollDirection.Horizontal] = null; }, 500);\n _this.resetLastVScrollDebounced = debounce(function () { return _this.lastScrollSource[ScrollDirection.Vertical] = null; }, 500);\n return _this;\n }\n GridBodyScrollFeature.prototype.postConstruct = function () {\n var _this = this;\n this.enableRtl = this.gridOptionsService.is('enableRtl');\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.getFakeHScrollComp();\n var fakeVScroll = this.ctrlsService.getFakeVScrollComp();\n this.addManagedListener(this.centerRowContainerCtrl.getViewportElement(), 'scroll', this.onHScroll.bind(this));\n fakeHScroll.onScrollCallback(this.onFakeHScroll.bind(this));\n var isDebounce = this.gridOptionsService.is('debounceVerticalScrollbar');\n var onVScroll = isDebounce ?\n debounce(this.onVScroll.bind(this), 100) : this.onVScroll.bind(this);\n var onFakeVScroll = isDebounce ?\n debounce(this.onFakeVScroll.bind(this), 100) : this.onFakeVScroll.bind(this);\n this.addManagedListener(this.eBodyViewport, 'scroll', onVScroll);\n fakeVScroll.onScrollCallback(onFakeVScroll);\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.getFakeHScrollComp();\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.lastScrollSource[ScrollDirection.Horizontal] === ScrollSource.Container;\n scrollLeft = Math.abs(scrollLeft);\n if (isCenterViewportLastHorizontal) {\n fakeHScroll.setScrollPosition(scrollLeft);\n }\n else {\n setScrollLeft(centerViewport, scrollLeft, this.enableRtl);\n }\n };\n GridBodyScrollFeature.prototype.isControllingScroll = function (source, direction) {\n if (this.lastScrollSource[direction] == null) {\n this.lastScrollSource[direction] = source;\n return true;\n }\n return this.lastScrollSource[direction] === source;\n };\n GridBodyScrollFeature.prototype.onFakeHScroll = function () {\n if (!this.isControllingScroll(ScrollSource.FakeContainer, ScrollDirection.Horizontal)) {\n return;\n }\n this.onHScrollCommon(ScrollSource.FakeContainer);\n };\n GridBodyScrollFeature.prototype.onHScroll = function () {\n if (!this.isControllingScroll(ScrollSource.Container, ScrollDirection.Horizontal)) {\n return;\n }\n this.onHScrollCommon(ScrollSource.Container);\n };\n GridBodyScrollFeature.prototype.onHScrollCommon = function (source) {\n var centerContainerViewport = this.centerRowContainerCtrl.getViewportElement();\n var scrollLeft = centerContainerViewport.scrollLeft;\n if (this.shouldBlockScrollUpdate(ScrollDirection.Horizontal, scrollLeft, true)) {\n return;\n }\n var newScrollLeft;\n if (source === ScrollSource.Container) {\n newScrollLeft = getScrollLeft(centerContainerViewport, this.enableRtl);\n }\n else {\n newScrollLeft = this.ctrlsService.getFakeHScrollComp().getScrollPosition();\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(newScrollLeft));\n this.resetLastHScrollDebounced();\n };\n GridBodyScrollFeature.prototype.onFakeVScroll = function () {\n if (!this.isControllingScroll(ScrollSource.FakeContainer, ScrollDirection.Vertical)) {\n return;\n }\n this.onVScrollCommon(ScrollSource.FakeContainer);\n };\n GridBodyScrollFeature.prototype.onVScroll = function () {\n if (!this.isControllingScroll(ScrollSource.Container, ScrollDirection.Vertical)) {\n return;\n }\n this.onVScrollCommon(ScrollSource.Container);\n };\n GridBodyScrollFeature.prototype.onVScrollCommon = function (source) {\n var scrollTop;\n if (source === ScrollSource.Container) {\n scrollTop = this.eBodyViewport.scrollTop;\n }\n else {\n scrollTop = this.ctrlsService.getFakeVScrollComp().getScrollPosition();\n }\n if (this.shouldBlockScrollUpdate(ScrollDirection.Vertical, scrollTop, true)) {\n return;\n }\n this.animationFrameService.setScrollTop(scrollTop);\n this.nextScrollTop = scrollTop;\n if (source === ScrollSource.Container) {\n this.ctrlsService.getFakeVScrollComp().setScrollPosition(scrollTop);\n }\n else {\n this.eBodyViewport.scrollTop = scrollTop;\n }\n // the `scrollGridIfNeeded` will recalculate the rows to be rendered by the grid\n // so it should only be called after `eBodyViewport` has been scrolled to the correct\n // position, otherwise the `first` and `last` row could be miscalculated.\n if (this.gridOptionsService.is('suppressAnimationFrame')) {\n this.scrollGridIfNeeded();\n }\n else {\n this.animationFrameService.schedule();\n }\n this.resetLastVScrollDebounced();\n };\n GridBodyScrollFeature.prototype.doHorizontalScroll = function (scrollLeft) {\n var fakeScrollLeft = this.ctrlsService.getFakeHScrollComp().getScrollPosition();\n if (this.scrollLeft === scrollLeft && scrollLeft === fakeScrollLeft) {\n return;\n }\n this.scrollLeft = scrollLeft;\n this.fireScrollEvent(ScrollDirection.Horizontal);\n this.horizontallyScrollHeaderCenterAndFloatingCenter(scrollLeft);\n this.centerRowContainerCtrl.onHorizontalViewportChanged(true);\n };\n GridBodyScrollFeature.prototype.fireScrollEvent = function (direction) {\n var _this = this;\n var bodyScrollEvent = {\n type: Events.EVENT_BODY_SCROLL,\n direction: direction === ScrollDirection.Horizontal ? 'horizontal' : 'vertical',\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 = __assign$c(__assign$c({}, bodyScrollEvent), { type: Events.EVENT_BODY_SCROLL_END });\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 === ScrollDirection.Vertical) {\n return this.shouldBlockVerticalScroll(scrollTo);\n }\n return this.shouldBlockHorizontalScroll(scrollTo);\n };\n GridBodyScrollFeature.prototype.shouldBlockVerticalScroll = function (scrollTo) {\n var clientHeight = getInnerHeight(this.eBodyViewport);\n var scrollHeight = this.eBodyViewport.scrollHeight;\n if (scrollTo < 0 || (scrollTo + clientHeight > scrollHeight)) {\n return true;\n }\n return false;\n };\n GridBodyScrollFeature.prototype.shouldBlockHorizontalScroll = function (scrollTo) {\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 return false;\n };\n GridBodyScrollFeature.prototype.redrawRowsAfterScroll = function () {\n this.fireScrollEvent(ScrollDirection.Vertical);\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.onHScrollCommon(ScrollSource.Container);\n }\n };\n GridBodyScrollFeature.prototype.scrollGridIfNeeded = 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, fromAlignedGridsService) {\n if (fromAlignedGridsService === void 0) { fromAlignedGridsService = false; }\n var minScrollLeft = 0;\n var maxScrollLeft = this.centerRowContainerCtrl.getViewportElement().scrollWidth - this.centerRowContainerCtrl.getCenterWidth();\n // if this is call is coming from the alignedGridsService, we don't need to validate the\n // scroll, because it has already been validated by the grid firing the scroll event.\n if (!fromAlignedGridsService && this.shouldBlockScrollUpdate(ScrollDirection.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.gridOptionsService.isDomLayout('print')) {\n return;\n }\n var rowCount = this.paginationProxy.getRowCount();\n if (typeof index !== 'number' || index < 0 || index >= rowCount) {\n console.warn('AG Grid: Invalid row index for ensureIndexVisible: ' + index);\n return;\n }\n var isPaging = this.gridOptionsService.is('pagination');\n var paginationPanelEnabled = isPaging && !this.gridOptionsService.is('suppressPaginationPanel');\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.setVerticalScrollPosition(newScrollPosition);\n this.rowRenderer.redraw({ afterScroll: true });\n }\n // the row can get shifted if during the rendering (during rowRenderer.redraw()),\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$1V([\n Autowired('ctrlsService')\n ], GridBodyScrollFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1V([\n Autowired('animationFrameService')\n ], GridBodyScrollFeature.prototype, \"animationFrameService\", void 0);\n __decorate$1V([\n Autowired('paginationProxy')\n ], GridBodyScrollFeature.prototype, \"paginationProxy\", void 0);\n __decorate$1V([\n Autowired('rowModel')\n ], GridBodyScrollFeature.prototype, \"rowModel\", void 0);\n __decorate$1V([\n Autowired('rowContainerHeightService')\n ], GridBodyScrollFeature.prototype, \"heightScaler\", void 0);\n __decorate$1V([\n Autowired('rowRenderer')\n ], GridBodyScrollFeature.prototype, \"rowRenderer\", void 0);\n __decorate$1V([\n Autowired('columnModel')\n ], GridBodyScrollFeature.prototype, \"columnModel\", void 0);\n __decorate$1V([\n PostConstruct\n ], GridBodyScrollFeature.prototype, \"postConstruct\", null);\n return GridBodyScrollFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 __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 __spreadArray$i = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar RowDragFeature = /** @class */ (function (_super) {\n __extends$23(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.gridOptionsService.isRowModelType('clientSide')) {\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.gridOptionsService.is('rowDragManaged');\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.gridOptionsService.is('rowDragMultiRow');\n var selectedNodes = __spreadArray$i([], __read$m(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.gridOptionsService.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.gridOptionsService.is('rowDragManaged');\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.gridOptionsService.is('rowDragManaged');\n var rowNodes = draggingEvent.dragItem.rowNodes;\n if (managedDrag && this.shouldPreventRowMove()) {\n return;\n }\n if (this.gridOptionsService.is('suppressMoveWhenRowDragging') || !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.gridOptionsService.getCallback('getRowId');\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$b({ 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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\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.gridOptionsService.is('rowDragManaged')) {\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.gridOptionsService.is('rowDragManaged') &&\n (this.gridOptionsService.is('suppressMoveWhenRowDragging') || !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$1U([\n Autowired('dragAndDropService')\n ], RowDragFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$1U([\n Autowired('rowModel')\n ], RowDragFeature.prototype, \"rowModel\", void 0);\n __decorate$1U([\n Autowired('paginationProxy')\n ], RowDragFeature.prototype, \"paginationProxy\", void 0);\n __decorate$1U([\n Autowired('columnModel')\n ], RowDragFeature.prototype, \"columnModel\", void 0);\n __decorate$1U([\n Autowired('focusService')\n ], RowDragFeature.prototype, \"focusService\", void 0);\n __decorate$1U([\n Autowired('sortController')\n ], RowDragFeature.prototype, \"sortController\", void 0);\n __decorate$1U([\n Autowired('filterManager')\n ], RowDragFeature.prototype, \"filterManager\", void 0);\n __decorate$1U([\n Autowired('selectionService')\n ], RowDragFeature.prototype, \"selectionService\", void 0);\n __decorate$1U([\n Autowired('mouseEventService')\n ], RowDragFeature.prototype, \"mouseEventService\", void 0);\n __decorate$1U([\n Autowired('ctrlsService')\n ], RowDragFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1U([\n Optional('rangeService')\n ], RowDragFeature.prototype, \"rangeService\", void 0);\n __decorate$1U([\n PostConstruct\n ], RowDragFeature.prototype, \"postConstruct\", null);\n return RowDragFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 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_FORCE_VERTICAL_SCROLL = 'ag-force-vertical-scroll';\nvar CSS_CLASS_CELL_SELECTABLE = 'ag-selectable';\nvar CSS_CLASS_COLUMN_MOVING = 'ag-column-moving';\nvar GridBodyCtrl = /** @class */ (function (_super) {\n __extends$22(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.gridOptionsService.is('enableCellTextSelection'));\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.filterManager.setupAdvancedFilterHeaderComp(eTop);\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(CSS_CLASS_COLUMN_MOVING, moving);\n };\n GridBodyCtrl.prototype.setCellTextSelection = function (selectable) {\n if (selectable === void 0) { selectable = false; }\n this.comp.setCellSelectableCss(CSS_CLASS_CELL_SELECTABLE, selectable);\n };\n GridBodyCtrl.prototype.onScrollVisibilityChanged = function () {\n var _this = this;\n var visible = this.scrollVisibleService.isVerticalScrollShowing();\n this.setVerticalScrollPaddingVisible(visible);\n this.setStickyTopWidth(visible);\n var scrollbarWidth = visible ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;\n var pad = isInvisibleScrollbar() ? 16 : 0;\n var width = \"calc(100% + \" + (scrollbarWidth + pad) + \"px)\";\n this.animationFrameService.requestAnimationFrame(function () { return _this.comp.setBodyViewportWidth(width); });\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.gridOptionsService.is('stopEditingWhenCellsLoseFocus')) {\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() + this.filterManager.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.gridOptionsService.is('alwaysShowVerticalScroll');\n var cssClass = show ? CSS_CLASS_FORCE_VERTICAL_SCROLL : null;\n var allowVerticalScroll = this.gridOptionsService.isDomLayout('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.gridOptionsService.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 this.addManagedPropertyListener('animateRows', listener);\n };\n GridBodyCtrl.prototype.getGridBodyElement = function () {\n return this.eGridBody;\n };\n GridBodyCtrl.prototype.addBodyViewportListener = function () {\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 = this.onBodyViewportContextMenu.bind(this);\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 // allow mouseWheel on the Full Width Container to Scroll the Viewport\n this.addFullWidthContainerWheelListener();\n };\n GridBodyCtrl.prototype.addFullWidthContainerWheelListener = function () {\n var _this = this;\n var fullWidthContainer = this.eBodyViewport.querySelector('.ag-full-width-container');\n var eCenterColsViewport = this.eBodyViewport.querySelector('.ag-center-cols-viewport');\n if (fullWidthContainer && eCenterColsViewport) {\n this.addManagedListener(fullWidthContainer, 'wheel', function (e) { return _this.onFullWidthContainerWheel(e, eCenterColsViewport); });\n }\n };\n GridBodyCtrl.prototype.onFullWidthContainerWheel = function (e, eCenterColsViewport) {\n if (!e.deltaX ||\n Math.abs(e.deltaY) > Math.abs(e.deltaX) ||\n !this.mouseEventService.isEventFromThisGrid(e)) {\n return;\n }\n e.preventDefault();\n eCenterColsViewport.scrollBy({ left: e.deltaX });\n };\n GridBodyCtrl.prototype.onBodyViewportContextMenu = function (mouseEvent, touch, touchEvent) {\n if (!mouseEvent && !touchEvent) {\n return;\n }\n if (this.gridOptionsService.is('preventDefaultOnContextMenu')) {\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 return;\n }\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 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.gridOptionsService.is('suppressScrollWhenPopupsAreOpen')) {\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.gridOptionsService.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() + this.filterManager.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.gridOptionsService.getScrollbarWidth() : 0;\n // bodyViewportWidth should be calculated from eGridBody, not eBodyViewport\n // because we change the width of the bodyViewport to hide the real browser scrollbar\n var bodyViewportWidth = getInnerWidth(this.eGridBody);\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, { passive: true });\n };\n // + focusService\n GridBodyCtrl.prototype.removeScrollEventListener = function (listener) {\n this.eBodyViewport.removeEventListener('scroll', listener);\n };\n __decorate$1T([\n Autowired('animationFrameService')\n ], GridBodyCtrl.prototype, \"animationFrameService\", void 0);\n __decorate$1T([\n Autowired('rowContainerHeightService')\n ], GridBodyCtrl.prototype, \"rowContainerHeightService\", void 0);\n __decorate$1T([\n Autowired('ctrlsService')\n ], GridBodyCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1T([\n Autowired('columnModel')\n ], GridBodyCtrl.prototype, \"columnModel\", void 0);\n __decorate$1T([\n Autowired('scrollVisibleService')\n ], GridBodyCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$1T([\n Optional('contextMenuFactory')\n ], GridBodyCtrl.prototype, \"contextMenuFactory\", void 0);\n __decorate$1T([\n Autowired('headerNavigationService')\n ], GridBodyCtrl.prototype, \"headerNavigationService\", void 0);\n __decorate$1T([\n Autowired('dragAndDropService')\n ], GridBodyCtrl.prototype, \"dragAndDropService\", void 0);\n __decorate$1T([\n Autowired('pinnedRowModel')\n ], GridBodyCtrl.prototype, \"pinnedRowModel\", void 0);\n __decorate$1T([\n Autowired('rowRenderer')\n ], GridBodyCtrl.prototype, \"rowRenderer\", void 0);\n __decorate$1T([\n Autowired('popupService')\n ], GridBodyCtrl.prototype, \"popupService\", void 0);\n __decorate$1T([\n Autowired('mouseEventService')\n ], GridBodyCtrl.prototype, \"mouseEventService\", void 0);\n __decorate$1T([\n Autowired('rowModel')\n ], GridBodyCtrl.prototype, \"rowModel\", void 0);\n __decorate$1T([\n Autowired('filterManager')\n ], GridBodyCtrl.prototype, \"filterManager\", void 0);\n return GridBodyCtrl;\n}(BeanStub));\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\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.gridOptionsService.is('enableRtl');\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, gridOptionsService = _a.gridOptionsService, 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 = gridOptionsService.is('enableFillHandle') && !this.cellCtrl.isSuppressFillHandle();\n var isRangeHandleAvailable = gridOptionsService.is('enableRangeHandle');\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, gridOptionsService = _a.gridOptionsService, rangeService = _a.rangeService;\n var cellRangeType = last(rangeService.getCellRanges()).type;\n var selectionHandleFill = gridOptionsService.is('enableFillHandle') && 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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$21(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.gridOptionsService.is('enableRtl') && 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() === 'left') {\n return leftPosition;\n }\n var leftWidth = this.beans.columnModel.getDisplayedColumnsLeftWidth();\n if (this.column.getPinned() === '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.gridOptionsService.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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$20(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.gridOptionsService.api,\n columnApi: this.beans.gridOptionsService.columnApi,\n context: this.beans.gridOptionsService.context\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.gridOptionsService.api,\n columnApi: this.beans.gridOptionsService.columnApi,\n context: this.beans.gridOptionsService.context,\n };\n var cellStyleFunc = colDef.cellStyle;\n styles = cellStyleFunc(cellStyleParams);\n }\n else {\n styles = colDef.cellStyle;\n }\n if (styles) {\n this.cellComp.setUserStyles(styles);\n }\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.gridOptionsService.api,\n columnApi: this.beans.gridOptionsService.columnApi,\n context: this.beans.gridOptionsService.context\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$1$(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 (eGui) {\n this.eGui = eGui;\n this.setupTooltip();\n };\n TooltipFeature.prototype.setBrowserTooltip = function (tooltip) {\n var name = 'title';\n if (tooltip != null && tooltip != '') {\n this.eGui.setAttribute(name, tooltip);\n }\n else {\n this.eGui.removeAttribute(name);\n }\n };\n TooltipFeature.prototype.setupTooltip = function () {\n this.browserTooltips = this.beans.gridOptionsService.is('enableBrowserTooltips');\n this.updateTooltipText();\n if (this.browserTooltips) {\n this.setBrowserTooltip(this.tooltip);\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 var _a, _b, _c, _d;\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, (_b = (_a = this.ctrl).getTooltipShowDelayOverride) === null || _b === void 0 ? void 0 : _b.call(_a), (_d = (_c = this.ctrl).getTooltipHideDelayOverride) === null || _d === void 0 ? void 0 : _d.call(_c)), this.beans.context);\n };\n TooltipFeature.prototype.refreshToolTip = function () {\n this.updateTooltipText();\n if (this.browserTooltips) {\n this.setBrowserTooltip(this.tooltip);\n }\n };\n TooltipFeature.prototype.getTooltipParams = function () {\n var _this = this;\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 hideTooltipCallback: function () { return _this.genericTooltipFeature.hideTooltip(true); }\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\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};\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.gridOptionsService.is('masterDetail');\n if (this.gridOptionsService.isRowModelType('clientSide')) {\n this.clientSideRowModel = this.rowModel;\n }\n if (this.gridOptionsService.isRowModelType('serverSide')) {\n this.serverSideRowModel = this.rowModel;\n }\n };\n __decorate$1S([\n Autowired('resizeObserverService')\n ], Beans.prototype, \"resizeObserverService\", void 0);\n __decorate$1S([\n Autowired('paginationProxy')\n ], Beans.prototype, \"paginationProxy\", void 0);\n __decorate$1S([\n Autowired('context')\n ], Beans.prototype, \"context\", void 0);\n __decorate$1S([\n Autowired('columnApi')\n ], Beans.prototype, \"columnApi\", void 0);\n __decorate$1S([\n Autowired('gridApi')\n ], Beans.prototype, \"gridApi\", void 0);\n __decorate$1S([\n Autowired('gridOptionsService')\n ], Beans.prototype, \"gridOptionsService\", void 0);\n __decorate$1S([\n Autowired('expressionService')\n ], Beans.prototype, \"expressionService\", void 0);\n __decorate$1S([\n Autowired('environment')\n ], Beans.prototype, \"environment\", void 0);\n __decorate$1S([\n Autowired('rowRenderer')\n ], Beans.prototype, \"rowRenderer\", void 0);\n __decorate$1S([\n Autowired('templateService')\n ], Beans.prototype, \"templateService\", void 0);\n __decorate$1S([\n Autowired('valueService')\n ], Beans.prototype, \"valueService\", void 0);\n __decorate$1S([\n Autowired('eventService')\n ], Beans.prototype, \"eventService\", void 0);\n __decorate$1S([\n Autowired('columnModel')\n ], Beans.prototype, \"columnModel\", void 0);\n __decorate$1S([\n Autowired('headerNavigationService')\n ], Beans.prototype, \"headerNavigationService\", void 0);\n __decorate$1S([\n Autowired('navigationService')\n ], Beans.prototype, \"navigationService\", void 0);\n __decorate$1S([\n Autowired('columnAnimationService')\n ], Beans.prototype, \"columnAnimationService\", void 0);\n __decorate$1S([\n Optional('rangeService')\n ], Beans.prototype, \"rangeService\", void 0);\n __decorate$1S([\n Autowired('focusService')\n ], Beans.prototype, \"focusService\", void 0);\n __decorate$1S([\n Optional('contextMenuFactory')\n ], Beans.prototype, \"contextMenuFactory\", void 0);\n __decorate$1S([\n Autowired('popupService')\n ], Beans.prototype, \"popupService\", void 0);\n __decorate$1S([\n Autowired('valueFormatterService')\n ], Beans.prototype, \"valueFormatterService\", void 0);\n __decorate$1S([\n Autowired('stylingService')\n ], Beans.prototype, \"stylingService\", void 0);\n __decorate$1S([\n Autowired('columnHoverService')\n ], Beans.prototype, \"columnHoverService\", void 0);\n __decorate$1S([\n Autowired('userComponentFactory')\n ], Beans.prototype, \"userComponentFactory\", void 0);\n __decorate$1S([\n Autowired('userComponentRegistry')\n ], Beans.prototype, \"userComponentRegistry\", void 0);\n __decorate$1S([\n Autowired('animationFrameService')\n ], Beans.prototype, \"animationFrameService\", void 0);\n __decorate$1S([\n Autowired('dragService')\n ], Beans.prototype, \"dragService\", void 0);\n __decorate$1S([\n Autowired('dragAndDropService')\n ], Beans.prototype, \"dragAndDropService\", void 0);\n __decorate$1S([\n Autowired('sortController')\n ], Beans.prototype, \"sortController\", void 0);\n __decorate$1S([\n Autowired('filterManager')\n ], Beans.prototype, \"filterManager\", void 0);\n __decorate$1S([\n Autowired('rowContainerHeightService')\n ], Beans.prototype, \"rowContainerHeightService\", void 0);\n __decorate$1S([\n Autowired('frameworkOverrides')\n ], Beans.prototype, \"frameworkOverrides\", void 0);\n __decorate$1S([\n Autowired('cellPositionUtils')\n ], Beans.prototype, \"cellPositionUtils\", void 0);\n __decorate$1S([\n Autowired('rowPositionUtils')\n ], Beans.prototype, \"rowPositionUtils\", void 0);\n __decorate$1S([\n Autowired('selectionService')\n ], Beans.prototype, \"selectionService\", void 0);\n __decorate$1S([\n Optional('selectionHandleFactory')\n ], Beans.prototype, \"selectionHandleFactory\", void 0);\n __decorate$1S([\n Autowired('rowCssClassCalculator')\n ], Beans.prototype, \"rowCssClassCalculator\", void 0);\n __decorate$1S([\n Autowired('rowModel')\n ], Beans.prototype, \"rowModel\", void 0);\n __decorate$1S([\n Autowired('ctrlsService')\n ], Beans.prototype, \"ctrlsService\", void 0);\n __decorate$1S([\n Autowired('ctrlsFactory')\n ], Beans.prototype, \"ctrlsFactory\", void 0);\n __decorate$1S([\n Autowired('agStackComponentsRegistry')\n ], Beans.prototype, \"agStackComponentsRegistry\", void 0);\n __decorate$1S([\n Autowired('valueCache')\n ], Beans.prototype, \"valueCache\", void 0);\n __decorate$1S([\n Autowired('rowNodeEventThrottle')\n ], Beans.prototype, \"rowNodeEventThrottle\", void 0);\n __decorate$1S([\n Autowired('localeService')\n ], Beans.prototype, \"localeService\", void 0);\n __decorate$1S([\n Autowired('valueParserService')\n ], Beans.prototype, \"valueParserService\", void 0);\n __decorate$1S([\n PostConstruct\n ], Beans.prototype, \"postConstruct\", null);\n Beans = __decorate$1S([\n Bean('beans')\n ], Beans);\n return Beans;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$1_(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, gridOptionsService = _a.gridOptionsService;\n var isMultiKey = mouseEvent.ctrlKey || mouseEvent.metaKey;\n if (rangeService && isMultiKey) {\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 = (gridOptionsService.is('singleClickEdit') || colDef.singleClickEdit)\n && !gridOptionsService.is('suppressClickEdit');\n // edit on single click, but not if extending a range\n if (editOnSingleClick && !(mouseEvent.shiftKey && (rangeService === null || rangeService === void 0 ? void 0 : rangeService.getCellRanges().length) != 0)) {\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.gridOptionsService.is('singleClickEdit')\n && !this.beans.gridOptionsService.is('suppressClickEdit');\n if (editOnDoubleClick) {\n this.cellCtrl.startRowOrCellEdit(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, cellCtrl = _a.cellCtrl, beans = _a.beans;\n var eventService = beans.eventService, rangeService = beans.rangeService, focusService = beans.focusService;\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 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 = (isBrowserSafari()) && !cellCtrl.isEditing() && !isFocusableFormField(target);\n 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 && !focusService.isCellFocused(cellCtrl.getCellPosition())) {\n // this stops the cell from getting focused\n mouseEvent.preventDefault();\n var focusedCellPosition = focusService.getFocusedCell();\n if (focusedCellPosition) {\n var column = focusedCellPosition.column, rowIndex = focusedCellPosition.rowIndex, rowPinned = focusedCellPosition.rowPinned;\n var focusedRowCtrl = beans.rowRenderer.getRowByPosition({ rowIndex: rowIndex, rowPinned: rowPinned });\n var focusedCellCtrl = focusedRowCtrl === null || focusedRowCtrl === void 0 ? void 0 : focusedRowCtrl.getCellCtrl(column);\n // if the focused cell is editing, need to stop editing first\n if (focusedCellCtrl === null || focusedCellCtrl === void 0 ? void 0 : focusedCellCtrl.isEditing()) {\n focusedCellCtrl.stopEditing();\n }\n // focus could have been lost, so restore it to the starting cell in the range if needed\n focusService.setFocusedCell({\n column: column,\n rowIndex: rowIndex,\n rowPinned: rowPinned,\n forceBrowserFocus: true,\n preventScrollOnBrowserFocus: true,\n });\n }\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 isMultiKey = ctrlKey || metaKey;\n rangeService.setRangeToCell(thisCell, isMultiKey);\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 var isRightClick = mouseEvent.button === 2 || (mouseEvent.ctrlKey && this.beans.gridOptionsService.is('allowContextMenuWithControlKey'));\n if (cellInRange && isRightClick) {\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$1Z(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.onBackspaceOrDeleteKeyDown(key, event);\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n this.onNavigationKeyDown(event, key);\n break;\n }\n };\n CellKeyboardListenerFeature.prototype.onNavigationKeyDown = 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.onBackspaceOrDeleteKeyDown = function (key, event) {\n var _a = this, cellCtrl = _a.cellCtrl, beans = _a.beans, rowNode = _a.rowNode;\n var gridOptionsService = beans.gridOptionsService, 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, gridOptionsService.is('enableCellEditingOnBackspace'))) {\n if (rangeService && gridOptionsService.is('enableRangeSelection')) {\n rangeService.clearCellRangeCellValues({ dispatchWrapperEvents: true, wrapperEventSource: 'deleteKey' });\n }\n else if (cellCtrl.isCellEditable()) {\n rowNode.setDataValue(cellCtrl.getColumn(), null, 'cellClear');\n }\n }\n else {\n cellCtrl.startRowOrCellEdit(key, 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(false, e.shiftKey);\n }\n else {\n if (this.beans.gridOptionsService.is('enterNavigatesVertically')) {\n var key = e.shiftKey ? KeyCode.UP : KeyCode.DOWN;\n this.beans.navigationService.navigateToNextCell(null, key, this.cellCtrl.getCellPosition(), false);\n }\n else {\n this.cellCtrl.startRowOrCellEdit(KeyCode.ENTER, 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, 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.processCharacter = 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 key = event.key;\n if (key === ' ') {\n this.onSpaceKeyDown(event);\n }\n else {\n this.cellCtrl.startRowOrCellEdit(key, event);\n // if we don't prevent default, then the event 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.onSpaceKeyDown = function (event) {\n var gridOptionsService = this.beans.gridOptionsService;\n if (!this.cellCtrl.isEditing() && gridOptionsService.isRowSelection()) {\n var currentSelection = this.rowNode.isSelected();\n var newSelection = !currentSelection;\n if (newSelection || !gridOptionsService.is('suppressRowDeselection')) {\n var groupSelectsFiltered = this.beans.gridOptionsService.is('groupSelectsFiltered');\n var updatedCount = this.rowNode.setSelectedParams({\n newValue: newSelection,\n rangeSelect: event.shiftKey,\n groupSelectsFiltered: groupSelectsFiltered,\n event: event,\n source: 'spaceKey',\n });\n if (currentSelection === undefined && updatedCount === 0) {\n this.rowNode.setSelectedParams({\n newValue: false,\n rangeSelect: event.shiftKey,\n groupSelectsFiltered: groupSelectsFiltered,\n event: event,\n source: 'spaceKey',\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 DndSourceComp = /** @class */ (function (_super) {\n __extends$1Y(DndSourceComp, _super);\n function DndSourceComp(rowNode, column, eCell) {\n var _this = _super.call(this, /* html */ \"
    \") || this;\n _this.rowNode = rowNode;\n _this.column = column;\n _this.eCell = eCell;\n return _this;\n }\n DndSourceComp.prototype.postConstruct = function () {\n var eGui = this.getGui();\n eGui.appendChild(createIconNoSpan('rowDrag', this.gridOptionsService, 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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\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$1R([\n PostConstruct\n ], DndSourceComp.prototype, \"postConstruct\", null);\n return DndSourceComp;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 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_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$1X(CellCtrl, _super);\n function CellCtrl(column, rowNode, beans, rowCtrl) {\n var _this = _super.call(this) || this;\n _this.cellRangeFeature = null;\n _this.cellPositionFeature = null;\n _this.cellCustomStyleFeature = null;\n _this.tooltipFeature = null;\n _this.cellMouseListenerFeature = null;\n _this.cellKeyboardListenerFeature = null;\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 var colDef = _this.column.getColDef();\n _this.colIdSanitised = escapeString(_this.column.getId());\n if (!_this.beans.gridOptionsService.is('suppressCellFocus')) {\n _this.tabIndex = -1;\n }\n _this.isCellRenderer = colDef.cellRenderer != null || colDef.cellRendererSelector != null;\n _this.createCellPosition();\n _this.addFeatures();\n _this.updateAndFormatValue(true);\n return _this;\n }\n CellCtrl.prototype.shouldRestoreFocus = function () {\n return this.beans.focusService.shouldRestoreFocus(this.cellPosition);\n };\n CellCtrl.prototype.addFeatures = function () {\n var _this = this;\n this.cellPositionFeature = new CellPositionFeature(this, this.beans);\n this.addDestroyFunc(function () { var _a; (_a = _this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellPositionFeature = null; });\n this.cellCustomStyleFeature = new CellCustomStyleFeature(this, this.beans);\n this.addDestroyFunc(function () { var _a; (_a = _this.cellCustomStyleFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellCustomStyleFeature = null; });\n this.cellMouseListenerFeature = new CellMouseListenerFeature(this, this.beans, this.column);\n this.addDestroyFunc(function () { var _a; (_a = _this.cellMouseListenerFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellMouseListenerFeature = null; });\n this.cellKeyboardListenerFeature = new CellKeyboardListenerFeature(this, this.beans, this.column, this.rowNode, this.rowCtrl);\n this.addDestroyFunc(function () { var _a; (_a = _this.cellKeyboardListenerFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellKeyboardListenerFeature = null; });\n var rangeSelectionEnabled = this.beans.rangeService && this.beans.gridOptionsService.is('enableRangeSelection');\n if (rangeSelectionEnabled) {\n this.cellRangeFeature = new CellRangeFeature(this.beans, this);\n this.addDestroyFunc(function () { var _a; (_a = _this.cellRangeFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellRangeFeature = null; });\n }\n if (this.column.isTooltipEnabled()) {\n this.addTooltipFeature();\n }\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.gridOptionsService.api,\n columnApi: _this.beans.gridOptionsService.columnApi,\n context: _this.beans.gridOptionsService.context,\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 () { var _a; (_a = _this.tooltipFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.tooltipFeature = null; });\n };\n CellCtrl.prototype.setComp = function (comp, eGui, eCellWrapper, printLayout, startEditing) {\n var _a, _b, _c, _d;\n this.cellComp = comp;\n this.eGui = eGui;\n this.printLayout = printLayout;\n this.addDomData();\n this.onCellFocused(this.focusEventToRestore);\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 (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.setComp(eGui);\n (_b = this.cellCustomStyleFeature) === null || _b === void 0 ? void 0 : _b.setComp(comp);\n (_c = this.tooltipFeature) === null || _c === void 0 ? void 0 : _c.setComp(eGui);\n (_d = this.cellKeyboardListenerFeature) === null || _d === void 0 ? void 0 : _d.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.gridOptionsService.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, borderBottomWidth = _a.borderBottomWidth, borderTopWidth = _a.borderTopWidth;\n var extraHeight = paddingTop + paddingBottom + borderBottomWidth + borderTopWidth;\n var wrapperHeight = eCellWrapper.offsetHeight;\n var autoHeight = wrapperHeight + extraHeight;\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.gridOptionsService.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.getIncludeSelection = function () {\n return this.includeSelection;\n };\n CellCtrl.prototype.getIncludeRowDrag = function () {\n return this.includeRowDrag;\n };\n CellCtrl.prototype.getIncludeDndSource = function () {\n return this.includeDndSource;\n };\n CellCtrl.prototype.getColumnIdSanitised = function () {\n return this.colIdSanitised;\n };\n CellCtrl.prototype.getTabIndex = function () {\n return this.tabIndex;\n };\n CellCtrl.prototype.getIsCellRenderer = function () {\n return this.isCellRenderer;\n };\n CellCtrl.prototype.getValueToDisplay = function () {\n return this.valueFormatted != null ? this.valueFormatted : this.value;\n };\n CellCtrl.prototype.showValue = function (forceNewCellRendererInstance) {\n if (forceNewCellRendererInstance === void 0) { forceNewCellRendererInstance = false; }\n var valueToDisplay = this.getValueToDisplay();\n var compDetails;\n if (this.isCellRenderer) {\n var params = this.createCellRendererParams();\n compDetails = this.beans.userComponentFactory.getCellRendererDetails(this.column.getColDef(), params);\n }\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.gridOptionsService.is('enableCellTextSelection') || 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, cellStartedEdit, event) {\n var _this = this;\n if (key === void 0) { key = null; }\n if (cellStartedEdit === void 0) { cellStartedEdit = false; }\n if (event === void 0) { event = null; }\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, cellStartedEdit, event); });\n return;\n }\n var editorParams = this.createCellEditorParams(key, 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 = (compDetails === null || compDetails === void 0 ? void 0 : compDetails.popupFromSelector) != null ? compDetails.popupFromSelector : !!colDef.cellEditorPopup;\n var position = (compDetails === null || compDetails === void 0 ? void 0 : compDetails.popupPositionFromSelector) != null ? compDetails.popupPositionFromSelector : colDef.cellEditorPopupPosition;\n this.setEditing(true);\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) {\n if (this.editing === editing) {\n return;\n }\n this.editing = editing;\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.gridOptionsService.get('editType') === 'fullRow') {\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 // 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, 'edit');\n this.suppressRefreshCell = false;\n return valueChanged;\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.rowNode.getValueFromValueService(this.column);\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$a(__assign$a({}, this.createEvent(null, Events.EVENT_CELL_EDITING_STOPPED)), { oldValue: oldValue, newValue: newValue, valueChanged: valueChanged });\n this.beans.eventService.dispatchEvent(editingStoppedEvent);\n };\n CellCtrl.prototype.createCellEditorParams = function (key, cellStartedEdit) {\n return {\n value: this.rowNode.getValueFromValueService(this.column),\n eventKey: key,\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.gridOptionsService.api,\n cellStartedEdit: cellStartedEdit,\n columnApi: this.beans.gridOptionsService.columnApi,\n context: this.beans.gridOptionsService.context,\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 };\n CellCtrl.prototype.createCellRendererParams = function () {\n var _this = this;\n var res = {\n value: this.value,\n valueFormatted: this.valueFormatted,\n getValue: function () { return _this.rowNode.getValueFromValueService(_this.column); },\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.gridOptionsService.api,\n columnApi: this.beans.gridOptionsService.columnApi,\n context: this.beans.gridOptionsService.context,\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 };\n return res;\n };\n CellCtrl.prototype.parseValue = function (newValue) {\n return this.beans.valueParserService.parseValue(this.column, this.rowNode, newValue, this.getValue());\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 var _a, _b, _c;\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.gridOptionsService.is('enableCellChangeFlash') || colDef.enableCellChangeFlash);\n if (flashCell) {\n this.flashCell();\n }\n (_a = this.cellCustomStyleFeature) === null || _a === void 0 ? void 0 : _a.applyUserStyles();\n (_b = this.cellCustomStyleFeature) === null || _b === void 0 ? void 0 : _b.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 (_c = this.cellCustomStyleFeature) === null || _c === void 0 ? void 0 : _c.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, shiftKey) {\n if (suppressNavigateAfterEdit === void 0) { suppressNavigateAfterEdit = false; }\n if (shiftKey === void 0) { shiftKey = false; }\n this.stopRowOrCellEdit();\n this.focusCell(true);\n if (!suppressNavigateAfterEdit) {\n this.navigateAfterEdit(shiftKey);\n }\n };\n CellCtrl.prototype.navigateAfterEdit = function (shiftKey) {\n var enterNavigatesVerticallyAfterEdit = this.beans.gridOptionsService.is('enterNavigatesVerticallyAfterEdit');\n if (enterNavigatesVerticallyAfterEdit) {\n var key = shiftKey ? KeyCode.UP : KeyCode.DOWN;\n this.beans.navigationService.navigateToNextCell(null, key, 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 _a, _b;\n if (!this.cellComp) {\n return;\n }\n var fullName = \"ag-cell-\" + cssName;\n var animationFullName = \"ag-cell-\" + cssName + \"-animation\";\n var gridOptionsService = this.beans.gridOptionsService;\n if (!flashDelay) {\n flashDelay = (_a = gridOptionsService.getNum('cellFlashDelay')) !== null && _a !== void 0 ? _a : 500;\n }\n if (!exists(fadeDelay)) {\n fadeDelay = (_b = gridOptionsService.getNum('cellFadeDelay')) !== null && _b !== void 0 ? _b : 1000;\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 _a;\n return (_a = this.callValueFormatter(value)) !== null && _a !== void 0 ? _a : 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.rowNode.getValueFromValueService(this.column);\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.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.gridOptionsService.setDomData(element, CellCtrl.DOM_DATA_KEY_CELL_CTRL, this);\n this.addDestroyFunc(function () { return _this.beans.gridOptionsService.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.gridOptionsService.context,\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.processCharacter = function (event) {\n var _a;\n (_a = this.cellKeyboardListenerFeature) === null || _a === void 0 ? void 0 : _a.processCharacter(event);\n };\n CellCtrl.prototype.onKeyDown = function (event) {\n var _a;\n (_a = this.cellKeyboardListenerFeature) === null || _a === void 0 ? void 0 : _a.onKeyDown(event);\n };\n CellCtrl.prototype.onMouseEvent = function (eventName, mouseEvent) {\n var _a;\n (_a = this.cellMouseListenerFeature) === null || _a === void 0 ? void 0 : _a.onMouseEvent(eventName, mouseEvent);\n };\n CellCtrl.prototype.getGui = function () {\n return this.eGui;\n };\n CellCtrl.prototype.refreshToolTip = function () {\n var _a;\n (_a = this.tooltipFeature) === null || _a === void 0 ? void 0 : _a.refreshToolTip();\n };\n CellCtrl.prototype.getColSpanningList = function () {\n return this.cellPositionFeature.getColSpanningList();\n };\n CellCtrl.prototype.onLeftChanged = function () {\n var _a;\n if (!this.cellComp) {\n return;\n }\n (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.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 var _a;\n return (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.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, event) {\n if (event === void 0) { event = null; }\n if (!this.cellComp) {\n return;\n }\n if (this.beans.gridOptionsService.get('editType') === 'fullRow') {\n this.rowCtrl.startRowEditing(key, this);\n }\n else {\n this.startEditing(key, 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.beans.gridOptionsService.is('suppressCellFocus')) {\n return;\n }\n var cellFocused = this.beans.focusService.isCellFocused(this.cellPosition);\n if (!this.cellComp) {\n if (cellFocused && (event === null || event === void 0 ? void 0 : event.forceBrowserFocus)) {\n // The cell comp has not been rendered yet, but the browser focus is being forced for this cell\n // so lets save the event to apply it when setComp is called in the next turn.\n this.focusEventToRestore = event;\n }\n return;\n }\n // Clear the saved focus event\n this.focusEventToRestore = undefined;\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.gridOptionsService.get('editType') === 'fullRow';\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.gridOptionsService.is('columnHoverHighlight')) {\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.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 () { _this.beans.context.destroyBean(newComp); _this.customRowDragComp = null; });\n }\n };\n CellCtrl.prototype.createRowDragComp = function (customElement, dragStartPixels, suppressVisibilityChange) {\n var _this = this;\n var pagination = this.beans.gridOptionsService.is('pagination');\n var rowDragManaged = this.beans.gridOptionsService.is('rowDragManaged');\n var clientSideRowModelActive = this.beans.gridOptionsService.isRowModelType('clientSide');\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 __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 __spreadArray$h = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\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$1W(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.slideInAnimation = {\n left: false,\n center: false,\n right: false,\n fullWidth: false\n };\n _this.fadeInAnimation = {\n left: false,\n center: false,\n right: false,\n fullWidth: false\n };\n _this.lastMouseDownOnDragger = false;\n _this.emptyStyle = {};\n _this.updateColumnListsPending = false;\n _this.rowId = null;\n _this.businessKeySanitised = null;\n _this.beans = beans;\n _this.gridOptionsService = beans.gridOptionsService;\n _this.rowNode = rowNode;\n _this.paginationPage = beans.paginationProxy.getCurrentPage();\n _this.useAnimationFrameForCreate = useAnimationFrameForCreate;\n _this.printLayout = printLayout;\n _this.instanceId = rowNode.id + '-' + instanceIdSequence$2++;\n _this.rowId = escapeString(rowNode.id);\n _this.initRowBusinessKey();\n _this.rowFocused = beans.focusService.isRowFocused(_this.rowNode.rowIndex, _this.rowNode.rowPinned);\n _this.rowLevel = beans.rowCssClassCalculator.calculateRowLevel(_this.rowNode);\n _this.setRowType();\n _this.setAnimateFlags(animateIn);\n _this.rowStyles = _this.processStylesFromGridOptions();\n // calls to `isFullWidth()` only work after `setRowType` has been called.\n if (_this.isFullWidth() && !_this.gridOptionsService.is('suppressCellFocus')) {\n _this.tabIndex = -1;\n }\n _this.addListeners();\n return _this;\n }\n RowCtrl.prototype.initRowBusinessKey = function () {\n this.businessKeyForNodeFunc = this.gridOptionsService.get('getBusinessKeyForNode');\n this.updateRowBusinessKey();\n };\n RowCtrl.prototype.updateRowBusinessKey = function () {\n if (typeof this.businessKeyForNodeFunc !== 'function') {\n return;\n }\n var businessKey = this.businessKeyForNodeFunc(this.rowNode);\n this.businessKeySanitised = escapeString(businessKey);\n };\n RowCtrl.prototype.getRowId = function () {\n return this.rowId;\n };\n RowCtrl.prototype.getRowStyles = function () {\n return this.rowStyles;\n };\n RowCtrl.prototype.getTabIndex = function () {\n return this.tabIndex;\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 this.initialiseRowComp(gui);\n // pinned rows render before the main grid body in the SSRM, only fire the event after the main body has rendered.\n if (this.rowType !== 'FullWidthLoading' && !this.rowNode.rowPinned) {\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.unsetComp = function (containerType) {\n this.allRowGuis = this.allRowGuis\n .filter(function (rowGui) { return rowGui.containerType !== containerType; });\n switch (containerType) {\n case RowContainerType.LEFT:\n this.leftGui = undefined;\n break;\n case RowContainerType.RIGHT:\n this.rightGui = undefined;\n break;\n case RowContainerType.FULL_WIDTH:\n this.fullWidthGui = undefined;\n break;\n case RowContainerType.CENTER:\n this.centerGui = undefined;\n break;\n }\n };\n RowCtrl.prototype.isCacheable = function () {\n return this.rowType === RowType$1.FullWidthDetail\n && this.gridOptionsService.is('keepDetailRows');\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.initialiseRowComp = function (gui) {\n var _this = this;\n var gos = this.gridOptionsService;\n this.listenOnDomOrder(gui);\n this.onRowHeightChanged(gui);\n this.updateRowIndexes(gui);\n this.setFocusedClasses(gui);\n this.setStylesFromGridOptions(false, gui); // no need to calculate styles already set in constructor\n if (gos.isRowSelection() && this.rowNode.selectable) {\n this.onRowSelected(gui);\n }\n this.updateColumnLists(!this.useAnimationFrameForCreate);\n var comp = gui.rowComp;\n var initialRowClasses = this.getInitialRowClasses(gui.containerType);\n initialRowClasses.forEach(function (name) { return comp.addOrRemoveCssClass(name, true); });\n this.executeSlideAndFadeAnimations(gui);\n if (this.rowNode.group) {\n setAriaExpanded(gui.element, this.rowNode.expanded == true);\n }\n this.setRowCompRowId(comp);\n this.setRowCompRowBusinessKey(comp);\n // DOM DATA\n gos.setDomData(gui.element, RowCtrl.DOM_DATA_KEY_ROW_CTRL, this);\n this.addDestroyFunc(function () { return gos.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 (gos.is('rowDragEntireRow')) {\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 created. 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 this.executeProcessRowPostCreateFunc();\n };\n RowCtrl.prototype.setRowCompRowBusinessKey = function (comp) {\n if (this.businessKeySanitised == null) {\n return;\n }\n comp.setRowBusinessKey(this.businessKeySanitised);\n };\n RowCtrl.prototype.getBusinessKey = function () {\n return this.businessKeySanitised;\n };\n RowCtrl.prototype.setRowCompRowId = function (comp) {\n this.rowId = escapeString(this.rowNode.id);\n if (this.rowId == null) {\n return;\n }\n comp.setRowId(this.rowId);\n };\n RowCtrl.prototype.executeSlideAndFadeAnimations = function (gui) {\n var _this = this;\n var containerType = gui.containerType;\n var shouldSlide = this.slideInAnimation[containerType];\n if (shouldSlide) {\n executeNextVMTurn(function () {\n _this.onTopChanged();\n });\n this.slideInAnimation[containerType] = false;\n }\n var shouldFade = this.fadeInAnimation[containerType];\n if (shouldFade) {\n executeNextVMTurn(function () {\n gui.rowComp.addOrRemoveCssClass('ag-opacity-zero', false);\n });\n this.fadeInAnimation[containerType] = false;\n }\n };\n RowCtrl.prototype.addRowDraggerToRow = function (gui) {\n if (this.gridOptionsService.is('enableRangeSelection')) {\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 = this.beans.localeService.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 if (this.rowType == RowType$1.FullWidthDetail) {\n if (!ModuleRegistry.__assertRegistered(ModuleNames.MasterDetailModule, \"cell renderer 'agDetailCellRenderer' (for master detail)\", this.beans.context.getGridId())) {\n return;\n }\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 RowCtrl.prototype.getFullWidthCellRenderer = function () {\n var _a, _b;\n return (_b = (_a = this.fullWidthGui) === null || _a === void 0 ? void 0 : _a.rowComp) === null || _b === void 0 ? void 0 : _b.getFullWidthCellRenderer();\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.gridOptionsService.getCallback('processRowPostCreate');\n if (!func || !this.areAllContainersReady()) {\n return;\n }\n var params = {\n // areAllContainersReady asserts that centerGui is not null\n eRow: this.centerGui.element,\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.areAllContainersReady = function () {\n var isLeftReady = !!this.leftGui || !this.beans.columnModel.isPinningLeft();\n var isCenterReady = !!this.centerGui;\n var isRightReady = !!this.rightGui || !this.beans.columnModel.isPinningRight();\n return isLeftReady && isCenterReady && isRightReady;\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.gridOptionsService.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, useFlushSync) {\n var _this = this;\n if (suppressAnimationFrame === void 0) { suppressAnimationFrame = false; }\n if (useFlushSync === void 0) { useFlushSync = false; }\n if (this.isFullWidth()) {\n return;\n }\n var noAnimation = suppressAnimationFrame\n || this.gridOptionsService.is('suppressAnimationFrame')\n || this.printLayout;\n if (noAnimation) {\n this.updateColumnListsImpl(useFlushSync);\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(true);\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 (useFlushSync) {\n this.updateColumnListsPending = false;\n this.createAllCellCtrls();\n this.setCellCtrls(useFlushSync);\n };\n RowCtrl.prototype.setCellCtrls = function (useFlushSync) {\n var _this = this;\n this.allRowGuis.forEach(function (item) {\n var cellControls = _this.getCellCtrlsForContainer(item.containerType);\n item.rowComp.setCellCtrls(cellControls, useFlushSync);\n });\n };\n RowCtrl.prototype.getCellCtrlsForContainer = function (containerType) {\n switch (containerType) {\n case RowContainerType.LEFT:\n return this.leftCellCtrls.list;\n case RowContainerType.RIGHT:\n return this.rightCellCtrls.list;\n case RowContainerType.FULL_WIDTH:\n return [];\n case RowContainerType.CENTER:\n return this.centerCellCtrls.list;\n default:\n var exhaustiveCheck = containerType;\n throw new Error(\"Unhandled case: \" + exhaustiveCheck);\n }\n };\n RowCtrl.prototype.createAllCellCtrls = function () {\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, 'left');\n var rightCols = columnModel.getDisplayedRightColumnsForRow(this.rowNode);\n this.rightCellCtrls = this.createCellCtrls(this.rightCellCtrls, rightCols, 'right');\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.getDomOrder = function () {\n var isEnsureDomOrder = this.gridOptionsService.is('ensureDomOrder');\n return isEnsureDomOrder || this.gridOptionsService.isDomLayout('print');\n };\n RowCtrl.prototype.listenOnDomOrder = function (gui) {\n var _this = this;\n var listener = function () {\n gui.rowComp.setDomOrder(_this.getDomOrder());\n };\n this.addManagedPropertyListener('domLayout', listener);\n this.addManagedPropertyListener('ensureDomOrder', listener);\n };\n RowCtrl.prototype.setAnimateFlags = function (animateIn) {\n if (this.isSticky() || !animateIn) {\n return;\n }\n var oldRowTopExists = exists(this.rowNode.oldRowTop);\n var pinningLeft = this.beans.columnModel.isPinningLeft();\n var pinningRight = this.beans.columnModel.isPinningRight();\n if (oldRowTopExists) {\n if (this.isFullWidth() && !this.gridOptionsService.is('embedFullWidthRows')) {\n this.slideInAnimation.fullWidth = true;\n return;\n }\n // if the row had a previous position, we slide it in\n this.slideInAnimation.center = true;\n this.slideInAnimation.left = pinningLeft;\n this.slideInAnimation.right = pinningRight;\n }\n else {\n if (this.isFullWidth() && !this.gridOptionsService.is('embedFullWidthRows')) {\n this.fadeInAnimation.fullWidth = true;\n return;\n }\n // if the row had no previous position, we fade it in\n this.fadeInAnimation.center = true;\n this.fadeInAnimation.left = pinningLeft;\n this.fadeInAnimation.right = pinningRight;\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, 'left');\n var rightSuccess = tryRefresh(this.rightGui, 'right');\n var allFullWidthRowsRefreshed = fullWidthSuccess && centerSuccess && leftSuccess && rightSuccess;\n return allFullWidthRowsRefreshed;\n };\n RowCtrl.prototype.addListeners = function () {\n var _this = this;\n this.addManagedListener(this.rowNode, RowNode.EVENT_HEIGHT_CHANGED, function () { return _this.onRowHeightChanged(); });\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_SELECTED, function () { return _this.onRowSelected(); });\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 if (this.rowNode.detail) {\n // if the master row node has updated data, we also want to try to refresh the detail row\n this.addManagedListener(this.rowNode.parent, RowNode.EVENT_DATA_CHANGED, this.onRowNodeDataChanged.bind(this));\n }\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.onCellFocused.bind(this));\n this.addManagedListener(eventService, Events.EVENT_CELL_FOCUS_CLEARED, this.onCellFocusCleared.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 var _this = this;\n // if the row is rendered incorrectly, as the requirements for whether this is a FW row have changed, we force re-render this row.\n var fullWidthChanged = this.isFullWidth() !== !!this.rowNode.isFullWidthCell();\n if (fullWidthChanged) {\n this.beans.rowRenderer.redrawRow(this.rowNode);\n return;\n }\n // this bit of logic handles trying to refresh the FW row ctrl, or delegating to removing/recreating it if unsupported.\n if (this.isFullWidth()) {\n var refresh = this.refreshFullWidth();\n if (!refresh) {\n this.beans.rowRenderer.redrawRow(this.rowNode);\n }\n return;\n }\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 // as data has changed update the dom row id attributes\n this.allRowGuis.forEach(function (gui) {\n _this.setRowCompRowId(gui.rowComp);\n _this.updateRowBusinessKey();\n _this.setRowCompRowBusinessKey(gui.rowComp);\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(true);\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(false, true);\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 = !event ? false : 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.gridOptionsService.context,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\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 isMultiKey = mouseEvent.ctrlKey || mouseEvent.metaKey;\n var isShiftKey = 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 subsequently un-selected.\n var groupSelectsChildren = this.gridOptionsService.is('groupSelectsChildren');\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.gridOptionsService.isRowSelection() ||\n // if click selection suppressed, do nothing\n this.gridOptionsService.is('suppressRowClickSelection')) {\n return;\n }\n var multiSelectOnClick = this.gridOptionsService.is('rowMultiSelectWithClick');\n var rowDeselectionWithCtrl = !this.gridOptionsService.is('suppressRowDeselection');\n var source = 'rowClicked';\n if (this.rowNode.isSelected()) {\n if (multiSelectOnClick) {\n this.rowNode.setSelectedParams({ newValue: false, event: mouseEvent, source: source });\n }\n else if (isMultiKey) {\n if (rowDeselectionWithCtrl) {\n this.rowNode.setSelectedParams({ newValue: false, event: mouseEvent, source: source });\n }\n }\n else {\n // selected with no multi key, must make sure anything else is unselected\n this.rowNode.setSelectedParams({ newValue: true, clearSelection: !isShiftKey, rangeSelect: isShiftKey, event: mouseEvent, source: source });\n }\n }\n else {\n var clearSelection = multiSelectOnClick ? false : !isMultiKey;\n this.rowNode.setSelectedParams({ newValue: true, clearSelection: clearSelection, rangeSelect: isShiftKey, event: mouseEvent, source: source });\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.gridOptionsService.is('detailRowAutoHeight')) {\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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\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$3(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, sourceRenderedCell, event) {\n if (key === void 0) { key = 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, cellStartedEdit, event);\n }\n else {\n cellCtrl.startEditing(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 if (this.leftCellCtrls.list.length === 0 && this.rightCellCtrls.list.length === 0) {\n return this.centerCellCtrls.list;\n }\n var res = __spreadArray$h(__spreadArray$h(__spreadArray$h([], __read$l(this.centerCellCtrls.list)), __read$l(this.leftCellCtrls.list)), __read$l(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 (updateStyles, gui) {\n var _this = this;\n if (updateStyles) {\n this.rowStyles = this.processStylesFromGridOptions();\n }\n this.forEachGui(gui, function (gui) { return gui.rowComp.setUserStyles(_this.rowStyles); });\n };\n RowCtrl.prototype.getPinnedForContainer = function (rowContainerType) {\n var pinned = rowContainerType === RowContainerType.LEFT\n ? 'left'\n : rowContainerType === RowContainerType.RIGHT\n ? '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.fadeInAnimation[rowContainerType],\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.gridOptionsService.get('rowStyle');\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.gridOptionsService.getCallback('getRowStyle');\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 if (rowStyleFuncResult || rowStyle) {\n return Object.assign({}, rowStyle, rowStyleFuncResult);\n }\n // Return constant reference for React\n return this.emptyStyle;\n };\n RowCtrl.prototype.onRowSelected = function (gui) {\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.forEachGui(gui, 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.gridOptionsService.is('suppressRowDeselection')) {\n return undefined;\n }\n var translate = this.beans.localeService.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. Also, do not highlight while dragging elements around.\n if (!_this.beans.dragService.isDragging() &&\n !_this.gridOptionsService.is('suppressRowHoverHighlight')) {\n eRow.classList.add('ag-row-hover');\n _this.rowNode.setHovered(true);\n }\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_MOUSE_LEAVE, function () {\n eRow.classList.remove('ag-row-hover');\n _this.rowNode.setHovered(false);\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.forEachGui = function (gui, callback) {\n if (gui) {\n callback(gui);\n }\n else {\n this.allRowGuis.forEach(callback);\n }\n };\n RowCtrl.prototype.onRowHeightChanged = function (gui) {\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.environment.getDefaultRowHeight();\n var isHeightFromFunc = this.gridOptionsService.isGetRowHeightFunction();\n var heightFromFunc = isHeightFromFunc ? this.gridOptionsService.getRowHeightForNode(this.rowNode).height : undefined;\n var lineHeight = heightFromFunc ? Math.min(defaultRowHeight, heightFromFunc) - 2 + \"px\" : undefined;\n this.forEachGui(gui, 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.gridOptionsService.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 _super.prototype.addEventListener.call(this, eventType, listener);\n };\n RowCtrl.prototype.removeEventListener = function (eventType, listener) {\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 if (this.gridOptionsService.isAnimateRows()) {\n this.setupRemoveAnimation();\n }\n this.rowNode.setHovered(false);\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 (gui) {\n var _this = this;\n this.forEachGui(gui, 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.onCellFocused = function () {\n this.onCellFocusChanged();\n };\n RowCtrl.prototype.onCellFocusCleared = function () {\n this.onCellFocusChanged();\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() || this.rowNode.sticky) {\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 skipScaling = this.rowNode.isRowPinned() || this.rowNode.sticky;\n var afterScalingPixels = skipScaling ? 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 (rowContainerType) {\n var suppressRowTransform = this.gridOptionsService.is('suppressRowTransform');\n return suppressRowTransform ? this.getInitialRowTopShared(rowContainerType) : undefined;\n };\n RowCtrl.prototype.getInitialTransform = function (rowContainerType) {\n var suppressRowTransform = this.gridOptionsService.is('suppressRowTransform');\n return suppressRowTransform ? undefined : \"translateY(\" + this.getInitialRowTopShared(rowContainerType) + \")\";\n };\n RowCtrl.prototype.getInitialRowTopShared = function (rowContainerType) {\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.slideInAnimation[rowContainerType] ? 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.gridOptionsService.is('suppressRowTransform');\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.getRowIndex = function () {\n return this.rowNode.getRowIndexString();\n };\n RowCtrl.prototype.updateRowIndexes = function (gui) {\n var rowIndexStr = this.rowNode.getRowIndexString();\n var headerRowCount = this.beans.headerNavigationService.getHeaderRowCount() + this.beans.filterManager.getHeaderRowCount();\n var rowIsEven = this.rowNode.rowIndex % 2 === 0;\n var ariaRowIndex = headerRowCount + this.rowNode.rowIndex + 1;\n this.forEachGui(gui, 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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __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 RowContainerEventsFeature = /** @class */ (function (_super) {\n __extends$1V(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.addKeyboardListeners();\n this.addMouseListeners();\n this.mockContextMenuForIPad();\n };\n RowContainerEventsFeature.prototype.addKeyboardListeners = function () {\n var eventName = 'keydown';\n var listener = this.processKeyboardEvent.bind(this, eventName);\n this.addManagedListener(this.element, eventName, listener);\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.gridOptionsService.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.getControlsForEventTarget = function (target) {\n return {\n cellCtrl: getCtrlForEventTarget(this.gridOptionsService, target, CellCtrl.DOM_DATA_KEY_CELL_CTRL),\n rowCtrl: getCtrlForEventTarget(this.gridOptionsService, target, RowCtrl.DOM_DATA_KEY_ROW_CTRL)\n };\n };\n RowContainerEventsFeature.prototype.processKeyboardEvent = function (eventName, keyboardEvent) {\n var _a = this.getControlsForEventTarget(keyboardEvent.target), cellCtrl = _a.cellCtrl, rowCtrl = _a.rowCtrl;\n if (keyboardEvent.defaultPrevented) {\n return;\n }\n if (cellCtrl) {\n this.processCellKeyboardEvent(cellCtrl, eventName, keyboardEvent);\n }\n else if (rowCtrl && rowCtrl.isFullWidth()) {\n this.processFullWidthRowKeyboardEvent(rowCtrl, 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.gridOptionsService, keyboardEvent, rowNode, column, editing);\n if (gridProcessingAllowed) {\n if (eventName === '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 if (isEventFromPrintableCharacter(keyboardEvent)) {\n cellCtrl.processCharacter(keyboardEvent);\n }\n }\n }\n if (eventName === 'keydown') {\n var cellKeyDownEvent = cellCtrl.createEvent(keyboardEvent, Events.EVENT_CELL_KEY_DOWN);\n this.eventService.dispatchEvent(cellKeyDownEvent);\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.gridOptionsService, keyboardEvent, rowNode, column, false);\n if (gridProcessingAllowed) {\n var key = keyboardEvent.key;\n if (eventName === 'keydown') {\n switch (key) {\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n this.navigationService.handlePageScrollingKey(keyboardEvent, true);\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n rowComp.onKeyboardNavigate(keyboardEvent);\n break;\n case KeyCode.TAB:\n rowComp.onTabKeyDown(keyboardEvent);\n break;\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 };\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.D) {\n return this.onCtrlAndD(keyboardEvent);\n }\n if (keyCode === KeyCode.V) {\n return this.onCtrlAndV(keyboardEvent);\n }\n if (keyCode === KeyCode.X) {\n return this.onCtrlAndX(keyboardEvent);\n }\n if (keyCode === KeyCode.Y) {\n return this.onCtrlAndY();\n }\n if (keyCode === KeyCode.Z) {\n return this.onCtrlAndZ(keyboardEvent);\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndA = function (event) {\n var _a = this, pinnedRowModel = _a.pinnedRowModel, paginationProxy = _a.paginationProxy, rangeService = _a.rangeService;\n if (rangeService && paginationProxy.isRowsToRender()) {\n var _b = __read$k([\n pinnedRowModel.isEmpty('top'),\n pinnedRowModel.isEmpty('bottom')\n ], 2), isEmptyPinnedTop = _b[0], isEmptyPinnedBottom = _b[1];\n var floatingStart = isEmptyPinnedTop ? null : '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 = '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.gridOptionsService.is('enableCellTextSelection')) {\n return;\n }\n var _a = this.getControlsForEventTarget(event.target), cellCtrl = _a.cellCtrl, rowCtrl = _a.rowCtrl;\n if ((cellCtrl === null || cellCtrl === void 0 ? void 0 : cellCtrl.isEditing()) || (rowCtrl === null || rowCtrl === void 0 ? void 0 : rowCtrl.isEditing())) {\n return;\n }\n event.preventDefault();\n this.clipboardService.copyToClipboard();\n };\n RowContainerEventsFeature.prototype.onCtrlAndX = function (event) {\n if (!this.clipboardService ||\n this.gridOptionsService.is('enableCellTextSelection') ||\n this.gridOptionsService.is('suppressCutToClipboard')) {\n return;\n }\n var _a = this.getControlsForEventTarget(event.target), cellCtrl = _a.cellCtrl, rowCtrl = _a.rowCtrl;\n if ((cellCtrl === null || cellCtrl === void 0 ? void 0 : cellCtrl.isEditing()) || (rowCtrl === null || rowCtrl === void 0 ? void 0 : rowCtrl.isEditing())) {\n return;\n }\n event.preventDefault();\n this.clipboardService.cutToClipboard(undefined, 'ui');\n };\n RowContainerEventsFeature.prototype.onCtrlAndV = function (event) {\n var _a = this.getControlsForEventTarget(event.target), cellCtrl = _a.cellCtrl, rowCtrl = _a.rowCtrl;\n if ((cellCtrl === null || cellCtrl === void 0 ? void 0 : cellCtrl.isEditing()) || (rowCtrl === null || rowCtrl === void 0 ? void 0 : rowCtrl.isEditing())) {\n return;\n }\n if (this.clipboardService && !this.gridOptionsService.is('suppressClipboardPaste')) {\n this.clipboardService.pasteFromClipboard();\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndD = function (event) {\n if (this.clipboardService && !this.gridOptionsService.is('suppressClipboardPaste')) {\n this.clipboardService.copyRangeDown();\n }\n event.preventDefault();\n };\n RowContainerEventsFeature.prototype.onCtrlAndZ = function (event) {\n if (!this.gridOptionsService.is('undoRedoCellEditing')) {\n return;\n }\n event.preventDefault();\n if (event.shiftKey) {\n this.undoRedoService.redo('ui');\n }\n else {\n this.undoRedoService.undo('ui');\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndY = function () {\n this.undoRedoService.redo('ui');\n };\n __decorate$1Q([\n Autowired('mouseEventService')\n ], RowContainerEventsFeature.prototype, \"mouseEventService\", void 0);\n __decorate$1Q([\n Autowired('valueService')\n ], RowContainerEventsFeature.prototype, \"valueService\", void 0);\n __decorate$1Q([\n Optional('contextMenuFactory')\n ], RowContainerEventsFeature.prototype, \"contextMenuFactory\", void 0);\n __decorate$1Q([\n Autowired('ctrlsService')\n ], RowContainerEventsFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1Q([\n Autowired('navigationService')\n ], RowContainerEventsFeature.prototype, \"navigationService\", void 0);\n __decorate$1Q([\n Autowired('focusService')\n ], RowContainerEventsFeature.prototype, \"focusService\", void 0);\n __decorate$1Q([\n Autowired('undoRedoService')\n ], RowContainerEventsFeature.prototype, \"undoRedoService\", void 0);\n __decorate$1Q([\n Autowired('columnModel')\n ], RowContainerEventsFeature.prototype, \"columnModel\", void 0);\n __decorate$1Q([\n Autowired('paginationProxy')\n ], RowContainerEventsFeature.prototype, \"paginationProxy\", void 0);\n __decorate$1Q([\n Autowired('pinnedRowModel')\n ], RowContainerEventsFeature.prototype, \"pinnedRowModel\", void 0);\n __decorate$1Q([\n Optional('rangeService')\n ], RowContainerEventsFeature.prototype, \"rangeService\", void 0);\n __decorate$1Q([\n Optional('clipboardService')\n ], RowContainerEventsFeature.prototype, \"clipboardService\", void 0);\n __decorate$1Q([\n PostConstruct\n ], RowContainerEventsFeature.prototype, \"postConstruct\", null);\n return RowContainerEventsFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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};\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$1U(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 };\n ViewportSizeFeature.prototype.isHorizontalScrollShowing = function () {\n return this.centerContainerCtrl.isHorizontalScrollShowing();\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\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$1P([\n Autowired('ctrlsService')\n ], ViewportSizeFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1P([\n Autowired('columnModel')\n ], ViewportSizeFeature.prototype, \"columnModel\", void 0);\n __decorate$1P([\n Autowired('scrollVisibleService')\n ], ViewportSizeFeature.prototype, \"scrollVisibleService\", void 0);\n __decorate$1P([\n PostConstruct\n ], ViewportSizeFeature.prototype, \"postConstruct\", null);\n return ViewportSizeFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 SetPinnedLeftWidthFeature = /** @class */ (function (_super) {\n __extends$1T(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 setFixedWidth(this.element, leftWidth);\n };\n SetPinnedLeftWidthFeature.prototype.getWidth = function () {\n return this.pinnedWidthService.getPinnedLeftWidth();\n };\n __decorate$1O([\n Autowired('pinnedWidthService')\n ], SetPinnedLeftWidthFeature.prototype, \"pinnedWidthService\", void 0);\n __decorate$1O([\n PostConstruct\n ], SetPinnedLeftWidthFeature.prototype, \"postConstruct\", null);\n return SetPinnedLeftWidthFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 SetPinnedRightWidthFeature = /** @class */ (function (_super) {\n __extends$1S(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 setFixedWidth(this.element, rightWidth);\n };\n SetPinnedRightWidthFeature.prototype.getWidth = function () {\n return this.pinnedWidthService.getPinnedRightWidth();\n };\n __decorate$1N([\n Autowired('pinnedWidthService')\n ], SetPinnedRightWidthFeature.prototype, \"pinnedWidthService\", void 0);\n __decorate$1N([\n PostConstruct\n ], SetPinnedRightWidthFeature.prototype, \"postConstruct\", null);\n return SetPinnedRightWidthFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 SetHeightFeature = /** @class */ (function (_super) {\n __extends$1R(SetHeightFeature, _super);\n function SetHeightFeature(eContainer, eViewport) {\n var _this = _super.call(this) || this;\n _this.eContainer = eContainer;\n _this.eViewport = eViewport;\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.eViewport) {\n this.eViewport.style.height = heightString;\n }\n };\n __decorate$1M([\n Autowired(\"rowContainerHeightService\")\n ], SetHeightFeature.prototype, \"maxDivHeightScaler\", void 0);\n __decorate$1M([\n PostConstruct\n ], SetHeightFeature.prototype, \"postConstruct\", null);\n return SetHeightFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 DragListenerFeature = /** @class */ (function (_super) {\n __extends$1Q(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.gridOptionsService.is('enableRangeSelection') || // 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$1L([\n Optional('rangeService')\n ], DragListenerFeature.prototype, \"rangeService\", void 0);\n __decorate$1L([\n Autowired('dragService')\n ], DragListenerFeature.prototype, \"dragService\", void 0);\n __decorate$1L([\n PostConstruct\n ], DragListenerFeature.prototype, \"postConstruct\", null);\n return DragListenerFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 CenterWidthFeature = /** @class */ (function (_super) {\n __extends$1P(CenterWidthFeature, _super);\n function CenterWidthFeature(callback, addSpacer) {\n if (addSpacer === void 0) { addSpacer = false; }\n var _this = _super.call(this) || this;\n _this.callback = callback;\n _this.addSpacer = addSpacer;\n return _this;\n }\n CenterWidthFeature.prototype.postConstruct = function () {\n var listener = this.setWidth.bind(this);\n this.addManagedPropertyListener('domLayout', 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.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, listener);\n if (this.addSpacer) {\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 this.setWidth();\n };\n CenterWidthFeature.prototype.setWidth = function () {\n var columnModel = this.columnModel;\n var printLayout = this.gridOptionsService.isDomLayout('print');\n var centerWidth = columnModel.getBodyContainerWidth();\n var leftWidth = columnModel.getDisplayedColumnsLeftWidth();\n var rightWidth = columnModel.getDisplayedColumnsRightWidth();\n var totalWidth;\n if (printLayout) {\n totalWidth = centerWidth + leftWidth + rightWidth;\n }\n else {\n totalWidth = centerWidth;\n if (this.addSpacer) {\n var relevantWidth = this.gridOptionsService.is('enableRtl') ? leftWidth : rightWidth;\n if (relevantWidth === 0 && this.scrollVisibleService.isVerticalScrollShowing()) {\n totalWidth += this.gridOptionsService.getScrollbarWidth();\n }\n }\n }\n this.callback(totalWidth);\n };\n __decorate$1K([\n Autowired('columnModel')\n ], CenterWidthFeature.prototype, \"columnModel\", void 0);\n __decorate$1K([\n Autowired('scrollVisibleService')\n ], CenterWidthFeature.prototype, \"scrollVisibleService\", void 0);\n __decorate$1K([\n PostConstruct\n ], CenterWidthFeature.prototype, \"postConstruct\", null);\n return CenterWidthFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __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 __spreadArray$g = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\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 RowContainerCtrl = /** @class */ (function (_super) {\n __extends$1O(RowContainerCtrl, _super);\n function RowContainerCtrl(name) {\n var _this = _super.call(this) || this;\n _this.visible = true;\n // Maintaining a constant reference enables optimization in React.\n _this.EMPTY_CTRLS = [];\n _this.name = name;\n _this.isFullWithContainer =\n _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 return _this;\n }\n RowContainerCtrl.getRowContainerCssClasses = function (name) {\n var containerClass = ContainerCssClasses.get(name);\n var viewportClass = ViewportCssClasses.get(name);\n return { container: containerClass, viewport: viewportClass };\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 'left';\n case RowContainerName.BOTTOM_RIGHT:\n case RowContainerName.TOP_RIGHT:\n case RowContainerName.STICKY_TOP_RIGHT:\n case RowContainerName.RIGHT:\n return 'right';\n default:\n return null;\n }\n };\n RowContainerCtrl.prototype.postConstruct = function () {\n var _this = this;\n this.enableRtl = this.gridOptionsService.is('enableRtl');\n this.embedFullWidthRows = this.gridOptionsService.is('embedFullWidthRows');\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) {\n var _this = this;\n this.comp = view;\n this.eContainer = eContainer;\n this.eViewport = eViewport;\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 = __spreadArray$g(__spreadArray$g(__spreadArray$g(__spreadArray$g([], __read$j(allTopNoFW)), __read$j(allBottomNoFW)), __read$j(allMiddleNoFW)), __read$j(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 () {\n _this.pinnedWidthFeature = _this.createManagedBean(new SetPinnedLeftWidthFeature(_this.eContainer));\n _this.addManagedListener(_this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, function () { return _this.onPinnedWidthChanged(); });\n });\n this.forContainers(allRight, function () {\n _this.pinnedWidthFeature = _this.createManagedBean(new SetPinnedRightWidthFeature(_this.eContainer));\n _this.addManagedListener(_this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, function () { return _this.onPinnedWidthChanged(); });\n });\n this.forContainers(allMiddle, function () { return _this.createManagedBean(new SetHeightFeature(_this.eContainer, _this.name === RowContainerName.CENTER ? eViewport : undefined)); });\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 if (isInvisibleScrollbar()) {\n this.forContainers([RowContainerName.CENTER], function () {\n var pinnedWidthChangedEvent = _this.enableRtl ? Events.EVENT_LEFT_PINNED_WIDTH_CHANGED : Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED;\n _this.addManagedListener(_this.eventService, pinnedWidthChangedEvent, function () { return _this.refreshPaddingForFakeScrollbar(); });\n });\n this.refreshPaddingForFakeScrollbar();\n }\n this.addListeners();\n this.registerWithCtrlsService();\n };\n RowContainerCtrl.prototype.refreshPaddingForFakeScrollbar = function () {\n var _a = this, enableRtl = _a.enableRtl, columnModel = _a.columnModel, eContainer = _a.eContainer;\n var sideToCheck = enableRtl ? RowContainerName.LEFT : RowContainerName.RIGHT;\n this.forContainers([RowContainerName.CENTER, sideToCheck], function () {\n var pinnedWidth = columnModel.getContainerWidth(sideToCheck);\n var marginSide = enableRtl ? 'marginLeft' : 'marginRight';\n eContainer.style[marginSide] = pinnedWidth ? '16px' : '0px';\n });\n };\n RowContainerCtrl.prototype.addListeners = function () {\n var _this = this;\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 (params) { return _this.onDisplayedRowsChanged(params.afterScroll); });\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 () {\n var isEnsureDomOrder = _this.gridOptionsService.is('ensureDomOrder');\n var isPrintLayout = _this.gridOptionsService.isDomLayout('print');\n _this.comp.setDomOrder(isEnsureDomOrder || isPrintLayout);\n };\n this.addManagedPropertyListener('domLayout', 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 // 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\n RowContainerCtrl.prototype.onHorizontalViewportChanged = function (afterScroll) {\n if (afterScroll === void 0) { afterScroll = false; }\n var scrollWidth = this.getCenterWidth();\n var scrollPosition = this.getCenterViewportScrollLeft();\n this.columnModel.setViewportPosition(scrollWidth, scrollPosition, afterScroll);\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.getViewportScrollLeft = function () {\n return getScrollLeft(this.eViewport, this.enableRtl);\n };\n RowContainerCtrl.prototype.isHorizontalScrollShowing = function () {\n var isAlwaysShowHorizontalScroll = this.gridOptionsService.is('alwaysShowHorizontalScroll');\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.isContainerVisible = function () {\n var pinned = RowContainerCtrl.getPinned(this.name);\n return !pinned || (!!this.pinnedWidthFeature && this.pinnedWidthFeature.getWidth() > 0);\n };\n RowContainerCtrl.prototype.onPinnedWidthChanged = function () {\n var visible = this.isContainerVisible();\n if (this.visible != visible) {\n this.visible = visible;\n this.onDisplayedRowsChanged();\n }\n if (isInvisibleScrollbar()) {\n this.refreshPaddingForFakeScrollbar();\n }\n };\n RowContainerCtrl.prototype.onDisplayedRowsChanged = function (useFlushSync) {\n var _this = this;\n if (useFlushSync === void 0) { useFlushSync = false; }\n if (this.visible) {\n var printLayout_1 = this.gridOptionsService.isDomLayout('print');\n // this just justifies if the ctrl is in the correct place, this will be fed with zombie rows by the\n // row renderer, so should not block them as they still need to animate - the row renderer\n // will clean these up when they finish animating\n var doesRowMatch = function (rowCtrl) {\n var fullWidthRow = rowCtrl.isFullWidth();\n var embedFW = _this.embedFullWidthRows || printLayout_1;\n var match = _this.isFullWithContainer ?\n !embedFW && fullWidthRow\n : embedFW || !fullWidthRow;\n return match;\n };\n // this list contains either all pinned top, center or pinned bottom rows\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 = this.getRowCtrls().filter(doesRowMatch);\n this.comp.setRowCtrls(rowsThisContainer, useFlushSync);\n }\n else {\n this.comp.setRowCtrls(this.EMPTY_CTRLS, false);\n }\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.getCentreRowCtrls();\n }\n };\n __decorate$1J([\n Autowired('scrollVisibleService')\n ], RowContainerCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$1J([\n Autowired('dragService')\n ], RowContainerCtrl.prototype, \"dragService\", void 0);\n __decorate$1J([\n Autowired('ctrlsService')\n ], RowContainerCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1J([\n Autowired('columnModel')\n ], RowContainerCtrl.prototype, \"columnModel\", void 0);\n __decorate$1J([\n Autowired('resizeObserverService')\n ], RowContainerCtrl.prototype, \"resizeObserverService\", void 0);\n __decorate$1J([\n Autowired('animationFrameService')\n ], RowContainerCtrl.prototype, \"animationFrameService\", void 0);\n __decorate$1J([\n Autowired('rowRenderer')\n ], RowContainerCtrl.prototype, \"rowRenderer\", void 0);\n __decorate$1J([\n PostConstruct\n ], RowContainerCtrl.prototype, \"postConstruct\", null);\n return RowContainerCtrl;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 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
    \\n \\n \\n
    \";\nvar GridBodyComp = /** @class */ (function (_super) {\n __extends$1N(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(cssClass, flag); },\n updateLayoutClasses: function (cssClass, params) {\n var classLists = [\n _this.eBodyViewport.classList,\n _this.eBody.classList\n ];\n classLists.forEach(function (classList) {\n classList.toggle(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n classList.toggle(LayoutCssClasses.NORMAL, params.normal);\n classList.toggle(LayoutCssClasses.PRINT, params.print);\n });\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(cssClass, selectable); });\n },\n setBodyViewportWidth: function (width) { return _this.eBodyViewport.style.width = width; }\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.gridOptionsService.get('rowSelection') === 'multiple') {\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$1I([\n Autowired('resizeObserverService')\n ], GridBodyComp.prototype, \"resizeObserverService\", void 0);\n __decorate$1I([\n Optional('rangeService')\n ], GridBodyComp.prototype, \"rangeService\", void 0);\n __decorate$1I([\n RefSelector('eBodyViewport')\n ], GridBodyComp.prototype, \"eBodyViewport\", void 0);\n __decorate$1I([\n RefSelector('eStickyTop')\n ], GridBodyComp.prototype, \"eStickyTop\", void 0);\n __decorate$1I([\n RefSelector('eTop')\n ], GridBodyComp.prototype, \"eTop\", void 0);\n __decorate$1I([\n RefSelector('eBottom')\n ], GridBodyComp.prototype, \"eBottom\", void 0);\n __decorate$1I([\n RefSelector('gridHeader')\n ], GridBodyComp.prototype, \"headerRootComp\", void 0);\n __decorate$1I([\n RefSelector('eBody')\n ], GridBodyComp.prototype, \"eBody\", void 0);\n __decorate$1I([\n PostConstruct\n ], GridBodyComp.prototype, \"init\", null);\n return GridBodyComp;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 ScrollVisibleService = /** @class */ (function (_super) {\n __extends$1M(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$1H([\n Autowired('ctrlsService')\n ], ScrollVisibleService.prototype, \"ctrlsService\", void 0);\n __decorate$1H([\n PostConstruct\n ], ScrollVisibleService.prototype, \"postConstruct\", null);\n ScrollVisibleService = __decorate$1H([\n Bean('scrollVisibleService')\n ], ScrollVisibleService);\n return ScrollVisibleService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 MouseEventService = /** @class */ (function (_super) {\n __extends$1L(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 getCtrlForEventTarget(this.gridOptionsService, event.target, 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.gridOptionsService.isDomLayout('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$1G([\n Autowired('ctrlsService')\n ], MouseEventService.prototype, \"ctrlsService\", void 0);\n MouseEventService = MouseEventService_1 = __decorate$1G([\n Bean('mouseEventService')\n ], MouseEventService);\n return MouseEventService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 NavigationService = /** @class */ (function (_super) {\n __extends$1K(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, fromFullWidth) {\n if (fromFullWidth === void 0) { fromFullWidth = false; }\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 // home and end can be processed without knowing the currently selected cell, this can occur for full width rows.\n var currentCell = this.mouseEventService.getCellPositionForEvent(event);\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 if (!currentCell) {\n return false;\n }\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 case KeyCode.PAGE_UP:\n // handle page up and page down when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n processed = this.handlePageUpDown(key, currentCell, fromFullWidth);\n }\n break;\n }\n if (processed) {\n event.preventDefault();\n }\n return processed;\n };\n NavigationService.prototype.handlePageUpDown = function (key, currentCell, fromFullWidth) {\n if (fromFullWidth) {\n currentCell = this.focusService.getFocusedCell();\n }\n if (!currentCell) {\n return false;\n }\n if (key === KeyCode.PAGE_UP) {\n this.onPageUp(currentCell);\n }\n else {\n this.onPageDown(currentCell);\n }\n return true;\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 // this method is throttled, see the `constructor`\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 // this method is throttled, see the `constructor`\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 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 ? ((currentRowNode === null || currentRowNode === void 0 ? void 0 : currentRowNode.rowHeight) - pixelsInOnePage - pagingPixelOffset)\n : (pixelsInOnePage - pagingPixelOffset);\n var nextCellPixel = (currentRowNode === null || currentRowNode === void 0 ? void 0 : currentRowNode.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 var _a;\n if (up === void 0) { up = false; }\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) !== 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.gridOptionsService.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 if (this.gridOptionsService.getNum('headerHeight') === 0) {\n this.focusService.focusNextGridCoreContainer(true, true);\n }\n else {\n keyboardEvent.preventDefault();\n this.focusService.focusPreviousFromFirstCell(keyboardEvent);\n }\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.gridOptionsService.get('editType') === 'fullRow') {\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, 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, 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$9(__assign$9({}, 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.gridOptionsService.getCallback('tabToNextCell');\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 fromCell: true\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.gridOptionsService.get('editType') === 'fullRow';\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() || startEditing) {\n continue;\n }\n return row;\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 === 'top') {\n return this.pinnedRowModel.getPinnedTopRow(cell.rowIndex);\n }\n if (cell.rowPinned === '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.gridOptionsService.is('enableRtl')) {\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.gridOptionsService.getCallback('navigateToNextCell');\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 fromCell: true\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 isGroupStickyEnabled = this.gridOptionsService.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 && (rowNode === null || rowNode === void 0 ? void 0 : rowNode.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$1F([\n Autowired('mouseEventService')\n ], NavigationService.prototype, \"mouseEventService\", void 0);\n __decorate$1F([\n Autowired('paginationProxy')\n ], NavigationService.prototype, \"paginationProxy\", void 0);\n __decorate$1F([\n Autowired('focusService')\n ], NavigationService.prototype, \"focusService\", void 0);\n __decorate$1F([\n Optional('rangeService')\n ], NavigationService.prototype, \"rangeService\", void 0);\n __decorate$1F([\n Autowired('columnModel')\n ], NavigationService.prototype, \"columnModel\", void 0);\n __decorate$1F([\n Autowired('rowModel')\n ], NavigationService.prototype, \"rowModel\", void 0);\n __decorate$1F([\n Autowired('ctrlsService')\n ], NavigationService.prototype, \"ctrlsService\", void 0);\n __decorate$1F([\n Autowired('rowRenderer')\n ], NavigationService.prototype, \"rowRenderer\", void 0);\n __decorate$1F([\n Autowired('headerNavigationService')\n ], NavigationService.prototype, \"headerNavigationService\", void 0);\n __decorate$1F([\n Autowired(\"rowPositionUtils\")\n ], NavigationService.prototype, \"rowPositionUtils\", void 0);\n __decorate$1F([\n Autowired(\"cellNavigationService\")\n ], NavigationService.prototype, \"cellNavigationService\", void 0);\n __decorate$1F([\n Autowired(\"pinnedRowModel\")\n ], NavigationService.prototype, \"pinnedRowModel\", void 0);\n __decorate$1F([\n PostConstruct\n ], NavigationService.prototype, \"postConstruct\", null);\n NavigationService = __decorate$1F([\n Bean('navigationService')\n ], NavigationService);\n return NavigationService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 PopupEditorWrapper = /** @class */ (function (_super) {\n __extends$1J(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.gridOptionsService.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.gridOptionsService, 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$1E([\n PostConstruct\n ], PopupEditorWrapper.prototype, \"postConstruct\", null);\n return PopupEditorWrapper;\n}(PopupComponent));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$1I(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.cellCtrl = cellCtrl;\n _this.setTemplate(/* html */ \"
    \");\n var eGui = _this.getGui();\n _this.forceWrapper = cellCtrl.isForceWrapper();\n _this.refreshWrapper(false);\n var setAttribute = function (name, value) {\n if (value != null && value != '') {\n eGui.setAttribute(name, value);\n }\n else {\n eGui.removeAttribute(name);\n }\n };\n setAriaRole(eGui, 'gridcell');\n setAttribute('col-id', cellCtrl.getColumnIdSanitised());\n var tabIndex = cellCtrl.getTabIndex();\n if (tabIndex !== undefined) {\n setAttribute('tabindex', tabIndex.toString());\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 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 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 this.refreshEditStyles(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(/* html */ \"
    \");\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(/* html */ \"\");\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) {\n if (providingControls) {\n this.addControls();\n }\n }\n return templateChanged;\n };\n CellComp.prototype.addControls = function () {\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 }\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 animation frame service 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 suppressAnimationFrame = this.beans.gridOptionsService.is('suppressAnimationFrame');\n var useTaskService = !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(true);\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 this.addPopupCellEditor(params, position);\n }\n else {\n this.addInCellEditor();\n }\n this.refreshEditStyles(true, cellEditorInPopup);\n if (cellEditor.afterGuiAttached) {\n cellEditor.afterGuiAttached();\n }\n };\n CellComp.prototype.refreshEditStyles = function (editing, isPopup) {\n var _a;\n this.addOrRemoveCssClass('ag-cell-inline-editing', editing && !isPopup);\n this.addOrRemoveCssClass('ag-cell-popup-editing', editing && !!isPopup);\n this.addOrRemoveCssClass('ag-cell-not-inline-editing', !editing || !!isPopup);\n (_a = this.rowCtrl) === null || _a === void 0 ? void 0 : _a.setInlineEditingCss(editing);\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.gridOptionsService.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.gridOptionsService.get('editType') === 'fullRow') {\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.gridOptionsService.is('stopEditingWhenCellsLoseFocus');\n // see if position provided by colDef, if not then check old way of method on cellComp\n var positionToUse = position != null\n ? position\n : cellEditor.getPopupPosition\n ? cellEditor.getPopupPosition()\n : 'over';\n var isRtl = this.beans.gridOptionsService.is('enableRtl');\n var positionParams = {\n ePopup: ePopupGui,\n column: this.column,\n rowNode: this.rowNode,\n type: 'popupCellEditor',\n eventSource: this.getGui(),\n position: positionToUse,\n alignSide: isRtl ? 'right' : 'left',\n keepWithinBounds: true\n };\n var positionCallback = popupService.positionPopupByComponent.bind(popupService, positionParams);\n var translate = this.beans.localeService.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.gridOptionsService.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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$1H(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 _this.domOrder = _this.rowCtrl.getDomOrder();\n setAriaRole(eGui, 'row');\n var tabIndex = _this.rowCtrl.getTabIndex();\n if (tabIndex != null) {\n eGui.setAttribute('tabindex', tabIndex.toString());\n }\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 setRowId: function (rowId) { return eGui.setAttribute('row-id', rowId); },\n setRowBusinessKey: function (businessKey) { return eGui.setAttribute('row-business-key', businessKey); },\n };\n ctrl.setComp(compProxy, _this.getGui(), containerType);\n _this.addDestroyFunc(function () {\n ctrl.unsetComp(containerType);\n });\n return _this;\n }\n RowComp.prototype.getInitialStyle = function (containerType) {\n var transform = this.rowCtrl.getInitialTransform(containerType);\n var top = this.rowCtrl.getInitialRowTop(containerType);\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 templateFactory() {\n var name = Component.elementGettingCreated.getAttribute('name');\n var cssClasses = RowContainerCtrl.getRowContainerCssClasses(name);\n var res;\n var centerTemplate = name === RowContainerName.CENTER ||\n name === RowContainerName.TOP_CENTER ||\n name === RowContainerName.STICKY_TOP_CENTER ||\n name === RowContainerName.BOTTOM_CENTER;\n if (centerTemplate) {\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$1G(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);\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$8({}, 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 // don't create new row comps for rows which are not displayed. still want the existing components\n // as they may be animating out.\n if (!rowCon.getRowNode().displayed) {\n return;\n }\n var rowComp = new RowComp(rowCon, _this.beans, _this.type);\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 __decorate$1D([\n Autowired('beans')\n ], RowContainerComp.prototype, \"beans\", void 0);\n __decorate$1D([\n RefSelector('eViewport')\n ], RowContainerComp.prototype, \"eViewport\", void 0);\n __decorate$1D([\n RefSelector('eContainer')\n ], RowContainerComp.prototype, \"eContainer\", void 0);\n __decorate$1D([\n PostConstruct\n ], RowContainerComp.prototype, \"postConstruct\", null);\n __decorate$1D([\n PreDestroy\n ], RowContainerComp.prototype, \"preDestroy\", null);\n return RowContainerComp;\n}(Component));\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 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.gridOptionsService.is('functionsReadOnly')) {\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$1C([\n Autowired('columnModel')\n ], BodyDropPivotTarget.prototype, \"columnModel\", void 0);\n __decorate$1C([\n Autowired('gridOptionsService')\n ], BodyDropPivotTarget.prototype, \"gridOptionsService\", void 0);\n return BodyDropPivotTarget;\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$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 MoveColumnFeature = /** @class */ (function () {\n function MoveColumnFeature(pinned, eContainer) {\n this.needToMoveLeft = false;\n this.needToMoveRight = false;\n this.lastMovedInfo = null;\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 () {\n this.ensureIntervalCleared();\n this.lastMovedInfo = null;\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.onDragging(this.lastDraggingEvent, false, true, true);\n this.ensureIntervalCleared();\n this.lastMovedInfo = null;\n };\n MoveColumnFeature.prototype.normaliseX = function (x) {\n // flip the coordinate if doing RTL\n if (this.gridOptionsService.is('enableRtl')) {\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.gridOptionsService.is('enableRtl')) {\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, finished) {\n var _this = this;\n var _a;\n if (draggingEvent === void 0) { draggingEvent = this.lastDraggingEvent; }\n if (fromEnter === void 0) { fromEnter = false; }\n if (fakeEvent === void 0) { fakeEvent = false; }\n if (finished === void 0) { finished = false; }\n if (finished) {\n if (this.lastMovedInfo) {\n var _b = this.lastMovedInfo, columns = _b.columns, toIndex = _b.toIndex;\n this.moveColumns(columns, toIndex, 'uiColumnMoved', true);\n }\n return;\n }\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 mouseX = 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(mouseX);\n }\n var hDirection = this.normaliseDirection(draggingEvent.hDirection);\n var dragSourceType = draggingEvent.dragSource.type;\n var allMovingColumns = ((_a = draggingEvent.dragSource.getDragItem().columns) === null || _a === void 0 ? void 0 : _a.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: dragSourceType, allMovingColumns: allMovingColumns, hDirection: hDirection, mouseX: mouseX, fromEnter: fromEnter, fakeEvent: fakeEvent });\n };\n MoveColumnFeature.prototype.normaliseDirection = function (hDirection) {\n if (this.gridOptionsService.is('enableRtl')) {\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 MoveColumnFeature.prototype.attemptMoveColumns = function (params) {\n var dragSourceType = params.dragSourceType, hDirection = params.hDirection, mouseX = params.mouseX, fromEnter = params.fromEnter, fakeEvent = params.fakeEvent;\n var draggingLeft = hDirection === HorizontalDirection.Left;\n var draggingRight = hDirection === HorizontalDirection.Right;\n var allMovingColumns = params.allMovingColumns;\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 _a;\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 var isMarryChildren = !!((_a = movingGroup.getColGroupDef()) === null || _a === void 0 ? void 0 : _a.marryChildren);\n var columnsToMove = isMarryChildren\n // when marry children is true, we also have to move hidden\n // columns within the group, so grab them from the `providedColumnGroup`\n ? movingGroup.getProvidedColumnGroup().getLeafColumns()\n : movingGroup.getLeafColumns();\n columnsToMove.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 this.moveColumns(allMovingColumns, potentialMoves[0].move, 'uiColumnMoved', false);\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.moveColumns = function (columns, toIndex, source, finished) {\n this.columnModel.moveColumns(columns, toIndex, source, finished);\n this.lastMovedInfo = finished ? null : { columns: columns, toIndex: toIndex };\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$i(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.gridOptionsService.is('suppressMovableColumns') || 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 ? 'left' : 'right';\n this.setColumnsPinned(columnsThatCanPin, pinType, \"uiColumnDragged\");\n this.dragAndDropService.nudge();\n }\n }\n }\n };\n __decorate$1B([\n Autowired('columnModel')\n ], MoveColumnFeature.prototype, \"columnModel\", void 0);\n __decorate$1B([\n Autowired('dragAndDropService')\n ], MoveColumnFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$1B([\n Autowired('gridOptionsService')\n ], MoveColumnFeature.prototype, \"gridOptionsService\", void 0);\n __decorate$1B([\n Autowired('ctrlsService')\n ], MoveColumnFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1B([\n PostConstruct\n ], MoveColumnFeature.prototype, \"init\", null);\n return MoveColumnFeature;\n}());\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 BodyDropTarget = /** @class */ (function (_super) {\n __extends$1F(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 'left':\n _this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.leftRowContainerCtrl.getContainerElement()],\n [p.bottomLeftRowContainerCtrl.getContainerElement()],\n [p.topLeftRowContainerCtrl.getContainerElement()]\n ];\n break;\n case '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.gridOptionsService.is('allowDragFromColumnsToolPanel'));\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$1A([\n Autowired('dragAndDropService')\n ], BodyDropTarget.prototype, \"dragAndDropService\", void 0);\n __decorate$1A([\n Autowired('columnModel')\n ], BodyDropTarget.prototype, \"columnModel\", void 0);\n __decorate$1A([\n Autowired('ctrlsService')\n ], BodyDropTarget.prototype, \"ctrlsService\", void 0);\n __decorate$1A([\n PostConstruct\n ], BodyDropTarget.prototype, \"postConstruct\", null);\n __decorate$1A([\n PostConstruct\n ], BodyDropTarget.prototype, \"init\", null);\n return BodyDropTarget;\n}(BeanStub));\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 __spreadArray$f = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar CssClassApplier = /** @class */ (function () {\n function CssClassApplier() {\n }\n CssClassApplier.getHeaderClassesFromColDef = function (abstractColDef, gridOptionsService, column, columnGroup) {\n if (missing(abstractColDef)) {\n return [];\n }\n return this.getColumnClassesFromCollDef(abstractColDef.headerClass, abstractColDef, gridOptionsService, column, columnGroup);\n };\n CssClassApplier.getToolPanelClassesFromColDef = function (abstractColDef, gridOptionsService, column, columnGroup) {\n if (missing(abstractColDef)) {\n return [];\n }\n return this.getColumnClassesFromCollDef(abstractColDef.toolPanelClass, abstractColDef, gridOptionsService, column, columnGroup);\n };\n CssClassApplier.getClassParams = function (abstractColDef, gridOptionsService, 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: gridOptionsService.api,\n columnApi: gridOptionsService.columnApi,\n context: gridOptionsService.context\n };\n };\n CssClassApplier.getColumnClassesFromCollDef = function (classesOrFunc, abstractColDef, gridOptionsService, column, columnGroup) {\n if (missing(classesOrFunc)) {\n return [];\n }\n var classToUse;\n if (typeof classesOrFunc === 'function') {\n var params = this.getClassParams(abstractColDef, gridOptionsService, 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 __spreadArray$f([], __read$h(classToUse));\n }\n return [];\n };\n return CssClassApplier;\n}());\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 HeaderCellComp = /** @class */ (function (_super) {\n __extends$1E(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) {\n if (value != null && value != '') {\n eGui.setAttribute(name, value);\n }\n else {\n eGui.removeAttribute(name);\n }\n };\n setAttribute('col-id', this.column.getColId());\n var compProxy = {\n setWidth: function (width) { return eGui.style.width = width; },\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\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$1z([\n RefSelector('eResize')\n ], HeaderCellComp.prototype, \"eResize\", void 0);\n __decorate$1z([\n RefSelector('eHeaderCompWrapper')\n ], HeaderCellComp.prototype, \"eHeaderCompWrapper\", void 0);\n __decorate$1z([\n PostConstruct\n ], HeaderCellComp.prototype, \"postConstruct\", null);\n __decorate$1z([\n PreDestroy\n ], HeaderCellComp.prototype, \"destroyHeaderComp\", null);\n return HeaderCellComp;\n}(AbstractHeaderCellComp));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 HeaderGroupCellComp = /** @class */ (function (_super) {\n __extends$1D(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 eGui.setAttribute(\"col-id\", this.ctrl.getColId());\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setResizableDisplayed: function (displayed) { return setDisplayed(_this.eResize, displayed); },\n setWidth: function (width) { return eGui.style.width = width; },\n setAriaExpanded: function (expanded) { return setAttribute('aria-expanded', expanded); },\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 var eGui = this.getGui();\n var eHeaderGroupGui = headerGroupComp.getGui();\n eGui.appendChild(eHeaderGroupGui);\n this.addDestroyFunc(destroyFunc);\n this.ctrl.setDragSource(eGui);\n };\n HeaderGroupCellComp.TEMPLATE = \"
    \\n
    \\n
    \";\n __decorate$1y([\n Autowired('userComponentFactory')\n ], HeaderGroupCellComp.prototype, \"userComponentFactory\", void 0);\n __decorate$1y([\n RefSelector('eResize')\n ], HeaderGroupCellComp.prototype, \"eResize\", void 0);\n __decorate$1y([\n PostConstruct\n ], HeaderGroupCellComp.prototype, \"postConstruct\", null);\n return HeaderGroupCellComp;\n}(AbstractHeaderCellComp));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 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$1C(HeaderRowComp, _super);\n function HeaderRowComp(ctrl) {\n var _this = _super.call(this) || this;\n _this.headerComps = {};\n _this.ctrl = ctrl;\n _this.setTemplate(/* html */ \"
    \");\n return _this;\n }\n //noinspection JSUnusedLocalSymbols\n HeaderRowComp.prototype.init = function () {\n var _this = this;\n this.getGui().style.transform = this.ctrl.getTransform();\n setAriaRowIndex(this.getGui(), this.ctrl.getAriaRowIndex());\n var compProxy = {\n setHeight: function (height) { return _this.getGui().style.height = height; },\n setTop: function (top) { return _this.getGui().style.top = top; },\n setHeaderCtrls: function (ctrls, forceOrder) { return _this.setHeaderCtrls(ctrls, forceOrder); },\n setWidth: function (width) { return _this.getGui().style.width = width; },\n };\n this.ctrl.setComp(compProxy);\n };\n HeaderRowComp.prototype.destroyHeaderCtrls = function () {\n this.setHeaderCtrls([], false);\n };\n HeaderRowComp.prototype.setHeaderCtrls = function (ctrls, forceOrder) {\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 if (forceOrder) {\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$1x([\n PostConstruct\n ], HeaderRowComp.prototype, \"init\", null);\n __decorate$1x([\n PreDestroy\n ], HeaderRowComp.prototype, \"destroyHeaderCtrls\", null);\n return HeaderRowComp;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 instanceIdSequence$1 = 0;\nvar AbstractHeaderCellCtrl = /** @class */ (function (_super) {\n __extends$1B(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.gridOptionsService, e, headerRowIndex, column);\n };\n AbstractHeaderCellCtrl.prototype.getWrapperHasFocus = function () {\n var eDocument = this.gridOptionsService.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.gridOptionsService.setDomData(this.eGui, key, this);\n this.addDestroyFunc(function () { return _this.gridOptionsService.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$1w([\n Autowired('focusService')\n ], AbstractHeaderCellCtrl.prototype, \"focusService\", void 0);\n __decorate$1w([\n Autowired('beans')\n ], AbstractHeaderCellCtrl.prototype, \"beans\", void 0);\n __decorate$1w([\n Autowired('userComponentFactory')\n ], AbstractHeaderCellCtrl.prototype, \"userComponentFactory\", void 0);\n return AbstractHeaderCellCtrl;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 SetLeftFeature = /** @class */ (function (_super) {\n __extends$1A(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.gridOptionsService.is('enableRtl') && 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.addManagedPropertyListener('domLayout', this.onLeftChanged.bind(this));\n };\n SetLeftFeature.prototype.setLeftFirstTime = function () {\n var suppressMoveAnimation = this.beans.gridOptionsService.is('suppressColumnMoveAnimation');\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.gridOptionsService.isDomLayout('print');\n if (!printLayout) {\n return leftPosition;\n }\n if (colOrGroup.getPinned() === 'left') {\n return leftPosition;\n }\n var leftWidth = this.beans.columnModel.getDisplayedColumnsLeftWidth();\n if (colOrGroup.getPinned() === '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$1v([\n PostConstruct\n ], SetLeftFeature.prototype, \"postConstruct\", null);\n return SetLeftFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 HoverFeature = /** @class */ (function (_super) {\n __extends$1z(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.gridOptionsService.is('columnHoverHighlight')) {\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$1u([\n Autowired('columnHoverService')\n ], HoverFeature.prototype, \"columnHoverService\", void 0);\n __decorate$1u([\n PostConstruct\n ], HoverFeature.prototype, \"postConstruct\", null);\n return HoverFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 HeaderFilterCellCtrl = /** @class */ (function (_super) {\n __extends$1y(HeaderFilterCellCtrl, _super);\n function HeaderFilterCellCtrl(column, parentRowCtrl) {\n var _this = _super.call(this, column, parentRowCtrl) || this;\n _this.iconCreated = false;\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 this.setupActive();\n this.setupWidth();\n this.setupLeft();\n this.setupHover();\n this.setupFocus();\n this.setupAria();\n this.setupFilterButton();\n this.setupUserComp();\n this.setupSyncWithFilter();\n this.setupUi();\n this.addManagedListener(this.eButtonShowMainFilter, 'click', this.showParentFilter.bind(this));\n this.setupFilterChangedListener();\n this.addManagedListener(this.column, Column.EVENT_COL_DEF_CHANGED, this.onColDefChanged.bind(this));\n };\n HeaderFilterCellCtrl.prototype.setupActive = function () {\n var colDef = this.column.getColDef();\n var filterExists = !!colDef.filter;\n var floatingFilterExists = !!colDef.floatingFilter;\n this.active = filterExists && floatingFilterExists;\n };\n HeaderFilterCellCtrl.prototype.setupUi = function () {\n this.comp.setButtonWrapperDisplayed(!this.suppressFilterButton && this.active);\n this.comp.addOrRemoveBodyCssClass('ag-floating-filter-full-body', this.suppressFilterButton);\n this.comp.addOrRemoveBodyCssClass('ag-floating-filter-body', !this.suppressFilterButton);\n if (!this.active || this.iconCreated) {\n return;\n }\n var eMenuIcon = createIconNoSpan('filter', this.gridOptionsService, this.column);\n if (eMenuIcon) {\n this.iconCreated = true;\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.setupAria = function () {\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n setAriaLabel(this.eButtonShowMainFilter, localeTextFunc('ariaFilterMenuOpen', 'Open Filter Menu'));\n };\n HeaderFilterCellCtrl.prototype.onTabKeyDown = function (e) {\n var eDocument = this.gridOptionsService.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.gridOptionsService.is('columnHoverHighlight')) {\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.setupFilterButton = function () {\n var colDef = this.column.getColDef();\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 };\n HeaderFilterCellCtrl.prototype.setupUserComp = function () {\n var _this = this;\n if (!this.active) {\n return;\n }\n var compDetails = this.filterManager.getFloatingFilterCompDetails(this.column, function () { return _this.showParentFilter(); });\n if (compDetails) {\n this.setCompDetails(compDetails);\n }\n };\n HeaderFilterCellCtrl.prototype.setCompDetails = function (compDetails) {\n this.userCompDetails = compDetails;\n this.comp.setCompDetails(compDetails);\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 compPromise.then(function (comp) {\n if (comp) {\n var parentModel = _this.filterManager.getCurrentFloatingFilterParentModel(_this.column);\n comp.onParentModelChanged(parentModel, filterChangedEvent);\n }\n });\n };\n this.destroySyncListener = 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 HeaderFilterCellCtrl.prototype.setupFilterChangedListener = function () {\n if (this.active) {\n this.destroyFilterChangedListener = this.addManagedListener(this.column, Column.EVENT_FILTER_CHANGED, this.updateFilterButton.bind(this));\n }\n };\n HeaderFilterCellCtrl.prototype.updateFilterButton = function () {\n if (!this.suppressFilterButton && this.comp) {\n this.comp.setButtonWrapperDisplayed(this.filterManager.isFilterAllowed(this.column));\n }\n };\n HeaderFilterCellCtrl.prototype.onColDefChanged = function () {\n var _this = this;\n var _a, _b;\n var wasActive = this.active;\n this.setupActive();\n var becomeActive = !wasActive && this.active;\n if (wasActive && !this.active) {\n (_a = this.destroySyncListener) === null || _a === void 0 ? void 0 : _a.call(this);\n (_b = this.destroyFilterChangedListener) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n var newCompDetails = this.active\n ? this.filterManager.getFloatingFilterCompDetails(this.column, function () { return _this.showParentFilter(); })\n : null;\n var compPromise = this.comp.getFloatingFilterComp();\n if (!compPromise || !newCompDetails) {\n this.updateCompDetails(newCompDetails, becomeActive);\n }\n else {\n compPromise.then(function (compInstance) {\n var _a;\n if (!compInstance || _this.filterManager.areFilterCompsDifferent((_a = _this.userCompDetails) !== null && _a !== void 0 ? _a : null, newCompDetails)) {\n _this.updateCompDetails(newCompDetails, becomeActive);\n }\n else {\n _this.updateFloatingFilterParams(newCompDetails);\n }\n });\n }\n };\n HeaderFilterCellCtrl.prototype.updateCompDetails = function (compDetails, becomeActive) {\n this.setCompDetails(compDetails);\n // filter button and UI can change based on params, so always want to update\n this.setupFilterButton();\n this.setupUi();\n if (becomeActive) {\n this.setupSyncWithFilter();\n this.setupFilterChangedListener();\n }\n };\n HeaderFilterCellCtrl.prototype.updateFloatingFilterParams = function (userCompDetails) {\n var _a;\n if (!userCompDetails) {\n return;\n }\n var params = userCompDetails.params;\n (_a = this.comp.getFloatingFilterComp()) === null || _a === void 0 ? void 0 : _a.then(function (floatingFilter) {\n if ((floatingFilter === null || floatingFilter === void 0 ? void 0 : floatingFilter.onParamsUpdated) && typeof floatingFilter.onParamsUpdated === 'function') {\n floatingFilter.onParamsUpdated(params);\n }\n });\n };\n __decorate$1t([\n Autowired('filterManager')\n ], HeaderFilterCellCtrl.prototype, \"filterManager\", void 0);\n __decorate$1t([\n Autowired('columnHoverService')\n ], HeaderFilterCellCtrl.prototype, \"columnHoverService\", void 0);\n __decorate$1t([\n Autowired('menuFactory')\n ], HeaderFilterCellCtrl.prototype, \"menuFactory\", void 0);\n return HeaderFilterCellCtrl;\n}(AbstractHeaderCellCtrl));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 ResizeFeature = /** @class */ (function (_super) {\n __extends$1x(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.gridOptionsService.is('skipHeaderOnAutoSize');\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.gridOptionsService.is('suppressAutoSize') && !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, \"uiColumnResized\");\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 !== 'left';\n var pinningRight = this.pinned === 'right';\n if (this.gridOptionsService.is('enableRtl')) {\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$1s([\n Autowired('horizontalResizeService')\n ], ResizeFeature.prototype, \"horizontalResizeService\", void 0);\n __decorate$1s([\n Autowired('columnModel')\n ], ResizeFeature.prototype, \"columnModel\", void 0);\n __decorate$1s([\n PostConstruct\n ], ResizeFeature.prototype, \"postConstruct\", null);\n return ResizeFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 SelectAllFeature = /** @class */ (function (_super) {\n __extends$1w(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 === null || colDef === void 0 ? void 0 : colDef.headerCheckboxSelectionFilteredOnly);\n _this.currentPageOnly = !!(colDef === null || colDef === void 0 ? void 0 : colDef.headerCheckboxSelectionCurrentPageOnly);\n return _this;\n }\n SelectAllFeature.prototype.onSpaceKeyDown = function (e) {\n var checkbox = this.cbSelectAll;\n var eDocument = this.gridOptionsService.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_PAGINATION_CHANGED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onModelChanged.bind(this));\n this.addManagedListener(this.cbSelectAll, Events.EVENT_FIELD_VALUE_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, { skipAriaHidden: true });\n if (this.cbSelectAllVisible) {\n // in case user is trying this feature with the wrong model type\n this.checkRightRowModelType('selectAllCheckbox');\n // in case user is trying this feature with the wrong model type\n this.checkSelectionType('selectAllCheckbox');\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.updateStateOfCheckbox = function () {\n if (this.processingEventFromCheckbox) {\n return;\n }\n this.processingEventFromCheckbox = true;\n var allSelected = this.selectionService.getSelectAllState(this.filteredOnly, this.currentPageOnly);\n this.cbSelectAll.setValue(allSelected);\n this.refreshSelectAllLabel();\n this.processingEventFromCheckbox = false;\n };\n SelectAllFeature.prototype.refreshSelectAllLabel = function () {\n var translate = this.localeService.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 if (!this.cbSelectAllVisible) {\n this.headerCellCtrl.setAriaDescriptionProperty('selectAll', null);\n }\n else {\n this.headerCellCtrl.setAriaDescriptionProperty('selectAll', ariaLabel + \" (\" + ariaStatus + \")\");\n }\n this.cbSelectAll.setInputAriaLabel(ariaLabel + \" (\" + ariaStatus + \")\");\n this.headerCellCtrl.refreshAriaDescription();\n };\n SelectAllFeature.prototype.checkSelectionType = function (feature) {\n var isMultiSelect = this.gridOptionsService.get('rowSelection') === 'multiple';\n if (!isMultiSelect) {\n console.warn(\"AG Grid: \" + feature + \" is only available if using 'multiple' rowSelection.\");\n return false;\n }\n return true;\n };\n SelectAllFeature.prototype.checkRightRowModelType = function (feature) {\n var rowModelType = this.rowModel.getType();\n var rowModelMatches = rowModelType === 'clientSide' || rowModelType === 'serverSide';\n if (!rowModelMatches) {\n console.warn(\"AG Grid: \" + feature + \" is only available if using 'clientSide' or 'serverSide' rowModelType, you are using \" + rowModelType + \".\");\n return false;\n }\n return true;\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 var source = 'uiSelectAll';\n if (this.currentPageOnly)\n source = 'uiSelectAllCurrentPage';\n else if (this.filteredOnly)\n source = 'uiSelectAllFiltered';\n var params = {\n source: source,\n justFiltered: this.filteredOnly,\n justCurrentPage: this.currentPageOnly,\n };\n if (value) {\n this.selectionService.selectAllRowNodes(params);\n }\n else {\n this.selectionService.deselectAllRowNodes(params);\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.gridOptionsService.context\n };\n result = func(params);\n }\n if (result) {\n return this.checkRightRowModelType('headerCheckboxSelection') && this.checkSelectionType('headerCheckboxSelection');\n }\n return false;\n };\n __decorate$1r([\n Autowired('gridApi')\n ], SelectAllFeature.prototype, \"gridApi\", void 0);\n __decorate$1r([\n Autowired('columnApi')\n ], SelectAllFeature.prototype, \"columnApi\", void 0);\n __decorate$1r([\n Autowired('rowModel')\n ], SelectAllFeature.prototype, \"rowModel\", void 0);\n __decorate$1r([\n Autowired('selectionService')\n ], SelectAllFeature.prototype, \"selectionService\", void 0);\n return SelectAllFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 TabGuardClassNames;\n(function (TabGuardClassNames) {\n TabGuardClassNames[\"TAB_GUARD\"] = \"ag-tab-guard\";\n TabGuardClassNames[\"TAB_GUARD_TOP\"] = \"ag-tab-guard-top\";\n TabGuardClassNames[\"TAB_GUARD_BOTTOM\"] = \"ag-tab-guard-bottom\";\n})(TabGuardClassNames || (TabGuardClassNames = {}));\nvar TabGuardCtrl = /** @class */ (function (_super) {\n __extends$1v(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 var tabIndex = this.gridOptionsService.getNum('tabIndex') || 0;\n this.comp.setTabIndex(tabIndex.toString());\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.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({ preventScroll: true });\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$1q([\n Autowired('focusService')\n ], TabGuardCtrl.prototype, \"focusService\", void 0);\n __decorate$1q([\n PostConstruct\n ], TabGuardCtrl.prototype, \"postConstruct\", null);\n return TabGuardCtrl;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 __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 __spreadArray$e = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar FocusService = /** @class */ (function (_super) {\n __extends$1u(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 = __spreadArray$e([], __read$g(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.gridOptionsService.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.gridOptionsService.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.gridOptionsService.getDocument();\n if (this.gridOptionsService.is('suppressFocusAfterRefresh') || !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.gridOptionsService.getDocument();\n if (this.gridOptionsService.is('suppressFocusAfterRefresh') || !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.gridOptionsService.getDomData(ePointer, key);\n if (data) {\n return false;\n }\n ePointer = ePointer.parentNode;\n }\n return true;\n };\n FocusService.prototype.getFocusedCell = function () {\n return this.focusedCellPosition;\n };\n FocusService.prototype.shouldRestoreFocus = function (cell) {\n var _this = this;\n if (this.isCellRestoreFocused(cell)) {\n setTimeout(function () {\n // Clear the restore focused cell position after the timeout to avoid\n // the cell being focused again and stealing focus from another part of the app.\n _this.restoredFocusedCellPosition = null;\n }, 0);\n return true;\n }\n return false;\n };\n FocusService.prototype.isCellRestoreFocused = function (cellPosition) {\n if (this.restoredFocusedCellPosition == null) {\n return false;\n }\n return this.cellPositionUtils.equals(cellPosition, this.restoredFocusedCellPosition);\n };\n FocusService.prototype.setRestoreFocusedCell = function (cellPosition) {\n if (this.getFrameworkOverrides().renderingEngine === 'react') {\n // The restoredFocusedCellPosition is used in the React Rendering engine as we have to be able\n // to support restoring focus after an async rendering.\n this.restoredFocusedCellPosition = cellPosition;\n }\n };\n FocusService.prototype.getFocusEventParams = function () {\n var _a = this.focusedCellPosition, rowIndex = _a.rowIndex, rowPinned = _a.rowPinned, column = _a.column;\n var params = {\n rowIndex: rowIndex,\n rowPinned: rowPinned,\n column: column,\n isFullWidthCell: false\n };\n var rowCtrl = this.rowRenderer.getRowByPosition({ rowIndex: rowIndex, rowPinned: rowPinned });\n if (rowCtrl) {\n params.isFullWidthCell = rowCtrl.isFullWidth();\n }\n return params;\n };\n FocusService.prototype.clearFocusedCell = function () {\n this.restoredFocusedCellPosition = null;\n if (this.focusedCellPosition == null) {\n return;\n }\n var event = __assign$7({ type: Events.EVENT_CELL_FOCUS_CLEARED }, this.getFocusEventParams());\n this.focusedCellPosition = null;\n this.eventService.dispatchEvent(event);\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 var event = __assign$7(__assign$7({ type: Events.EVENT_CELL_FOCUSED }, this.getFocusEventParams()), { forceBrowserFocus: forceBrowserFocus, preventScrollOnBrowserFocus: preventScrollOnBrowserFocus, floating: null });\n this.eventService.dispatchEvent(event);\n };\n FocusService.prototype.isCellFocused = function (cellPosition) {\n if (this.focusedCellPosition == null) {\n return false;\n }\n return this.cellPositionUtils.equals(cellPosition, this.focusedCellPosition);\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, fromCell = params.fromCell;\n var headerPosition = params.headerPosition;\n if (fromCell && this.filterManager.isAdvancedFilterHeaderActive()) {\n return this.focusAdvancedFilter(headerPosition);\n }\n if (allowUserOverride) {\n var currentPosition = this.getFocusedHeader();\n var headerRowCount = this.headerNavigationService.getHeaderRowCount();\n if (fromTab) {\n var userFunc = this.gridOptionsService.getCallback('tabToNextHeader');\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 = this.gridOptionsService.getCallback('navigateToNextHeader');\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 if (this.filterManager.isAdvancedFilterHeaderActive()) {\n return this.focusAdvancedFilter(headerPosition);\n }\n else {\n return this.focusGridView(headerPosition.column);\n }\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.focusPreviousFromFirstCell = function (event) {\n if (this.filterManager.isAdvancedFilterHeaderActive()) {\n return this.focusAdvancedFilter(null);\n }\n else {\n return this.focusLastHeader(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 = FOCUSABLE_SELECTOR;\n var excludeString = 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({ preventScroll: true });\n return true;\n }\n return false;\n };\n FocusService.prototype.findFocusableElementBeforeTabGuard = function (rootNode, referenceElement) {\n if (!referenceElement) {\n return null;\n }\n var focusableElements = this.findFocusableElements(rootNode);\n var referenceIndex = focusableElements.indexOf(referenceElement);\n if (referenceIndex === -1) {\n return null;\n }\n var lastTabGuardIndex = -1;\n for (var i = referenceIndex - 1; i >= 0; i--) {\n if (focusableElements[i].classList.contains(TabGuardClassNames.TAB_GUARD_TOP)) {\n lastTabGuardIndex = i;\n break;\n }\n }\n if (lastTabGuardIndex <= 0) {\n return null;\n }\n return focusableElements[lastTabGuardIndex - 1];\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.gridOptionsService.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.isTargetUnderManagedComponent = function (rootNode, target) {\n if (!target) {\n return false;\n }\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(target)) {\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.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.gridOptionsService.is('suppressCellFocus')) {\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, forceOut) {\n if (forceOut === void 0) { forceOut = false; }\n if (!forceOut && this.gridCtrl.focusNextInnerContainer(backwards)) {\n return true;\n }\n if (forceOut || (!backwards && !this.gridCtrl.isDetailGrid())) {\n this.gridCtrl.forceFocusOutOfContainer(backwards);\n }\n return false;\n };\n FocusService.prototype.focusAdvancedFilter = function (position) {\n this.advancedFilterFocusColumn = position === null || position === void 0 ? void 0 : position.column;\n return this.advancedFilterService.getCtrl().focusHeaderComp();\n };\n FocusService.prototype.focusNextFromAdvancedFilter = function (backwards, forceFirstColumn) {\n var _a, _b;\n var column = (_a = (forceFirstColumn ? undefined : this.advancedFilterFocusColumn)) !== null && _a !== void 0 ? _a : (_b = this.columnModel.getAllDisplayedColumns()) === null || _b === void 0 ? void 0 : _b[0];\n if (backwards) {\n return this.focusHeaderPosition({\n headerPosition: {\n column: column,\n headerRowIndex: this.headerNavigationService.getHeaderRowCount() - 1\n }\n });\n }\n else {\n return this.focusGridView(column);\n }\n };\n FocusService.prototype.clearAdvancedFilterColumn = function () {\n this.advancedFilterFocusColumn = undefined;\n };\n var FocusService_1;\n FocusService.AG_KEYBOARD_FOCUS = 'ag-keyboard-focus';\n FocusService.keyboardModeActive = false;\n FocusService.instancesMonitored = new Map();\n __decorate$1p([\n Autowired('eGridDiv')\n ], FocusService.prototype, \"eGridDiv\", void 0);\n __decorate$1p([\n Autowired('columnModel')\n ], FocusService.prototype, \"columnModel\", void 0);\n __decorate$1p([\n Autowired('headerNavigationService')\n ], FocusService.prototype, \"headerNavigationService\", void 0);\n __decorate$1p([\n Autowired('rowRenderer')\n ], FocusService.prototype, \"rowRenderer\", void 0);\n __decorate$1p([\n Autowired('rowPositionUtils')\n ], FocusService.prototype, \"rowPositionUtils\", void 0);\n __decorate$1p([\n Autowired('cellPositionUtils')\n ], FocusService.prototype, \"cellPositionUtils\", void 0);\n __decorate$1p([\n Optional('rangeService')\n ], FocusService.prototype, \"rangeService\", void 0);\n __decorate$1p([\n Autowired('navigationService')\n ], FocusService.prototype, \"navigationService\", void 0);\n __decorate$1p([\n Autowired('ctrlsService')\n ], FocusService.prototype, \"ctrlsService\", void 0);\n __decorate$1p([\n Autowired('filterManager')\n ], FocusService.prototype, \"filterManager\", void 0);\n __decorate$1p([\n Optional('advancedFilterService')\n ], FocusService.prototype, \"advancedFilterService\", void 0);\n __decorate$1p([\n PostConstruct\n ], FocusService.prototype, \"init\", null);\n FocusService = FocusService_1 = __decorate$1p([\n Bean('focusService')\n ], FocusService);\n return FocusService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 HeaderCellCtrl = /** @class */ (function (_super) {\n __extends$1t(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.refreshSpanHeaderHeight();\n this.setupAutoHeight(eHeaderCompWrapper);\n this.addColumnHoverListener();\n this.setupFilterCss();\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.addMouseDownListenerIfNeeded(eGui);\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 this.addManagedListener(this.eventService, Events.EVENT_HEADER_HEIGHT_CHANGED, this.onHeaderHeightChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onHeaderHeightChanged.bind(this));\n };\n HeaderCellCtrl.prototype.addMouseDownListenerIfNeeded = function (eGui) {\n var _this = this;\n // we add a preventDefault in the DragService for Safari only\n // so we need to make sure we don't prevent focus on mousedown\n if (!isBrowserSafari()) {\n return;\n }\n var events = ['mousedown', 'touchstart'];\n var eDocument = this.gridOptionsService.getDocument();\n events.forEach(function (eventName) {\n _this.addManagedListener(eGui, eventName, function (e) {\n var activeEl = eDocument.activeElement;\n if (activeEl !== eGui && !eGui.contains(activeEl)) {\n eGui.focus();\n FocusService.toggleKeyboardMode(e);\n }\n });\n });\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.gridOptionsService.context,\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.onSpaceKeyDown(e);\n }\n if (e.key === KeyCode.ENTER) {\n this.onEnterKeyDown(e);\n }\n };\n HeaderCellCtrl.prototype.onEnterKeyDown = 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.eGui);\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 classes = CssClassApplier.getHeaderClassesFromColDef(colDef, _this.gridOptionsService, _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.gridOptionsService.is('suppressDragLeaveHidesColumns');\n this.moveDragSource = {\n type: DragSourceType.HeaderCell,\n eElement: eSource,\n getDefaultIconName: function () { return hideColumnOnExit ? DragAndDropService.ICON_HIDE : DragAndDropService.ICON_NOT_ALLOWED; },\n getDragItem: function () { return _this.createDragItem(); },\n dragItemName: this.displayName,\n onDragStarted: function () {\n hideColumnOnExit = !_this.gridOptionsService.is('suppressDragLeaveHidesColumns');\n _this.column.setMoving(true, \"uiColumnMoved\");\n },\n onDragStopped: function () { return _this.column.setMoving(false, \"uiColumnMoved\"); },\n onGridEnter: function (dragItem) {\n var _a;\n if (hideColumnOnExit) {\n var unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(function (col) { return !col.getColDef().lockVisible; })) || [];\n _this.columnModel.setColumnsVisible(unlockedColumns, true, \"uiColumnMoved\");\n }\n },\n onGridExit: function (dragItem) {\n var _a;\n if (hideColumnOnExit) {\n var unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.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.gridOptionsService.is('suppressMovableColumns');\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 var columnWidth = _this.column.getActualWidth();\n _this.comp.setWidth(columnWidth + \"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.eventService, 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.onHeaderHeightChanged = function () {\n this.refreshSpanHeaderHeight();\n };\n HeaderCellCtrl.prototype.refreshSpanHeaderHeight = function () {\n var _a = this, eGui = _a.eGui, column = _a.column, comp = _a.comp, columnModel = _a.columnModel, gridOptionsService = _a.gridOptionsService;\n if (!column.isSpanHeaderHeight()) {\n return;\n }\n var _b = this.getColumnGroupPaddingInfo(), numberOfParents = _b.numberOfParents, isSpanningTotal = _b.isSpanningTotal;\n comp.addOrRemoveCssClass('ag-header-span-height', numberOfParents > 0);\n var headerHeight = columnModel.getColumnHeaderRowHeight();\n if (numberOfParents === 0) {\n // if spanning has stopped then need to reset these values.\n comp.addOrRemoveCssClass('ag-header-span-total', false);\n eGui.style.setProperty('top', \"0px\");\n eGui.style.setProperty('height', headerHeight + \"px\");\n return;\n }\n comp.addOrRemoveCssClass('ag-header-span-total', isSpanningTotal);\n var pivotMode = gridOptionsService.is('pivotMode');\n var groupHeaderHeight = pivotMode\n ? columnModel.getPivotGroupHeaderHeight()\n : columnModel.getGroupHeaderHeight();\n var extraHeight = numberOfParents * groupHeaderHeight;\n eGui.style.setProperty('top', -extraHeight + \"px\");\n eGui.style.setProperty('height', headerHeight + extraHeight + \"px\");\n };\n HeaderCellCtrl.prototype.getColumnGroupPaddingInfo = function () {\n var parent = this.column.getParent();\n if (!parent || !parent.isPadding()) {\n return { numberOfParents: 0, isSpanningTotal: false };\n }\n var numberOfParents = parent.getPaddingLevel() + 1;\n var isSpanningTotal = true;\n while (parent) {\n if (!parent.isPadding()) {\n isSpanningTotal = false;\n break;\n }\n parent = parent.getParent();\n }\n return { numberOfParents: numberOfParents, isSpanningTotal: isSpanningTotal };\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, borderBottomWidth = _a.borderBottomWidth, borderTopWidth = _a.borderTopWidth;\n var extraHeight = paddingTop + paddingBottom + borderBottomWidth + borderTopWidth;\n var wrapperHeight = wrapperElement.offsetHeight;\n var autoHeight = wrapperHeight + extraHeight;\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.gridOptionsService.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.eventService, 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.localeService.getLocaleTextFunc();\n var sort = this.sortController.getDisplaySortForColumn(this.column) || null;\n this.comp.setAriaSort(getAriaSortState(sort));\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.localeService.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.gridOptionsService.is('columnHoverHighlight')) {\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.getColId = function () {\n return 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$1o([\n Autowired('columnModel')\n ], HeaderCellCtrl.prototype, \"columnModel\", void 0);\n __decorate$1o([\n Autowired('columnHoverService')\n ], HeaderCellCtrl.prototype, \"columnHoverService\", void 0);\n __decorate$1o([\n Autowired('sortController')\n ], HeaderCellCtrl.prototype, \"sortController\", void 0);\n __decorate$1o([\n Autowired('menuFactory')\n ], HeaderCellCtrl.prototype, \"menuFactory\", void 0);\n __decorate$1o([\n Autowired('dragAndDropService')\n ], HeaderCellCtrl.prototype, \"dragAndDropService\", void 0);\n __decorate$1o([\n Autowired('resizeObserverService')\n ], HeaderCellCtrl.prototype, \"resizeObserverService\", void 0);\n __decorate$1o([\n Autowired('gridApi')\n ], HeaderCellCtrl.prototype, \"gridApi\", void 0);\n __decorate$1o([\n Autowired('columnApi')\n ], HeaderCellCtrl.prototype, \"columnApi\", void 0);\n __decorate$1o([\n PreDestroy\n ], HeaderCellCtrl.prototype, \"removeDragSource\", null);\n return HeaderCellCtrl;\n}(AbstractHeaderCellCtrl));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 GroupResizeFeature = /** @class */ (function (_super) {\n __extends$1s(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.setResizableDisplayed(false);\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.gridOptionsService.is('suppressAutoSize')) {\n var skipHeaderOnAutoSize_1 = this.gridOptionsService.is('skipHeaderOnAutoSize');\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('uiColumnResized');\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, source) {\n if (source === void 0) { source = 'uiColumnResized'; }\n var resizeAmountNormalised = this.normaliseDragChange(resizeAmount);\n var width = this.resizeStartWidth + resizeAmountNormalised;\n this.resizeColumns(width, source, finished);\n };\n GroupResizeFeature.prototype.resizeLeafColumnsToFit = function (source) {\n var preferredSize = this.autoWidthCalculator.getPreferredWidthForColumnGroup(this.columnGroup);\n this.calculateInitialValues();\n if (preferredSize > this.resizeStartWidth) {\n this.resizeColumns(preferredSize, source, true);\n }\n };\n GroupResizeFeature.prototype.resizeColumns = function (totalWidth, source, 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: source\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.gridOptionsService.is('enableRtl')) {\n // for RTL, dragging left makes the col bigger, except when pinning left\n if (this.pinned !== 'left') {\n result *= -1;\n }\n }\n else if (this.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$1n([\n Autowired('horizontalResizeService')\n ], GroupResizeFeature.prototype, \"horizontalResizeService\", void 0);\n __decorate$1n([\n Autowired('autoWidthCalculator')\n ], GroupResizeFeature.prototype, \"autoWidthCalculator\", void 0);\n __decorate$1n([\n Autowired('columnModel')\n ], GroupResizeFeature.prototype, \"columnModel\", void 0);\n __decorate$1n([\n PostConstruct\n ], GroupResizeFeature.prototype, \"postConstruct\", null);\n return GroupResizeFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 GroupWidthFeature = /** @class */ (function (_super) {\n __extends$1r(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('widthChanged', widthChangedListener);\n column.addEventListener('visibleChanged', widthChangedListener);\n _this.removeChildListenersFuncs.push(function () {\n column.removeEventListener('widthChanged', widthChangedListener);\n column.removeEventListener('visibleChanged', 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 var columnWidth = this.columnGroup.getActualWidth();\n this.comp.setWidth(columnWidth + \"px\");\n this.comp.addOrRemoveCssClass('ag-hidden', columnWidth === 0);\n };\n __decorate$1m([\n PostConstruct\n ], GroupWidthFeature.prototype, \"postConstruct\", null);\n return GroupWidthFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 HeaderGroupCellCtrl = /** @class */ (function (_super) {\n __extends$1q(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.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 (source) {\n // check to avoid throwing when a component has not been setup yet (React 18)\n if (!this.groupResizeFeature) {\n return;\n }\n this.groupResizeFeature.resizeLeafColumnsToFit(source);\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.gridOptionsService.context\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.eGui);\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.getColId = function () {\n return 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.gridOptionsService, 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 if (this.columnGroup.isPadding()) {\n classes.push('ag-header-group-cell-no-group');\n var leafCols = this.columnGroup.getLeafColumns();\n if (leafCols.every(function (col) { return col.isSpanHeaderHeight(); })) {\n classes.push('ag-header-span-height');\n }\n }\n else {\n classes.push('ag-header-group-cell-with-group');\n }\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.gridOptionsService.is('suppressDragLeaveHidesColumns');\n var dragSource = {\n type: DragSourceType.HeaderCell,\n eElement: eHeaderGroup,\n getDefaultIconName: function () { return 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 () {\n hideColumnOnExit = !_this.gridOptionsService.is('suppressDragLeaveHidesColumns');\n allLeafColumns.forEach(function (col) { return col.setMoving(true, \"uiColumnDragged\"); });\n },\n onDragStopped: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(false, \"uiColumnDragged\"); }); },\n onGridEnter: function (dragItem) {\n var _a;\n if (hideColumnOnExit) {\n var unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(function (col) { return !col.getColDef().lockVisible; })) || [];\n _this.columnModel.setColumnsVisible(unlockedColumns, true, \"uiColumnMoved\");\n }\n },\n onGridExit: function (dragItem) {\n var _a;\n if (hideColumnOnExit) {\n var unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.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.gridOptionsService.is('suppressMovableColumns');\n return result;\n };\n __decorate$1l([\n Autowired('columnModel')\n ], HeaderGroupCellCtrl.prototype, \"columnModel\", void 0);\n __decorate$1l([\n Autowired('dragAndDropService')\n ], HeaderGroupCellCtrl.prototype, \"dragAndDropService\", void 0);\n __decorate$1l([\n Autowired('gridApi')\n ], HeaderGroupCellCtrl.prototype, \"gridApi\", void 0);\n __decorate$1l([\n Autowired('columnApi')\n ], HeaderGroupCellCtrl.prototype, \"columnApi\", void 0);\n return HeaderGroupCellCtrl;\n}(AbstractHeaderCellCtrl));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 instanceIdSequence = 0;\nvar HeaderRowCtrl = /** @class */ (function (_super) {\n __extends$1p(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 var typeClass = type == HeaderRowType.COLUMN_GROUP ? \"ag-header-row-column-group\" :\n type == HeaderRowType.FLOATING_FILTER ? \"ag-header-row-column-filter\" : \"ag-header-row-column\";\n _this.headerRowClass = \"ag-header-row \" + typeClass;\n return _this;\n }\n HeaderRowCtrl.prototype.postConstruct = function () {\n this.isPrintLayout = this.gridOptionsService.isDomLayout('print');\n this.isEnsureDomOrder = this.gridOptionsService.is('ensureDomOrder');\n };\n HeaderRowCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n /**\n *\n * @param comp Proxy to the actual component\n * @param initCompState Should the component be initialised with the current state of the controller. Default: true\n */\n HeaderRowCtrl.prototype.setComp = function (comp, initCompState) {\n if (initCompState === void 0) { initCompState = true; }\n this.comp = comp;\n if (initCompState) {\n this.onRowHeightChanged();\n this.onVirtualColumnsChanged();\n }\n // width is managed directly regardless of framework and so is not included in initCompState\n this.setWidth();\n this.addEventListeners();\n };\n HeaderRowCtrl.prototype.getHeaderRowClass = function () {\n return this.headerRowClass;\n };\n HeaderRowCtrl.prototype.getAriaRowIndex = function () {\n return this.rowIndex + 1;\n };\n HeaderRowCtrl.prototype.getTransform = function () {\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 return 'translateZ(0)';\n }\n };\n HeaderRowCtrl.prototype.addEventListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, this.onColumnResized.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, function (params) { return _this.onVirtualColumnsChanged(params.afterScroll); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_GRID_STYLES_CHANGED, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, this.onRowHeightChanged.bind(this));\n // when print layout changes, it changes what columns are in what section\n this.addManagedPropertyListener('domLayout', this.onDisplayedColumnsChanged.bind(this));\n this.addManagedPropertyListener('ensureDomOrder', function (e) { return _this.isEnsureDomOrder = e.currentValue; });\n this.addManagedPropertyListener('headerHeight', this.onRowHeightChanged.bind(this));\n this.addManagedPropertyListener('pivotHeaderHeight', this.onRowHeightChanged.bind(this));\n this.addManagedPropertyListener('groupHeaderHeight', this.onRowHeightChanged.bind(this));\n this.addManagedPropertyListener('pivotGroupHeaderHeight', this.onRowHeightChanged.bind(this));\n this.addManagedPropertyListener('floatingFiltersHeight', 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.isPrintLayout = this.gridOptionsService.isDomLayout('print');\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 if (this.isPrintLayout) {\n var pinned = this.pinned != null;\n if (pinned) {\n return 0;\n }\n return this.columnModel.getContainerWidth('right')\n + this.columnModel.getContainerWidth('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 _a = this.getTopAndHeight(), topOffset = _a.topOffset, rowHeight = _a.rowHeight;\n this.comp.setTop(topOffset + 'px');\n this.comp.setHeight(rowHeight + 'px');\n };\n HeaderRowCtrl.prototype.getTopAndHeight = function () {\n var headerRowCount = this.columnModel.getHeaderRowCount();\n var sizes = [];\n var numberOfFloating = 0;\n if (this.filterManager.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.columnModel.getFloatingFiltersHeight());\n }\n var topOffset = 0;\n for (var i = 0; i < this.rowIndex; i++) {\n topOffset += sizes[i];\n }\n var rowHeight = sizes[this.rowIndex];\n return { topOffset: topOffset, rowHeight: rowHeight };\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 (afterScroll) {\n if (afterScroll === void 0) { afterScroll = false; }\n var ctrlsToDisplay = this.getHeaderCtrls();\n var forceOrder = this.isEnsureDomOrder || this.isPrintLayout;\n this.comp.setHeaderCtrls(ctrlsToDisplay, forceOrder, afterScroll);\n };\n HeaderRowCtrl.prototype.getHeaderCtrls = 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 return ctrlsToDisplay;\n };\n HeaderRowCtrl.prototype.getColumnsInViewport = function () {\n return this.isPrintLayout ? 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 ['left', null, '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 HeaderRowCtrl.prototype.destroy = function () {\n var _this = this;\n iterateObject(this.headerCellCtrls, function (key, ctrl) {\n _this.destroyBean(ctrl);\n });\n this.headerCellCtrls = {};\n _super.prototype.destroy.call(this);\n };\n __decorate$1k([\n Autowired('columnModel')\n ], HeaderRowCtrl.prototype, \"columnModel\", void 0);\n __decorate$1k([\n Autowired('focusService')\n ], HeaderRowCtrl.prototype, \"focusService\", void 0);\n __decorate$1k([\n Autowired('filterManager')\n ], HeaderRowCtrl.prototype, \"filterManager\", void 0);\n __decorate$1k([\n PostConstruct\n ], HeaderRowCtrl.prototype, \"postConstruct\", null);\n return HeaderRowCtrl;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __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 __spreadArray$d = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar HeaderRowContainerCtrl = /** @class */ (function (_super) {\n __extends$1o(HeaderRowContainerCtrl, _super);\n function HeaderRowContainerCtrl(pinned) {\n var _this = _super.call(this) || this;\n _this.hidden = false;\n _this.includeFloatingFilter = false;\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.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, this.onDisplayedColumnsChanged.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.hidden && (_this.columnsRowCtrl == null || !keepColumns || _this.columnsRowCtrl.getRowIndex() !== rowIndex);\n var shouldDestroyInstance = needNewInstance || _this.hidden;\n if (shouldDestroyInstance) {\n _this.columnsRowCtrl = _this.destroyBean(_this.columnsRowCtrl);\n }\n if (needNewInstance) {\n _this.columnsRowCtrl = _this.createBean(new HeaderRowCtrl(rowIndex, _this.pinned, HeaderRowType.COLUMN));\n }\n };\n var refreshFilters = function () {\n _this.includeFloatingFilter = _this.filterManager.hasFloatingFilters() && !_this.hidden;\n var destroyPreviousComp = function () {\n _this.filtersRowCtrl = _this.destroyBean(_this.filtersRowCtrl);\n };\n if (!_this.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 = __spreadArray$d([], __read$f(this.groupsRowCtrls));\n if (this.columnsRowCtrl) {\n res.push(this.columnsRowCtrl);\n }\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.onDisplayedColumnsChanged = function () {\n var includeFloatingFilter = this.filterManager.hasFloatingFilters() && !this.hidden;\n if (this.includeFloatingFilter !== includeFloatingFilter) {\n this.refresh(true);\n }\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\"); }, true));\n };\n HeaderRowContainerCtrl.prototype.setHorizontalScroll = function (offset) {\n this.comp.setViewportScrollLeft(offset);\n };\n HeaderRowContainerCtrl.prototype.setupPinnedWidth = function () {\n var _this = this;\n if (this.pinned == null) {\n return;\n }\n var pinningLeft = this.pinned === 'left';\n var pinningRight = this.pinned === 'right';\n this.hidden = true;\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 hiddenChanged = _this.hidden !== hidden;\n var isRtl = _this.gridOptionsService.is('enableRtl');\n var scrollbarWidth = _this.gridOptionsService.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.setDisplayed(!hidden);\n if (hiddenChanged) {\n _this.hidden = hidden;\n _this.refresh();\n }\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.groupsRowCtrls.length + (this.columnsRowCtrl ? 1 : 0) + (this.filtersRowCtrl ? 1 : 0);\n };\n HeaderRowContainerCtrl.prototype.destroy = function () {\n if (this.filtersRowCtrl) {\n this.filtersRowCtrl = this.destroyBean(this.filtersRowCtrl);\n }\n if (this.columnsRowCtrl) {\n this.columnsRowCtrl = this.destroyBean(this.columnsRowCtrl);\n }\n if (this.groupsRowCtrls && this.groupsRowCtrls.length) {\n this.groupsRowCtrls = this.destroyBeans(this.groupsRowCtrls);\n }\n _super.prototype.destroy.call(this);\n };\n __decorate$1j([\n Autowired('ctrlsService')\n ], HeaderRowContainerCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1j([\n Autowired('scrollVisibleService')\n ], HeaderRowContainerCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$1j([\n Autowired('pinnedWidthService')\n ], HeaderRowContainerCtrl.prototype, \"pinnedWidthService\", void 0);\n __decorate$1j([\n Autowired('columnModel')\n ], HeaderRowContainerCtrl.prototype, \"columnModel\", void 0);\n __decorate$1j([\n Autowired('focusService')\n ], HeaderRowContainerCtrl.prototype, \"focusService\", void 0);\n __decorate$1j([\n Autowired('filterManager')\n ], HeaderRowContainerCtrl.prototype, \"filterManager\", void 0);\n return HeaderRowContainerCtrl;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 HeaderRowContainerComp = /** @class */ (function (_super) {\n __extends$1n(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 setDisplayed: function (displayed) { return _this.setDisplayed(displayed); },\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 setViewportScrollLeft: function (left) { return _this.getGui().scrollLeft = left; },\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 == 'left';\n var pinnedRight = this.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$1i([\n RefSelector('eCenterContainer')\n ], HeaderRowContainerComp.prototype, \"eCenterContainer\", void 0);\n __decorate$1i([\n PostConstruct\n ], HeaderRowContainerComp.prototype, \"init\", null);\n __decorate$1i([\n PreDestroy\n ], HeaderRowContainerComp.prototype, \"destroyRowComps\", null);\n return HeaderRowContainerComp;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 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$1m(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 /*\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 _a = isUp\n ? this.headerPositionUtils.getColumnVisibleParent(column, headerRowIndex)\n : this.headerPositionUtils.getColumnVisibleChild(column, headerRowIndex), nextRow = _a.nextRow, nextFocusColumn = _a.nextFocusColumn;\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 if (!skipColumn && !nextFocusColumn) {\n return false;\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.gridOptionsService.is('enableRtl');\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$1h([\n Autowired('focusService')\n ], HeaderNavigationService.prototype, \"focusService\", void 0);\n __decorate$1h([\n Autowired('headerPositionUtils')\n ], HeaderNavigationService.prototype, \"headerPositionUtils\", void 0);\n __decorate$1h([\n Autowired('ctrlsService')\n ], HeaderNavigationService.prototype, \"ctrlsService\", void 0);\n __decorate$1h([\n PostConstruct\n ], HeaderNavigationService.prototype, \"postConstruct\", null);\n HeaderNavigationService = __decorate$1h([\n Bean('headerNavigationService')\n ], HeaderNavigationService);\n return HeaderNavigationService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 GridHeaderCtrl = /** @class */ (function (_super) {\n __extends$1l(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.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.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.addManagedPropertyListener('headerHeight', listener);\n this.addManagedPropertyListener('pivotHeaderHeight', listener);\n this.addManagedPropertyListener('groupHeaderHeight', listener);\n this.addManagedPropertyListener('pivotGroupHeaderHeight', listener);\n this.addManagedPropertyListener('floatingFiltersHeight', 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 this.addManagedListener(this.eventService, Events.EVENT_GRID_STYLES_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, listener);\n };\n GridHeaderCtrl.prototype.getHeaderHeight = function () {\n return this.headerHeight;\n };\n GridHeaderCtrl.prototype.setHeaderHeight = function () {\n var columnModel = this.columnModel;\n var numberOfFloating = 0;\n var headerRowCount = columnModel.getHeaderRowCount();\n var totalHeaderHeight;\n var hasFloatingFilters = this.filterManager.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 * columnModel.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.onDisplayedColumnsChanged = function () {\n var columns = this.columnModel.getAllDisplayedColumns();\n var shouldAllowOverflow = columns.some(function (col) { return col.isSpanHeaderHeight(); });\n this.comp.addOrRemoveCssClass('ag-header-allow-overflow', shouldAllowOverflow);\n };\n GridHeaderCtrl.prototype.onTabKeyDown = function (e) {\n var isRtl = this.gridOptionsService.is('enableRtl');\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.gridOptionsService.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$1g([\n Autowired('headerNavigationService')\n ], GridHeaderCtrl.prototype, \"headerNavigationService\", void 0);\n __decorate$1g([\n Autowired('focusService')\n ], GridHeaderCtrl.prototype, \"focusService\", void 0);\n __decorate$1g([\n Autowired('columnModel')\n ], GridHeaderCtrl.prototype, \"columnModel\", void 0);\n __decorate$1g([\n Autowired('ctrlsService')\n ], GridHeaderCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1g([\n Autowired('filterManager')\n ], GridHeaderCtrl.prototype, \"filterManager\", void 0);\n return GridHeaderCtrl;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 GridHeaderComp = /** @class */ (function (_super) {\n __extends$1k(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('left'));\n addContainer(new HeaderRowContainerComp(null));\n addContainer(new HeaderRowContainerComp('right'));\n };\n GridHeaderComp.TEMPLATE = \"
    \";\n __decorate$1f([\n PostConstruct\n ], GridHeaderComp.prototype, \"postConstruct\", null);\n return GridHeaderComp;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 HorizontalResizeService = /** @class */ (function (_super) {\n __extends$1j(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 includeTouch: true,\n stopPropagationForTouch: true\n };\n this.dragService.addDragSource(dragSource);\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$1e([\n Autowired('dragService')\n ], HorizontalResizeService.prototype, \"dragService\", void 0);\n __decorate$1e([\n Autowired('ctrlsService')\n ], HorizontalResizeService.prototype, \"ctrlsService\", void 0);\n HorizontalResizeService = __decorate$1e([\n Bean('horizontalResizeService')\n ], HorizontalResizeService);\n return HorizontalResizeService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 StandardMenuFactory = /** @class */ (function (_super) {\n __extends$1i(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 }, 'columnMenu', mouseEvent.target);\n };\n StandardMenuFactory.prototype.showMenuAfterButtonClick = function (column, eventSource, containerType) {\n var _this = this;\n this.showPopup(column, function (eMenu) {\n _this.popupService.positionPopupByComponent({\n type: containerType,\n eventSource: eventSource,\n ePopup: eMenu,\n keepWithinBounds: true,\n position: 'under',\n column: column,\n });\n }, containerType, eventSource);\n };\n StandardMenuFactory.prototype.showPopup = function (column, positionCallback, containerType, 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 afterGuiDetached = function () { var _a; return (_a = filterWrapper.filterPromise) === null || _a === void 0 ? void 0 : _a.then(function (filter) { var _a; return (_a = filter === null || filter === void 0 ? void 0 : filter.afterGuiDetached) === null || _a === void 0 ? void 0 : _a.call(filter); }); };\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 afterGuiDetached();\n };\n var translate = this.localeService.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: containerType, 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 by passing an empty array\n return column.isFilterAllowed() && column.getMenuTabs(['filterMenuTab']).includes('filterMenuTab');\n };\n __decorate$1d([\n Autowired('filterManager')\n ], StandardMenuFactory.prototype, \"filterManager\", void 0);\n __decorate$1d([\n Autowired('popupService')\n ], StandardMenuFactory.prototype, \"popupService\", void 0);\n __decorate$1d([\n Autowired('focusService')\n ], StandardMenuFactory.prototype, \"focusService\", void 0);\n __decorate$1d([\n Autowired('ctrlsService')\n ], StandardMenuFactory.prototype, \"ctrlsService\", void 0);\n StandardMenuFactory = __decorate$1d([\n Bean('menuFactory')\n ], StandardMenuFactory);\n return StandardMenuFactory;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 TabbedLayout = /** @class */ (function (_super) {\n __extends$1h(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 var _this = this;\n this.createManagedBean(new ManagedFocusFeature(this.getFocusableElement(), {\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n this.addDestroyFunc(function () { var _a, _b, _c; return (_c = (_b = (_a = _this.activeItem) === null || _a === void 0 ? void 0 : _a.tabbedItem) === null || _b === void 0 ? void 0 : _b.afterDetachedCallback) === null || _c === void 0 ? void 0 : _c.call(_b); });\n };\n TabbedLayout.getTemplate = function (cssClass) {\n return /* html */ \"
    \\n
    \\n
    \\n
    \";\n };\n TabbedLayout.prototype.handleKeyDown = function (e) {\n var eDocument = this.gridOptionsService.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.gridOptionsService.is('enableRtl');\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.gridOptionsService.getDocument();\n var activeElement = eDocument.activeElement;\n var target = e.target;\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 return;\n }\n var nextEl = null;\n if (focusService.isTargetUnderManagedComponent(eBody, target)) {\n if (e.shiftKey) {\n nextEl = this.focusService.findFocusableElementBeforeTabGuard(eBody, target);\n }\n if (!nextEl) {\n nextEl = activeItem.eHeaderButton;\n }\n }\n if (!nextEl && eBody.contains(activeElement)) {\n nextEl = focusService.findNextFocusableElement(eBody, false, e.shiftKey);\n if (!nextEl) {\n nextEl = activeItem.eHeaderButton;\n }\n }\n if (nextEl) {\n nextEl.focus();\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 _a, _b;\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 (_b = (_a = this.activeItem.tabbedItem).afterDetachedCallback) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n eHeaderButton.classList.add('ag-tab-selected');\n this.activeItem = wrapper;\n };\n __decorate$1c([\n Autowired('focusService')\n ], TabbedLayout.prototype, \"focusService\", void 0);\n __decorate$1c([\n RefSelector('eHeader')\n ], TabbedLayout.prototype, \"eHeader\", void 0);\n __decorate$1c([\n RefSelector('eBody')\n ], TabbedLayout.prototype, \"eBody\", void 0);\n __decorate$1c([\n PostConstruct\n ], TabbedLayout.prototype, \"postConstruct\", null);\n return TabbedLayout;\n}(Component));\n\n/**\n * @deprecated Since v29 simpleHttpRequest has been deprecated as it was only meant for use in internal AG Grid documentation examples. Please use the browser fetch api directly.\n */\nfunction simpleHttpRequest(params) {\n doOnce(function () { return console.warn(\"AG Grid: Since v29 simpleHttpRequest has been deprecated as it was only meant for use in internal AG Grid documentation examples. Please use the browser fetch api directly.\"); }, 'simpleHttpRequest');\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 DEBOUNCE_DELAY = 50;\nvar ResizeObserverService = /** @class */ (function (_super) {\n __extends$1g(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 win = this.gridOptionsService.getWindow();\n var useBrowserResizeObserver = function () {\n var resizeObserver = new win.ResizeObserver(callback);\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.gridOptionsService.is('suppressBrowserResizeObserver');\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$1b([\n Bean('resizeObserverService')\n ], ResizeObserverService);\n return ResizeObserverService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AnimationFrameService = /** @class */ (function (_super) {\n __extends$1f(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.lastPage = 0;\n _this.lastScrollTop = 0;\n _this.taskCount = 0;\n _this.cancelledTasks = new Set();\n return _this;\n }\n AnimationFrameService.prototype.setScrollTop = function (scrollTop) {\n var isPaginationActive = this.gridOptionsService.is('pagination');\n this.scrollGoingDown = scrollTop >= this.lastScrollTop;\n if (isPaginationActive && scrollTop === 0) {\n var currentPage = this.paginationProxy.getCurrentPage();\n if (currentPage !== this.lastPage) {\n this.lastPage = currentPage;\n this.scrollGoingDown = true;\n }\n }\n this.lastScrollTop = scrollTop;\n };\n AnimationFrameService.prototype.init = function () {\n this.useAnimationFrame = !this.gridOptionsService.is('suppressAnimationFrame');\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().scrollGridIfNeeded();\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 this.requestAnimationFrame(callback);\n };\n AnimationFrameService.prototype.requestAnimationFrame = function (callback) {\n var win = this.gridOptionsService.getWindow();\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$1a([\n Autowired('ctrlsService')\n ], AnimationFrameService.prototype, \"ctrlsService\", void 0);\n __decorate$1a([\n Autowired('paginationProxy')\n ], AnimationFrameService.prototype, \"paginationProxy\", void 0);\n __decorate$1a([\n PostConstruct\n ], AnimationFrameService.prototype, \"init\", null);\n AnimationFrameService = __decorate$1a([\n Bean('animationFrameService')\n ], AnimationFrameService);\n return AnimationFrameService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AutoWidthCalculator = /** @class */ (function (_super) {\n __extends$1e(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 elements.forEach(function (el) { return _this.cloneItemIntoDummy(el, eDummyContainer); });\n // only append the dummyContainer to the DOM after it contains all the necessary items\n eBodyContainer.appendChild(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.getAutoSizePadding();\n return dummyContainerWidth + autoSizePadding;\n };\n AutoWidthCalculator.prototype.getAutoSizePadding = function () {\n var value = this.gridOptionsService.getNum('autoSizePadding');\n return value != null && value >= 0 ? value : 20;\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$19([\n Autowired('rowRenderer')\n ], AutoWidthCalculator.prototype, \"rowRenderer\", void 0);\n __decorate$19([\n Autowired('ctrlsService')\n ], AutoWidthCalculator.prototype, \"ctrlsService\", void 0);\n __decorate$19([\n Autowired('rowCssClassCalculator')\n ], AutoWidthCalculator.prototype, \"rowCssClassCalculator\", void 0);\n __decorate$19([\n PostConstruct\n ], AutoWidthCalculator.prototype, \"postConstruct\", null);\n AutoWidthCalculator = __decorate$19([\n Bean('autoWidthCalculator')\n ], AutoWidthCalculator);\n return AutoWidthCalculator;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __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$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 __spreadArray$c = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar StickyRowFeature = /** @class */ (function (_super) {\n __extends$1d(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.isClientSide = this.rowModel.getType() === 'clientSide';\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 _this = this;\n var height = 0;\n if (!this.gridOptionsService.isGroupRowsSticky()) {\n return this.refreshNodesAndContainerHeight([], height);\n }\n var stickyRows = [];\n var firstPixel = this.rowRenderer.getFirstVisibleVerticalPixel();\n var addStickyRow = function (stickyRow) {\n var _a, _b, _c;\n stickyRows.push(stickyRow);\n var lastChildBottom;\n if (_this.isClientSide) {\n var lastAncestor = stickyRow;\n while (lastAncestor.expanded) {\n if (lastAncestor.master) {\n lastAncestor = lastAncestor.detailNode;\n }\n else if (lastAncestor.childrenAfterSort) {\n // Tree Data will have `childrenAfterSort` without any nodes, but\n // the current node will still be marked as expansible.\n if (lastAncestor.childrenAfterSort.length === 0) {\n break;\n }\n lastAncestor = last(lastAncestor.childrenAfterSort);\n }\n }\n lastChildBottom = lastAncestor.rowTop + lastAncestor.rowHeight;\n }\n // if the rowModel is `serverSide` as only `clientSide` and `serverSide` create this feature.\n else {\n if (stickyRow.master) {\n lastChildBottom = stickyRow.detailNode.rowTop + stickyRow.detailNode.rowHeight;\n }\n else {\n var storeBounds = (_a = stickyRow.childStore) === null || _a === void 0 ? void 0 : _a.getStoreBounds();\n lastChildBottom = ((_b = storeBounds === null || storeBounds === void 0 ? void 0 : storeBounds.heightPx) !== null && _b !== void 0 ? _b : 0) + ((_c = storeBounds === null || storeBounds === void 0 ? void 0 : storeBounds.topPx) !== null && _c !== void 0 ? _c : 0);\n }\n }\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.isExpandable() && firstRow.expanded && firstRow.rowTop < firstPixelAfterStickyRows) {\n addStickyRow(firstRow);\n continue;\n }\n break;\n }\n return this.refreshNodesAndContainerHeight(stickyRows, height);\n };\n StickyRowFeature.prototype.refreshStickyNode = function (stickRowNode) {\n var allStickyNodes = [];\n for (var i = 0; i < this.stickyRowCtrls.length; i++) {\n var currentNode = this.stickyRowCtrls[i].getRowNode();\n if (currentNode !== stickRowNode) {\n allStickyNodes.push(currentNode);\n }\n }\n if (this.refreshNodesAndContainerHeight(allStickyNodes, this.containerHeight)) {\n this.checkStickyRows();\n }\n };\n StickyRowFeature.prototype.refreshNodesAndContainerHeight = function (allStickyNodes, height) {\n var e_1, _a, _b;\n var _this = this;\n var stickyRowsChanged = false;\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 if (removedCtrls.length || addedNodes.length) {\n stickyRowsChanged = true;\n }\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$2(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, __spreadArray$c([], __read$e(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 stickyRowsChanged = true;\n }\n return stickyRowsChanged;\n };\n __decorate$18([\n Autowired(\"rowModel\")\n ], StickyRowFeature.prototype, \"rowModel\", void 0);\n __decorate$18([\n Autowired(\"rowRenderer\")\n ], StickyRowFeature.prototype, \"rowRenderer\", void 0);\n __decorate$18([\n Autowired(\"ctrlsService\")\n ], StickyRowFeature.prototype, \"ctrlsService\", void 0);\n __decorate$18([\n PostConstruct\n ], StickyRowFeature.prototype, \"postConstruct\", null);\n return StickyRowFeature;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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$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 __spreadArray$b = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\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 DEFAULT_KEEP_DETAIL_ROW_COUNT = 10;\nvar RowRenderer = /** @class */ (function (_super) {\n __extends$1c(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.onBodyScroll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, this.redraw.bind(this));\n this.addManagedPropertyListener('domLayout', this.onDomLayoutChanged.bind(this));\n this.addManagedPropertyListener('rowClass', this.redrawRows.bind(this));\n if (this.gridOptionsService.isGroupRowsSticky()) {\n var rowModelType = this.rowModel.getType();\n if (rowModelType === 'clientSide' || rowModelType === 'serverSide') {\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.gridOptionsService.isDomLayout('print');\n this.embedFullWidthRows = this.printLayout || this.gridOptionsService.is('embedFullWidthRows');\n this.redrawAfterModelUpdate();\n };\n RowRenderer.prototype.initialiseCache = function () {\n if (this.gridOptionsService.is('keepDetailRows')) {\n var countProp = this.getKeepDetailRowsCount();\n var count = countProp != null ? countProp : 3;\n this.cachedRowCtrls = new RowCtrlCache(count);\n }\n };\n RowRenderer.prototype.getKeepDetailRowsCount = function () {\n var keepDetailRowsCount = this.gridOptionsService.getNum('keepDetailRowsCount');\n if (exists(keepDetailRowsCount) && keepDetailRowsCount > 0) {\n return keepDetailRowsCount;\n }\n return DEFAULT_KEEP_DETAIL_ROW_COUNT;\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 var isEnsureDomOrder = this.gridOptionsService.is('ensureDomOrder');\n var isPrintLayout = this.gridOptionsService.isDomLayout('print');\n if (isEnsureDomOrder || isPrintLayout) {\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 if (zombieList.length > 0 || cachedList.length > 0) {\n // Only spread if we need to.\n this.allRowCtrls = __spreadArray$b(__spreadArray$b(__spreadArray$b([], __read$d(liveList)), __read$d(zombieList)), __read$d(cachedList));\n }\n else {\n this.allRowCtrls = liveList;\n }\n };\n RowRenderer.prototype.onCellFocusChanged = function (event) {\n this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onCellFocused(event); });\n this.getFullWidthRowCtrls().forEach(function (rowCtrl) { return rowCtrl.onFullWidthRowFocused(event); });\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.onCellFocusChanged(event);\n });\n this.addManagedListener(this.eventService, Events.EVENT_CELL_FOCUS_CLEARED, function () {\n _this.onCellFocusChanged();\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.gridOptionsService.is('enableRangeSelection');\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('leftChanged', leftChangedListener);\n col.addEventListener('widthChanged', widthChangedListener);\n col.addEventListener('firstRightPinnedChanged', firstRightPinnedChangedListener);\n col.addEventListener('lastLeftPinnedChanged', lastLeftPinnedChangedListener);\n col.addEventListener('colDefChanged', colDefChangedListener);\n _this.destroyFuncsForColumnListeners.push(function () {\n col.removeEventListener('leftChanged', leftChangedListener);\n col.removeEventListener('widthChanged', widthChangedListener);\n col.removeEventListener('firstRightPinnedChanged', firstRightPinnedChangedListener);\n col.removeEventListener('lastLeftPinnedChanged', lastLeftPinnedChangedListener);\n col.removeEventListener('colDefChanged', colDefChangedListener);\n });\n });\n };\n RowRenderer.prototype.onDomLayoutChanged = function () {\n var printLayout = this.gridOptionsService.isDomLayout('print');\n var embedFullWidthRows = printLayout || this.gridOptionsService.is('embedFullWidthRows');\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({ domLayoutChanged: true });\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.getCentreRowCtrls = function () {\n return this.allRowCtrls;\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 RowRenderer.prototype.redrawRow = function (rowNode, suppressEvent) {\n var _this = this;\n if (suppressEvent === void 0) { suppressEvent = false; }\n if (rowNode.sticky) {\n this.stickyRowFeature.refreshStickyNode(rowNode);\n }\n else {\n var destroyAndRecreateCtrl = function (dataStruct) {\n var ctrl = dataStruct[rowNode.rowIndex];\n if (!ctrl) {\n return;\n }\n if (ctrl.getRowNode() !== rowNode) {\n // if the node is in the wrong place, then the row model is responsible for triggering a full refresh.\n return;\n }\n ctrl.destroyFirstPass();\n ctrl.destroySecondPass();\n dataStruct[rowNode.rowIndex] = _this.createRowCon(rowNode, false, false);\n };\n switch (rowNode.rowPinned) {\n case 'top':\n destroyAndRecreateCtrl(this.topRowCtrls);\n case 'bottom':\n destroyAndRecreateCtrl(this.bottomRowCtrls);\n default:\n destroyAndRecreateCtrl(this.rowCtrlsByRowIndex);\n this.updateAllRowCtrls();\n }\n }\n if (!suppressEvent) {\n this.dispatchDisplayedRowsChanged(false);\n }\n };\n RowRenderer.prototype.redrawRows = function (rowNodes) {\n var _this = this;\n // if no row nodes provided, then refresh everything\n var partialRefresh = rowNodes != null;\n if (partialRefresh) {\n rowNodes === null || rowNodes === void 0 ? void 0 : rowNodes.forEach(function (node) { return _this.redrawRow(node, true); });\n this.dispatchDisplayedRowsChanged(false);\n return;\n }\n this.redrawAfterModelUpdate();\n };\n RowRenderer.prototype.getCellToRestoreFocusToAfterRefresh = function (params) {\n var focusedCell = (params === null || params === void 0 ? void 0 : params.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.gridOptionsService.getDocument();\n var activeElement = eDocument.activeElement;\n var cellDomData = this.gridOptionsService.getDomData(activeElement, CellCtrl.DOM_DATA_KEY_CELL_CTRL);\n var rowDomData = this.gridOptionsService.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 on layout change as rows could change from normal DOM layout\n // back to the grid's row positioning.\n var recycleRows = !params.domLayoutChanged && !!params.recycleRows;\n var animate = params.animate && this.gridOptionsService.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.getRowsToRecycle() : null;\n if (!recycleRows) {\n this.removeAllRowComps();\n }\n this.workOutFirstAndLastRowsToRender();\n if (this.stickyRowFeature) {\n this.stickyRowFeature.checkStickyRows();\n }\n this.recycleRows(rowsToRecycle, animate);\n this.gridBodyCtrl.updateRowCount();\n if (!params.onlyBody) {\n this.refreshFloatingRowComps();\n }\n this.dispatchDisplayedRowsChanged();\n // if a cell was focused before, ensure focus now.\n if (focusedCell != null) {\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.gridOptionsService.is('suppressScrollOnNewData');\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 // we don't wish to dispatch an event as the rowRenderer is not capable of changing the selected cell,\n // so we mock a change event for the full width rows and cells to ensure they update to the newly selected\n // state\n this.focusService.setRestoreFocusedCell(cellPosition);\n this.onCellFocusChanged({\n rowIndex: cellPosition.rowIndex,\n column: cellPosition.column,\n rowPinned: cellPosition.rowPinned,\n forceBrowserFocus: true,\n preventScrollOnBrowserFocus: true,\n api: this.beans.gridApi,\n columnApi: this.beans.columnApi,\n context: this.beans.gridOptionsService.context,\n type: 'mock',\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 var rowCtrls = this.getAllRowCtrls();\n var rowCtrlsLength = rowCtrls.length;\n for (var i = 0; i < rowCtrlsLength; i++) {\n var cellCtrls = rowCtrls[i].getAllCellCtrls();\n var cellCtrlsLength = cellCtrls.length;\n for (var j = 0; j < cellCtrlsLength; j++) {\n res.push(cellCtrls[j]);\n }\n }\n return res;\n };\n RowRenderer.prototype.getAllRowCtrls = function () {\n var e_1, _a;\n var stickyRowCtrls = (this.stickyRowFeature && this.stickyRowFeature.getStickyRowCtrls()) || [];\n var res = __spreadArray$b(__spreadArray$b(__spreadArray$b([], __read$d(this.topRowCtrls)), __read$d(this.bottomRowCtrls)), __read$d(stickyRowCtrls));\n try {\n for (var _b = __values$1(Object.keys(this.rowCtrlsByRowIndex)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n res.push(this.rowCtrlsByRowIndex[key]);\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 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 var _this = this;\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 if (params.rowNodes) {\n // refresh the full width rows too\n this.getRowCtrls(params.rowNodes).forEach(function (rowCtrl) {\n if (!rowCtrl.isFullWidth()) {\n return;\n }\n var refreshed = rowCtrl.refreshFullWidth();\n if (!refreshed) {\n _this.redrawRow(rowCtrl.getRowNode(), true);\n }\n });\n this.dispatchDisplayedRowsChanged(false);\n }\n };\n RowRenderer.prototype.getCellRendererInstances = function (params) {\n var _this = this;\n var _a;\n var cellRenderers = this.getCellCtrls(params.rowNodes, params.columns)\n .map(function (cellCtrl) { return cellCtrl.getCellRenderer(); })\n .filter(function (renderer) { return renderer != null; });\n if ((_a = params.columns) === null || _a === void 0 ? void 0 : _a.length) {\n return cellRenderers;\n }\n var fullWidthRenderers = [];\n var rowIdMap = this.mapRowNodes(params.rowNodes);\n this.getAllRowCtrls().forEach(function (rowCtrl) {\n if (rowIdMap && !_this.isRowInMap(rowCtrl.getRowNode(), rowIdMap)) {\n return;\n }\n if (!rowCtrl.isFullWidth()) {\n return;\n }\n var fullWidthRenderer = rowCtrl.getFullWidthCellRenderer();\n if (fullWidthRenderer) {\n fullWidthRenderers.push(fullWidthRenderer);\n }\n });\n return __spreadArray$b(__spreadArray$b([], __read$d(fullWidthRenderers)), __read$d(cellRenderers));\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 === 'top') {\n res.top[id] = rowNode;\n }\n else if (rowNode.rowPinned === '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 === 'bottom') {\n return rowIdsMap.bottom[id] != null;\n }\n if (floating === 'top') {\n return rowIdsMap.top[id] != null;\n }\n return rowIdsMap.normal[id] != null;\n };\n /**\n * @param rowNodes if provided, returns the RowCtrls for the provided rowNodes. otherwise returns all RowCtrls.\n */\n RowRenderer.prototype.getRowCtrls = function (rowNodes) {\n var _this = this;\n var rowIdsMap = this.mapRowNodes(rowNodes);\n var allRowCtrls = this.getAllRowCtrls();\n if (!rowNodes || !rowIdsMap) {\n return allRowCtrls;\n }\n return allRowCtrls.filter(function (rowCtrl) {\n var rowNode = rowCtrl.getRowNode();\n return _this.isRowInMap(rowNode, rowIdsMap);\n });\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 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 res = [];\n this.getRowCtrls(rowNodes).forEach(function (rowCtrl) {\n rowCtrl.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 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.getRowsToRecycle = 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 RowRenderer.prototype.onBodyScroll = function (e) {\n if (e.direction !== 'vertical') {\n return;\n }\n this.redraw({ afterScroll: true });\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.redraw = function (params) {\n if (params === void 0) { params = {}; }\n var afterScroll = params.afterScroll;\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 var oldFirstRow = this.firstRenderedRow;\n var oldLastRow = this.lastRenderedRow;\n this.workOutFirstAndLastRowsToRender();\n var hasStickyRowChanges = false;\n if (this.stickyRowFeature) {\n hasStickyRowChanges = this.stickyRowFeature.checkStickyRows();\n }\n var rangeChanged = this.firstRenderedRow !== oldFirstRow || this.lastRenderedRow !== oldLastRow;\n if (afterScroll && !hasStickyRowChanges && !rangeChanged) {\n return;\n }\n this.getLockOnRefresh();\n this.recycleRows(null, false, afterScroll);\n this.releaseLockOnRefresh();\n this.dispatchDisplayedRowsChanged(afterScroll);\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 var ret = [];\n for (var i = 0; i < indexesToDraw.length; i++) {\n var currRow = indexesToDraw[i];\n var rowNode = this.paginationProxy.getRow(currRow);\n if (rowNode && !rowNode.sticky) {\n ret.push(currRow);\n }\n }\n return ret;\n };\n RowRenderer.prototype.recycleRows = function (rowsToRecycle, animate, afterScroll) {\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 var _this = this;\n if (animate === void 0) { animate = false; }\n if (afterScroll === void 0) { afterScroll = false; }\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.gridOptionsService.is('suppressAnimationFrame') && !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 (afterScroll) {\n if (afterScroll === void 0) { afterScroll = false; }\n var event = { type: Events.EVENT_DISPLAYED_ROWS_CHANGED, afterScroll: afterScroll };\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.redraw({ afterScroll: true });\n };\n RowRenderer.prototype.getFullWidthRowCtrls = function (rowNodes) {\n var _this = this;\n var rowNodesMap = this.mapRowNodes(rowNodes);\n return this.getAllRowCtrls().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.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.getRowBuffer = function () {\n var rowBuffer = this.gridOptionsService.getNum('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 rowBuffer = 0;\n this.gridOptionsService.set('rowBuffer', 0);\n }\n }\n else {\n rowBuffer = 10;\n }\n return rowBuffer;\n };\n RowRenderer.prototype.getRowBufferInPixels = function () {\n var rowsToBuffer = this.getRowBuffer();\n var defaultRowHeight = this.gridOptionsService.getRowHeightAsNumber();\n return rowsToBuffer * defaultRowHeight;\n };\n RowRenderer.prototype.workOutFirstAndLastRowsToRender = function () {\n this.rowContainerHeightService.updateOffset();\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 this.environment.refreshRowHeightVariable();\n newFirst = this.paginationProxy.getPageFirstRow();\n newLast = this.paginationProxy.getPageLastRow();\n }\n else {\n var bufferPixels = this.getRowBufferInPixels();\n var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n var suppressRowVirtualisation = this.gridOptionsService.is('suppressRowVirtualisation');\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.gridOptionsService.isDomLayout('normal');\n var suppressRowCountRestriction = this.gridOptionsService.is('suppressMaxRenderedRowRestriction');\n var rowBufferMaxSize = Math.max(this.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.gridOptionsService.is('suppressAnimationFrame');\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 'top':\n rowCtrl = this.topRowCtrls[rowIndex];\n break;\n case '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 'top':\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case '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$17([\n Autowired(\"animationFrameService\")\n ], RowRenderer.prototype, \"animationFrameService\", void 0);\n __decorate$17([\n Autowired(\"paginationProxy\")\n ], RowRenderer.prototype, \"paginationProxy\", void 0);\n __decorate$17([\n Autowired(\"columnModel\")\n ], RowRenderer.prototype, \"columnModel\", void 0);\n __decorate$17([\n Autowired(\"pinnedRowModel\")\n ], RowRenderer.prototype, \"pinnedRowModel\", void 0);\n __decorate$17([\n Autowired(\"rowModel\")\n ], RowRenderer.prototype, \"rowModel\", void 0);\n __decorate$17([\n Autowired(\"focusService\")\n ], RowRenderer.prototype, \"focusService\", void 0);\n __decorate$17([\n Autowired(\"beans\")\n ], RowRenderer.prototype, \"beans\", void 0);\n __decorate$17([\n Autowired(\"rowContainerHeightService\")\n ], RowRenderer.prototype, \"rowContainerHeightService\", void 0);\n __decorate$17([\n Autowired(\"ctrlsService\")\n ], RowRenderer.prototype, \"ctrlsService\", void 0);\n __decorate$17([\n PostConstruct\n ], RowRenderer.prototype, \"postConstruct\", null);\n RowRenderer = __decorate$17([\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 ValueFormatterService = /** @class */ (function (_super) {\n __extends$1b(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 formatter = 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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n if (typeof formatter === 'function') {\n result = formatter(params);\n }\n else {\n result = this.expressionService.evaluate(formatter, params);\n }\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$16([\n Autowired('expressionService')\n ], ValueFormatterService.prototype, \"expressionService\", void 0);\n ValueFormatterService = __decorate$16([\n Bean('valueFormatterService')\n ], ValueFormatterService);\n return ValueFormatterService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 PinnedRowModel = /** @class */ (function (_super) {\n __extends$1a(PinnedRowModel, _super);\n function PinnedRowModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PinnedRowModel.prototype.init = function () {\n this.setPinnedTopRowData(this.gridOptionsService.get('pinnedTopRowData'));\n this.setPinnedBottomRowData(this.gridOptionsService.get('pinnedBottomRowData'));\n };\n PinnedRowModel.prototype.isEmpty = function (floating) {\n var rows = floating === '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 === '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 ? 'top' : 'bottom';\n rowNode.setRowTop(nextRowTop_1);\n rowNode.setRowHeight(_this.gridOptionsService.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$15([\n Autowired('beans')\n ], PinnedRowModel.prototype, \"beans\", void 0);\n __decorate$15([\n PostConstruct\n ], PinnedRowModel.prototype, \"init\", null);\n PinnedRowModel = __decorate$15([\n Bean('pinnedRowModel')\n ], PinnedRowModel);\n return PinnedRowModel;\n}(BeanStub));\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// 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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$19(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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __param$7 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar RowNodeBlockLoader = /** @class */ (function (_super) {\n __extends$18(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.getMaxConcurrentDatasourceRequests();\n var blockLoadDebounceMillis = this.gridOptionsService.getNum('blockLoadDebounceMillis');\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.getMaxConcurrentDatasourceRequests = function () {\n var res = this.gridOptionsService.getNum('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 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 this.dispatchEvent({ type: RowNodeBlockLoader_1.BLOCK_LOADED_EVENT });\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.getAvailableLoadingCount();\n var blocksToLoad = this.blocks.filter(function (block) { return (block.getState() === RowNodeBlock.STATE_WAITING_TO_LOAD); }).slice(0, loadAvailability);\n this.registerLoads(blocksToLoad.length);\n blocksToLoad.forEach(function (block) { return block.load(); });\n this.printCacheStatus();\n };\n RowNodeBlockLoader.prototype.getBlockState = function () {\n if (this.gridOptionsService.isRowModelType('serverSide')) {\n var ssrm = this.rowModel;\n return ssrm.getBlockStates();\n }\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 RowNodeBlockLoader.prototype.registerLoads = function (count) {\n this.activeBlockLoadsCount += count;\n };\n RowNodeBlockLoader.prototype.getAvailableLoadingCount = function () {\n return this.maxConcurrentRequests !== undefined ? this.maxConcurrentRequests - this.activeBlockLoadsCount : undefined;\n };\n var RowNodeBlockLoader_1;\n RowNodeBlockLoader.BLOCK_LOADED_EVENT = 'blockLoaded';\n RowNodeBlockLoader.BLOCK_LOADER_FINISHED_EVENT = 'blockLoaderFinished';\n __decorate$14([\n Autowired('rowModel')\n ], RowNodeBlockLoader.prototype, \"rowModel\", void 0);\n __decorate$14([\n PostConstruct\n ], RowNodeBlockLoader.prototype, \"postConstruct\", null);\n __decorate$14([\n __param$7(0, Qualifier('loggerFactory'))\n ], RowNodeBlockLoader.prototype, \"setBeans\", null);\n RowNodeBlockLoader = RowNodeBlockLoader_1 = __decorate$14([\n Bean('rowNodeBlockLoader')\n ], RowNodeBlockLoader);\n return RowNodeBlockLoader;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 PaginationProxy = /** @class */ (function (_super) {\n __extends$17(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.gridOptionsService.is('pagination');\n this.paginateChildRows = this.isPaginateChildRows();\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));\n this.addManagedPropertyListener('pagination', this.onPaginationPageSizeChanged.bind(this));\n this.addManagedPropertyListener('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.isPaginateChildRows = function () {\n var shouldPaginate = this.gridOptionsService.is('groupRemoveSingleChildren') || this.gridOptionsService.is('groupRemoveLowestSingleChildren');\n if (shouldPaginate) {\n return true;\n }\n return this.gridOptionsService.is('paginateChildRows');\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.active = this.gridOptionsService.is('pagination');\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 || typeof this.currentPage !== 'number') {\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.forEachNode = function (callback) {\n return this.rowModel.forEachNode(callback);\n };\n PaginationProxy.prototype.forEachNodeOnPage = function (callback) {\n var firstRow = this.getPageFirstRow();\n var lastRow = this.getPageLastRow();\n for (var i = firstRow; i <= lastRow; i++) {\n var node = this.getRow(i);\n if (node) {\n callback(node);\n }\n }\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.gridOptionsService.getNum('paginationPageSize');\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.adjustCurrentPageIfInvalid = function () {\n if (this.currentPage >= this.totalPages) {\n this.currentPage = this.totalPages - 1;\n }\n if (!isFinite(this.currentPage) || isNaN(this.currentPage) || this.currentPage < 0) {\n this.currentPage = 0;\n }\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 this.adjustCurrentPageIfInvalid();\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 this.adjustCurrentPageIfInvalid();\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$13([\n Autowired('rowModel')\n ], PaginationProxy.prototype, \"rowModel\", void 0);\n __decorate$13([\n PostConstruct\n ], PaginationProxy.prototype, \"postConstruct\", null);\n PaginationProxy = __decorate$13([\n Bean('paginationProxy')\n ], PaginationProxy);\n return PaginationProxy;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 StylingService = /** @class */ (function (_super) {\n __extends$16(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$12([\n Autowired('expressionService')\n ], StylingService.prototype, \"expressionService\", void 0);\n StylingService = __decorate$12([\n Bean('stylingService')\n ], StylingService);\n return StylingService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$15(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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$14(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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputDateField = /** @class */ (function (_super) {\n __extends$13(AgInputDateField, _super);\n function AgInputDateField(config) {\n return _super.call(this, config, 'ag-date-field', 'date') || this;\n }\n AgInputDateField.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.addManagedListener(this.eInput, 'wheel', this.onWheel.bind(this));\n // ensures that the input element is focussed when a clear button is clicked,\n // unless using safari as there is no clear button and focus does not work properly\n var usingSafari = isBrowserSafari();\n this.addManagedListener(this.eInput, 'mousedown', function () {\n if (_this.isDisabled() || usingSafari) {\n return;\n }\n _this.eInput.focus();\n });\n this.eInput.step = 'any';\n };\n AgInputDateField.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 AgInputDateField.prototype.setMin = function (minDate) {\n var _a;\n var min = minDate instanceof Date ? (_a = serialiseDate(minDate !== null && minDate !== void 0 ? minDate : null, false)) !== null && _a !== void 0 ? _a : undefined : minDate;\n if (this.min === min) {\n return this;\n }\n this.min = min;\n addOrRemoveAttribute(this.eInput, 'min', min);\n return this;\n };\n AgInputDateField.prototype.setMax = function (maxDate) {\n var _a;\n var max = maxDate instanceof Date ? (_a = serialiseDate(maxDate !== null && maxDate !== void 0 ? maxDate : null, false)) !== null && _a !== void 0 ? _a : undefined : maxDate;\n if (this.max === max) {\n return this;\n }\n this.max = max;\n addOrRemoveAttribute(this.eInput, 'max', max);\n return this;\n };\n AgInputDateField.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 AgInputDateField.prototype.getDate = function () {\n var _a;\n if (!this.eInput.validity.valid) {\n return undefined;\n }\n return (_a = parseDateTimeFromString(this.getValue())) !== null && _a !== void 0 ? _a : undefined;\n };\n AgInputDateField.prototype.setDate = function (date, silent) {\n this.setValue(serialiseDate(date !== null && date !== void 0 ? date : null, false), silent);\n };\n return AgInputDateField;\n}(AgInputTextField));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$12(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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 RichSelectRow = /** @class */ (function (_super) {\n __extends$11(RichSelectRow, _super);\n function RichSelectRow(params, wrapperEl) {\n var _this = _super.call(this, /* html */ \"
    \") || this;\n _this.params = params;\n _this.wrapperEl = wrapperEl;\n return _this;\n }\n RichSelectRow.prototype.postConstruct = function () {\n this.addManagedListener(this.getGui(), 'mouseup', this.onMouseUp.bind(this));\n };\n RichSelectRow.prototype.setState = function (value) {\n var formattedValue = '';\n if (this.params.valueFormatter) {\n formattedValue = this.params.valueFormatter(value);\n }\n var rendererSuccessful = this.populateWithRenderer(value, formattedValue);\n if (!rendererSuccessful) {\n this.populateWithoutRenderer(value, formattedValue);\n }\n this.value = value;\n };\n RichSelectRow.prototype.highlightString = function (matchString) {\n var parsedValue = this.parsedValue;\n if (this.params.cellRenderer || !exists(parsedValue)) {\n return;\n }\n if (exists(matchString)) {\n var index = parsedValue === null || parsedValue === void 0 ? void 0 : parsedValue.toLocaleLowerCase().indexOf(matchString.toLocaleLowerCase());\n if (index >= 0) {\n var highlightEndIndex = index + matchString.length;\n var startPart = escapeString(parsedValue.slice(0, index), true);\n var highlightedPart = escapeString(parsedValue.slice(index, highlightEndIndex), true);\n var endPart = escapeString(parsedValue.slice(highlightEndIndex));\n this.renderValueWithoutRenderer(startPart + \"\" + highlightedPart + \"\" + endPart);\n }\n }\n else {\n this.renderValueWithoutRenderer(parsedValue);\n }\n };\n RichSelectRow.prototype.updateHighlighted = function (highlighted) {\n var _a;\n var eGui = this.getGui();\n var parentId = \"ag-rich-select-row-\" + this.getCompId();\n (_a = eGui.parentElement) === null || _a === void 0 ? void 0 : _a.setAttribute('id', parentId);\n if (highlighted) {\n var parentAriaEl = this.getParentComponent().getAriaElement();\n setAriaActiveDescendant(parentAriaEl, parentId);\n this.wrapperEl.setAttribute('data-active-option', parentId);\n }\n setAriaSelected(eGui.parentElement, highlighted);\n this.addOrRemoveCssClass('ag-rich-select-row-selected', highlighted);\n };\n RichSelectRow.prototype.populateWithoutRenderer = function (value, valueFormatted) {\n var eDocument = this.gridOptionsService.getDocument();\n var eGui = this.getGui();\n var span = eDocument.createElement('span');\n span.style.overflow = 'hidden';\n span.style.textOverflow = 'ellipsis';\n var parsedValue = escapeString(exists(valueFormatted) ? valueFormatted : value, true);\n this.parsedValue = exists(parsedValue) ? parsedValue : null;\n eGui.appendChild(span);\n this.renderValueWithoutRenderer(parsedValue);\n };\n RichSelectRow.prototype.renderValueWithoutRenderer = function (value) {\n var span = this.getGui().querySelector('span');\n if (!span) {\n return;\n }\n span.innerHTML = exists(value) ? value : ' ';\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 cellRendererPromise;\n var userCompDetails;\n if (this.params.cellRenderer) {\n userCompDetails = this.userComponentFactory.getCellRendererDetails(this.params, {\n value: value,\n valueFormatted: valueFormatted,\n api: this.gridOptionsService.api\n });\n }\n if (userCompDetails) {\n cellRendererPromise = userCompDetails.newAgStackInstance();\n }\n if (cellRendererPromise) {\n bindCellRendererToHtmlElement(cellRendererPromise, this.getGui());\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 RichSelectRow.prototype.onMouseUp = function () {\n var parent = this.getParentComponent();\n var event = {\n type: Events.EVENT_FIELD_PICKER_VALUE_SELECTED,\n fromEnterKey: false,\n value: this.value\n };\n parent === null || parent === void 0 ? void 0 : parent.dispatchEvent(event);\n };\n __decorate$11([\n Autowired('userComponentFactory')\n ], RichSelectRow.prototype, \"userComponentFactory\", void 0);\n __decorate$11([\n PostConstruct\n ], RichSelectRow.prototype, \"postConstruct\", null);\n return RichSelectRow;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 __spreadArray$a = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar TabGuardComp = /** @class */ (function (_super) {\n __extends$10(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 var cls = side === 'top' ? TabGuardClassNames.TAB_GUARD_TOP : TabGuardClassNames.TAB_GUARD_BOTTOM;\n tabGuard.classList.add(TabGuardClassNames.TAB_GUARD, cls);\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, __spreadArray$a([], __read$c(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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 VirtualList = /** @class */ (function (_super) {\n __extends$$(VirtualList, _super);\n function VirtualList(params) {\n var _this = _super.call(this, VirtualList.getTemplate((params === null || params === void 0 ? void 0 : params.cssIdentifier) || 'default')) || this;\n _this.renderedRows = new Map();\n _this.rowHeight = 20;\n var _a = params || {}, _b = _a.cssIdentifier, cssIdentifier = _b === void 0 ? 'default' : _b, _c = _a.ariaRole, ariaRole = _c === void 0 ? 'listbox' : _c, listName = _a.listName;\n _this.cssIdentifier = cssIdentifier;\n _this.ariaRole = ariaRole;\n _this.listName = listName;\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 this.addManagedListener(this.eventService, Events.EVENT_GRID_STYLES_CHANGED, this.onGridStylesChanged.bind(this));\n };\n VirtualList.prototype.onGridStylesChanged = function () {\n this.rowHeight = this.getItemHeight();\n this.refresh();\n };\n VirtualList.prototype.setAriaProperties = function () {\n var translate = this.localeService.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 _this = this;\n // do this in an animation frame to prevent loops\n var listener = function () { return _this.animationFrameService.requestAnimationFrame(function () { return _this.drawVirtualRows(); }); };\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 stopPropagationForAgGrid(e);\n this.forceFocusOutOfContainer(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 VirtualList.prototype.getItemHeight = function () {\n return this.environment.getListItemHeight();\n };\n /**\n * Returns true if the view had to be scrolled, otherwise, false.\n */\n VirtualList.prototype.ensureIndexVisible = function (index, scrollPartialIntoView) {\n if (scrollPartialIntoView === void 0) { scrollPartialIntoView = true; }\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 false;\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 diff = scrollPartialIntoView ? 0 : this.rowHeight;\n var viewportScrolledPastRow = viewportTopPixel > rowTopPixel + diff;\n var viewportScrolledBeforeRow = viewportBottomPixel < rowBottomPixel - diff;\n if (viewportScrolledPastRow) {\n // if row is before, scroll up with row at top\n eGui.scrollTop = rowTopPixel;\n return true;\n }\n if (viewportScrolledBeforeRow) {\n // if row is below, scroll down with row at bottom\n var newScrollPosition = rowBottomPixel - viewportHeight;\n eGui.scrollTop = newScrollPosition;\n return true;\n }\n return false;\n };\n VirtualList.prototype.setComponentCreator = function (componentCreator) {\n this.componentCreator = componentCreator;\n };\n VirtualList.prototype.setComponentUpdater = function (componentUpdater) {\n this.componentUpdater = componentUpdater;\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 (softRefresh) {\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 if (_this.canSoftRefresh(softRefresh)) {\n _this.drawVirtualRows(true);\n }\n else {\n _this.clearVirtualRows();\n _this.drawVirtualRows();\n }\n });\n };\n VirtualList.prototype.canSoftRefresh = function (softRefresh) {\n return !!(softRefresh && this.renderedRows.size && typeof this.model.areRowsEqual === 'function' && this.componentUpdater);\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 (softRefresh) {\n if (!this.isAlive() || !this.model) {\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, softRefresh);\n };\n VirtualList.prototype.ensureRowsRendered = function (start, finish, softRefresh) {\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 if (softRefresh) {\n // refresh any existing rows\n this.refreshRows();\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, value: value });\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.refreshRows = function () {\n var _this = this;\n var rowCount = this.model.getRowCount();\n this.renderedRows.forEach(function (row, rowIndex) {\n var _a, _b;\n if (rowIndex >= rowCount) {\n _this.removeRow(rowIndex);\n }\n else {\n var newValue = _this.model.getRow(rowIndex);\n if ((_b = (_a = _this.model).areRowsEqual) === null || _b === void 0 ? void 0 : _b.call(_a, row.value, newValue)) {\n _this.componentUpdater(newValue, row.rowComponent);\n }\n else {\n // to be replaced later\n _this.removeRow(rowIndex);\n }\n }\n });\n };\n VirtualList.prototype.addScrollListener = function () {\n var _this = this;\n this.addGuiEventListener('scroll', function () { return _this.drawVirtualRows(); }, { passive: true });\n };\n VirtualList.prototype.setModel = function (model) {\n this.model = model;\n };\n VirtualList.prototype.getAriaElement = function () {\n return this.eContainer;\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$10([\n Autowired('resizeObserverService')\n ], VirtualList.prototype, \"resizeObserverService\", void 0);\n __decorate$10([\n Autowired('animationFrameService')\n ], VirtualList.prototype, \"animationFrameService\", void 0);\n __decorate$10([\n RefSelector('eContainer')\n ], VirtualList.prototype, \"eContainer\", void 0);\n __decorate$10([\n PostConstruct\n ], VirtualList.prototype, \"postConstruct\", null);\n return VirtualList;\n}(TabGuardComp));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$$ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TEMPLATE = /* html */ \"\\n
    \\n
    \\n
    \\n
    \\n \\n
    \\n
    \\n
    \";\nvar AgRichSelect = /** @class */ (function (_super) {\n __extends$_(AgRichSelect, _super);\n function AgRichSelect(config) {\n var _a, _b;\n var _this = _super.call(this, __assign$6(__assign$6({ pickerAriaLabelKey: 'ariaLabelRichSelectField', pickerAriaLabelValue: 'Rich Select Field', pickerType: 'ag-list', className: 'ag-rich-select', pickerIcon: 'smallDown', ariaRole: 'combobox', template: (_a = config === null || config === void 0 ? void 0 : config.template) !== null && _a !== void 0 ? _a : TEMPLATE, modalPicker: false }, config), { \n // maxPickerHeight needs to be set after expanding `config`\n maxPickerHeight: (_b = config === null || config === void 0 ? void 0 : config.maxPickerHeight) !== null && _b !== void 0 ? _b : 'calc(var(--ag-row-height) * 6.5)' })) || this;\n _this.searchString = '';\n _this.highlightedItem = -1;\n _this.lastRowHovered = -1;\n _this.searchStringCreator = null;\n var _c = config || {}, cellRowHeight = _c.cellRowHeight, value = _c.value, valueList = _c.valueList, searchStringCreator = _c.searchStringCreator;\n if (cellRowHeight != null) {\n _this.cellRowHeight = cellRowHeight;\n }\n if (value != null) {\n _this.value = value;\n }\n if (valueList != null) {\n _this.values = valueList;\n }\n if (searchStringCreator) {\n _this.searchStringCreator = searchStringCreator;\n }\n return _this;\n }\n AgRichSelect.prototype.postConstruct = function () {\n var _this = this;\n var _a;\n _super.prototype.postConstruct.call(this);\n this.createLoadingElement();\n this.createListComponent();\n var _b = this.config, allowTyping = _b.allowTyping, placeholder = _b.placeholder;\n if (allowTyping) {\n this.eInput\n .setAutoComplete(false)\n .setInputPlaceholder(placeholder);\n this.eDisplayField.classList.add('ag-hidden');\n }\n else {\n this.eInput.setDisplayed(false);\n }\n this.eWrapper.tabIndex = (_a = this.gridOptionsService.getNum('tabIndex')) !== null && _a !== void 0 ? _a : 0;\n var _c = this.config.searchDebounceDelay, searchDebounceDelay = _c === void 0 ? 300 : _c;\n this.clearSearchString = debounce(this.clearSearchString, searchDebounceDelay);\n this.renderSelectedValue();\n if (allowTyping) {\n this.eInput.onValueChange(function (value) { return _this.searchTextFromString(value); });\n this.addManagedListener(this.eWrapper, 'focus', this.onWrapperFocus.bind(this));\n }\n this.addManagedListener(this.eWrapper, 'focusout', this.onWrapperFocusOut.bind(this));\n };\n AgRichSelect.prototype.createLoadingElement = function () {\n var eDocument = this.gridOptionsService.getDocument();\n var translate = this.localeService.getLocaleTextFunc();\n var el = eDocument.createElement('div');\n el.classList.add('ag-loading-text');\n el.innerText = translate('loadingOoo', 'Loading...');\n this.eLoading = el;\n };\n AgRichSelect.prototype.createListComponent = function () {\n var _this = this;\n this.listComponent = this.createBean(new VirtualList({ cssIdentifier: 'rich-select' }));\n this.listComponent.setComponentCreator(this.createRowComponent.bind(this));\n this.listComponent.setParentComponent(this);\n this.addManagedListener(this.listComponent, Events.EVENT_FIELD_PICKER_VALUE_SELECTED, function (e) {\n _this.onListValueSelected(e.value, e.fromEnterKey);\n });\n var cellRowHeight = this.cellRowHeight;\n if (cellRowHeight) {\n this.listComponent.setRowHeight(cellRowHeight);\n }\n var eListGui = this.listComponent.getGui();\n var eListAriaEl = this.listComponent.getAriaElement();\n this.addManagedListener(eListGui, 'mousemove', this.onPickerMouseMove.bind(this));\n this.addManagedListener(eListGui, 'mousedown', function (e) { return e.preventDefault(); });\n eListGui.classList.add('ag-rich-select-list');\n var listId = \"ag-rich-select-list-\" + this.listComponent.getCompId();\n eListAriaEl.setAttribute('id', listId);\n var translate = this.localeService.getLocaleTextFunc();\n var ariaLabel = translate(this.config.pickerAriaLabelKey, this.config.pickerAriaLabelValue);\n setAriaLabel(eListAriaEl, ariaLabel);\n setAriaControls(this.eWrapper, eListAriaEl);\n };\n AgRichSelect.prototype.renderSelectedValue = function () {\n var _this = this;\n var _a = this, value = _a.value, eDisplayField = _a.eDisplayField, config = _a.config;\n var valueFormatted = this.config.valueFormatter ? this.config.valueFormatter(value) : value;\n if (config.allowTyping) {\n this.eInput.setValue(valueFormatted);\n return;\n }\n var userCompDetails;\n if (config.cellRenderer) {\n userCompDetails = this.userComponentFactory.getCellRendererDetails(this.config, {\n value: value,\n valueFormatted: valueFormatted,\n api: this.gridOptionsService.api\n });\n }\n var userCompDetailsPromise;\n if (userCompDetails) {\n userCompDetailsPromise = userCompDetails.newAgStackInstance();\n }\n if (userCompDetailsPromise) {\n clearElement(eDisplayField);\n bindCellRendererToHtmlElement(userCompDetailsPromise, eDisplayField);\n userCompDetailsPromise.then(function (renderer) {\n _this.addDestroyFunc(function () { return _this.getContext().destroyBean(renderer); });\n });\n }\n else {\n if (exists(this.value)) {\n eDisplayField.innerText = valueFormatted;\n eDisplayField.classList.remove('ag-display-as-placeholder');\n }\n else {\n var placeholder = config.placeholder;\n if (exists(placeholder)) {\n eDisplayField.innerHTML = \"\" + escapeString(placeholder);\n eDisplayField.classList.add('ag-display-as-placeholder');\n }\n else {\n clearElement(eDisplayField);\n }\n }\n }\n };\n AgRichSelect.prototype.getCurrentValueIndex = function () {\n var _a = this, currentList = _a.currentList, value = _a.value;\n if (value == null) {\n return -1;\n }\n for (var i = 0; i < currentList.length; i++) {\n if (currentList[i] === value) {\n return i;\n }\n }\n return -1;\n };\n AgRichSelect.prototype.highlightFilterMatch = function () {\n var _this = this;\n var _a;\n (_a = this.listComponent) === null || _a === void 0 ? void 0 : _a.forEachRenderedRow(function (cmp, idx) {\n cmp.highlightString(_this.searchString);\n });\n };\n AgRichSelect.prototype.highlightSelectedValue = function (index) {\n var _this = this;\n var _a;\n if (index == null) {\n index = this.getCurrentValueIndex();\n }\n this.highlightedItem = index;\n (_a = this.listComponent) === null || _a === void 0 ? void 0 : _a.forEachRenderedRow(function (cmp, idx) {\n var highlighted = index === -1 ? false : _this.highlightedItem === idx;\n cmp.updateHighlighted(highlighted);\n });\n };\n AgRichSelect.prototype.setRowHeight = function (height) {\n if (height !== this.cellRowHeight) {\n this.cellRowHeight = height;\n }\n if (this.listComponent) {\n this.listComponent.setRowHeight(height);\n }\n };\n AgRichSelect.prototype.createPickerComponent = function () {\n var values = this.values;\n if (values) {\n this.setValueList({ valueList: values });\n }\n // do not create the picker every time to save state\n return this.listComponent;\n };\n AgRichSelect.prototype.setSearchStringCreator = function (searchStringFn) {\n this.searchStringCreator = searchStringFn;\n };\n AgRichSelect.prototype.setValueList = function (params) {\n var valueList = params.valueList, refresh = params.refresh;\n if (!this.listComponent) {\n return;\n }\n if (this.currentList === valueList) {\n return;\n }\n this.currentList = valueList;\n this.listComponent.setModel({\n getRowCount: function () { return valueList.length; },\n getRow: function (index) { return valueList[index]; }\n });\n if (refresh) {\n // if `values` is not present, it means the valuesList was set asynchronously\n if (!this.values) {\n this.values = valueList;\n if (this.isPickerDisplayed) {\n this.showCurrentValueInPicker();\n }\n }\n else {\n this.listComponent.refresh();\n }\n }\n };\n AgRichSelect.prototype.showPicker = function () {\n _super.prototype.showPicker.call(this);\n this.showCurrentValueInPicker();\n };\n AgRichSelect.prototype.showCurrentValueInPicker = function () {\n var _a, _b;\n if (!this.listComponent) {\n return;\n }\n if (!this.currentList) {\n if (this.isPickerDisplayed && this.eLoading) {\n this.listComponent.appendChild(this.eLoading);\n }\n return;\n }\n if ((_a = this.eLoading) === null || _a === void 0 ? void 0 : _a.offsetParent) {\n (_b = this.eLoading.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(this.eLoading);\n }\n var currentValueIndex = this.getCurrentValueIndex();\n if (currentValueIndex !== -1) {\n // make sure the virtual list has been sized correctly\n this.listComponent.refresh();\n this.listComponent.ensureIndexVisible(currentValueIndex);\n // this second call to refresh is necessary to force scrolled elements\n // to be rendered with the correct index info.\n this.listComponent.refresh(true);\n this.highlightSelectedValue(currentValueIndex);\n }\n else {\n this.listComponent.refresh();\n }\n };\n AgRichSelect.prototype.beforeHidePicker = function () {\n this.highlightedItem = -1;\n _super.prototype.beforeHidePicker.call(this);\n };\n AgRichSelect.prototype.onWrapperFocus = function (e) {\n if (this.eInput) {\n this.eInput.getFocusableElement().focus();\n }\n };\n AgRichSelect.prototype.onWrapperFocusOut = function (e) {\n if (!this.eWrapper.contains(e.relatedTarget)) {\n this.hidePicker();\n }\n };\n AgRichSelect.prototype.buildSearchStringFromKeyboardEvent = function (searchKey) {\n var key = searchKey.key;\n if (key === KeyCode.BACKSPACE) {\n this.searchString = this.searchString.slice(0, -1);\n key = '';\n }\n else if (!isEventFromPrintableCharacter(searchKey)) {\n return;\n }\n searchKey.preventDefault();\n this.searchTextFromCharacter(key);\n };\n AgRichSelect.prototype.searchTextFromCharacter = function (char) {\n this.searchString += char;\n this.runSearch();\n this.clearSearchString();\n };\n AgRichSelect.prototype.searchTextFromString = function (str) {\n if (str == null) {\n str = '';\n }\n this.searchString = str;\n this.runSearch();\n };\n AgRichSelect.prototype.buildSearchStrings = function (values) {\n var _a = this.config.valueFormatter, valueFormatter = _a === void 0 ? (function (value) { return value; }) : _a;\n var searchStrings;\n if (typeof values[0] === 'number' || typeof values[0] === 'string') {\n searchStrings = values.map(function (v) { return valueFormatter(v); });\n }\n else if (typeof values[0] === 'object' && this.searchStringCreator) {\n searchStrings = this.searchStringCreator(values);\n }\n return searchStrings;\n };\n AgRichSelect.prototype.getSuggestionsAndFilteredValues = function (searchValue, valueList) {\n var _this = this;\n var suggestions = [];\n var filteredValues = [];\n if (!searchValue.length) {\n return { suggestions: suggestions, filteredValues: filteredValues };\n }\n var _a = this.config, allowTyping = _a.allowTyping, _b = _a.searchType, searchType = _b === void 0 ? 'fuzzy' : _b, filterList = _a.filterList;\n var shouldFilterList = filterList && allowTyping;\n if (searchType === 'fuzzy') {\n var fuzzySearchResult = fuzzySuggestions(this.searchString, valueList, true);\n suggestions = fuzzySearchResult.values;\n var indices = fuzzySearchResult.indices;\n if (shouldFilterList && indices.length) {\n for (var i = 0; i < indices.length; i++) {\n filteredValues.push(this.values[indices[i]]);\n }\n }\n }\n else {\n suggestions = valueList.filter(function (val, idx) {\n var currentValue = val.toLocaleLowerCase();\n var valueToMatch = _this.searchString.toLocaleLowerCase();\n var isMatch = searchType === 'match' ? currentValue.startsWith(valueToMatch) : currentValue.indexOf(valueToMatch) !== -1;\n if (shouldFilterList && isMatch) {\n filteredValues.push(_this.values[idx]);\n }\n return isMatch;\n });\n }\n return { suggestions: suggestions, filteredValues: filteredValues };\n };\n AgRichSelect.prototype.filterListModel = function (filteredValues) {\n var _a = this.config, allowTyping = _a.allowTyping, filterList = _a.filterList;\n if (!allowTyping || !filterList) {\n return;\n }\n this.setValueList({ valueList: filteredValues, refresh: true });\n };\n AgRichSelect.prototype.runSearch = function () {\n var _a, _b, _c;\n var values = this.values;\n var searchStrings = this.buildSearchStrings(values);\n if (!searchStrings) {\n this.highlightSelectedValue(-1);\n return;\n }\n var _d = this.getSuggestionsAndFilteredValues(this.searchString, searchStrings), suggestions = _d.suggestions, filteredValues = _d.filteredValues;\n var _e = this.config, allowTyping = _e.allowTyping, filterList = _e.filterList, highlightMatch = _e.highlightMatch, _f = _e.searchType, searchType = _f === void 0 ? 'fuzzy' : _f;\n var filterValueLen = filteredValues.length;\n var shouldFilter = !!(allowTyping && filterList && this.searchString !== '');\n if (shouldFilter) {\n this.filterListModel(shouldFilter ? filteredValues : values);\n }\n if (suggestions.length) {\n var topSuggestionIndex = shouldFilter ? 0 : searchStrings.indexOf(suggestions[0]);\n this.selectListItem(topSuggestionIndex);\n if (highlightMatch && searchType !== 'fuzzy') {\n this.highlightFilterMatch();\n }\n }\n else {\n this.highlightSelectedValue(-1);\n if (!shouldFilter || filterValueLen) {\n (_a = this.listComponent) === null || _a === void 0 ? void 0 : _a.ensureIndexVisible(0);\n }\n else if (shouldFilter) {\n this.getAriaElement().removeAttribute('data-active-option');\n var eListAriaEl = (_b = this.listComponent) === null || _b === void 0 ? void 0 : _b.getAriaElement();\n if (eListAriaEl) {\n setAriaActiveDescendant(eListAriaEl, null);\n }\n }\n }\n var eListGui = (_c = this.listComponent) === null || _c === void 0 ? void 0 : _c.getGui();\n eListGui === null || eListGui === void 0 ? void 0 : eListGui.classList.toggle('ag-hidden', shouldFilter && !filterValueLen);\n };\n AgRichSelect.prototype.clearSearchString = function () {\n this.searchString = '';\n };\n AgRichSelect.prototype.selectListItem = function (index, preventUnnecessaryScroll, skipRefresh) {\n if (!this.isPickerDisplayed || !this.listComponent || index < 0 || index >= this.currentList.length) {\n return;\n }\n var wasScrolled = this.listComponent.ensureIndexVisible(index, !preventUnnecessaryScroll);\n if (wasScrolled && !skipRefresh) {\n this.listComponent.refresh(true);\n }\n this.highlightSelectedValue(index);\n };\n AgRichSelect.prototype.setValue = function (value, silent, fromPicker) {\n var index = this.currentList.indexOf(value);\n if (index === -1) {\n return this;\n }\n this.value = value;\n if (!fromPicker) {\n this.selectListItem(index);\n }\n this.renderSelectedValue();\n return _super.prototype.setValue.call(this, value, silent);\n };\n AgRichSelect.prototype.createRowComponent = function (value) {\n var row = new RichSelectRow(this.config, this.eWrapper);\n row.setParentComponent(this.listComponent);\n this.getContext().createBean(row);\n row.setState(value);\n var _a = this.config, highlightMatch = _a.highlightMatch, _b = _a.searchType, searchType = _b === void 0 ? 'fuzzy' : _b;\n if (highlightMatch && searchType !== 'fuzzy') {\n row.highlightString(this.searchString);\n }\n return row;\n };\n AgRichSelect.prototype.getRowForMouseEvent = function (e) {\n var listComponent = this.listComponent;\n if (!listComponent) {\n return -1;\n }\n var eGui = listComponent === null || listComponent === void 0 ? void 0 : listComponent.getGui();\n var rect = eGui.getBoundingClientRect();\n var scrollTop = listComponent.getScrollTop();\n var mouseY = e.clientY - rect.top + scrollTop;\n return Math.floor(mouseY / listComponent.getRowHeight());\n };\n AgRichSelect.prototype.onPickerMouseMove = function (e) {\n if (!this.listComponent) {\n return;\n }\n var row = this.getRowForMouseEvent(e);\n if (row !== -1 && row != this.lastRowHovered) {\n this.lastRowHovered = row;\n this.selectListItem(row, true, true);\n }\n };\n AgRichSelect.prototype.onNavigationKeyDown = function (event, key) {\n // if we don't preventDefault the page body and/or grid scroll will move.\n event.preventDefault();\n var isDown = key === KeyCode.DOWN;\n if (!this.isPickerDisplayed && isDown) {\n this.showPicker();\n return;\n }\n var oldIndex = this.highlightedItem;\n var diff = isDown ? 1 : -1;\n var newIndex = oldIndex === -1 ? 0 : oldIndex + diff;\n this.selectListItem(newIndex, false, true);\n };\n AgRichSelect.prototype.onEnterKeyDown = function (e) {\n if (!this.isPickerDisplayed) {\n return;\n }\n e.preventDefault();\n this.onListValueSelected(this.currentList[this.highlightedItem], true);\n };\n AgRichSelect.prototype.onListValueSelected = function (value, fromEnterKey) {\n this.setValue(value, false, true);\n this.dispatchPickerEvent(value, fromEnterKey);\n this.hidePicker();\n };\n AgRichSelect.prototype.dispatchPickerEvent = function (value, fromEnterKey) {\n var event = {\n type: Events.EVENT_FIELD_PICKER_VALUE_SELECTED,\n fromEnterKey: fromEnterKey,\n value: value\n };\n this.dispatchEvent(event);\n };\n AgRichSelect.prototype.getFocusableElement = function () {\n var allowTyping = this.config.allowTyping;\n if (allowTyping) {\n return this.eInput.getFocusableElement();\n }\n return _super.prototype.getFocusableElement.call(this);\n };\n AgRichSelect.prototype.onKeyDown = function (event) {\n var key = event.key;\n var allowTyping = this.config.allowTyping;\n switch (key) {\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n if (!allowTyping) {\n event.preventDefault();\n }\n break;\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n event.preventDefault();\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n this.onNavigationKeyDown(event, key);\n break;\n case KeyCode.ESCAPE:\n if (this.isPickerDisplayed) {\n event.preventDefault();\n stopPropagationForAgGrid(event);\n this.hidePicker();\n }\n break;\n case KeyCode.ENTER:\n this.onEnterKeyDown(event);\n break;\n default:\n if (!allowTyping) {\n this.buildSearchStringFromKeyboardEvent(event);\n }\n }\n };\n AgRichSelect.prototype.destroy = function () {\n if (this.listComponent) {\n this.destroyBean(this.listComponent);\n this.listComponent = undefined;\n }\n this.eLoading = undefined;\n _super.prototype.destroy.call(this);\n };\n __decorate$$([\n Autowired('userComponentFactory')\n ], AgRichSelect.prototype, \"userComponentFactory\", void 0);\n __decorate$$([\n RefSelector('eInput')\n ], AgRichSelect.prototype, \"eInput\", void 0);\n return AgRichSelect;\n}(AgPickerField));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 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 = Events.EVENT_FIELD_VALUE_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: Events.EVENT_FIELD_VALUE_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$_([\n RefSelector('eLabel')\n ], AgSlider.prototype, \"eLabel\", void 0);\n __decorate$_([\n RefSelector('eSlider')\n ], AgSlider.prototype, \"eSlider\", void 0);\n __decorate$_([\n RefSelector('eText')\n ], AgSlider.prototype, \"eText\", void 0);\n __decorate$_([\n PostConstruct\n ], AgSlider.prototype, \"init\", null);\n return AgSlider;\n}(AgAbstractLabel));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AgGroupComponent = /** @class */ (function (_super) {\n __extends$Y(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.localeService.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.gridOptionsService, null));\n this.eGroupOpenedIcon.appendChild(createIcon('columnSelectOpen', this.gridOptionsService, 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 setDisplayed(itemToHide, !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$Z([\n RefSelector('eTitleBar')\n ], AgGroupComponent.prototype, \"eTitleBar\", void 0);\n __decorate$Z([\n RefSelector('eGroupOpenedIcon')\n ], AgGroupComponent.prototype, \"eGroupOpenedIcon\", void 0);\n __decorate$Z([\n RefSelector('eGroupClosedIcon')\n ], AgGroupComponent.prototype, \"eGroupClosedIcon\", void 0);\n __decorate$Z([\n RefSelector('eToolbar')\n ], AgGroupComponent.prototype, \"eToolbar\", void 0);\n __decorate$Z([\n RefSelector('cbGroupEnabled')\n ], AgGroupComponent.prototype, \"cbGroupEnabled\", void 0);\n __decorate$Z([\n RefSelector('eTitle')\n ], AgGroupComponent.prototype, \"eTitle\", void 0);\n __decorate$Z([\n RefSelector('eContainer')\n ], AgGroupComponent.prototype, \"eContainer\", void 0);\n __decorate$Z([\n PostConstruct\n ], AgGroupComponent.prototype, \"postConstruct\", null);\n return AgGroupComponent;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 __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 AgMenuList = /** @class */ (function (_super) {\n __extends$X(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$5(__assign$5({}, 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.gridOptionsService.is('enableRtl') ? 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$Y([\n Autowired('focusService')\n ], AgMenuList.prototype, \"focusService\", void 0);\n __decorate$Y([\n PostConstruct\n ], AgMenuList.prototype, \"postConstruct\", null);\n return AgMenuList;\n}(TabGuardComp));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AgMenuPanel = /** @class */ (function (_super) {\n __extends$W(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$X([\n PostConstruct\n ], AgMenuPanel.prototype, \"postConstruct\", null);\n return AgMenuPanel;\n}(TabGuardComp));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AgMenuItemComponent = /** @class */ (function (_super) {\n __extends$V(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.localeService.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.gridOptionsService));\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.gridOptionsService.is('enableBrowserTooltips')) {\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.gridOptionsService.is('enableRtl') ? 'smallLeft' : 'smallRight';\n setAriaExpanded(eGui, false);\n pointer.appendChild(createIconNoSpan(iconName, this.gridOptionsService));\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$W([\n Autowired('popupService')\n ], AgMenuItemComponent.prototype, \"popupService\", void 0);\n __decorate$W([\n PostConstruct\n ], AgMenuItemComponent.prototype, \"init\", null);\n return AgMenuItemComponent;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AgPanel = /** @class */ (function (_super) {\n __extends$U(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,\n width: width,\n minHeight: minHeight,\n height: height,\n centered: centered,\n x: x,\n y: y,\n 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 setDisplayed(this.eTitleBar, false);\n }\n this.addManagedListener(this.eTitleBar, 'mousedown', function (e) {\n var eDocument = _this.gridOptionsService.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.gridOptionsService);\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$V([\n RefSelector('eContentWrapper')\n ], AgPanel.prototype, \"eContentWrapper\", void 0);\n __decorate$V([\n RefSelector('eTitleBar')\n ], AgPanel.prototype, \"eTitleBar\", void 0);\n __decorate$V([\n RefSelector('eTitleBarButtons')\n ], AgPanel.prototype, \"eTitleBarButtons\", void 0);\n __decorate$V([\n RefSelector('eTitle')\n ], AgPanel.prototype, \"eTitle\", void 0);\n __decorate$V([\n PostConstruct\n ], AgPanel.prototype, \"postConstruct\", null);\n return AgPanel;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 AgDialog = /** @class */ (function (_super) {\n __extends$T(AgDialog, _super);\n function AgDialog(config) {\n var _this = _super.call(this, __assign$4(__assign$4({}, 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, afterGuiAttached = _a.afterGuiAttached;\n var translate = this.localeService.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 afterGuiAttached: afterGuiAttached\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.buildMaximizeAndMinimizeElements();\n this.refreshMaximizeIcon();\n maximizeButtonComp.addManagedListener(maximizeButtonComp.getGui(), '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 AgDialog.prototype.buildMaximizeAndMinimizeElements = function () {\n var maximizeButtonComp = this.maximizeButtonComp =\n this.createBean(new Component(/* html */ \"
    \"));\n var eGui = maximizeButtonComp.getGui();\n this.maximizeIcon = createIconNoSpan('maximize', this.gridOptionsService);\n eGui.appendChild(this.maximizeIcon);\n this.maximizeIcon.classList.add('ag-panel-title-bar-button-icon');\n this.minimizeIcon = createIconNoSpan('minimize', this.gridOptionsService);\n eGui.appendChild(this.minimizeIcon);\n this.minimizeIcon.classList.add('ag-panel-title-bar-button-icon');\n return maximizeButtonComp;\n };\n __decorate$U([\n Autowired('popupService')\n ], AgDialog.prototype, \"popupService\", void 0);\n return AgDialog;\n}(AgPanel));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 __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 __spreadArray$9 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\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$S(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.gridOptionsService.get('popupParent');\n if (ePopupParent) {\n return ePopupParent;\n }\n return this.gridCtrl.getGui();\n };\n PopupService.prototype.positionPopupForMenu = function (params) {\n var eventSource = params.eventSource, ePopup = params.ePopup;\n var popupIdx = this.getPopupIndex(ePopup);\n if (popupIdx !== -1) {\n var popup = this.popupList[popupIdx];\n popup.alignedToElement = eventSource;\n }\n var sourceRect = eventSource.getBoundingClientRect();\n var parentRect = this.getParentRect();\n var y = this.keepXYWithinBounds(ePopup, sourceRect.top - parentRect.top, DIRECTION.vertical);\n var minWidth = (ePopup.clientWidth > 0) ? ePopup.clientWidth : 200;\n 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.gridOptionsService.is('enableRtl')) {\n // for RTL, try left first\n x = xLeftPosition();\n if (x < 0) {\n x = xRightPosition();\n this.setAlignedStyles(ePopup, 'left');\n }\n if (x > maxX) {\n x = 0;\n this.setAlignedStyles(ePopup, 'right');\n }\n }\n else {\n // for LTR, try right first\n x = xRightPosition();\n if (x > maxX) {\n x = xLeftPosition();\n this.setAlignedStyles(ePopup, 'right');\n }\n if (x < 0) {\n x = 0;\n this.setAlignedStyles(ePopup, 'left');\n }\n }\n ePopup.style.left = x + \"px\";\n 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 _this = this;\n var ePopup = params.ePopup, nudgeX = params.nudgeX, nudgeY = params.nudgeY, skipObserver = params.skipObserver;\n this.positionPopup({\n ePopup: ePopup,\n nudgeX: nudgeX,\n nudgeY: nudgeY,\n keepWithinBounds: true,\n skipObserver: skipObserver,\n updatePosition: function () { return _this.calculatePointerAlign(params.mouseEvent); },\n postProcessCallback: function () { return _this.callPostProcessPopup(params.type, params.ePopup, null, params.mouseEvent, params.column, params.rowNode); }\n });\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.positionPopupByComponent = function (params) {\n var _this = this;\n var ePopup = params.ePopup, nudgeX = params.nudgeX, nudgeY = params.nudgeY, keepWithinBounds = params.keepWithinBounds, eventSource = params.eventSource, _a = params.alignSide, alignSide = _a === void 0 ? 'left' : _a, _b = params.position, position = _b === void 0 ? 'over' : _b, column = params.column, rowNode = params.rowNode, type = params.type;\n var sourceRect = eventSource.getBoundingClientRect();\n var parentRect = this.getParentRect();\n var popupIdx = this.getPopupIndex(ePopup);\n if (popupIdx !== -1) {\n var popup = this.popupList[popupIdx];\n popup.alignedToElement = eventSource;\n }\n var updatePosition = function () {\n var x = sourceRect.left - parentRect.left;\n if (alignSide === 'right') {\n x -= (ePopup.offsetWidth - sourceRect.width);\n }\n var y;\n if (position === 'over') {\n y = (sourceRect.top - parentRect.top);\n _this.setAlignedStyles(ePopup, 'over');\n }\n else {\n _this.setAlignedStyles(ePopup, 'under');\n var alignSide_1 = _this.shouldRenderUnderOrAbove(ePopup, sourceRect, parentRect, params.nudgeY || 0);\n if (alignSide_1 === 'under') {\n y = (sourceRect.top - parentRect.top + sourceRect.height);\n }\n else {\n y = (sourceRect.top - ePopup.offsetHeight - (nudgeY || 0) * 2) - parentRect.top;\n }\n }\n return { x: x, y: y };\n };\n this.positionPopup({\n ePopup: ePopup,\n nudgeX: nudgeX,\n nudgeY: nudgeY,\n keepWithinBounds: keepWithinBounds,\n updatePosition: updatePosition,\n postProcessCallback: function () { return _this.callPostProcessPopup(type, ePopup, eventSource, null, column, rowNode); }\n });\n };\n PopupService.prototype.shouldRenderUnderOrAbove = function (ePopup, targetCompRect, parentRect, nudgeY) {\n var spaceAvailableUnder = parentRect.bottom - targetCompRect.bottom;\n var spaceAvailableAbove = targetCompRect.top - parentRect.top;\n var spaceRequired = ePopup.offsetHeight + nudgeY;\n if (spaceAvailableUnder > spaceRequired) {\n return 'under';\n }\n if (spaceAvailableAbove > spaceRequired || spaceAvailableAbove > spaceAvailableUnder) {\n return 'above';\n }\n return 'under';\n };\n PopupService.prototype.setAlignedStyles = function (ePopup, positioned) {\n var popupIdx = this.getPopupIndex(ePopup);\n if (popupIdx === -1) {\n return;\n }\n var popup = this.popupList[popupIdx];\n var alignedToElement = popup.alignedToElement;\n if (!alignedToElement) {\n return;\n }\n var positions = ['right', 'left', 'over', 'above', 'under'];\n positions.forEach(function (position) {\n alignedToElement.classList.remove(\"ag-has-popup-positioned-\" + position);\n ePopup.classList.remove(\"ag-popup-positioned-\" + position);\n });\n if (!positioned) {\n return;\n }\n alignedToElement.classList.add(\"ag-has-popup-positioned-\" + positioned);\n ePopup.classList.add(\"ag-popup-positioned-\" + positioned);\n };\n PopupService.prototype.callPostProcessPopup = function (type, ePopup, eventSource, mouseEvent, column, rowNode) {\n var callback = this.gridOptionsService.getCallback('postProcessPopup');\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 ePopup = params.ePopup, keepWithinBounds = params.keepWithinBounds, nudgeX = params.nudgeX, nudgeY = params.nudgeY, skipObserver = params.skipObserver, updatePosition = params.updatePosition;\n var lastSize = { width: 0, height: 0 };\n var updatePopupPosition = function (fromResizeObserver) {\n if (fromResizeObserver === void 0) { fromResizeObserver = false; }\n var _a = updatePosition(), x = _a.x, y = _a.y;\n if (fromResizeObserver &&\n ePopup.clientWidth === lastSize.width &&\n ePopup.clientHeight === lastSize.height) {\n return;\n }\n lastSize.width = ePopup.clientWidth;\n lastSize.height = ePopup.clientHeight;\n if (nudgeX) {\n x += nudgeX;\n }\n if (nudgeY) {\n y += nudgeY;\n }\n // if popup is overflowing to the bottom, move it up\n if (keepWithinBounds) {\n x = _this.keepXYWithinBounds(ePopup, x, DIRECTION.horizontal);\n y = _this.keepXYWithinBounds(ePopup, y, DIRECTION.vertical);\n }\n ePopup.style.left = x + \"px\";\n ePopup.style.top = y + \"px\";\n if (params.postProcessCallback) {\n params.postProcessCallback();\n }\n };\n updatePopupPosition();\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, function () { return updatePopupPosition(true); });\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.gridOptionsService.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 return getElementRectWithOffset(popupParent);\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.gridOptionsService.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.addPopup = function (params) {\n var eDocument = this.gridOptionsService.getDocument();\n var eChild = params.eChild, ariaLabel = params.ariaLabel, alwaysOnTop = params.alwaysOnTop, positionCallback = params.positionCallback, anchorToElement = params.anchorToElement;\n if (!eDocument) {\n console.warn('AG Grid: could not find the document, document is empty');\n return { hideFunc: function () { } };\n }\n var pos = this.getPopupIndex(eChild);\n if (pos !== -1) {\n var popup = this.popupList[pos];\n return { hideFunc: popup.hideFunc };\n }\n this.initialisePopupPosition(eChild);\n var wrapperEl = this.createPopupWrapper(eChild, ariaLabel, !!alwaysOnTop);\n var removeListeners = this.addEventListenersToPopup(__assign$3(__assign$3({}, params), { wrapperEl: wrapperEl }));\n if (positionCallback) {\n positionCallback();\n }\n this.addPopupToPopupList(eChild, wrapperEl, removeListeners, anchorToElement);\n return {\n hideFunc: removeListeners\n };\n };\n PopupService.prototype.initialisePopupPosition = function (element) {\n var ePopupParent = this.getPopupParent();\n var ePopupParentRect = ePopupParent.getBoundingClientRect();\n if (!exists(element.style.top)) {\n element.style.top = ePopupParentRect.top * -1 + \"px\";\n }\n if (!exists(element.style.left)) {\n element.style.left = ePopupParentRect.left * -1 + \"px\";\n }\n };\n PopupService.prototype.createPopupWrapper = function (element, ariaLabel, alwaysOnTop) {\n var _a;\n var ePopupParent = this.getPopupParent();\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, __spreadArray$9([], __read$b(allThemes)));\n }\n eWrapper.classList.add('ag-popup');\n element.classList.add(this.gridOptionsService.is('enableRtl') ? 'ag-rtl' : 'ag-ltr', 'ag-popup-child');\n if (!element.hasAttribute('role')) {\n setAriaRole(element, 'dialog');\n }\n setAriaLabel(element, ariaLabel);\n if (this.focusService.isKeyboardMode()) {\n element.classList.add(FocusService.AG_KEYBOARD_FOCUS);\n }\n eWrapper.appendChild(element);\n ePopupParent.appendChild(eWrapper);\n if (alwaysOnTop) {\n this.setAlwaysOnTop(element, true);\n }\n else {\n this.bringPopupToFront(element);\n }\n return eWrapper;\n };\n PopupService.prototype.addEventListenersToPopup = function (params) {\n var _this = this;\n var eDocument = this.gridOptionsService.getDocument();\n var ePopupParent = this.getPopupParent();\n var wrapperEl = params.wrapperEl, popupEl = params.eChild; params.click; var closedCallback = params.closedCallback, afterGuiAttached = params.afterGuiAttached, closeOnEsc = params.closeOnEsc, modal = params.modal;\n var popupHidden = false;\n var hidePopupOnKeyboardEvent = function (event) {\n if (!wrapperEl.contains(eDocument.activeElement)) {\n return;\n }\n var key = event.key;\n if (key === KeyCode.ESCAPE && !isStopPropagationForAgGrid(event)) {\n removeListeners({ keyboardEvent: event });\n }\n };\n var hidePopupOnMouseEvent = function (event) { return removeListeners({ mouseEvent: event }); };\n var hidePopupOnTouchEvent = function (event) { return removeListeners({ touchEvent: event }); };\n var removeListeners = 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 }, popupEl) ||\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(wrapperEl);\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.removePopupFromPopupList(popupEl);\n };\n if (afterGuiAttached) {\n afterGuiAttached({ hidePopup: removeListeners });\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 return removeListeners;\n };\n PopupService.prototype.addPopupToPopupList = function (element, wrapperEl, removeListeners, anchorToElement) {\n this.popupList.push({\n element: element,\n wrapper: wrapperEl,\n hideFunc: removeListeners,\n instanceId: instanceIdSeq++,\n isAnchored: !!anchorToElement\n });\n if (anchorToElement) {\n this.setPopupPositionRelatedToElement(element, anchorToElement);\n }\n };\n PopupService.prototype.getPopupIndex = function (el) {\n return this.popupList.findIndex(function (p) { return p.element === el; });\n };\n PopupService.prototype.setPopupPositionRelatedToElement = function (popupEl, relativeElement) {\n var popupIndex = this.getPopupIndex(popupEl);\n if (popupIndex === -1) {\n return;\n }\n var popup = this.popupList[popupIndex];\n if (popup.stopAnchoringPromise) {\n popup.stopAnchoringPromise.then(function (destroyFunc) { return destroyFunc && destroyFunc(); });\n }\n popup.stopAnchoringPromise = undefined;\n popup.isAnchored = false;\n if (!relativeElement) {\n return;\n }\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 var destroyPositionTracker = this.keepPopupPositionedRelativeTo({\n element: relativeElement,\n ePopup: popupEl,\n hidePopup: popup.hideFunc\n });\n popup.stopAnchoringPromise = destroyPositionTracker;\n popup.isAnchored = true;\n return destroyPositionTracker;\n };\n PopupService.prototype.removePopupFromPopupList = function (element) {\n this.setAlignedStyles(element, null);\n this.setPopupPositionRelatedToElement(element, null);\n this.popupList = this.popupList.filter(function (p) { return p.element !== element; });\n };\n PopupService.prototype.keepPopupPositionedRelativeTo = function (params) {\n var _this = this;\n var eParent = this.getPopupParent();\n var parentRect = eParent.getBoundingClientRect();\n var element = params.element, ePopup = params.ePopup;\n var sourceRect = 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 = ePopup.style.top;\n var top = parseInt(topPx.substring(0, topPx.length - 1), 10);\n var leftPx = 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 = 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(ePopup, top + initialDiffTop - currentDiffTop, DIRECTION.vertical);\n 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(ePopup, left + initialDiffLeft - currentDiffLeft, DIRECTION.horizontal);\n 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.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.getPopupIndex(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.gridOptionsService.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 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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n eWrapper: eWrapper\n };\n this.eventService.dispatchEvent(params);\n };\n var PopupService_1;\n PopupService.WAIT_FOR_POPUP_CONTENT_RESIZE = 200;\n __decorate$T([\n Autowired('focusService')\n ], PopupService.prototype, \"focusService\", void 0);\n __decorate$T([\n Autowired('ctrlsService')\n ], PopupService.prototype, \"ctrlsService\", void 0);\n __decorate$T([\n Autowired('resizeObserverService')\n ], PopupService.prototype, \"resizeObserverService\", void 0);\n __decorate$T([\n PostConstruct\n ], PopupService.prototype, \"postConstruct\", null);\n PopupService = PopupService_1 = __decorate$T([\n Bean('popupService')\n ], PopupService);\n return PopupService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgAutocompleteRow = /** @class */ (function (_super) {\n __extends$R(AgAutocompleteRow, _super);\n function AgAutocompleteRow() {\n var _this = _super.call(this, /* html */ \"\\n
    \\n
    \\n
    \") || this;\n _this.hasHighlighting = false;\n return _this;\n }\n AgAutocompleteRow.prototype.setState = function (value, selected) {\n this.value = value;\n this.render();\n this.updateSelected(selected);\n };\n AgAutocompleteRow.prototype.updateSelected = function (selected) {\n this.addOrRemoveCssClass('ag-autocomplete-row-selected', selected);\n };\n AgAutocompleteRow.prototype.setSearchString = function (searchString) {\n var _a;\n var keepHighlighting = false;\n if (exists(searchString)) {\n var index = (_a = this.value) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase().indexOf(searchString.toLocaleLowerCase());\n if (index >= 0) {\n keepHighlighting = true;\n this.hasHighlighting = true;\n var highlightEndIndex = index + searchString.length;\n var startPart = escapeString(this.value.slice(0, index));\n var highlightedPart = escapeString(this.value.slice(index, highlightEndIndex));\n var endPart = escapeString(this.value.slice(highlightEndIndex));\n this.getGui().lastElementChild.innerHTML = startPart + \"\" + highlightedPart + \"\" + endPart;\n }\n }\n if (!keepHighlighting && this.hasHighlighting) {\n this.hasHighlighting = false;\n this.render();\n }\n };\n AgAutocompleteRow.prototype.render = function () {\n var _a;\n // putting in blank if missing, so at least the user can click on it\n this.getGui().lastElementChild.innerHTML = (_a = escapeString(this.value)) !== null && _a !== void 0 ? _a : ' ';\n };\n return AgAutocompleteRow;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AgAutocompleteList = /** @class */ (function (_super) {\n __extends$Q(AgAutocompleteList, _super);\n function AgAutocompleteList(params) {\n var _this = _super.call(this, AgAutocompleteList.TEMPLATE) || this;\n _this.params = params;\n _this.searchString = '';\n return _this;\n }\n AgAutocompleteList.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n AgAutocompleteList.prototype.init = function () {\n var _this = this;\n this.autocompleteEntries = this.params.autocompleteEntries;\n this.virtualList = this.createManagedBean(new VirtualList({ cssIdentifier: 'autocomplete' }));\n this.virtualList.setComponentCreator(this.createRowComponent.bind(this));\n this.eList.appendChild(this.virtualList.getGui());\n this.virtualList.setModel({\n getRowCount: function () { return _this.autocompleteEntries.length; },\n getRow: function (index) { return _this.autocompleteEntries[index]; }\n });\n var virtualListGui = this.virtualList.getGui();\n this.addManagedListener(virtualListGui, 'click', function () { return _this.params.onConfirmed(); });\n this.addManagedListener(virtualListGui, 'mousemove', this.onMouseMove.bind(this));\n this.addManagedListener(virtualListGui, 'mousedown', function (e) { return e.preventDefault(); });\n this.setSelectedValue(0);\n };\n AgAutocompleteList.prototype.onNavigationKeyDown = 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.autocompleteEntries.indexOf(this.selectedValue);\n var newIndex = key === KeyCode.UP ? oldIndex - 1 : oldIndex + 1;\n this.checkSetSelectedValue(newIndex);\n };\n AgAutocompleteList.prototype.setSearch = function (searchString) {\n this.searchString = searchString;\n if (exists(searchString)) {\n this.runSearch();\n }\n else {\n // reset\n this.autocompleteEntries = this.params.autocompleteEntries;\n this.virtualList.refresh();\n this.checkSetSelectedValue(0);\n }\n this.updateSearchInList();\n };\n AgAutocompleteList.prototype.runContainsSearch = function (searchString, searchStrings) {\n var topMatch;\n var topMatchStartsWithSearchString = false;\n var lowerCaseSearchString = searchString.toLocaleLowerCase();\n var allMatches = searchStrings.filter(function (string) {\n var lowerCaseString = string.toLocaleLowerCase();\n var index = lowerCaseString.indexOf(lowerCaseSearchString);\n var startsWithSearchString = index === 0;\n var isMatch = index >= 0;\n // top match is shortest value that starts with the search string, otherwise shortest value that includes the search string\n if (isMatch && (!topMatch ||\n (!topMatchStartsWithSearchString && startsWithSearchString) ||\n (topMatchStartsWithSearchString === startsWithSearchString && string.length < topMatch.length))) {\n topMatch = string;\n topMatchStartsWithSearchString = startsWithSearchString;\n }\n return isMatch;\n });\n if (!topMatch && allMatches.length) {\n topMatch = allMatches[0];\n }\n return { topMatch: topMatch, allMatches: allMatches };\n };\n AgAutocompleteList.prototype.runSearch = function () {\n var _a, _b;\n var autocompleteEntries = this.params.autocompleteEntries;\n var searchStrings = autocompleteEntries.map(function (v) { var _a; return (_a = v.displayValue) !== null && _a !== void 0 ? _a : v.key; });\n var matchingStrings;\n var topSuggestion;\n if (this.params.useFuzzySearch) {\n matchingStrings = fuzzySuggestions(this.searchString, searchStrings, true).values;\n topSuggestion = matchingStrings.length ? matchingStrings[0] : undefined;\n }\n else {\n var containsMatches = this.runContainsSearch(this.searchString, searchStrings);\n matchingStrings = containsMatches.allMatches;\n topSuggestion = containsMatches.topMatch;\n }\n var filteredEntries = autocompleteEntries.filter(function (_a) {\n var key = _a.key, displayValue = _a.displayValue;\n return matchingStrings.includes(displayValue !== null && displayValue !== void 0 ? displayValue : key);\n });\n if (!filteredEntries.length && this.selectedValue && ((_b = (_a = this.params) === null || _a === void 0 ? void 0 : _a.forceLastSelection) === null || _b === void 0 ? void 0 : _b.call(_a, this.selectedValue, this.searchString))) {\n filteredEntries = [this.selectedValue];\n }\n this.autocompleteEntries = filteredEntries;\n this.virtualList.refresh();\n if (!topSuggestion) {\n return;\n }\n var topSuggestionIndex = matchingStrings.indexOf(topSuggestion);\n this.checkSetSelectedValue(topSuggestionIndex);\n };\n AgAutocompleteList.prototype.updateSearchInList = function () {\n var _this = this;\n this.virtualList.forEachRenderedRow(function (row) { return row.setSearchString(_this.searchString); });\n };\n AgAutocompleteList.prototype.checkSetSelectedValue = function (index) {\n if (index >= 0 && index < this.autocompleteEntries.length) {\n this.setSelectedValue(index);\n }\n };\n AgAutocompleteList.prototype.setSelectedValue = function (index) {\n var value = this.autocompleteEntries[index];\n if (this.selectedValue === value) {\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 };\n AgAutocompleteList.prototype.createRowComponent = function (value) {\n var _a;\n var row = new AgAutocompleteRow();\n this.getContext().createBean(row);\n row.setState((_a = value.displayValue) !== null && _a !== void 0 ? _a : value.key, value === this.selectedValue);\n return row;\n };\n AgAutocompleteList.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 this.checkSetSelectedValue(row);\n };\n AgAutocompleteList.prototype.afterGuiAttached = function () {\n this.virtualList.refresh();\n };\n AgAutocompleteList.prototype.getSelectedValue = function () {\n var _a;\n if (!this.autocompleteEntries.length) {\n return null;\n }\n return (_a = this.selectedValue) !== null && _a !== void 0 ? _a : null;\n };\n AgAutocompleteList.TEMPLATE = \"
    \\n
    \\n
    \";\n __decorate$S([\n RefSelector('eList')\n ], AgAutocompleteList.prototype, \"eList\", void 0);\n __decorate$S([\n PostConstruct\n ], AgAutocompleteList.prototype, \"init\", null);\n return AgAutocompleteList;\n}(PopupComponent));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AgAutocomplete = /** @class */ (function (_super) {\n __extends$P(AgAutocomplete, _super);\n function AgAutocomplete() {\n var _this = _super.call(this, /* html */ \"\\n
    \\n \\n
    \") || this;\n _this.isListOpen = false;\n _this.lastPosition = 0;\n _this.valid = true;\n return _this;\n }\n AgAutocomplete.prototype.postConstruct = function () {\n var _this = this;\n this.eAutocompleteInput.onValueChange(function (value) { return _this.onValueChanged(value); });\n this.eAutocompleteInput.getInputElement().setAttribute('autocomplete', 'off');\n this.addGuiEventListener('keydown', this.onKeyDown.bind(this));\n this.addGuiEventListener('click', this.updatePositionAndList.bind(this));\n this.addDestroyFunc(function () {\n _this.destroyBean(_this.autocompleteList);\n });\n this.addGuiEventListener('focusout', function () { return _this.onFocusOut(); });\n };\n AgAutocomplete.prototype.onValueChanged = function (value) {\n var parsedValue = makeNull(value);\n this.updateValue(parsedValue);\n this.updateAutocompleteList(parsedValue);\n };\n AgAutocomplete.prototype.updateValue = function (value) {\n this.updateLastPosition();\n this.dispatchEvent({\n type: AgAutocomplete.EVENT_VALUE_CHANGED,\n value: value\n });\n this.validate(value);\n };\n AgAutocomplete.prototype.updateAutocompleteList = function (value) {\n var _a, _b, _c, _d;\n var autocompleteListParams = (_b = (_a = this.listGenerator) === null || _a === void 0 ? void 0 : _a.call(this, value, this.lastPosition)) !== null && _b !== void 0 ? _b : { enabled: false };\n if (!autocompleteListParams.type || autocompleteListParams.type !== ((_c = this.autocompleteListParams) === null || _c === void 0 ? void 0 : _c.type)) {\n if (this.isListOpen) {\n this.closeList();\n }\n }\n this.autocompleteListParams = autocompleteListParams;\n if ((_d = this.autocompleteListParams) === null || _d === void 0 ? void 0 : _d.enabled) {\n if (!this.isListOpen) {\n this.openList();\n }\n var searchString = this.autocompleteListParams.searchString;\n this.autocompleteList.setSearch(searchString !== null && searchString !== void 0 ? searchString : '');\n }\n else {\n if (this.isListOpen) {\n this.closeList();\n }\n }\n };\n AgAutocomplete.prototype.onKeyDown = function (event) {\n var _this = this;\n var key = event.key;\n this.updateLastPosition();\n switch (key) {\n case KeyCode.ENTER:\n this.onEnterKeyDown(event);\n break;\n case KeyCode.TAB:\n this.onTabKeyDown(event);\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n this.onUpDownKeyDown(event, key);\n break;\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n // input position is updated after this is called, so do async\n setTimeout(function () {\n _this.updatePositionAndList();\n });\n break;\n case KeyCode.ESCAPE:\n this.onEscapeKeyDown(event);\n break;\n case KeyCode.SPACE:\n if (event.ctrlKey && !this.isListOpen) {\n event.preventDefault();\n this.forceOpenList();\n }\n break;\n }\n };\n AgAutocomplete.prototype.confirmSelection = function () {\n var _a;\n var selectedValue = (_a = this.autocompleteList) === null || _a === void 0 ? void 0 : _a.getSelectedValue();\n if (selectedValue) {\n this.closeList();\n this.dispatchEvent({\n type: AgAutocomplete.EVENT_OPTION_SELECTED,\n value: this.getValue(),\n position: this.lastPosition,\n updateEntry: selectedValue,\n autocompleteType: this.autocompleteListParams.type\n });\n }\n };\n AgAutocomplete.prototype.onTabKeyDown = function (event) {\n if (this.isListOpen) {\n event.preventDefault();\n event.stopPropagation();\n this.confirmSelection();\n }\n };\n AgAutocomplete.prototype.onEnterKeyDown = function (event) {\n event.preventDefault();\n if (this.isListOpen) {\n this.confirmSelection();\n }\n else {\n this.onCompleted();\n }\n };\n AgAutocomplete.prototype.onUpDownKeyDown = function (event, key) {\n var _a;\n event.preventDefault();\n if (!this.isListOpen) {\n this.forceOpenList();\n }\n else {\n (_a = this.autocompleteList) === null || _a === void 0 ? void 0 : _a.onNavigationKeyDown(event, key);\n }\n };\n AgAutocomplete.prototype.onEscapeKeyDown = function (event) {\n if (this.isListOpen) {\n event.preventDefault();\n event.stopPropagation();\n this.closeList();\n this.setCaret(this.lastPosition, true);\n }\n };\n AgAutocomplete.prototype.onFocusOut = function () {\n if (this.isListOpen) {\n this.closeList();\n }\n };\n AgAutocomplete.prototype.updatePositionAndList = function () {\n var _a;\n this.updateLastPosition();\n this.updateAutocompleteList((_a = this.eAutocompleteInput.getValue()) !== null && _a !== void 0 ? _a : null);\n };\n AgAutocomplete.prototype.setCaret = function (position, setFocus) {\n var eDocument = this.gridOptionsService.getDocument();\n if (setFocus && eDocument.activeElement === eDocument.body) {\n // clicking on the list loses focus, so restore\n this.eAutocompleteInput.getFocusableElement().focus();\n }\n this.eAutocompleteInput.getInputElement().setSelectionRange(position, position);\n };\n AgAutocomplete.prototype.forceOpenList = function () {\n this.onValueChanged(this.eAutocompleteInput.getValue());\n };\n AgAutocomplete.prototype.updateLastPosition = function () {\n var _a;\n this.lastPosition = (_a = this.eAutocompleteInput.getInputElement().selectionStart) !== null && _a !== void 0 ? _a : 0;\n };\n AgAutocomplete.prototype.validate = function (value) {\n var _a;\n if (!this.validator) {\n return;\n }\n this.validationMessage = this.validator(value);\n this.eAutocompleteInput.getInputElement().setCustomValidity((_a = this.validationMessage) !== null && _a !== void 0 ? _a : '');\n this.valid = !this.validationMessage;\n this.dispatchEvent({\n type: AgAutocomplete.EVENT_VALID_CHANGED,\n isValid: this.valid,\n validationMessage: this.validationMessage\n });\n };\n AgAutocomplete.prototype.openList = function () {\n var _this = this;\n this.isListOpen = true;\n // this is unmanaged as it gets destroyed/created each time it is opened\n this.autocompleteList = this.createBean(new AgAutocompleteList({\n autocompleteEntries: this.autocompleteListParams.entries,\n onConfirmed: function () { return _this.confirmSelection(); },\n forceLastSelection: this.forceLastSelection\n }));\n var ePopupGui = this.autocompleteList.getGui();\n var positionParams = {\n ePopup: ePopupGui,\n type: 'autocomplete',\n eventSource: this.getGui(),\n position: 'under',\n alignSide: this.gridOptionsService.is('enableRtl') ? 'right' : 'left',\n keepWithinBounds: true\n };\n var addPopupRes = this.popupService.addPopup({\n eChild: ePopupGui,\n anchorToElement: this.getGui(),\n positionCallback: function () { return _this.popupService.positionPopupByComponent(positionParams); },\n ariaLabel: this.listAriaLabel\n });\n this.hidePopup = addPopupRes.hideFunc;\n this.autocompleteList.afterGuiAttached();\n };\n AgAutocomplete.prototype.closeList = function () {\n this.isListOpen = false;\n this.hidePopup();\n this.destroyBean(this.autocompleteList);\n this.autocompleteList = null;\n };\n AgAutocomplete.prototype.onCompleted = function () {\n if (this.isListOpen) {\n this.closeList();\n }\n this.dispatchEvent({\n type: AgAutocomplete.EVENT_VALUE_CONFIRMED,\n value: this.getValue(),\n isValid: this.isValid()\n });\n };\n AgAutocomplete.prototype.getValue = function () {\n return makeNull(this.eAutocompleteInput.getValue());\n };\n AgAutocomplete.prototype.setInputPlaceholder = function (placeholder) {\n this.eAutocompleteInput.setInputPlaceholder(placeholder);\n return this;\n };\n AgAutocomplete.prototype.setInputAriaLabel = function (label) {\n this.eAutocompleteInput.setInputAriaLabel(label);\n return this;\n };\n AgAutocomplete.prototype.setListAriaLabel = function (label) {\n this.listAriaLabel = label;\n return this;\n };\n AgAutocomplete.prototype.setListGenerator = function (listGenerator) {\n this.listGenerator = listGenerator;\n return this;\n };\n AgAutocomplete.prototype.setValidator = function (validator) {\n this.validator = validator;\n return this;\n };\n AgAutocomplete.prototype.isValid = function () {\n return this.valid;\n };\n AgAutocomplete.prototype.setValue = function (params) {\n var value = params.value, position = params.position, silent = params.silent, updateListOnlyIfOpen = params.updateListOnlyIfOpen, restoreFocus = params.restoreFocus;\n this.eAutocompleteInput.setValue(value, true);\n this.setCaret(position !== null && position !== void 0 ? position : this.lastPosition, restoreFocus);\n if (!silent) {\n this.updateValue(value);\n }\n if (!updateListOnlyIfOpen || this.isListOpen) {\n this.updateAutocompleteList(value);\n }\n };\n AgAutocomplete.prototype.setForceLastSelection = function (forceLastSelection) {\n this.forceLastSelection = forceLastSelection;\n return this;\n };\n AgAutocomplete.prototype.setInputDisabled = function (disabled) {\n this.eAutocompleteInput.setDisabled(disabled);\n return this;\n };\n AgAutocomplete.EVENT_VALUE_CHANGED = 'eventValueChanged';\n AgAutocomplete.EVENT_VALUE_CONFIRMED = 'eventValueConfirmed';\n AgAutocomplete.EVENT_OPTION_SELECTED = 'eventOptionSelected';\n AgAutocomplete.EVENT_VALID_CHANGED = 'eventValidChanged';\n __decorate$R([\n Autowired('popupService')\n ], AgAutocomplete.prototype, \"popupService\", void 0);\n __decorate$R([\n RefSelector('eAutocompleteInput')\n ], AgAutocomplete.prototype, \"eAutocompleteInput\", void 0);\n __decorate$R([\n PostConstruct\n ], AgAutocomplete.prototype, \"postConstruct\", null);\n return AgAutocomplete;\n}(Component));\n\nvar OUTSIDE_ANGULAR_EVENTS = ['mouseover', 'mouseout', 'mouseenter', 'mouseleave', 'mousemove'];\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.renderingEngine = \"vanilla\";\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __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 __spreadArray$8 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar CellNavigationService = /** @class */ (function (_super) {\n __extends$O(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.gridOptionsService.is('enableRtl');\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.gridOptionsService.is('enableRtl')) {\n pointer = this.getCellToLeft(pointer);\n }\n else {\n pointer = this.getCellToRight(pointer);\n }\n break;\n case KeyCode.LEFT:\n if (this.gridOptionsService.is('enableRtl')) {\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 'top':\n rowNode = this.pinnedRowModel.getPinnedTopRow(gridCell.rowIndex);\n break;\n case '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 'bottom':\n // never any rows after pinned bottom\n return null;\n case '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('bottom')) {\n return { rowIndex: 0, rowPinned: '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('bottom')) {\n return { rowIndex: 0, rowPinned: '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.gridOptionsService.isGroupRowsSticky() || !rowNode || !rowNode.sticky) {\n return;\n }\n var stickyRowCtrls = __spreadArray$8([], __read$a(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 === 'top') {\n var lastTopIndex = this.pinnedRowModel.getPinnedTopRowData().length - 1;\n return lastTopIndex <= index;\n }\n if (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 === 'top') {\n return null;\n }\n if (!pinned) {\n if (this.pinnedRowModel.isRowsToRender('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('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: '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$Q([\n Autowired('columnModel')\n ], CellNavigationService.prototype, \"columnModel\", void 0);\n __decorate$Q([\n Autowired('rowModel')\n ], CellNavigationService.prototype, \"rowModel\", void 0);\n __decorate$Q([\n Autowired('rowRenderer')\n ], CellNavigationService.prototype, \"rowRenderer\", void 0);\n __decorate$Q([\n Autowired('pinnedRowModel')\n ], CellNavigationService.prototype, \"pinnedRowModel\", void 0);\n __decorate$Q([\n Autowired('paginationProxy')\n ], CellNavigationService.prototype, \"paginationProxy\", void 0);\n CellNavigationService = __decorate$Q([\n Bean('cellNavigationService')\n ], CellNavigationService);\n return CellNavigationService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __param$6 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AlignedGridsService = /** @class */ (function (_super) {\n __extends$N(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.gridOptionsService.get('alignedGrids');\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, true);\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 applyColumnState, 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 applyColumnState, 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.gridOptionsService.get('alignedGrids');\n if (alignedGrids) {\n alignedGrids.forEach(function (grid) {\n if (grid.api) {\n grid.api.setAlwaysShowVerticalScroll(isVerticalScrollShowing);\n }\n });\n }\n };\n __decorate$P([\n Autowired('columnModel')\n ], AlignedGridsService.prototype, \"columnModel\", void 0);\n __decorate$P([\n Autowired('ctrlsService')\n ], AlignedGridsService.prototype, \"ctrlsService\", void 0);\n __decorate$P([\n __param$6(0, Qualifier('loggerFactory'))\n ], AlignedGridsService.prototype, \"setBeans\", null);\n __decorate$P([\n PostConstruct\n ], AlignedGridsService.prototype, \"init\", null);\n AlignedGridsService = __decorate$P([\n Bean('alignedGridsService')\n ], AlignedGridsService);\n return AlignedGridsService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __param$5 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\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 SelectionService = /** @class */ (function (_super) {\n __extends$M(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 var _this = this;\n this.groupSelectsChildren = this.gridOptionsService.is('groupSelectsChildren');\n this.addManagedPropertyListener('groupSelectsChildren', function (propChange) { return _this.groupSelectsChildren = propChange.currentValue; });\n this.rowSelection = this.gridOptionsService.get('rowSelection');\n this.addManagedPropertyListener('rowSelection', function (propChange) { return _this.rowSelection = propChange.currentValue; });\n this.addManagedListener(this.eventService, Events.EVENT_ROW_SELECTED, this.onRowSelected.bind(this));\n };\n SelectionService.prototype.isMultiselect = function () {\n return this.rowSelection === 'multiple';\n };\n SelectionService.prototype.setNodesSelected = function (params) {\n var _a;\n if (params.nodes.length === 0)\n return 0;\n var newValue = params.newValue, clearSelection = params.clearSelection, suppressFinishActions = params.suppressFinishActions, rangeSelect = params.rangeSelect; params.event; var _b = params.source, source = _b === void 0 ? 'api' : _b;\n if (params.nodes.length > 1 && !this.isMultiselect()) {\n console.warn(\"AG Grid: cannot multi select while rowSelection='single'\");\n return 0;\n }\n // groupSelectsFiltered only makes sense when group selects children\n var groupSelectsFiltered = this.groupSelectsChildren && (params.groupSelectsFiltered === true);\n // if node is a footer, we don't do selection, just pass the info\n // to the sibling (the parent of the group)\n var nodes = params.nodes.map(function (node) { return node.footer ? node.sibling : node; });\n if (rangeSelect) {\n if (params.nodes.length > 1) {\n console.warn('AG Grid: cannot range select while selecting multiple rows');\n return 0;\n }\n var lastSelectedNode = this.getLastSelectedNode();\n if (lastSelectedNode) {\n // if node is a footer, we don't do selection, just pass the info\n // to the sibling (the parent of the group)\n var node = nodes[0];\n var newRowClicked = lastSelectedNode !== node;\n if (newRowClicked && this.isMultiselect()) {\n var nodesChanged = this.selectRange(node, lastSelectedNode, params.newValue, source);\n this.setLastSelectedNode(node);\n return nodesChanged;\n }\n }\n }\n var updatedCount = 0;\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\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 && node.group;\n if (!skipThisNode) {\n var thisNodeWasSelected = node.selectThisNode(newValue, params.event, source);\n if (thisNodeWasSelected) {\n updatedCount++;\n }\n }\n if (this.groupSelectsChildren && ((_a = node.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {\n updatedCount += this.selectChildren(node, newValue, groupSelectsFiltered, source);\n }\n }\n // clear other nodes if not doing multi select\n if (!suppressFinishActions) {\n var clearOtherNodes = newValue && (clearSelection || !this.isMultiselect());\n if (clearOtherNodes) {\n updatedCount += this.clearOtherNodes(nodes[0], source);\n }\n // only if we selected something, then update groups and fire events\n if (updatedCount > 0) {\n this.updateGroupsFromChildrenSelections(source);\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 source: source\n };\n this.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.setLastSelectedNode(nodes[nodes.length - 1]);\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 SelectionService.prototype.selectRange = function (fromNode, toNode, value, source) {\n var _this = this;\n if (value === void 0) { value = true; }\n var nodesToSelect = this.rowModel.getNodesInRangeForSelection(fromNode, toNode);\n var updatedCount = 0;\n nodesToSelect.forEach(function (rowNode) {\n if (rowNode.group && _this.groupSelectsChildren || (value === false && fromNode === rowNode)) {\n return;\n }\n var nodeWasSelected = rowNode.selectThisNode(value, undefined, source);\n if (nodeWasSelected) {\n updatedCount++;\n }\n });\n this.updateGroupsFromChildrenSelections(source);\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(event);\n return updatedCount;\n };\n SelectionService.prototype.selectChildren = function (node, newValue, groupSelectsFiltered, source) {\n var children = groupSelectsFiltered ? node.childrenAfterAggFilter : node.childrenAfterGroup;\n if (_.missing(children)) {\n return 0;\n }\n return this.setNodesSelected({\n newValue: newValue,\n clearSelection: false,\n suppressFinishActions: true,\n groupSelectsFiltered: groupSelectsFiltered,\n source: source,\n nodes: children,\n });\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.getSelectionCount = function () {\n return Object.values(this.selectedNodes).length;\n };\n /**\n * This method is used by the CSRM to remove groups which are being disposed of,\n * events do not need fired in this case\n */\n SelectionService.prototype.filterFromSelection = function (predicate) {\n var newSelectedNodes = {};\n Object.entries(this.selectedNodes).forEach(function (_a) {\n var _b = __read$9(_a, 2), key = _b[0], node = _b[1];\n var passesPredicate = node && predicate(node);\n if (passesPredicate) {\n newSelectedNodes[key] = node;\n }\n });\n this.selectedNodes = newSelectedNodes;\n };\n // should only be called if groupSelectsChildren=true\n SelectionService.prototype.updateGroupsFromChildrenSelections = function (source, changedPath) {\n // we only do this when group selection state depends on selected children\n if (!this.groupSelectsChildren) {\n return false;\n }\n // also only do it if CSRM (code should never allow this anyway)\n if (this.rowModel.getType() !== 'clientSide') {\n return false;\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 var selectionChanged = false;\n changedPath.forEachChangedNodeDepthFirst(function (rowNode) {\n if (rowNode !== rootNode) {\n var selected = rowNode.calculateSelectedFromChildren();\n selectionChanged = rowNode.selectThisNode(selected === null ? false : selected, undefined, source) || selectionChanged;\n }\n });\n return selectionChanged;\n };\n SelectionService.prototype.clearOtherNodes = function (rowNodeToKeepSelected, source) {\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 source: source,\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, undefined, source);\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 delete this.selectedNodes[rowNode.id];\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() !== 'clientSide') {\n // Error logged as part of gridApi as that is only call point for this method.\n return;\n }\n var clientSideRowModel = this.rowModel;\n var topLevelNodes = clientSideRowModel.getTopLevelNodes();\n if (topLevelNodes === null) {\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.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 (params) {\n var callback = function (rowNode) { return rowNode.selectThisNode(false, undefined, source); };\n var rowModelClientSide = this.rowModel.getType() === 'clientSide';\n var source = params.source, justFiltered = params.justFiltered, justCurrentPage = params.justCurrentPage;\n if (justCurrentPage || justFiltered) {\n if (!rowModelClientSide) {\n console.error(\"AG Grid: selecting just filtered only works when gridOptions.rowModelType='clientSide'\");\n return;\n }\n this.getNodesToSelect(justFiltered, justCurrentPage).forEach(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(source);\n }\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n SelectionService.prototype.getSelectAllState = function (justFiltered, justCurrentPage) {\n var _this = this;\n var selectedCount = 0;\n var notSelectedCount = 0;\n var callback = function (node) {\n if (_this.groupSelectsChildren && node.group) {\n return;\n }\n if (node.isSelected()) {\n selectedCount++;\n }\n else if (!node.selectable) ;\n else {\n notSelectedCount++;\n }\n };\n this.getNodesToSelect(justFiltered, justCurrentPage).forEach(callback);\n // if no rows, always have it unselected\n if (selectedCount === 0 && notSelectedCount === 0) {\n return false;\n }\n // if mix of selected and unselected, this is indeterminate\n if (selectedCount > 0 && notSelectedCount > 0) {\n return null;\n }\n // only selected\n return selectedCount > 0;\n };\n /**\n * @param justFiltered whether to just include nodes which have passed the filter\n * @param justCurrentPage whether to just include nodes on the current page\n * @returns all nodes including unselectable nodes which are the target of this selection attempt\n */\n SelectionService.prototype.getNodesToSelect = function (justFiltered, justCurrentPage) {\n var _this = this;\n if (justFiltered === void 0) { justFiltered = false; }\n if (justCurrentPage === void 0) { justCurrentPage = false; }\n if (this.rowModel.getType() !== 'clientSide') {\n throw new Error(\"selectAll only available when rowModelType='clientSide', ie not \" + this.rowModel.getType());\n }\n var nodes = [];\n if (justCurrentPage) {\n this.paginationProxy.forEachNodeOnPage(function (node) {\n if (!node.group) {\n nodes.push(node);\n return;\n }\n if (!node.expanded) {\n // even with groupSelectsChildren, do this recursively as only the filtered children\n // are considered as the current page\n var recursivelyAddChildren_1 = function (child) {\n var _a;\n nodes.push(child);\n if ((_a = child.childrenAfterFilter) === null || _a === void 0 ? void 0 : _a.length) {\n child.childrenAfterFilter.forEach(recursivelyAddChildren_1);\n }\n };\n recursivelyAddChildren_1(node);\n return;\n }\n // if the group node is expanded, the pagination proxy will include the visible nodes to select\n if (!_this.groupSelectsChildren) {\n nodes.push(node);\n }\n });\n return nodes;\n }\n var clientSideRowModel = this.rowModel;\n if (justFiltered) {\n clientSideRowModel.forEachNodeAfterFilter(function (node) {\n nodes.push(node);\n });\n return nodes;\n }\n clientSideRowModel.forEachNode(function (node) {\n nodes.push(node);\n });\n return nodes;\n };\n SelectionService.prototype.selectAllRowNodes = function (params) {\n if (this.rowModel.getType() !== 'clientSide') {\n throw new Error(\"selectAll only available when rowModelType='clientSide', ie not \" + this.rowModel.getType());\n }\n var source = params.source, justFiltered = params.justFiltered, justCurrentPage = params.justCurrentPage;\n var callback = function (rowNode) { return rowNode.selectThisNode(true, undefined, source); };\n this.getNodesToSelect(justFiltered, justCurrentPage).forEach(callback);\n // the above does not clean up the parent rows if they are selected\n if (this.rowModel.getType() === 'clientSide' && this.groupSelectsChildren) {\n this.updateGroupsFromChildrenSelections(source);\n }\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n // Used by SSRM\n SelectionService.prototype.getServerSideSelectionState = function () {\n return null;\n };\n SelectionService.prototype.setServerSideSelectionState = function (state) { };\n __decorate$O([\n Autowired('rowModel')\n ], SelectionService.prototype, \"rowModel\", void 0);\n __decorate$O([\n Autowired('paginationProxy')\n ], SelectionService.prototype, \"paginationProxy\", void 0);\n __decorate$O([\n __param$5(0, Qualifier('loggerFactory'))\n ], SelectionService.prototype, \"setBeans\", null);\n __decorate$O([\n PostConstruct\n ], SelectionService.prototype, \"init\", null);\n SelectionService = __decorate$O([\n Bean('selectionService')\n ], SelectionService);\n return SelectionService;\n}(BeanStub));\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 ColumnApi = /** @class */ (function () {\n function ColumnApi() {\n }\n /**\n * Gets the grid to size the columns to the specified width in pixels, e.g. `sizeColumnsToFit(900)`.\n * To have the grid fit the columns to the grid's width, use the Grid API `gridApi.sizeColumnsToFit()` instead.\n * If inferring cell data types with custom column types and row data is provided asynchronously,\n * the column sizing will happen asynchronously when row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition.\n */\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 this.columnModel.moveColumn(key, toIndex, 'api');\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 /** 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 /**\n * Auto-sizes a column based on its contents. If inferring cell data types with custom column types and row data is provided asynchronously,\n * the column sizing will happen asynchronously when row data is added. To always perform this synchronously,\n * set `cellDataType = false` on the default column definition.\n */\n ColumnApi.prototype.autoSizeColumn = function (key, skipHeader) { return this.columnModel.autoSizeColumn(key, skipHeader, 'api'); };\n /**\n * Same as `autoSizeColumn`, but provide a list of column keys. If inferring cell data types with custom column types\n * and row data is provided asynchronously, the column sizing will happen asynchronously when row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition.\n */\n ColumnApi.prototype.autoSizeColumns = function (keys, skipHeader) {\n this.columnModel.autoSizeColumns({ columns: keys, skipHeader: skipHeader });\n };\n /**\n * Calls `autoSizeColumns` on all displayed columns. If inferring cell data types with custom column types\n * and row data is provided asynchronously, the column sizing will happen asynchronously when row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition.\n */\n ColumnApi.prototype.autoSizeAllColumns = function (skipHeader) { this.columnModel.autoSizeAllColumns(skipHeader, 'api'); };\n /** Set the pivot result columns. */\n ColumnApi.prototype.setPivotResultColumns = function (colDefs) { this.columnModel.setSecondaryColumns(colDefs, 'api'); };\n /** Returns the grid's pivot result columns. */\n ColumnApi.prototype.getPivotResultColumns = function () { return this.columnModel.getSecondaryColumns(); };\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 /** @deprecated v28 Use `getColumns` instead */\n ColumnApi.prototype.getAllColumns = function () {\n logDeprecation('28.0', 'getAllColumns', 'getColumns');\n return this.getColumns();\n };\n /** @deprecated v28 Use `getColumns` instead. */\n ColumnApi.prototype.getPrimaryColumns = function () {\n logDeprecation('28.0', 'getPrimaryColumns', 'getColumns');\n return this.getColumns();\n };\n /** @deprecated v28 Use `getPivotResultColumns` instead. */\n ColumnApi.prototype.getSecondaryColumns = function () {\n logDeprecation('28.0', 'getSecondaryColumns', 'getPivotResultColumns');\n return this.getPivotResultColumns();\n };\n /** @deprecated v28 Use `setPivotResultColumns` instead. */\n ColumnApi.prototype.setSecondaryColumns = function (colDefs) {\n logDeprecation('28.0', 'setSecondaryColumns', 'setPivotResultColumns');\n this.setPivotResultColumns(colDefs);\n };\n /** @deprecated v28 Use `getPivotResultColumn` instead */\n ColumnApi.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) {\n logDeprecation('28.0', 'getSecondaryPivotColumn', 'getPivotResultColumn');\n return this.getPivotResultColumn(pivotKeys, valueColKey);\n };\n __decorate$N([\n Autowired('columnModel')\n ], ColumnApi.prototype, \"columnModel\", void 0);\n __decorate$N([\n PreDestroy\n ], ColumnApi.prototype, \"cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid\", null);\n ColumnApi = __decorate$N([\n Bean('columnApi')\n ], ColumnApi);\n return ColumnApi;\n}());\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 ValueService = /** @class */ (function (_super) {\n __extends$L(ValueService, _super);\n function ValueService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.initialised = false;\n _this.isSsrm = false;\n return _this;\n }\n ValueService.prototype.init = function () {\n var _this = this;\n this.isSsrm = this.gridOptionsService.isRowModelType('serverSide');\n this.cellExpressions = this.gridOptionsService.is('enableCellExpressions');\n this.isTreeData = this.gridOptionsService.is('treeData');\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.gridOptionsService.useAsyncEvents());\n this.addManagedPropertyListener('treeData', function (propChange) { return _this.isTreeData = propChange.currentValue; });\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.getColId();\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 // SSRM agg data comes from the data attribute, so ignore that instead\n var ignoreSsrmAggData = this.isSsrm && ignoreAggData && !!column.getColDef().aggFunc;\n var ssrmFooterGroupCol = this.isSsrm && rowNode.footer && rowNode.field && (column.getColDef().showRowGroup === true || column.getColDef().showRowGroup === rowNode.field);\n if (forFilter && colDef.filterValueGetter) {\n result = this.executeFilterValueGetter(colDef.filterValueGetter, data, column, rowNode);\n }\n else if (this.isTreeData && aggDataExists) {\n result = rowNode.aggData[colId];\n }\n else if (this.isTreeData && colDef.valueGetter) {\n result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);\n }\n else if (this.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 (ssrmFooterGroupCol) {\n // this is for group footers in SSRM, as the SSRM row won't have groupData, need to extract\n // the group value from the data using the row field\n result = getValueUsingField(data, rowNode.field, column.isFieldContainsDots());\n }\n else if (field && data && !ignoreSsrmAggData) {\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.gridOptionsService.is('showOpenedGroup')) {\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.getColId())) {\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 var _a = column.getColDef(), field = _a.field, valueSetter = _a.valueSetter;\n if (missing(field) && missing(valueSetter)) {\n console.warn(\"AG Grid: you need either field or valueSetter set on colDef for editing to work\");\n return false;\n }\n if (!this.dataTypeService.checkType(column, newValue)) {\n console.warn(\"AG Grid: Data type of the new value does not match the cell data type of the column\");\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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n params.newValue = newValue;\n var valueWasDifferent;\n if (exists(valueSetter)) {\n if (typeof valueSetter === 'function') {\n valueWasDifferent = valueSetter(params);\n }\n else {\n valueWasDifferent = this.expressionService.evaluate(valueSetter, params);\n }\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 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 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 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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n getValue: this.getValueCallback.bind(this, rowNode)\n };\n if (typeof valueGetter === 'function') {\n return valueGetter(params);\n }\n return this.expressionService.evaluate(valueGetter, params);\n };\n ValueService.prototype.executeValueGetter = function (valueGetter, data, column, rowNode) {\n var colId = column.getColId();\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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n getValue: this.getValueCallback.bind(this, rowNode)\n };\n var result;\n if (typeof valueGetter === 'function') {\n result = valueGetter(params);\n }\n else {\n result = this.expressionService.evaluate(valueGetter, params);\n }\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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\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$M([\n Autowired('expressionService')\n ], ValueService.prototype, \"expressionService\", void 0);\n __decorate$M([\n Autowired('columnModel')\n ], ValueService.prototype, \"columnModel\", void 0);\n __decorate$M([\n Autowired('valueCache')\n ], ValueService.prototype, \"valueCache\", void 0);\n __decorate$M([\n Autowired('dataTypeService')\n ], ValueService.prototype, \"dataTypeService\", void 0);\n __decorate$M([\n PostConstruct\n ], ValueService.prototype, \"init\", null);\n ValueService = __decorate$M([\n Bean('valueService')\n ], ValueService);\n return ValueService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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$4 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ExpressionService = /** @class */ (function (_super) {\n __extends$K(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 (expression, params) {\n if (typeof expression === 'string') {\n // valueGetter is an expression, so execute the expression\n return this.evaluateExpression(expression, params);\n }\n else {\n console.error('AG Grid: value should be either a string or a function', expression);\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$L([\n __param$4(0, Qualifier('loggerFactory'))\n ], ExpressionService.prototype, \"setBeans\", null);\n ExpressionService = __decorate$L([\n Bean('expressionService')\n ], ExpressionService);\n return ExpressionService;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 TemplateService = /** @class */ (function (_super) {\n __extends$J(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$K([\n Bean('templateService')\n ], TemplateService);\n return TemplateService;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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$3 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar LoggerFactory = /** @class */ (function (_super) {\n __extends$I(LoggerFactory, _super);\n function LoggerFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LoggerFactory.prototype.setBeans = function (gridOptionsService) {\n this.logging = gridOptionsService.is('debug');\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$J([\n __param$3(0, Qualifier('gridOptionsService'))\n ], LoggerFactory.prototype, \"setBeans\", null);\n LoggerFactory = __decorate$J([\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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 GridCtrl = /** @class */ (function (_super) {\n __extends$H(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.eGui.setAttribute('grid-id', this.context.getGridId());\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 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;\n var el = this.focusService.findTabbableParent(this.getGui());\n return ((_a = el === null || el === void 0 ? void 0 : el.getAttribute('row-id')) === null || _a === void 0 ? void 0 : _a.startsWith('detail')) || false;\n };\n GridCtrl.prototype.showDropZones = function () {\n return ModuleRegistry.__isRegistered(ModuleNames.RowGroupingModule, this.context.getGridId());\n };\n GridCtrl.prototype.showSideBar = function () {\n return ModuleRegistry.__isRegistered(ModuleNames.SideBarModule, this.context.getGridId());\n };\n GridCtrl.prototype.showStatusBar = function () {\n return ModuleRegistry.__isRegistered(ModuleNames.StatusBarModule, this.context.getGridId());\n };\n GridCtrl.prototype.showWatermark = function () {\n return ModuleRegistry.__isRegistered(ModuleNames.EnterpriseCoreModule, this.context.getGridId());\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.gridOptionsService.is('enableRtl') ? '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.gridOptionsService.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 var allColumns = this.columnModel.getAllDisplayedColumns();\n if (fromBottom) {\n if (focusableContainers.length > 1) {\n return this.focusService.focusInto(last(focusableContainers), true);\n }\n var lastColumn = last(allColumns);\n if (this.focusService.focusGridView(lastColumn, true)) {\n return true;\n }\n }\n if (this.gridOptionsService.getNum('headerHeight') === 0) {\n return this.focusService.focusGridView(allColumns[0]);\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$I([\n Autowired('focusService')\n ], GridCtrl.prototype, \"focusService\", void 0);\n __decorate$I([\n Autowired('resizeObserverService')\n ], GridCtrl.prototype, \"resizeObserverService\", void 0);\n __decorate$I([\n Autowired('columnModel')\n ], GridCtrl.prototype, \"columnModel\", void 0);\n __decorate$I([\n Autowired('ctrlsService')\n ], GridCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$I([\n Autowired('mouseEventService')\n ], GridCtrl.prototype, \"mouseEventService\", void 0);\n __decorate$I([\n Autowired('dragAndDropService')\n ], GridCtrl.prototype, \"dragAndDropService\", void 0);\n return GridCtrl;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 GridComp = /** @class */ (function (_super) {\n __extends$G(GridComp, _super);\n function GridComp(eGridDiv) {\n var _this = _super.call(this) || 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$H([\n Autowired('loggerFactory')\n ], GridComp.prototype, \"loggerFactory\", void 0);\n __decorate$H([\n RefSelector('gridBody')\n ], GridComp.prototype, \"gridBodyComp\", void 0);\n __decorate$H([\n RefSelector('sideBar')\n ], GridComp.prototype, \"sideBarComp\", void 0);\n __decorate$H([\n RefSelector('rootWrapperBody')\n ], GridComp.prototype, \"eRootWrapperBody\", void 0);\n __decorate$H([\n PostConstruct\n ], GridComp.prototype, \"postConstruct\", null);\n return GridComp;\n}(TabGuardComp));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __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 __spreadArray$7 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar SortController = /** @class */ (function (_super) {\n __extends$F(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 // auto correct - if sort not legal value, then set it to 'no sort' (which is null)\n if (sort !== 'asc' && sort !== 'desc') {\n sort = null;\n }\n var isColumnsSortingCoupledToGroup = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n var columnsToUpdate = [column];\n if (isColumnsSortingCoupledToGroup) {\n if (column.getColDef().showRowGroup) {\n var rowGroupColumns = this.columnModel.getSourceColumnsForGroupColumn(column);\n var sortableRowGroupColumns = rowGroupColumns === null || rowGroupColumns === void 0 ? void 0 : rowGroupColumns.filter(function (col) { return col.getColDef().sortable; });\n if (sortableRowGroupColumns) {\n columnsToUpdate = __spreadArray$7([column], __read$8(sortableRowGroupColumns));\n }\n }\n }\n columnsToUpdate.forEach(function (col) { return col.setSort(sort, source); });\n var doingMultiSort = (multiSort || this.gridOptionsService.is('alwaysMultiSort')) && !this.gridOptionsService.is('suppressMultiSort');\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.gridOptionsService.isColumnsSortingCoupledToGroup();\n var groupParent = this.columnModel.getGroupDisplayColumnForGroup(lastColToChange.getId());\n var lastSortIndexCol = isCoupled ? groupParent || lastColToChange : lastColToChange;\n var allSortedCols = this.getColumnsWithSortingOrdered();\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() ? __spreadArray$7(__spreadArray$7([], __read$8(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.gridOptionsService.get('sortingOrder')) {\n sortingOrder = this.gridOptionsService.get('sortingOrder');\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 /**\n * @returns a map of sort indexes for every sorted column, if groups sort primaries then they will have equivalent indices\n */\n SortController.prototype.getIndexedSortMap = function () {\n var _this = this;\n // pull out all the columns that have sorting set\n var allSortedCols = this.columnModel.getPrimaryAndSecondaryAndAutoColumns()\n .filter(function (col) { return !!col.getSort(); });\n if (this.columnModel.isPivotMode()) {\n var isSortingLinked_1 = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n allSortedCols = allSortedCols.filter(function (col) {\n var isAggregated = !!col.getAggFunc();\n var isSecondary = !col.isPrimary();\n var isGroup = isSortingLinked_1 ? _this.columnModel.getGroupDisplayColumnForGroup(col.getId()) : col.getColDef().showRowGroup;\n return isAggregated || isSecondary || isGroup;\n });\n }\n var sortedRowGroupCols = this.columnModel.getRowGroupColumns()\n .filter(function (col) { return !!col.getSort(); });\n var isSortLinked = this.gridOptionsService.isColumnsSortingCoupledToGroup() && !!sortedRowGroupCols.length;\n if (isSortLinked) {\n allSortedCols = __spreadArray$7([], __read$8(new Set(\n // if linked sorting, replace all columns with the display group column for index purposes, and ensure uniqueness\n allSortedCols.map(function (col) { var _a; return (_a = _this.columnModel.getGroupDisplayColumnForGroup(col.getId())) !== null && _a !== void 0 ? _a : col; }))));\n }\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 allSortedCols.forEach(function (col, index) { return allColsIndexes[col.getId()] = index; });\n // put the columns in order of which one got sorted first\n allSortedCols.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 var indexMap = new Map();\n allSortedCols.forEach(function (col, idx) { return indexMap.set(col, idx); });\n // add the row group cols back\n if (isSortLinked) {\n sortedRowGroupCols.forEach(function (col) {\n var groupDisplayCol = _this.columnModel.getGroupDisplayColumnForGroup(col.getId());\n indexMap.set(col, indexMap.get(groupDisplayCol));\n });\n }\n return indexMap;\n };\n SortController.prototype.getColumnsWithSortingOrdered = function () {\n // pull out all the columns that have sorting set\n return __spreadArray$7([], __read$8(this.getIndexedSortMap().entries())).sort(function (_a, _b) {\n var _c = __read$8(_a, 2); _c[0]; var idx1 = _c[1];\n var _d = __read$8(_b, 2); _d[0]; var idx2 = _d[1];\n return idx1 - idx2;\n })\n .map(function (_a) {\n var _b = __read$8(_a, 1), col = _b[0];\n return col;\n });\n };\n // used by server side row models, to sent sort to server\n SortController.prototype.getSortModel = function () {\n return this.getColumnsWithSortingOrdered()\n .filter(function (column) { return column.getSort(); })\n .map(function (column) { return ({\n sort: column.getSort(),\n colId: column.getId()\n }); });\n };\n SortController.prototype.getSortOptions = function () {\n return this.getColumnsWithSortingOrdered()\n .filter(function (column) { return column.getSort(); })\n .map(function (column) { return ({\n sort: column.getSort(),\n column: column\n }); });\n };\n SortController.prototype.canColumnDisplayMixedSort = function (column) {\n var isColumnSortCouplingActive = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n var isGroupDisplayColumn = !!column.getColDef().showRowGroup;\n return isColumnSortCouplingActive && isGroupDisplayColumn;\n };\n SortController.prototype.getDisplaySortForColumn = function (column) {\n var linkedColumns = this.columnModel.getSourceColumnsForGroupColumn(column);\n if (!this.canColumnDisplayMixedSort(column) || !(linkedColumns === null || linkedColumns === void 0 ? void 0 : linkedColumns.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 != null || !!column.getColDef().valueGetter;\n var sortableColumns = columnHasUniqueData ? __spreadArray$7([column], __read$8(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 return this.getIndexedSortMap().get(column);\n };\n var SortController_1;\n SortController.DEFAULT_SORTING_ORDER = ['asc', 'desc', null];\n __decorate$G([\n Autowired('columnModel')\n ], SortController.prototype, \"columnModel\", void 0);\n SortController = SortController_1 = __decorate$G([\n Bean('sortController')\n ], SortController);\n return SortController;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 ColumnHoverService = /** @class */ (function (_super) {\n __extends$E(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$F([\n Bean('columnHoverService')\n ], ColumnHoverService);\n return ColumnHoverService;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 ColumnAnimationService = /** @class */ (function (_super) {\n __extends$D(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.gridOptionsService.is('suppressColumnMoveAnimation')) {\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.gridOptionsService.is('enableRtl')) {\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$E([\n Autowired('ctrlsService')\n ], ColumnAnimationService.prototype, \"ctrlsService\", void 0);\n __decorate$E([\n PostConstruct\n ], ColumnAnimationService.prototype, \"postConstruct\", null);\n ColumnAnimationService = __decorate$E([\n Bean('columnAnimationService')\n ], ColumnAnimationService);\n return ColumnAnimationService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 PaginationAutoPageSizeService = /** @class */ (function (_super) {\n __extends$C(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.checkPageSize.bind(_this));\n _this.addManagedListener(_this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, _this.checkPageSize.bind(_this));\n _this.checkPageSize();\n });\n };\n PaginationAutoPageSizeService.prototype.notActive = function () {\n return !this.gridOptionsService.is('paginationAutoPageSize') || this.centerRowContainerCon == null;\n };\n PaginationAutoPageSizeService.prototype.checkPageSize = function () {\n var _this = this;\n if (this.notActive()) {\n return;\n }\n var bodyHeight = this.centerRowContainerCon.getViewportSizeFeature().getBodyHeight();\n if (bodyHeight > 0) {\n var update_1 = function () {\n var rowHeight = _this.gridOptionsService.getRowHeightAsNumber();\n var newPageSize = Math.floor(bodyHeight / rowHeight);\n _this.gridOptionsService.set('paginationPageSize', newPageSize);\n };\n if (!this.isBodyRendered) {\n update_1();\n this.isBodyRendered = true;\n }\n else {\n debounce(function () { return update_1(); }, 50)();\n }\n }\n else {\n this.isBodyRendered = false;\n }\n };\n __decorate$D([\n Autowired('ctrlsService')\n ], PaginationAutoPageSizeService.prototype, \"ctrlsService\", void 0);\n __decorate$D([\n PostConstruct\n ], PaginationAutoPageSizeService.prototype, \"postConstruct\", null);\n PaginationAutoPageSizeService = __decorate$D([\n Bean('paginationAutoPageSizeService')\n ], PaginationAutoPageSizeService);\n return PaginationAutoPageSizeService;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 ValueCache = /** @class */ (function (_super) {\n __extends$B(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.gridOptionsService.is('valueCache');\n this.neverExpires = this.gridOptionsService.is('valueCacheNeverExpires');\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$C([\n PostConstruct\n ], ValueCache.prototype, \"init\", null);\n ValueCache = __decorate$C([\n Bean('valueCache')\n ], ValueCache);\n return ValueCache;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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};\n// Matches value in clipboard module\nvar SOURCE_PASTE = 'paste';\nvar ChangeDetectionService = /** @class */ (function (_super) {\n __extends$A(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() === 'clientSide') {\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 === SOURCE_PASTE) {\n return;\n }\n this.doChangeDetection(event.node, event.column);\n };\n ChangeDetectionService.prototype.doChangeDetection = function (rowNode, column) {\n if (this.gridOptionsService.is('suppressChangeDetection')) {\n return;\n }\n var nodesToRefresh = [rowNode];\n // step 1 of change detection is to update the aggregated values\n if (this.clientSideRowModel && !rowNode.isRowPinned()) {\n var onlyChangedColumns = this.gridOptionsService.is('aggregateOnlyChangedColumns');\n var changedPath = new ChangedPath(onlyChangedColumns, this.clientSideRowModel.getRootNode());\n changedPath.addParentNode(rowNode.parent, [column]);\n this.clientSideRowModel.doAggregate(changedPath);\n // add all nodes impacted by aggregation, as they need refreshed also.\n changedPath.forEachChangedNodeDepthFirst(function (rowNode) {\n nodesToRefresh.push(rowNode);\n });\n }\n // step 2 of change detection is to refresh the cells\n this.rowRenderer.refreshCells({ rowNodes: nodesToRefresh });\n };\n __decorate$B([\n Autowired('rowModel')\n ], ChangeDetectionService.prototype, \"rowModel\", void 0);\n __decorate$B([\n Autowired('rowRenderer')\n ], ChangeDetectionService.prototype, \"rowRenderer\", void 0);\n __decorate$B([\n PostConstruct\n ], ChangeDetectionService.prototype, \"init\", null);\n ChangeDetectionService = __decorate$B([\n Bean('changeDetectionService')\n ], ChangeDetectionService);\n return ChangeDetectionService;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AgComponentUtils = /** @class */ (function (_super) {\n __extends$z(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$A([\n Autowired(\"componentMetadataProvider\")\n ], AgComponentUtils.prototype, \"componentMetadataProvider\", void 0);\n AgComponentUtils = __decorate$A([\n Bean(\"agComponentUtils\")\n ], AgComponentUtils);\n return AgComponentUtils;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 ComponentMetadataProvider = /** @class */ (function (_super) {\n __extends$y(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 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', 'afterGuiDetached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged', 'onAnyFilterChanged']\n },\n filterComponent: {\n mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],\n optionalMethodList: ['afterGuiAttached', 'afterGuiDetached', '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$z([\n Autowired(\"agComponentUtils\")\n ], ComponentMetadataProvider.prototype, \"agComponentUtils\", void 0);\n __decorate$z([\n PostConstruct\n ], ComponentMetadataProvider.prototype, \"postConstruct\", null);\n ComponentMetadataProvider = __decorate$z([\n Bean(\"componentMetadataProvider\")\n ], ComponentMetadataProvider);\n return ComponentMetadataProvider;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __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 __spreadArray$6 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar DEFAULT_ROW_HEIGHT = 25;\nvar MIN_COL_WIDTH = 10;\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 Environment = /** @class */ (function (_super) {\n __extends$x(Environment, _super);\n function Environment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.calculatedSizes = {};\n return _this;\n }\n Environment.prototype.postConstruct = function () {\n var _this = this;\n var _a;\n var el = (_a = this.getTheme().el) !== null && _a !== void 0 ? _a : this.eGridDiv;\n this.mutationObserver = new MutationObserver(function () {\n _this.calculatedSizes = {};\n _this.fireGridStylesChangedEvent();\n });\n this.mutationObserver.observe(el || this.eGridDiv, {\n attributes: true,\n attributeFilter: ['class']\n });\n };\n Environment.prototype.fireGridStylesChangedEvent = function () {\n var event = {\n type: Events.EVENT_GRID_STYLES_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n Environment.prototype.getSassVariable = function (key) {\n var _a = this.getTheme(), themeFamily = _a.themeFamily, el = _a.el;\n if (!themeFamily || themeFamily.indexOf('ag-theme') !== 0) {\n return;\n }\n if (!this.calculatedSizes) {\n this.calculatedSizes = {};\n }\n if (!this.calculatedSizes[themeFamily]) {\n this.calculatedSizes[themeFamily] = {};\n }\n var size = this.calculatedSizes[themeFamily][key];\n if (size != null) {\n return size;\n }\n this.calculatedSizes[themeFamily][key] = this.calculateValueForSassProperty(key, themeFamily, el);\n return this.calculatedSizes[themeFamily][key];\n };\n Environment.prototype.calculateValueForSassProperty = function (property, theme, themeElement) {\n var _a;\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][property];\n var eDocument = this.gridOptionsService.getDocument();\n if (!themeElement) {\n themeElement = this.eGridDiv;\n }\n if (!SASS_PROPERTY_BUILDER[property]) {\n return defaultValue;\n }\n var classList = SASS_PROPERTY_BUILDER[property];\n var div = eDocument.createElement('div');\n // this will apply SASS variables that were manually added to the current theme\n var classesFromThemeElement = Array.from(themeElement.classList);\n (_a = div.classList).add.apply(_a, __spreadArray$6([theme], __read$7(classesFromThemeElement)));\n div.style.position = 'absolute';\n var el = classList.reduce(function (prevEl, currentClass) {\n var currentDiv = eDocument.createElement('div');\n currentDiv.style.position = 'static';\n currentDiv.classList.add(currentClass);\n prevEl.appendChild(currentDiv);\n return currentDiv;\n }, div);\n var calculatedValue = 0;\n if (eDocument.body) {\n eDocument.body.appendChild(div);\n var sizeName = property.toLowerCase().indexOf('height') !== -1 ? 'height' : 'width';\n calculatedValue = parseInt(window.getComputedStyle(el)[sizeName], 10);\n eDocument.body.removeChild(div);\n }\n return calculatedValue || defaultValue;\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 return this.getSassVariable('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 return { theme: theme, el: el, themeFamily: theme.replace(/-dark$/, ''), allThemes: allThemes };\n };\n Environment.prototype.getFromTheme = function (defaultValue, sassVariableName) {\n var _a;\n return (_a = this.getSassVariable(sassVariableName)) !== null && _a !== void 0 ? _a : defaultValue;\n };\n Environment.prototype.getDefaultRowHeight = function () {\n return this.getFromTheme(DEFAULT_ROW_HEIGHT, 'rowHeight');\n };\n Environment.prototype.getListItemHeight = function () {\n return this.getFromTheme(20, 'listItemHeight');\n };\n Environment.prototype.refreshRowHeightVariable = function () {\n var oldRowHeight = this.eGridDiv.style.getPropertyValue('--ag-line-height').trim();\n var height = this.gridOptionsService.getNum('rowHeight');\n if (height == null || isNaN(height) || !isFinite(height)) {\n return -1;\n }\n var newRowHeight = height + \"px\";\n if (oldRowHeight != newRowHeight) {\n this.eGridDiv.style.setProperty('--ag-line-height', newRowHeight);\n return height;\n }\n return oldRowHeight != '' ? parseFloat(oldRowHeight) : -1;\n };\n Environment.prototype.getMinColWidth = function () {\n var measuredMin = this.getFromTheme(null, 'headerCellMinWidth');\n return exists(measuredMin) ? Math.max(measuredMin, MIN_COL_WIDTH) : MIN_COL_WIDTH;\n };\n Environment.prototype.destroy = function () {\n this.calculatedSizes = null;\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n _super.prototype.destroy.call(this);\n };\n __decorate$y([\n Autowired('eGridDiv')\n ], Environment.prototype, \"eGridDiv\", void 0);\n __decorate$y([\n PostConstruct\n ], Environment.prototype, \"postConstruct\", null);\n Environment = __decorate$y([\n Bean('environment')\n ], Environment);\n return Environment;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __param$2 = (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$w(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$x([\n Autowired('ctrlsService')\n ], RowContainerHeightService.prototype, \"ctrlsService\", void 0);\n __decorate$x([\n __param$2(0, Qualifier(\"loggerFactory\"))\n ], RowContainerHeightService.prototype, \"agWire\", null);\n __decorate$x([\n PostConstruct\n ], RowContainerHeightService.prototype, \"postConstruct\", null);\n RowContainerHeightService = __decorate$x([\n Bean('rowContainerHeightService')\n ], RowContainerHeightService);\n return RowContainerHeightService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 SelectableService = /** @class */ (function (_super) {\n __extends$v(SelectableService, _super);\n function SelectableService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectableService.prototype.init = function () {\n this.groupSelectsChildren = this.gridOptionsService.is('groupSelectsChildren');\n this.isRowSelectableFunc = this.gridOptionsService.get('isRowSelectable');\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$w([\n PostConstruct\n ], SelectableService.prototype, \"init\", null);\n SelectableService = __decorate$w([\n Bean('selectableService')\n ], SelectableService);\n return SelectableService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 PaginationComp = /** @class */ (function (_super) {\n __extends$u(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 _this.areListenersSetup = false;\n return _this;\n }\n PaginationComp.prototype.postConstruct = function () {\n var isRtl = this.gridOptionsService.is('enableRtl');\n this.setTemplate(this.getTemplate());\n var _a = this, btFirst = _a.btFirst, btPrevious = _a.btPrevious, btNext = _a.btNext, btLast = _a.btLast;\n this.activateTabIndex([btFirst, btPrevious, btNext, btLast]);\n btFirst.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'last' : 'first', this.gridOptionsService));\n btPrevious.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'next' : 'previous', this.gridOptionsService));\n btNext.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'previous' : 'next', this.gridOptionsService));\n btLast.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'first' : 'last', this.gridOptionsService));\n this.addManagedPropertyListener('pagination', this.onPaginationChanged.bind(this));\n this.addManagedPropertyListener('suppressPaginationPanel', this.onPaginationChanged.bind(this));\n this.onPaginationChanged();\n };\n PaginationComp.prototype.onPaginationChanged = function () {\n var isPaging = this.gridOptionsService.is('pagination');\n var paginationPanelEnabled = isPaging && !this.gridOptionsService.is('suppressPaginationPanel');\n this.setDisplayed(paginationPanelEnabled);\n if (!paginationPanelEnabled) {\n return;\n }\n this.setupListeners();\n this.enableOrDisableButtons();\n this.updateRowLabels();\n this.setCurrentPageLabel();\n this.setTotalLabels();\n };\n PaginationComp.prototype.setupListeners = function () {\n var _this = this;\n if (!this.areListenersSetup) {\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.areListenersSetup = true;\n }\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.gridOptionsService.getCallback('paginationNumberFormatter');\n if (userFunc) {\n var params = { value: value };\n return userFunc(params);\n }\n var localeTextFunc = this.localeService.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.localeService.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 };\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 var translate = this.localeService.getLocaleTextFunc();\n this.lbLastRowOnPage.innerHTML = translate('pageLastRowUnknown', '?');\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.localeService.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$v([\n Autowired('paginationProxy')\n ], PaginationComp.prototype, \"paginationProxy\", void 0);\n __decorate$v([\n Autowired('rowNodeBlockLoader')\n ], PaginationComp.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$v([\n RefSelector('btFirst')\n ], PaginationComp.prototype, \"btFirst\", void 0);\n __decorate$v([\n RefSelector('btPrevious')\n ], PaginationComp.prototype, \"btPrevious\", void 0);\n __decorate$v([\n RefSelector('btNext')\n ], PaginationComp.prototype, \"btNext\", void 0);\n __decorate$v([\n RefSelector('btLast')\n ], PaginationComp.prototype, \"btLast\", void 0);\n __decorate$v([\n RefSelector('lbRecordCount')\n ], PaginationComp.prototype, \"lbRecordCount\", void 0);\n __decorate$v([\n RefSelector('lbFirstRowOnPage')\n ], PaginationComp.prototype, \"lbFirstRowOnPage\", void 0);\n __decorate$v([\n RefSelector('lbLastRowOnPage')\n ], PaginationComp.prototype, \"lbLastRowOnPage\", void 0);\n __decorate$v([\n RefSelector('lbCurrent')\n ], PaginationComp.prototype, \"lbCurrent\", void 0);\n __decorate$v([\n RefSelector('lbTotal')\n ], PaginationComp.prototype, \"lbTotal\", void 0);\n __decorate$v([\n PostConstruct\n ], PaginationComp.prototype, \"postConstruct\", null);\n return PaginationComp;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 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$t(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, { skipAriaHidden: true });\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.gridOptionsService.isRowModelType('clientSide') && !this.gridOptionsService.get('rowData')) {\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.gridOptionsService.is('suppressLoadingOverlay')) {\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.gridOptionsService.is('suppressNoRowsOverlay')) {\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, { skipAriaHidden: 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, { skipAriaHidden: true });\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.gridOptionsService.is('suppressNoRowsOverlay');\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 OverlayWrapperComponent.TEMPLATE = \"\\n
    \\n
    \\n
    \\n
    \\n
    \";\n __decorate$u([\n Autowired('userComponentFactory')\n ], OverlayWrapperComponent.prototype, \"userComponentFactory\", void 0);\n __decorate$u([\n Autowired('paginationProxy')\n ], OverlayWrapperComponent.prototype, \"paginationProxy\", void 0);\n __decorate$u([\n Autowired('gridApi')\n ], OverlayWrapperComponent.prototype, \"gridApi\", void 0);\n __decorate$u([\n Autowired('columnModel')\n ], OverlayWrapperComponent.prototype, \"columnModel\", void 0);\n __decorate$u([\n RefSelector('eOverlayWrapper')\n ], OverlayWrapperComponent.prototype, \"eOverlayWrapper\", void 0);\n __decorate$u([\n PostConstruct\n ], OverlayWrapperComponent.prototype, \"postConstruct\", null);\n return OverlayWrapperComponent;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 RowPositionUtils = /** @class */ (function (_super) {\n __extends$s(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 = '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 = '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 = '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 = '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 'top':\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case '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 'top':\n // we we are floating top, and other isn't, then we are always before\n if (rowB.rowPinned !== 'top') {\n return true;\n }\n break;\n case 'bottom':\n // if we are floating bottom, and the other isn't, then we are never before\n if (rowB.rowPinned !== '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 !== '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$t([\n Autowired('rowModel')\n ], RowPositionUtils.prototype, \"rowModel\", void 0);\n __decorate$t([\n Autowired('pinnedRowModel')\n ], RowPositionUtils.prototype, \"pinnedRowModel\", void 0);\n __decorate$t([\n Autowired('paginationProxy')\n ], RowPositionUtils.prototype, \"paginationProxy\", void 0);\n RowPositionUtils = __decorate$t([\n Bean('rowPositionUtils')\n ], RowPositionUtils);\n return RowPositionUtils;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 CellPositionUtils = /** @class */ (function (_super) {\n __extends$r(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: rowIndex, column: column, rowPinned: rowPinned });\n };\n CellPositionUtils.prototype.createIdFromValues = function (cellPosition) {\n var rowIndex = cellPosition.rowIndex, rowPinned = cellPosition.rowPinned, column = cellPosition.column;\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$s([\n Bean('cellPositionUtils')\n ], CellPositionUtils);\n return CellPositionUtils;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$q(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\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 __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 __spreadArray$5 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar UndoRedoService = /** @class */ (function (_super) {\n __extends$p(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.gridOptionsService.is('undoRedoCellEditing')) {\n return;\n }\n var undoRedoLimit = this.gridOptionsService.getNum('undoRedoCellEditingLimit');\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 (source) {\n var startEvent = {\n type: Events.EVENT_UNDO_STARTED,\n source: source\n };\n this.eventService.dispatchEvent(startEvent);\n var operationPerformed = this.undoRedo(this.undoStack, this.redoStack, 'initialRange', 'oldValue', 'undo');\n var endEvent = {\n type: Events.EVENT_UNDO_ENDED,\n source: source,\n operationPerformed: operationPerformed\n };\n this.eventService.dispatchEvent(endEvent);\n };\n UndoRedoService.prototype.redo = function (source) {\n var startEvent = {\n type: Events.EVENT_REDO_STARTED,\n source: source\n };\n this.eventService.dispatchEvent(startEvent);\n var operationPerformed = this.undoRedo(this.redoStack, this.undoStack, 'finalRange', 'newValue', 'redo');\n var endEvent = {\n type: Events.EVENT_REDO_ENDED,\n source: source,\n operationPerformed: operationPerformed\n };\n this.eventService.dispatchEvent(endEvent);\n };\n UndoRedoService.prototype.undoRedo = function (undoRedoStack, opposingUndoRedoStack, rangeProperty, cellValueChangeProperty, source) {\n if (!undoRedoStack) {\n return false;\n }\n var undoRedoAction = undoRedoStack.pop();\n if (!undoRedoAction || !undoRedoAction.cellValueChanges) {\n return false;\n }\n this.processAction(undoRedoAction, function (cellValueChange) { return cellValueChange[cellValueChangeProperty]; }, source);\n if (undoRedoAction instanceof RangeUndoRedoAction) {\n this.processRange(undoRedoAction.ranges || [undoRedoAction[rangeProperty]]);\n }\n else {\n this.processCell(undoRedoAction.cellValueChanges);\n }\n opposingUndoRedoStack.push(undoRedoAction);\n return true;\n };\n UndoRedoService.prototype.processAction = function (action, valueExtractor, source) {\n var _this = this;\n action.cellValueChanges.forEach(function (cellValueChange) {\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 currentRow.setDataValue(columnId, valueExtractor(cellValueChange), source);\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 // when single cells are being processed, they should be considered\n // as ranges when the rangeService is present (singleCellRanges).\n // otherwise focus will be restore but the range will not.\n this.setLastFocusedCell(lastFocusedCell, !!this.rangeService);\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$2(__assign$2({}, 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.gridOptionsService.is('enableRangeSelection')) {\n action = new RangeUndoRedoAction(_this.cellValueChanges, undefined, undefined, __spreadArray$5([], __read$6(_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 'top':\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case 'bottom':\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n __decorate$r([\n Autowired('focusService')\n ], UndoRedoService.prototype, \"focusService\", void 0);\n __decorate$r([\n Autowired('ctrlsService')\n ], UndoRedoService.prototype, \"ctrlsService\", void 0);\n __decorate$r([\n Autowired('rowModel')\n ], UndoRedoService.prototype, \"rowModel\", void 0);\n __decorate$r([\n Autowired('pinnedRowModel')\n ], UndoRedoService.prototype, \"pinnedRowModel\", void 0);\n __decorate$r([\n Autowired('cellPositionUtils')\n ], UndoRedoService.prototype, \"cellPositionUtils\", void 0);\n __decorate$r([\n Autowired('rowPositionUtils')\n ], UndoRedoService.prototype, \"rowPositionUtils\", void 0);\n __decorate$r([\n Autowired('columnModel')\n ], UndoRedoService.prototype, \"columnModel\", void 0);\n __decorate$r([\n Optional('rangeService')\n ], UndoRedoService.prototype, \"rangeService\", void 0);\n __decorate$r([\n PostConstruct\n ], UndoRedoService.prototype, \"init\", null);\n UndoRedoService = __decorate$r([\n Bean('undoRedoService')\n ], UndoRedoService);\n return UndoRedoService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 HeaderPositionUtils = /** @class */ (function (_super) {\n __extends$o(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 }\n var headerRowIndex = focusedHeader.headerRowIndex;\n var currentRowType = this.getHeaderRowType(headerRowIndex);\n if (currentRowType === HeaderRowType.COLUMN_GROUP) {\n var columnGroup = nextColumn;\n if (columnGroup.isPadding() && this.isAnyChildSpanningHeaderHeight(columnGroup)) {\n var _a = this.getColumnVisibleChild(columnGroup, headerRowIndex, direction), nextFocusColumn = _a.nextFocusColumn, nextRow = _a.nextRow;\n if (nextFocusColumn) {\n nextColumn = nextFocusColumn;\n headerRowIndex = nextRow;\n }\n }\n }\n return {\n column: nextColumn,\n headerRowIndex: headerRowIndex\n };\n };\n HeaderPositionUtils.prototype.isAnyChildSpanningHeaderHeight = function (columnGroup) {\n if (!columnGroup) {\n return false;\n }\n return columnGroup.getLeafColumns().some(function (col) { return col.isSpanHeaderHeight(); });\n };\n HeaderPositionUtils.prototype.getColumnVisibleParent = function (currentColumn, currentIndex) {\n var currentRowType = this.getHeaderRowType(currentIndex);\n var isFloatingFilter = currentRowType === HeaderRowType.FLOATING_FILTER;\n var isColumn = currentRowType === HeaderRowType.COLUMN;\n var nextFocusColumn = isFloatingFilter ? currentColumn : currentColumn.getParent();\n var nextRow = currentIndex - 1;\n if (isColumn && this.isAnyChildSpanningHeaderHeight(currentColumn.getParent())) {\n while (nextFocusColumn && nextFocusColumn.isPadding()) {\n nextFocusColumn = nextFocusColumn.getParent();\n nextRow--;\n }\n if (nextRow < 0) {\n nextFocusColumn = currentColumn;\n nextRow = currentIndex;\n }\n }\n return { nextFocusColumn: nextFocusColumn, nextRow: nextRow };\n };\n HeaderPositionUtils.prototype.getColumnVisibleChild = function (column, currentIndex, direction) {\n if (direction === void 0) { direction = 'After'; }\n var currentRowType = this.getHeaderRowType(currentIndex);\n var nextFocusColumn = column;\n var nextRow = currentIndex + 1;\n if (currentRowType === HeaderRowType.COLUMN_GROUP) {\n var leafColumns = column.getLeafColumns();\n var leafChild = direction === 'After' ? leafColumns[0] : last(leafColumns);\n if (this.isAnyChildSpanningHeaderHeight(leafChild.getParent())) {\n nextFocusColumn = leafChild;\n var currentColumn = leafChild.getParent();\n while (currentColumn && currentColumn !== column) {\n currentColumn = currentColumn.getParent();\n nextRow++;\n }\n }\n else {\n nextFocusColumn = column.getDisplayedChildren()[0];\n }\n }\n return { nextFocusColumn: nextFocusColumn, nextRow: nextRow };\n };\n HeaderPositionUtils.prototype.getHeaderRowType = function (rowIndex) {\n var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n if (centerHeaderContainer) {\n return centerHeaderContainer.getRowType(rowIndex);\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$q([\n Autowired('columnModel')\n ], HeaderPositionUtils.prototype, \"columnModel\", void 0);\n __decorate$q([\n Autowired('ctrlsService')\n ], HeaderPositionUtils.prototype, \"ctrlsService\", void 0);\n HeaderPositionUtils = __decorate$q([\n Bean('headerPositionUtils')\n ], HeaderPositionUtils);\n return HeaderPositionUtils;\n}(BeanStub));\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 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 var lastPointer = null;\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 if (pointer != null && lastPointer === pointer) {\n addToResult = false;\n break;\n }\n // Ensure we don't get stuck in an infinite loop\n lastPointer = pointer;\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$p([\n Bean('columnDefFactory')\n ], ColumnDefFactory);\n return ColumnDefFactory;\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 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 === 'left') {\n classes.push('ag-cell-last-left-pinned');\n }\n if (params.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.gridOptionsService.get('rowClass');\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.gridOptionsService.getCallback('getRowClass');\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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n this.stylingService.processClassRules(this.gridOptionsService.get('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$o([\n Autowired('stylingService')\n ], RowCssClassCalculator.prototype, \"stylingService\", void 0);\n __decorate$o([\n Autowired('gridOptionsService')\n ], RowCssClassCalculator.prototype, \"gridOptionsService\", void 0);\n RowCssClassCalculator = __decorate$o([\n Bean('rowCssClassCalculator')\n ], RowCssClassCalculator);\n return RowCssClassCalculator;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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};\n// this logic is used by both SSRM and CSRM\nvar RowNodeSorter = /** @class */ (function (_super) {\n __extends$n(RowNodeSorter, _super);\n function RowNodeSorter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RowNodeSorter.prototype.init = function () {\n var _this = this;\n this.isAccentedSort = this.gridOptionsService.is('accentedSort');\n this.primaryColumnsSortGroups = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n this.addManagedPropertyListener('accentedSort', function (propChange) { return _this.isAccentedSort = propChange.currentValue; });\n this.addManagedPropertyListener('autoGroupColumnDef', function () { return _this.primaryColumnsSortGroups = _this.gridOptionsService.isColumnsSortingCoupledToGroup(); });\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 === '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.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 === '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 if (!this.primaryColumnsSortGroups) {\n return this.valueService.getValue(column, node, false, false);\n }\n var isNodeGroupedAtLevel = node.rowGroupColumn === column;\n if (isNodeGroupedAtLevel) {\n var isGroupRows = this.gridOptionsService.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$n([\n Autowired('valueService')\n ], RowNodeSorter.prototype, \"valueService\", void 0);\n __decorate$n([\n Autowired('columnModel')\n ], RowNodeSorter.prototype, \"columnModel\", void 0);\n __decorate$n([\n PostConstruct\n ], RowNodeSorter.prototype, \"init\", null);\n RowNodeSorter = __decorate$n([\n Bean('rowNodeSorter')\n ], RowNodeSorter);\n return RowNodeSorter;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 CtrlsService = /** @class */ (function (_super) {\n __extends$m(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.fakeHScrollComp != null\n && this.fakeVScrollComp != 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 fakeHScrollComp: this.fakeHScrollComp,\n fakeVScrollComp: this.fakeVScrollComp,\n gridBodyCtrl: this.gridBodyCtrl,\n gridCtrl: this.gridCtrl,\n gridHeaderCtrl: this.gridHeaderCtrl,\n };\n };\n CtrlsService.prototype.registerFakeHScrollComp = function (comp) {\n this.fakeHScrollComp = comp;\n this.checkReady();\n };\n CtrlsService.prototype.registerFakeVScrollComp = function (comp) {\n this.fakeVScrollComp = comp;\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 'left':\n this.leftHeaderRowContainerCtrl = ctrl;\n break;\n case '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.getFakeHScrollComp = function () {\n return this.fakeHScrollComp;\n };\n CtrlsService.prototype.getFakeVScrollComp = function () {\n return this.fakeVScrollComp;\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 'left': return this.leftHeaderRowContainerCtrl;\n case 'right': return this.rightHeaderRowContainerCtrl;\n default: return this.centerHeaderRowContainerCtrl;\n }\n };\n var CtrlsService_1;\n CtrlsService.NAME = 'ctrlsService';\n CtrlsService = CtrlsService_1 = __decorate$m([\n Bean(CtrlsService_1.NAME)\n ], CtrlsService);\n return CtrlsService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 CtrlsFactory = /** @class */ (function (_super) {\n __extends$l(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$l([\n Bean('ctrlsFactory')\n ], CtrlsFactory);\n return CtrlsFactory;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 AbstractFakeScrollComp = /** @class */ (function (_super) {\n __extends$k(AbstractFakeScrollComp, _super);\n function AbstractFakeScrollComp(template, direction) {\n var _this = _super.call(this, template) || this;\n _this.direction = direction;\n _this.hideTimeout = null;\n return _this;\n }\n AbstractFakeScrollComp.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n this.onScrollVisibilityChanged();\n this.addOrRemoveCssClass('ag-apple-scrollbar', isMacOsUserAgent() || isIOSUserAgent());\n };\n AbstractFakeScrollComp.prototype.initialiseInvisibleScrollbar = function () {\n if (this.invisibleScrollbar !== undefined) {\n return;\n }\n this.invisibleScrollbar = isInvisibleScrollbar();\n if (this.invisibleScrollbar) {\n this.hideAndShowInvisibleScrollAsNeeded();\n this.addActiveListenerToggles();\n }\n };\n AbstractFakeScrollComp.prototype.addActiveListenerToggles = function () {\n var _this = this;\n var activateEvents = ['mouseenter', 'mousedown', 'touchstart'];\n var deactivateEvents = ['mouseleave', 'touchend'];\n var eGui = this.getGui();\n activateEvents.forEach(function (eventName) { return _this.addManagedListener(eGui, eventName, function () { return _this.addOrRemoveCssClass('ag-scrollbar-active', true); }); });\n deactivateEvents.forEach(function (eventName) { return _this.addManagedListener(eGui, eventName, function () { return _this.addOrRemoveCssClass('ag-scrollbar-active', false); }); });\n };\n AbstractFakeScrollComp.prototype.onScrollVisibilityChanged = function () {\n var _this = this;\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.animationFrameService.requestAnimationFrame(function () { return _this.setScrollVisible(); });\n };\n AbstractFakeScrollComp.prototype.hideAndShowInvisibleScrollAsNeeded = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, function (params) {\n if (params.direction === _this.direction) {\n if (_this.hideTimeout !== null) {\n window.clearTimeout(_this.hideTimeout);\n _this.hideTimeout = null;\n }\n _this.addOrRemoveCssClass('ag-scrollbar-scrolling', true);\n }\n });\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL_END, function () {\n _this.hideTimeout = window.setTimeout(function () {\n _this.addOrRemoveCssClass('ag-scrollbar-scrolling', false);\n _this.hideTimeout = null;\n }, 400);\n });\n };\n AbstractFakeScrollComp.prototype.attemptSettingScrollPosition = function (value) {\n var _this = this;\n var viewport = this.getViewport();\n waitUntil(function () { return isVisible(viewport); }, function () { return _this.setScrollPosition(value); }, 100);\n };\n AbstractFakeScrollComp.prototype.getViewport = function () {\n return this.eViewport;\n };\n AbstractFakeScrollComp.prototype.getContainer = function () {\n return this.eContainer;\n };\n AbstractFakeScrollComp.prototype.onScrollCallback = function (fn) {\n this.addManagedListener(this.getViewport(), 'scroll', fn);\n };\n __decorate$k([\n RefSelector('eViewport')\n ], AbstractFakeScrollComp.prototype, \"eViewport\", void 0);\n __decorate$k([\n RefSelector('eContainer')\n ], AbstractFakeScrollComp.prototype, \"eContainer\", void 0);\n __decorate$k([\n Autowired('scrollVisibleService')\n ], AbstractFakeScrollComp.prototype, \"scrollVisibleService\", void 0);\n __decorate$k([\n Autowired('ctrlsService')\n ], AbstractFakeScrollComp.prototype, \"ctrlsService\", void 0);\n __decorate$k([\n Autowired('animationFrameService')\n ], AbstractFakeScrollComp.prototype, \"animationFrameService\", void 0);\n return AbstractFakeScrollComp;\n}(Component));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 FakeHScrollComp = /** @class */ (function (_super) {\n __extends$j(FakeHScrollComp, _super);\n function FakeHScrollComp() {\n return _super.call(this, FakeHScrollComp.TEMPLATE, 'horizontal') || this;\n }\n FakeHScrollComp.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(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.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.addManagedPropertyListener('domLayout', spacerWidthsListener);\n this.ctrlsService.registerFakeHScrollComp(this);\n this.createManagedBean(new CenterWidthFeature(function (width) { return _this.eContainer.style.width = width + \"px\"; }));\n };\n FakeHScrollComp.prototype.initialiseInvisibleScrollbar = function () {\n if (this.invisibleScrollbar !== undefined) {\n return;\n }\n this.enableRtl = this.gridOptionsService.is('enableRtl');\n _super.prototype.initialiseInvisibleScrollbar.call(this);\n if (this.invisibleScrollbar) {\n this.refreshCompBottom();\n }\n };\n FakeHScrollComp.prototype.onPinnedRowDataChanged = function () {\n this.refreshCompBottom();\n };\n FakeHScrollComp.prototype.refreshCompBottom = function () {\n if (!this.invisibleScrollbar) {\n return;\n }\n var bottomPinnedHeight = this.pinnedRowModel.getPinnedBottomTotalHeight();\n this.getGui().style.bottom = bottomPinnedHeight + \"px\";\n };\n FakeHScrollComp.prototype.onScrollVisibilityChanged = function () {\n _super.prototype.onScrollVisibilityChanged.call(this);\n this.setFakeHScrollSpacerWidths();\n };\n FakeHScrollComp.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.gridOptionsService.getScrollbarWidth();\n if (scrollOnRight) {\n rightSpacing += scrollbarWidth;\n }\n setFixedWidth(this.eRightSpacer, rightSpacing);\n this.eRightSpacer.classList.toggle('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 setFixedWidth(this.eLeftSpacer, leftSpacing);\n this.eLeftSpacer.classList.toggle('ag-scroller-corner', leftSpacing <= scrollbarWidth);\n };\n FakeHScrollComp.prototype.setScrollVisible = function () {\n var hScrollShowing = this.scrollVisibleService.isHorizontalScrollShowing();\n var invisibleScrollbar = this.invisibleScrollbar;\n var isSuppressHorizontalScroll = this.gridOptionsService.is('suppressHorizontalScroll');\n var scrollbarWidth = hScrollShowing ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;\n var adjustedScrollbarWidth = (scrollbarWidth === 0 && invisibleScrollbar) ? 16 : scrollbarWidth;\n var scrollContainerSize = !isSuppressHorizontalScroll ? adjustedScrollbarWidth : 0;\n this.addOrRemoveCssClass('ag-scrollbar-invisible', invisibleScrollbar);\n setFixedHeight(this.getGui(), scrollContainerSize);\n setFixedHeight(this.eViewport, scrollContainerSize);\n setFixedHeight(this.eContainer, scrollContainerSize);\n this.setDisplayed(hScrollShowing, { skipAriaHidden: true });\n };\n FakeHScrollComp.prototype.getScrollPosition = function () {\n return getScrollLeft(this.getViewport(), this.enableRtl);\n };\n FakeHScrollComp.prototype.setScrollPosition = function (value) {\n if (!isVisible(this.getViewport())) {\n this.attemptSettingScrollPosition(value);\n }\n setScrollLeft(this.getViewport(), value, this.enableRtl);\n };\n FakeHScrollComp.TEMPLATE = \"
    \\n
    \\n
    \\n
    \\n
    \\n
    \\n
    \";\n __decorate$j([\n RefSelector('eLeftSpacer')\n ], FakeHScrollComp.prototype, \"eLeftSpacer\", void 0);\n __decorate$j([\n RefSelector('eRightSpacer')\n ], FakeHScrollComp.prototype, \"eRightSpacer\", void 0);\n __decorate$j([\n Autowired('columnModel')\n ], FakeHScrollComp.prototype, \"columnModel\", void 0);\n __decorate$j([\n Autowired('pinnedRowModel')\n ], FakeHScrollComp.prototype, \"pinnedRowModel\", void 0);\n __decorate$j([\n PostConstruct\n ], FakeHScrollComp.prototype, \"postConstruct\", null);\n return FakeHScrollComp;\n}(AbstractFakeScrollComp));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 PinnedWidthService = /** @class */ (function (_super) {\n __extends$i(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.addManagedPropertyListener('domLayout', listener);\n };\n PinnedWidthService.prototype.checkContainerWidths = function () {\n var printLayout = this.gridOptionsService.isDomLayout('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$i([\n Autowired('columnModel')\n ], PinnedWidthService.prototype, \"columnModel\", void 0);\n __decorate$i([\n PostConstruct\n ], PinnedWidthService.prototype, \"postConstruct\", null);\n PinnedWidthService = __decorate$i([\n Bean('pinnedWidthService')\n ], PinnedWidthService);\n return PinnedWidthService;\n}(BeanStub));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 RowNodeEventThrottle = /** @class */ (function (_super) {\n __extends$h(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() == 'clientSide') {\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$h([\n Autowired('animationFrameService')\n ], RowNodeEventThrottle.prototype, \"animationFrameService\", void 0);\n __decorate$h([\n Autowired('rowModel')\n ], RowNodeEventThrottle.prototype, \"rowModel\", void 0);\n __decorate$h([\n PostConstruct\n ], RowNodeEventThrottle.prototype, \"postConstruct\", null);\n RowNodeEventThrottle = __decorate$h([\n Bean('rowNodeEventThrottle')\n ], RowNodeEventThrottle);\n return RowNodeEventThrottle;\n}(BeanStub));\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$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 __param$1 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\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 __spreadArray$4 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\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 isTrue(value) {\n return value === true || value === 'true';\n}\nvar GridOptionsService = /** @class */ (function () {\n function GridOptionsService() {\n var _this = this;\n this.destroyed = false;\n this.domDataKey = '__AG_' + Math.random().toString();\n this.propertyEventService = new EventService();\n // responsible for calling the onXXX functions on gridOptions\n // It forces events defined in GridOptionsService.alwaysSyncGlobalEvents to be fired synchronously.\n // This is required for events such as GridPreDestroyed.\n // Other events can be fired asynchronously or synchronously depending on config.\n this.globalEventHandlerFactory = function (restrictToSyncOnly) {\n return function (eventName, event) {\n // prevent events from being fired _after_ the grid has been destroyed\n if (_this.destroyed) {\n return;\n }\n var alwaysSync = GridOptionsService_1.alwaysSyncGlobalEvents.has(eventName);\n if ((alwaysSync && !restrictToSyncOnly) || (!alwaysSync && restrictToSyncOnly)) {\n return;\n }\n var callbackMethodName = ComponentUtil.getCallbackForEvent(eventName);\n if (typeof _this.gridOptions[callbackMethodName] === 'function') {\n _this.gridOptions[callbackMethodName](event);\n }\n };\n };\n }\n GridOptionsService_1 = GridOptionsService;\n Object.defineProperty(GridOptionsService.prototype, \"context\", {\n // This is quicker then having code call gridOptionsService.get('context')\n get: function () {\n return this.gridOptions['context'];\n },\n enumerable: false,\n configurable: true\n });\n GridOptionsService.prototype.agWire = function (gridApi, columnApi) {\n this.gridOptions.api = gridApi;\n this.gridOptions.columnApi = columnApi;\n this.api = gridApi;\n this.columnApi = columnApi;\n };\n GridOptionsService.prototype.init = function () {\n this.gridOptionLookup = new Set(__spreadArray$4(__spreadArray$4([], __read$5(ComponentUtil.ALL_PROPERTIES)), __read$5(ComponentUtil.EVENT_CALLBACKS)));\n var async = !this.is('suppressAsyncEvents');\n this.eventService.addGlobalListener(this.globalEventHandlerFactory().bind(this), async);\n this.eventService.addGlobalListener(this.globalEventHandlerFactory(true).bind(this), false);\n // sets an initial calculation for the scrollbar width\n this.getScrollbarWidth();\n };\n GridOptionsService.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 /**\n * Is the given GridOption property set to true.\n * @param property GridOption property that has the type `boolean | undefined`\n */\n GridOptionsService.prototype.is = function (property) {\n return isTrue(this.gridOptions[property]);\n };\n /**\n * Get the raw value of the GridOptions property provided.\n * @param property\n */\n GridOptionsService.prototype.get = function (property) {\n return this.gridOptions[property];\n };\n /**\n * Get the GridOption property as a number, raw value is returned via a toNumber coercion function.\n * @param property GridOption property that has the type `number | undefined`\n */\n GridOptionsService.prototype.getNum = function (property) {\n return toNumber(this.gridOptions[property]);\n };\n /**\n * Get the GridOption callback but wrapped so that the common params of api,columnApi and context are automatically applied to the params.\n * @param property GridOption callback properties based on the fact that this property has a callback with params extending AgGridCommon\n */\n GridOptionsService.prototype.getCallback = function (property) {\n return this.mergeGridCommonParams(this.gridOptions[property]);\n };\n /**\n * Returns `true` if a value has been specified for this GridOption.\n * @param property GridOption property\n */\n GridOptionsService.prototype.exists = function (property) {\n return exists(this.gridOptions[property]);\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 GridOptionsService.prototype.mergeGridCommonParams = function (callback) {\n var _this = this;\n if (callback) {\n var wrapped = function (callbackParams) {\n var mergedParams = callbackParams;\n mergedParams.api = _this.api;\n mergedParams.columnApi = _this.columnApi;\n mergedParams.context = _this.context;\n return callback(mergedParams);\n };\n return wrapped;\n }\n return callback;\n };\n /**\n * DO NOT USE - only for use for ComponentUtil applyChanges via GridApi.\n * Use `set` method instead.\n * Only update the property value, don't fire any events. This enables all properties\n * that have been updated together to be updated before any events get triggered to avoid\n * out of sync issues.\n * @param key - key of the GridOption property to update\n * @param newValue - new value for this property\n * @returns The `true` if the previous value is not equal to the new value.\n */\n GridOptionsService.prototype.__setPropertyOnly = function (key, newValue) {\n var previousValue = this.gridOptions[key];\n if (this.gridOptionLookup.has(key)) {\n this.gridOptions[key] = newValue;\n }\n return previousValue !== newValue;\n };\n /**\n *\n * @param key - key of the GridOption property to update\n * @param newValue - new value for this property\n * @param force - force the property change Event to be fired even if the value has not changed\n * @param eventParams - additional params to merge into the property changed event\n * @param changeSetId - Change set id used to identify keys that have been updated in the same framework lifecycle update.\n */\n GridOptionsService.prototype.set = function (key, newValue, force, eventParams, changeSet) {\n if (force === void 0) { force = false; }\n if (eventParams === void 0) { eventParams = {}; }\n if (changeSet === void 0) { changeSet = undefined; }\n if (this.gridOptionLookup.has(key)) {\n var previousValue = this.gridOptions[key];\n if (force || previousValue !== newValue) {\n this.gridOptions[key] = newValue;\n var event_1 = __assign$1({ type: key, currentValue: newValue, previousValue: previousValue, changeSet: changeSet }, eventParams);\n this.propertyEventService.dispatchEvent(event_1);\n }\n }\n };\n GridOptionsService.prototype.addEventListener = function (key, listener) {\n this.propertyEventService.addEventListener(key, listener);\n };\n GridOptionsService.prototype.removeEventListener = function (key, listener) {\n this.propertyEventService.removeEventListener(key, listener);\n };\n // *************** Helper methods ************************** //\n // Methods to share common GridOptions related logic that goes above accessing a single property\n GridOptionsService.prototype.getGridId = function () {\n return this.api.getGridId();\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 GridOptionsService.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 GridOptionsService.prototype.isRowModelType = function (rowModelType) {\n return this.gridOptions.rowModelType === rowModelType ||\n (rowModelType === 'clientSide' && missing(this.gridOptions.rowModelType));\n };\n GridOptionsService.prototype.isDomLayout = function (domLayout) {\n var _a;\n var gridLayout = (_a = this.gridOptions.domLayout) !== null && _a !== void 0 ? _a : 'normal';\n return gridLayout === domLayout;\n };\n GridOptionsService.prototype.isRowSelection = function () {\n return this.gridOptions.rowSelection === 'single' || this.gridOptions.rowSelection === 'multiple';\n };\n GridOptionsService.prototype.useAsyncEvents = function () {\n return !this.is('suppressAsyncEvents');\n };\n GridOptionsService.prototype.isGetRowHeightFunction = function () {\n return typeof this.gridOptions.getRowHeight === 'function';\n };\n GridOptionsService.prototype.getRowHeightForNode = function (rowNode, allowEstimate, defaultRowHeight) {\n if (allowEstimate === void 0) { allowEstimate = false; }\n if (defaultRowHeight == null) {\n defaultRowHeight = this.environment.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.getCallback('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.is('masterDetail')) {\n return this.getMasterDetailRowHeight();\n }\n var rowHeight = this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight) ? this.gridOptions.rowHeight : defaultRowHeight;\n return { height: rowHeight, estimated: false };\n };\n GridOptionsService.prototype.getMasterDetailRowHeight = function () {\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.is('detailRowAutoHeight')) {\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: 300, estimated: false };\n };\n // we don't allow dynamic row height for virtual paging\n GridOptionsService.prototype.getRowHeightAsNumber = function () {\n if (!this.gridOptions.rowHeight || missing(this.gridOptions.rowHeight)) {\n return this.environment.getDefaultRowHeight();\n }\n var rowHeight = this.environment.refreshRowHeightVariable();\n if (rowHeight !== -1) {\n return rowHeight;\n }\n console.warn('AG Grid row height must be a number if not using standard row model');\n return this.environment.getDefaultRowHeight();\n };\n GridOptionsService.prototype.isNumeric = function (value) {\n return !isNaN(value) && typeof value === 'number' && isFinite(value);\n };\n GridOptionsService.prototype.getDomDataKey = function () {\n return this.domDataKey;\n };\n // returns the dom data, or undefined if not found\n GridOptionsService.prototype.getDomData = function (element, key) {\n var domData = element[this.getDomDataKey()];\n return domData ? domData[key] : undefined;\n };\n GridOptionsService.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 GridOptionsService.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 GridOptionsService.prototype.getWindow = function () {\n var eDocument = this.getDocument();\n return eDocument.defaultView || window;\n };\n GridOptionsService.prototype.getRootNode = function () {\n return this.eGridDiv.getRootNode();\n };\n GridOptionsService.prototype.getAsyncTransactionWaitMillis = function () {\n return exists(this.gridOptions.asyncTransactionWaitMillis) ? this.gridOptions.asyncTransactionWaitMillis : 50;\n };\n GridOptionsService.prototype.isAnimateRows = function () {\n // never allow animating if enforcing the row order\n if (this.is('ensureDomOrder')) {\n return false;\n }\n return this.is('animateRows');\n };\n GridOptionsService.prototype.isGroupRowsSticky = function () {\n if (this.is('suppressGroupRowsSticky') ||\n this.is('paginateChildRows') ||\n this.is('groupHideOpenParents')) {\n return false;\n }\n return true;\n };\n GridOptionsService.prototype.isColumnsSortingCoupledToGroup = function () {\n var autoGroupColumnDef = this.gridOptions.autoGroupColumnDef;\n var isClientSideRowModel = this.isRowModelType('clientSide');\n return isClientSideRowModel && !(autoGroupColumnDef === null || autoGroupColumnDef === void 0 ? void 0 : autoGroupColumnDef.comparator) && !this.is('treeData');\n };\n GridOptionsService.prototype.getGroupAggFiltering = function () {\n var userValue = this.gridOptions.groupAggFiltering;\n if (typeof userValue === 'function') {\n return this.getCallback('groupAggFiltering');\n }\n if (isTrue(userValue)) {\n return function () { return true; };\n }\n return undefined;\n };\n GridOptionsService.prototype.isGroupIncludeFooterTrueOrCallback = function () {\n var userValue = this.gridOptions.groupIncludeFooter;\n return isTrue(userValue) || typeof userValue === 'function';\n };\n GridOptionsService.prototype.getGroupIncludeFooter = function () {\n var userValue = this.gridOptions.groupIncludeFooter;\n if (typeof userValue === 'function') {\n return this.getCallback('groupIncludeFooter');\n }\n if (isTrue(userValue)) {\n return function () { return true; };\n }\n return function () { return false; };\n };\n GridOptionsService.prototype.isGroupMultiAutoColumn = function () {\n if (this.gridOptions.groupDisplayType) {\n return matchesGroupDisplayType('multipleColumns', this.gridOptions.groupDisplayType);\n }\n // if we are doing hideOpenParents we also show multiple columns, otherwise hideOpenParents would not work\n return this.is('groupHideOpenParents');\n };\n GridOptionsService.prototype.isGroupUseEntireRow = function (pivotMode) {\n // we never allow groupDisplayType = 'groupRows' if in pivot mode, otherwise we won't see the pivot values.\n if (pivotMode) {\n return false;\n }\n return this.gridOptions.groupDisplayType ? matchesGroupDisplayType('groupRows', this.gridOptions.groupDisplayType) : false;\n };\n var GridOptionsService_1;\n GridOptionsService.alwaysSyncGlobalEvents = new Set([Events.EVENT_GRID_PRE_DESTROYED]);\n __decorate$g([\n Autowired('gridOptions')\n ], GridOptionsService.prototype, \"gridOptions\", void 0);\n __decorate$g([\n Autowired('eventService')\n ], GridOptionsService.prototype, \"eventService\", void 0);\n __decorate$g([\n Autowired('environment')\n ], GridOptionsService.prototype, \"environment\", void 0);\n __decorate$g([\n Autowired('eGridDiv')\n ], GridOptionsService.prototype, \"eGridDiv\", void 0);\n __decorate$g([\n __param$1(0, Qualifier('gridApi')),\n __param$1(1, Qualifier('columnApi'))\n ], GridOptionsService.prototype, \"agWire\", null);\n __decorate$g([\n PostConstruct\n ], GridOptionsService.prototype, \"init\", null);\n __decorate$g([\n PreDestroy\n ], GridOptionsService.prototype, \"destroy\", null);\n GridOptionsService = GridOptionsService_1 = __decorate$g([\n Bean('gridOptionsService')\n ], GridOptionsService);\n return GridOptionsService;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 LocaleService = /** @class */ (function (_super) {\n __extends$g(LocaleService, _super);\n function LocaleService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LocaleService.prototype.getLocaleTextFunc = function () {\n var getLocaleText = this.gridOptionsService.getCallback('getLocaleText');\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 };\n return getLocaleText(params);\n };\n }\n var localeText = this.gridOptionsService.get('localeText');\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 LocaleService = __decorate$f([\n Bean('localeService')\n ], LocaleService);\n return LocaleService;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 FakeVScrollComp = /** @class */ (function (_super) {\n __extends$f(FakeVScrollComp, _super);\n function FakeVScrollComp() {\n return _super.call(this, FakeVScrollComp.TEMPLATE, 'vertical') || this;\n }\n FakeVScrollComp.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.createManagedBean(new SetHeightFeature(this.eContainer));\n this.ctrlsService.registerFakeVScrollComp(this);\n this.addManagedListener(this.eventService, Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED, this.onRowContainerHeightChanged.bind(this));\n };\n FakeVScrollComp.prototype.setScrollVisible = function () {\n var vScrollShowing = this.scrollVisibleService.isVerticalScrollShowing();\n var invisibleScrollbar = this.invisibleScrollbar;\n var scrollbarWidth = vScrollShowing ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;\n var adjustedScrollbarWidth = (scrollbarWidth === 0 && invisibleScrollbar) ? 16 : scrollbarWidth;\n this.addOrRemoveCssClass('ag-scrollbar-invisible', invisibleScrollbar);\n setFixedWidth(this.getGui(), adjustedScrollbarWidth);\n setFixedWidth(this.eViewport, adjustedScrollbarWidth);\n setFixedWidth(this.eContainer, adjustedScrollbarWidth);\n this.setDisplayed(vScrollShowing, { skipAriaHidden: true });\n };\n FakeVScrollComp.prototype.onRowContainerHeightChanged = function () {\n var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n var gridBodyViewportEl = gridBodyCtrl.getBodyViewportElement();\n if (this.eViewport.scrollTop != gridBodyViewportEl.scrollTop) {\n this.eViewport.scrollTop = gridBodyViewportEl.scrollTop;\n }\n };\n FakeVScrollComp.prototype.getScrollPosition = function () {\n return this.getViewport().scrollTop;\n };\n FakeVScrollComp.prototype.setScrollPosition = function (value) {\n if (!isVisible(this.getViewport())) {\n this.attemptSettingScrollPosition(value);\n }\n this.getViewport().scrollTop = value;\n };\n FakeVScrollComp.TEMPLATE = \"
    \\n
    \\n
    \\n
    \\n
    \";\n __decorate$e([\n PostConstruct\n ], FakeVScrollComp.prototype, \"postConstruct\", null);\n return FakeVScrollComp;\n}(AbstractFakeScrollComp));\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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$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 __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 __spreadArray$3 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar MONTH_LOCALE_TEXT = {\n january: 'January',\n february: 'February',\n march: 'March',\n april: 'April',\n may: 'May',\n june: 'June',\n july: 'July',\n august: 'August',\n september: 'September',\n october: 'October',\n november: 'November',\n december: 'December'\n};\nvar MONTH_KEYS = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nvar DataTypeService = /** @class */ (function (_super) {\n __extends$e(DataTypeService, _super);\n function DataTypeService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.dataTypeDefinitions = {};\n _this.isWaitingForRowData = false;\n _this.isColumnTypeOverrideInDataTypeDefinitions = false;\n // keep track of any column state updates whilst waiting for data types to be inferred\n _this.columnStateUpdatesPendingInference = {};\n _this.columnStateUpdateListenerDestroyFuncs = [];\n return _this;\n }\n DataTypeService.prototype.init = function () {\n var _this = this;\n this.groupHideOpenParents = this.gridOptionsService.is('groupHideOpenParents');\n this.addManagedPropertyListener('groupHideOpenParents', function () {\n _this.groupHideOpenParents = _this.gridOptionsService.is('groupHideOpenParents');\n });\n this.processDataTypeDefinitions();\n this.addManagedPropertyListener('dataTypeDefinitions', function () {\n _this.processDataTypeDefinitions();\n _this.columnModel.recreateColumnDefs('gridOptionsChanged');\n });\n };\n DataTypeService.prototype.processDataTypeDefinitions = function () {\n var _this = this;\n var _a;\n var defaultDataTypes = this.getDefaultDataTypes();\n this.dataTypeDefinitions = {};\n Object.entries(defaultDataTypes).forEach(function (_a) {\n var _b = __read$4(_a, 2), cellDataType = _b[0], dataTypeDefinition = _b[1];\n _this.dataTypeDefinitions[cellDataType] = __assign(__assign({}, dataTypeDefinition), { groupSafeValueFormatter: _this.createGroupSafeValueFormatter(dataTypeDefinition) });\n });\n var dataTypeDefinitions = (_a = this.gridOptionsService.get('dataTypeDefinitions')) !== null && _a !== void 0 ? _a : {};\n this.dataTypeMatchers = {};\n Object.entries(dataTypeDefinitions).forEach(function (_a) {\n var _b = __read$4(_a, 2), cellDataType = _b[0], dataTypeDefinition = _b[1];\n var mergedDataTypeDefinition = _this.processDataTypeDefinition(dataTypeDefinition, dataTypeDefinitions, [cellDataType], defaultDataTypes);\n if (mergedDataTypeDefinition) {\n _this.dataTypeDefinitions[cellDataType] = mergedDataTypeDefinition;\n if (dataTypeDefinition.dataTypeMatcher) {\n _this.dataTypeMatchers[cellDataType] = dataTypeDefinition.dataTypeMatcher;\n }\n }\n });\n this.checkObjectValueHandlers(defaultDataTypes);\n ['dateString', 'text', 'number', 'boolean', 'date'].forEach(function (cellDataType) {\n var overriddenDataTypeMatcher = _this.dataTypeMatchers[cellDataType];\n if (overriddenDataTypeMatcher) {\n // remove to maintain correct ordering\n delete _this.dataTypeMatchers[cellDataType];\n }\n _this.dataTypeMatchers[cellDataType] = overriddenDataTypeMatcher !== null && overriddenDataTypeMatcher !== void 0 ? overriddenDataTypeMatcher : defaultDataTypes[cellDataType].dataTypeMatcher;\n });\n };\n DataTypeService.prototype.mergeDataTypeDefinitions = function (parentDataTypeDefinition, childDataTypeDefinition) {\n var mergedDataTypeDefinition = __assign(__assign({}, parentDataTypeDefinition), childDataTypeDefinition);\n if (parentDataTypeDefinition.columnTypes &&\n childDataTypeDefinition.columnTypes &&\n childDataTypeDefinition.appendColumnTypes) {\n mergedDataTypeDefinition.columnTypes = __spreadArray$3(__spreadArray$3([], __read$4(this.convertColumnTypes(parentDataTypeDefinition.columnTypes))), __read$4(this.convertColumnTypes(childDataTypeDefinition.columnTypes)));\n }\n return mergedDataTypeDefinition;\n };\n DataTypeService.prototype.processDataTypeDefinition = function (dataTypeDefinition, dataTypeDefinitions, alreadyProcessedDataTypes, defaultDataTypes) {\n var mergedDataTypeDefinition;\n var extendsCellDataType = dataTypeDefinition.extendsDataType;\n if (dataTypeDefinition.columnTypes) {\n this.isColumnTypeOverrideInDataTypeDefinitions = true;\n }\n if (dataTypeDefinition.extendsDataType === dataTypeDefinition.baseDataType) {\n var baseDataTypeDefinition = defaultDataTypes[extendsCellDataType];\n if (!this.validateDataTypeDefinition(dataTypeDefinition, baseDataTypeDefinition, extendsCellDataType)) {\n return undefined;\n }\n mergedDataTypeDefinition = this.mergeDataTypeDefinitions(baseDataTypeDefinition, dataTypeDefinition);\n }\n else {\n if (alreadyProcessedDataTypes.includes(extendsCellDataType)) {\n doOnce(function () { return console.warn('AG Grid: Data type definition hierarchies (via the \"extendsDataType\" property) cannot contain circular references.'); }, 'dataTypeExtendsCircularRef');\n return undefined;\n }\n var extendedDataTypeDefinition = dataTypeDefinitions[extendsCellDataType];\n if (!this.validateDataTypeDefinition(dataTypeDefinition, extendedDataTypeDefinition, extendsCellDataType)) {\n return undefined;\n }\n var mergedExtendedDataTypeDefinition = this.processDataTypeDefinition(extendedDataTypeDefinition, dataTypeDefinitions, __spreadArray$3(__spreadArray$3([], __read$4(alreadyProcessedDataTypes)), [extendsCellDataType]), defaultDataTypes);\n if (!mergedExtendedDataTypeDefinition) {\n return undefined;\n }\n mergedDataTypeDefinition = this.mergeDataTypeDefinitions(mergedExtendedDataTypeDefinition, dataTypeDefinition);\n }\n return __assign(__assign({}, mergedDataTypeDefinition), { groupSafeValueFormatter: this.createGroupSafeValueFormatter(mergedDataTypeDefinition) });\n };\n DataTypeService.prototype.validateDataTypeDefinition = function (dataTypeDefinition, parentDataTypeDefinition, parentCellDataType) {\n if (!parentDataTypeDefinition) {\n doOnce(function () { return console.warn(\"AG Grid: The data type definition \" + parentCellDataType + \" does not exist.\"); }, 'dataTypeDefMissing' + parentCellDataType);\n return false;\n }\n if (parentDataTypeDefinition.baseDataType !== dataTypeDefinition.baseDataType) {\n doOnce(function () { return console.warn('AG Grid: The \"baseDataType\" property of a data type definition must match that of its parent.'); }, 'dataTypeBaseTypesMatch');\n return false;\n }\n return true;\n };\n DataTypeService.prototype.createGroupSafeValueFormatter = function (dataTypeDefinition) {\n var _this = this;\n if (!dataTypeDefinition.valueFormatter) {\n return undefined;\n }\n return function (params) {\n var _a, _b;\n if ((_a = params.node) === null || _a === void 0 ? void 0 : _a.group) {\n var aggFunc = params.column.getAggFunc();\n if (aggFunc) {\n // the resulting type of these will be the same, so we call valueFormatter anyway\n if (aggFunc === 'first' || aggFunc === 'last') {\n return dataTypeDefinition.valueFormatter(params);\n }\n if (dataTypeDefinition.baseDataType === 'number' && aggFunc !== 'count') {\n if (typeof params.value === 'number') {\n return dataTypeDefinition.valueFormatter(params);\n }\n if (typeof params.value === 'object') {\n if (!params.value) {\n return undefined;\n }\n if ('toNumber' in params.value) {\n return dataTypeDefinition.valueFormatter(__assign(__assign({}, params), { value: params.value.toNumber() }));\n }\n if ('value' in params.value) {\n return dataTypeDefinition.valueFormatter(__assign(__assign({}, params), { value: params.value.value }));\n }\n }\n }\n }\n return undefined;\n }\n else if (_this.groupHideOpenParents && params.column.isRowGroupActive()) {\n // `groupHideOpenParents` passes leaf values in the group column, so need to format still.\n // If it's not a string, we know it hasn't been formatted. Otherwise check the data type matcher.\n if (typeof params.value !== 'string' || ((_b = dataTypeDefinition.dataTypeMatcher) === null || _b === void 0 ? void 0 : _b.call(dataTypeDefinition, params.value))) {\n return dataTypeDefinition.valueFormatter(params);\n }\n return undefined;\n }\n return dataTypeDefinition.valueFormatter(params);\n };\n };\n DataTypeService.prototype.updateColDefAndGetDataTypeDefinitionColumnType = function (colDef, userColDef, colId) {\n var cellDataType = userColDef.cellDataType;\n var field = userColDef.field;\n if (cellDataType === undefined) {\n cellDataType = colDef.cellDataType;\n }\n if ((cellDataType == null || cellDataType === true)) {\n cellDataType = this.canInferCellDataType(colDef, userColDef) ? this.inferCellDataType(field, colId) : false;\n }\n if (!cellDataType) {\n colDef.cellDataType = false;\n return undefined;\n }\n var dataTypeDefinition = this.dataTypeDefinitions[cellDataType];\n if (!dataTypeDefinition) {\n doOnce(function () { return console.warn(\"AG Grid: Missing data type definition - \\\"\" + cellDataType + \"\\\"\"); }, 'dataTypeMissing' + cellDataType);\n return undefined;\n }\n colDef.cellDataType = cellDataType;\n if (dataTypeDefinition.groupSafeValueFormatter) {\n colDef.valueFormatter = dataTypeDefinition.groupSafeValueFormatter;\n }\n if (dataTypeDefinition.valueParser) {\n colDef.valueParser = dataTypeDefinition.valueParser;\n }\n if (!dataTypeDefinition.suppressDefaultProperties) {\n this.setColDefPropertiesForBaseDataType(colDef, dataTypeDefinition, colId);\n }\n return dataTypeDefinition.columnTypes;\n };\n DataTypeService.prototype.updateColDefAndGetColumnType = function (colDef, userColDef, colId) {\n var _a, _b;\n var dataTypeDefinitionColumnType = this.updateColDefAndGetDataTypeDefinitionColumnType(colDef, userColDef, colId);\n var columnTypes = (_b = (_a = userColDef.type) !== null && _a !== void 0 ? _a : dataTypeDefinitionColumnType) !== null && _b !== void 0 ? _b : colDef.type;\n colDef.type = columnTypes;\n return columnTypes ? this.convertColumnTypes(columnTypes) : undefined;\n };\n DataTypeService.prototype.addColumnListeners = function (column) {\n if (!this.isWaitingForRowData) {\n return;\n }\n var columnStateUpdates = this.columnStateUpdatesPendingInference[column.getColId()];\n if (!columnStateUpdates) {\n return;\n }\n var columnListener = function (event) {\n columnStateUpdates.add(event.key);\n };\n column.addEventListener(Column.EVENT_STATE_UPDATED, columnListener);\n this.columnStateUpdateListenerDestroyFuncs.push(function () { return column.removeEventListener(Column.EVENT_STATE_UPDATED, columnListener); });\n };\n DataTypeService.prototype.canInferCellDataType = function (colDef, userColDef) {\n var _this = this;\n var _a;\n if (this.rowModel.getType() !== 'clientSide') {\n return false;\n }\n var propsToCheckForInference = { cellRenderer: true, valueGetter: true, valueParser: true, refData: true };\n if (this.doColDefPropsPreventInference(userColDef, propsToCheckForInference)) {\n return false;\n }\n var columnTypes = userColDef.type === null ? colDef.type : userColDef.type;\n if (columnTypes) {\n var columnTypeDefs_1 = (_a = this.gridOptionsService.get('columnTypes')) !== null && _a !== void 0 ? _a : {};\n var hasPropsPreventingInference = this.convertColumnTypes(columnTypes).some(function (columnType) {\n var columnTypeDef = columnTypeDefs_1[columnType.trim()];\n return columnTypeDef && _this.doColDefPropsPreventInference(columnTypeDef, propsToCheckForInference);\n });\n if (hasPropsPreventingInference) {\n return false;\n }\n }\n return !this.doColDefPropsPreventInference(colDef, propsToCheckForInference);\n };\n DataTypeService.prototype.doColDefPropsPreventInference = function (colDef, propsToCheckForInference) {\n var _this = this;\n return [\n ['cellRenderer', 'agSparklineCellRenderer'], ['valueGetter', undefined], ['valueParser', undefined], ['refData', undefined]\n ].some(function (_a) {\n var _b = __read$4(_a, 2), prop = _b[0], comparisonValue = _b[1];\n return _this.doesColDefPropPreventInference(colDef, propsToCheckForInference, prop, comparisonValue);\n });\n };\n DataTypeService.prototype.doesColDefPropPreventInference = function (colDef, checkProps, prop, comparisonValue) {\n if (!checkProps[prop]) {\n return false;\n }\n var value = colDef[prop];\n if (value === null) {\n checkProps[prop] = false;\n return false;\n }\n else {\n return comparisonValue === undefined ? !!value : value === comparisonValue;\n }\n };\n DataTypeService.prototype.inferCellDataType = function (field, colId) {\n var _a;\n if (!field) {\n return undefined;\n }\n var value;\n var initialData = this.getInitialData();\n if (initialData) {\n var fieldContainsDots = field.indexOf('.') >= 0 && !this.gridOptionsService.is('suppressFieldDotNotation');\n value = getValueUsingField(initialData, field, fieldContainsDots);\n }\n else {\n this.initWaitForRowData(colId);\n }\n if (value == null) {\n return undefined;\n }\n var _b = __read$4((_a = Object.entries(this.dataTypeMatchers).find(function (_a) {\n var _b = __read$4(_a, 2); _b[0]; var dataTypeMatcher = _b[1];\n return dataTypeMatcher(value);\n })) !== null && _a !== void 0 ? _a : ['object'], 1), cellDataType = _b[0];\n return cellDataType;\n };\n DataTypeService.prototype.getInitialData = function () {\n var rowData = this.gridOptionsService.get('rowData');\n if (rowData === null || rowData === void 0 ? void 0 : rowData.length) {\n return rowData[0];\n }\n else if (this.initialData) {\n return this.initialData;\n }\n else {\n var rowNodes = this.rowModel\n .getRootNode()\n .allLeafChildren;\n if (rowNodes === null || rowNodes === void 0 ? void 0 : rowNodes.length) {\n return rowNodes[0].data;\n }\n }\n return null;\n };\n DataTypeService.prototype.initWaitForRowData = function (colId) {\n var _this = this;\n this.columnStateUpdatesPendingInference[colId] = new Set();\n if (this.isWaitingForRowData) {\n return;\n }\n this.isWaitingForRowData = true;\n var columnTypeOverridesExist = this.isColumnTypeOverrideInDataTypeDefinitions;\n if (columnTypeOverridesExist) {\n this.columnModel.queueResizeOperations();\n }\n var destroyFunc = this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_UPDATE_STARTED, function (event) {\n var firstRowData = event.firstRowData;\n if (!firstRowData) {\n return;\n }\n destroyFunc === null || destroyFunc === void 0 ? void 0 : destroyFunc();\n _this.isWaitingForRowData = false;\n _this.processColumnsPendingInference(firstRowData, columnTypeOverridesExist);\n _this.columnStateUpdatesPendingInference = {};\n if (columnTypeOverridesExist) {\n _this.columnModel.processResizeOperations();\n }\n var dataTypesInferredEvent = {\n type: Events.EVENT_DATA_TYPES_INFERRED\n };\n _this.eventService.dispatchEvent(dataTypesInferredEvent);\n });\n };\n DataTypeService.prototype.isPendingInference = function () {\n return this.isWaitingForRowData;\n };\n DataTypeService.prototype.processColumnsPendingInference = function (firstRowData, columnTypeOverridesExist) {\n var _this = this;\n this.initialData = firstRowData;\n var state = [];\n this.columnStateUpdateListenerDestroyFuncs.forEach(function (destroyFunc) { return destroyFunc(); });\n this.columnStateUpdateListenerDestroyFuncs = [];\n var newRowGroupColumnStateWithoutIndex = {};\n var newPivotColumnStateWithoutIndex = {};\n Object.entries(this.columnStateUpdatesPendingInference).forEach(function (_a) {\n var _b = __read$4(_a, 2), colId = _b[0], columnStateUpdates = _b[1];\n var column = _this.columnModel.getGridColumn(colId);\n if (!column) {\n return;\n }\n var oldColDef = column.getColDef();\n if (!_this.columnModel.resetColumnDefIntoColumn(column)) {\n return;\n }\n var newColDef = column.getColDef();\n if (columnTypeOverridesExist && newColDef.type && newColDef.type !== oldColDef.type) {\n var updatedColumnState = _this.getUpdatedColumnState(column, columnStateUpdates);\n if (updatedColumnState.rowGroup && updatedColumnState.rowGroupIndex == null) {\n newRowGroupColumnStateWithoutIndex[colId] = updatedColumnState;\n }\n if (updatedColumnState.pivot && updatedColumnState.pivotIndex == null) {\n newPivotColumnStateWithoutIndex[colId] = updatedColumnState;\n }\n state.push(updatedColumnState);\n }\n });\n if (columnTypeOverridesExist) {\n state.push.apply(state, __spreadArray$3([], __read$4(this.columnModel.generateColumnStateForRowGroupAndPivotIndexes(newRowGroupColumnStateWithoutIndex, newPivotColumnStateWithoutIndex))));\n }\n if (state.length) {\n this.columnModel.applyColumnState({ state: state }, 'cellDataTypeInferred');\n }\n this.initialData = null;\n };\n DataTypeService.prototype.getUpdatedColumnState = function (column, columnStateUpdates) {\n var columnState = this.columnModel.getColumnStateFromColDef(column);\n columnStateUpdates.forEach(function (key) {\n // if the column state has been updated, don't update again\n delete columnState[key];\n if (key === 'rowGroup') {\n delete columnState.rowGroupIndex;\n }\n else if (key === 'pivot') {\n delete columnState.pivotIndex;\n }\n });\n return columnState;\n };\n DataTypeService.prototype.checkObjectValueHandlers = function (defaultDataTypes) {\n var resolvedObjectDataTypeDefinition = this.dataTypeDefinitions.object;\n var defaultObjectDataTypeDefinition = defaultDataTypes.object;\n this.hasObjectValueParser = resolvedObjectDataTypeDefinition.valueParser !== defaultObjectDataTypeDefinition.valueParser;\n this.hasObjectValueFormatter = resolvedObjectDataTypeDefinition.valueFormatter !== defaultObjectDataTypeDefinition.valueFormatter;\n };\n DataTypeService.prototype.convertColumnTypes = function (type) {\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 }\n return typeKeys;\n };\n DataTypeService.prototype.getDateStringTypeDefinition = function () {\n return this.dataTypeDefinitions.dateString;\n };\n DataTypeService.prototype.getDateParserFunction = function () {\n return this.getDateStringTypeDefinition().dateParser;\n };\n DataTypeService.prototype.getDateFormatterFunction = function () {\n return this.getDateStringTypeDefinition().dateFormatter;\n };\n DataTypeService.prototype.getDataTypeDefinition = function (column) {\n var colDef = column.getColDef();\n if (!colDef.cellDataType) {\n return undefined;\n }\n return this.dataTypeDefinitions[colDef.cellDataType];\n };\n DataTypeService.prototype.getBaseDataType = function (column) {\n var _a;\n return (_a = this.getDataTypeDefinition(column)) === null || _a === void 0 ? void 0 : _a.baseDataType;\n };\n DataTypeService.prototype.checkType = function (column, value) {\n var _a;\n if (value == null) {\n return true;\n }\n var dataTypeMatcher = (_a = this.getDataTypeDefinition(column)) === null || _a === void 0 ? void 0 : _a.dataTypeMatcher;\n if (!dataTypeMatcher) {\n return true;\n }\n return dataTypeMatcher(value);\n };\n DataTypeService.prototype.validateColDef = function (colDef) {\n if (colDef.cellDataType === 'object') {\n if (colDef.valueFormatter === this.dataTypeDefinitions.object.groupSafeValueFormatter && !this.hasObjectValueFormatter) {\n doOnce(function () { return console.warn('AG Grid: Cell data type is \"object\" but no value formatter has been provided. Please either provide an object data type definition with a value formatter, or set \"colDef.valueFormatter\"'); }, 'dataTypeObjectValueFormatter');\n }\n if (colDef.editable && colDef.valueParser === this.dataTypeDefinitions.object.valueParser && !this.hasObjectValueParser) {\n doOnce(function () { return console.warn('AG Grid: Cell data type is \"object\" but no value parser has been provided. Please either provide an object data type definition with a value parser, or set \"colDef.valueParser\"'); }, 'dataTypeObjectValueParser');\n }\n }\n };\n DataTypeService.prototype.setColDefPropertiesForBaseDataType = function (colDef, dataTypeDefinition, colId) {\n var _this = this;\n var formatValue = function (column, node, value) {\n var valueFormatter = column.getColDef().valueFormatter;\n if (valueFormatter === dataTypeDefinition.groupSafeValueFormatter) {\n valueFormatter = dataTypeDefinition.valueFormatter;\n }\n return _this.valueFormatterService.formatValue(column, node, value, valueFormatter);\n };\n var usingSetFilter = ModuleRegistry.__isRegistered(ModuleNames.SetFilterModule, this.context.getGridId());\n var translate = this.localeService.getLocaleTextFunc();\n var mergeFilterParams = function (params) {\n var filterParams = colDef.filterParams;\n colDef.filterParams = typeof filterParams === 'object' ? __assign(__assign({}, filterParams), params) : params;\n };\n colDef.useValueFormatterForExport = true;\n colDef.useValueParserForImport = true;\n switch (dataTypeDefinition.baseDataType) {\n case 'number': {\n colDef.cellEditor = 'agNumberCellEditor';\n if (usingSetFilter) {\n mergeFilterParams({\n comparator: function (a, b) {\n var valA = a == null ? 0 : parseInt(a);\n var valB = b == null ? 0 : parseInt(b);\n if (valA === valB)\n return 0;\n return valA > valB ? 1 : -1;\n },\n });\n }\n break;\n }\n case 'boolean': {\n colDef.cellEditor = 'agCheckboxCellEditor';\n colDef.cellRenderer = 'agCheckboxCellRenderer';\n colDef.suppressKeyboardEvent = function (params) { return !!params.colDef.editable && params.event.key === KeyCode.SPACE; };\n if (usingSetFilter) {\n mergeFilterParams({\n valueFormatter: function (params) {\n if (!exists(params.value)) {\n return translate('blanks', '(Blanks)');\n }\n return translate(String(params.value), params.value ? 'True' : 'False');\n }\n });\n }\n else {\n mergeFilterParams({\n maxNumConditions: 1,\n filterOptions: [\n 'empty',\n {\n displayKey: 'true',\n displayName: 'True',\n predicate: function (_filterValues, cellValue) { return cellValue; },\n numberOfInputs: 0,\n },\n {\n displayKey: 'false',\n displayName: 'False',\n predicate: function (_filterValues, cellValue) { return cellValue === false; },\n numberOfInputs: 0,\n },\n ]\n });\n }\n break;\n }\n case 'date': {\n colDef.cellEditor = 'agDateCellEditor';\n colDef.keyCreator = function (params) { return formatValue(params.column, params.node, params.value); };\n if (usingSetFilter) {\n mergeFilterParams({\n valueFormatter: function (params) {\n var valueFormatted = formatValue(params.column, params.node, params.value);\n return exists(valueFormatted) ? valueFormatted : translate('blanks', '(Blanks)');\n },\n treeList: true,\n treeListFormatter: function (pathKey, level) {\n if (level === 1 && pathKey != null) {\n var monthKey = MONTH_KEYS[Number(pathKey) - 1];\n return translate(monthKey, MONTH_LOCALE_TEXT[monthKey]);\n }\n return pathKey !== null && pathKey !== void 0 ? pathKey : translate('blanks', '(Blanks)');\n }\n });\n }\n break;\n }\n case 'dateString': {\n colDef.cellEditor = 'agDateStringCellEditor';\n colDef.keyCreator = function (params) { return formatValue(params.column, params.node, params.value); };\n var convertToDate_1 = this.getDateParserFunction();\n if (usingSetFilter) {\n mergeFilterParams({\n valueFormatter: function (params) {\n var valueFormatted = formatValue(params.column, params.node, params.value);\n return exists(valueFormatted) ? valueFormatted : translate('blanks', '(Blanks)');\n },\n treeList: true,\n treeListPathGetter: function (value) {\n var date = convertToDate_1(value !== null && value !== void 0 ? value : undefined);\n return date ? [String(date.getFullYear()), String(date.getMonth() + 1), String(date.getDate())] : null;\n },\n treeListFormatter: function (pathKey, level) {\n if (level === 1 && pathKey != null) {\n var monthKey = MONTH_KEYS[Number(pathKey) - 1];\n return translate(monthKey, MONTH_LOCALE_TEXT[monthKey]);\n }\n return pathKey !== null && pathKey !== void 0 ? pathKey : translate('blanks', '(Blanks)');\n }\n });\n }\n else {\n mergeFilterParams({\n comparator: function (filterDate, cellValue) {\n var cellAsDate = convertToDate_1(cellValue);\n if (cellValue == null || cellAsDate < filterDate) {\n return -1;\n }\n if (cellAsDate > filterDate) {\n return 1;\n }\n return 0;\n }\n });\n }\n break;\n }\n case 'object': {\n colDef.cellEditorParams = {\n useFormatter: true,\n };\n colDef.comparator = function (a, b) {\n var column = _this.columnModel.getPrimaryColumn(colId);\n var colDef = column === null || column === void 0 ? void 0 : column.getColDef();\n if (!column || !colDef) {\n return 0;\n }\n var valA = a == null ? '' : formatValue(column, null, a);\n var valB = b == null ? '' : formatValue(column, null, b);\n if (valA === valB)\n return 0;\n return valA > valB ? 1 : -1;\n };\n colDef.keyCreator = function (params) { return formatValue(params.column, params.node, params.value); };\n if (usingSetFilter) {\n mergeFilterParams({\n valueFormatter: function (params) {\n var valueFormatted = formatValue(params.column, params.node, params.value);\n return exists(valueFormatted) ? valueFormatted : translate('blanks', '(Blanks)');\n }\n });\n }\n else {\n colDef.filterValueGetter = function (params) { return formatValue(params.column, params.node, _this.valueService.getValue(params.column, params.node)); };\n }\n break;\n }\n }\n };\n DataTypeService.prototype.getDefaultDataTypes = function () {\n var defaultDateFormatMatcher = function (value) { return !!value.match('^\\\\d{4}-\\\\d{2}-\\\\d{2}$'); };\n var translate = this.localeService.getLocaleTextFunc();\n return {\n number: {\n baseDataType: 'number',\n valueParser: function (params) { return params.newValue === '' ? null : Number(params.newValue); },\n valueFormatter: function (params) {\n if (params.value == null) {\n return '';\n }\n if (typeof params.value !== 'number' || isNaN(params.value)) {\n return translate('invalidNumber', 'Invalid Number');\n }\n return String(params.value);\n },\n dataTypeMatcher: function (value) { return typeof value === 'number'; },\n },\n text: {\n baseDataType: 'text',\n valueParser: function (params) { return params.newValue === '' ? null : toStringOrNull(params.newValue); },\n dataTypeMatcher: function (value) { return typeof value === 'string'; },\n },\n boolean: {\n baseDataType: 'boolean',\n valueParser: function (params) { return params.newValue === '' ? null : String(params.newValue).toLowerCase() === 'true'; },\n valueFormatter: function (params) { return params.value == null ? '' : String(params.value); },\n dataTypeMatcher: function (value) { return typeof value === 'boolean'; },\n },\n date: {\n baseDataType: 'date',\n valueParser: function (params) { return parseDateTimeFromString(params.newValue == null ? null : String(params.newValue)); },\n valueFormatter: function (params) {\n var _a;\n if (params.value == null) {\n return '';\n }\n if (!(params.value instanceof Date) || isNaN(params.value.getTime())) {\n return translate('invalidDate', 'Invalid Date');\n }\n return (_a = serialiseDate(params.value, false)) !== null && _a !== void 0 ? _a : '';\n },\n dataTypeMatcher: function (value) { return value instanceof Date; },\n },\n dateString: {\n baseDataType: 'dateString',\n dateParser: function (value) { var _a; return (_a = parseDateTimeFromString(value)) !== null && _a !== void 0 ? _a : undefined; },\n dateFormatter: function (value) { var _a; return (_a = serialiseDate(value !== null && value !== void 0 ? value : null, false)) !== null && _a !== void 0 ? _a : undefined; },\n valueParser: function (params) { return defaultDateFormatMatcher(String(params.newValue)) ? params.newValue : null; },\n valueFormatter: function (params) { return defaultDateFormatMatcher(String(params.value)) ? params.value : ''; },\n dataTypeMatcher: function (value) { return typeof value === 'string' && defaultDateFormatMatcher(value); },\n },\n object: {\n baseDataType: 'object',\n valueParser: function () { return null; },\n valueFormatter: function (params) { var _a; return (_a = toStringOrNull(params.value)) !== null && _a !== void 0 ? _a : ''; },\n }\n };\n };\n __decorate$d([\n Autowired('rowModel')\n ], DataTypeService.prototype, \"rowModel\", void 0);\n __decorate$d([\n Autowired('columnModel')\n ], DataTypeService.prototype, \"columnModel\", void 0);\n __decorate$d([\n Autowired('columnUtils')\n ], DataTypeService.prototype, \"columnUtils\", void 0);\n __decorate$d([\n Autowired('valueService')\n ], DataTypeService.prototype, \"valueService\", void 0);\n __decorate$d([\n Autowired('valueFormatterService')\n ], DataTypeService.prototype, \"valueFormatterService\", void 0);\n __decorate$d([\n PostConstruct\n ], DataTypeService.prototype, \"init\", null);\n DataTypeService = __decorate$d([\n Bean('dataTypeService')\n ], DataTypeService);\n return DataTypeService;\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 ValueParserService = /** @class */ (function (_super) {\n __extends$d(ValueParserService, _super);\n function ValueParserService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ValueParserService.prototype.parseValue = function (column, rowNode, newValue, oldValue) {\n var colDef = column.getColDef();\n var params = {\n node: rowNode,\n data: rowNode === null || rowNode === void 0 ? void 0 : rowNode.data,\n oldValue: oldValue,\n newValue: newValue,\n colDef: colDef,\n column: column,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n var valueParser = colDef.valueParser;\n if (exists(valueParser)) {\n if (typeof valueParser === 'function') {\n return valueParser(params);\n }\n return this.expressionService.evaluate(valueParser, params);\n }\n return newValue;\n };\n __decorate$c([\n Autowired('expressionService')\n ], ValueParserService.prototype, \"expressionService\", void 0);\n ValueParserService = __decorate$c([\n Bean('valueParserService')\n ], ValueParserService);\n return ValueParserService;\n}(BeanStub));\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 __spreadArray$2 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\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}());\nvar nextGridId = 1;\n// creates 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 _a;\n var debug = !!gridOptions.debug;\n var gridId = (_a = gridOptions.gridId) !== null && _a !== void 0 ? _a : String(nextGridId++);\n var registeredModules = this.getRegisteredModules(params, gridId);\n var beanClasses = this.createBeansList(gridOptions.rowModelType, registeredModules, gridId);\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 gridId: gridId,\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, gridId);\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, gridId) {\n var passedViaConstructor = params ? params.modules : null;\n var registered = ModuleRegistry.__getRegisteredModules(gridId);\n var allModules = [];\n var mapNames = {};\n // adds to list and removes duplicates\n var addModule = function (moduleBased, mod, gridId) {\n var addIndividualModule = function (currentModule) {\n if (!mapNames[currentModule.moduleName]) {\n mapNames[currentModule.moduleName] = true;\n allModules.push(currentModule);\n ModuleRegistry.__register(currentModule, moduleBased, gridId);\n }\n };\n addIndividualModule(mod);\n if (mod.dependantModules) {\n mod.dependantModules.forEach(function (m) { return addModule(moduleBased, m, gridId); });\n }\n };\n if (passedViaConstructor) {\n passedViaConstructor.forEach(function (m) { return addModule(true, m, gridId); });\n }\n if (registered) {\n registered.forEach(function (m) { return addModule(!ModuleRegistry.__isPackageBased(), m, undefined); });\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 globalSyncEventListener: params ? params.globalSyncEventListener : 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: 'AgInputDateField', componentClass: AgInputDateField },\n { componentName: 'AgInputRange', componentClass: AgInputRange },\n { componentName: 'AgRichSelect', componentClass: AgRichSelect },\n { componentName: 'AgSelect', componentClass: AgSelect },\n { componentName: 'AgSlider', componentClass: AgSlider },\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 { componentName: 'AgFakeVerticalScroll', componentClass: FakeVScrollComp },\n { componentName: 'AgAutocomplete', componentClass: AgAutocomplete },\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, gridId) {\n if (rowModelType === void 0) { rowModelType = 'clientSide'; }\n // only load beans matching the required row model\n var rowModelModules = registeredModules.filter(function (module) { return !module.rowModel || module.rowModel === rowModelType; });\n // assert that the relevant module has been loaded\n var rowModelModuleNames = {\n clientSide: ModuleNames.ClientSideRowModelModule,\n infinite: ModuleNames.InfiniteRowModelModule,\n serverSide: ModuleNames.ServerSideRowModelModule,\n viewport: ModuleNames.ViewportRowModelModule\n };\n if (!rowModelModuleNames[rowModelType]) {\n console.error('AG Grid: could not find row model for rowModelType = ' + rowModelType);\n return;\n }\n if (!ModuleRegistry.__assertRegistered(rowModelModuleNames[rowModelType], \"rowModelType = '\" + rowModelType + \"'\", gridId)) {\n return;\n }\n // beans should only contain SERVICES, it should NEVER contain COMPONENTS\n var beans = [\n Beans, RowPositionUtils, CellPositionUtils, HeaderPositionUtils,\n PaginationAutoPageSizeService, GridApi, UserComponentRegistry, AgComponentUtils,\n ComponentMetadataProvider, ResizeObserverService, UserComponentFactory,\n RowContainerHeightService, HorizontalResizeService, LocaleService, GridOptionsValidator,\n PinnedRowModel, DragService, DisplayedGroupCreator, EventService, GridOptionsService,\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, DataTypeService, ValueParserService,\n QuickFilterService\n ];\n var moduleBeans = this.extractModuleEntity(rowModelModules, function (module) { return module.beans ? module.beans : []; });\n beans.push.apply(beans, __spreadArray$2([], __read$3(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([], __spreadArray$2([], __read$3(moduleEntities.map(extractor))));\n };\n GridCoreCreator.prototype.setColumnsAndData = function (beans) {\n var columnDefs = beans.gridOptionsService.get('columnDefs');\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 return GridCoreCreator;\n}());\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\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 * Internal Use Only: Used to ensure this file is treated as a module until we can use moduleDetection flag in Ts v4.7\n */\nvar __FORCE_MODULE_DETECTION = 0;\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 v30.2.0\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$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 __spreadArray$1 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar ClientSideNodeManager = /** @class */ (function () {\n function ClientSideNodeManager(rootNode, gridOptionsService, 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.gridOptionsService = gridOptionsService;\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.gridOptionsService.is('suppressParentsInRowNodes');\n this.isRowMasterFunc = this.gridOptionsService.get('isRowMaster');\n this.doingMasterDetail = this.gridOptionsService.is('masterDetail');\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 this.dispatchRowDataUpdateStartedEvent(rowData);\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 this.dispatchRowDataUpdateStartedEvent(rowDataTran.add);\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, 'rowDataChanged');\n if (rowNodeOrder) {\n _.sortRowNodesByOrder(this.rootNode.allLeafChildren, rowNodeOrder);\n }\n return rowNodeTransaction;\n };\n ClientSideNodeManager.prototype.dispatchRowDataUpdateStartedEvent = function (rowData) {\n var event = {\n type: Events.EVENT_ROW_DATA_UPDATE_STARTED,\n firstRowData: (rowData === null || rowData === void 0 ? void 0 : rowData.length) ? rowData[0] : null\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideNodeManager.prototype.updateSelection = function (nodesToUnselect, source) {\n var selectionChanged = nodesToUnselect.length > 0;\n if (selectionChanged) {\n this.selectionService.setNodesSelected({\n newValue: false,\n nodes: nodesToUnselect,\n suppressFinishActions: true,\n source: source,\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(source);\n if (selectionChanged) {\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ClientSideNodeManager.prototype.executeAdd = function (rowDataTran, rowNodeTransaction) {\n var _this = this;\n var _a;\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 if (typeof addIndex === 'number' && addIndex >= 0) {\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 var allLeafChildren = this.rootNode.allLeafChildren;\n var len = allLeafChildren.length;\n var normalisedAddIndex = addIndex;\n var isTreeData = this.gridOptionsService.is('treeData');\n if (isTreeData && addIndex > 0 && len > 0) {\n for (var i = 0; i < len; i++) {\n if (((_a = allLeafChildren[i]) === null || _a === void 0 ? void 0 : _a.rowIndex) == addIndex - 1) {\n normalisedAddIndex = i + 1;\n break;\n }\n }\n }\n var nodesBeforeIndex = allLeafChildren.slice(0, normalisedAddIndex);\n var nodesAfterIndex = allLeafChildren.slice(normalisedAddIndex, allLeafChildren.length);\n this.rootNode.allLeafChildren = __spreadArray$1(__spreadArray$1(__spreadArray$1([], __read$2(nodesBeforeIndex)), __read$2(newNodes)), __read$2(nodesAfterIndex));\n }\n else {\n this.rootNode.allLeafChildren = __spreadArray$1(__spreadArray$1([], __read$2(this.rootNode.allLeafChildren)), __read$2(newNodes));\n }\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.gridOptionsService.getCallback('getRowId');\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 var isTreeData = this.gridOptionsService.is('treeData');\n if (isTreeData) {\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.gridOptionsService.getNum('groupDefaultExpanded');\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 __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 __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\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 _this = this;\n var refreshEverythingFunc = this.refreshModel.bind(this, { step: ClientSideRowModelSteps.EVERYTHING });\n var animate = !this.gridOptionsService.is('suppressAnimationFrame');\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 this.addManagedListener(this.eventService, Events.EVENT_GRID_STYLES_CHANGED, this.onGridStylesChanges.bind(this));\n var refreshMapListener = this.refreshModel.bind(this, {\n step: ClientSideRowModelSteps.MAP,\n keepRenderedRows: true,\n animate: animate\n });\n this.addManagedPropertyListeners([\n 'groupRemoveSingleChildren', 'groupRemoveLowestSingleChildren',\n 'groupIncludeFooter',\n ], refreshMapListener);\n var refreshAggListener = this.refreshModel.bind(this, {\n step: ClientSideRowModelSteps.AGGREGATE,\n keepRenderedRows: true,\n animate: animate\n });\n this.addManagedPropertyListeners([\n 'groupIncludeTotalFooter',\n ], refreshAggListener);\n this.rootNode = new RowNode(this.beans);\n this.nodeManager = new ClientSideNodeManager(this.rootNode, this.gridOptionsService, this.eventService, this.columnModel, this.selectionService, this.beans);\n this.addManagedPropertyListener('treeData', function () {\n // Shotgun reset all node state. This is used by treeData reactivity to ensure nodes don't include any group state\n _this.setRowData(_this.rootNode.allLeafChildren.map(function (child) { return child.data; }));\n });\n };\n ClientSideRowModel.prototype.start = function () {\n var rowData = this.gridOptionsService.get('rowData');\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.gridOptionsService.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.environment.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.gridOptionsService.isDomLayout('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.gridOptionsService.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.gridOptionsService.is('suppressAnimationFrame');\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.gridOptionsService.is('groupHideOpenParents')) {\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.gridOptionsService.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.gridOptionsService.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.gridOptionsService.isAnimateRows();\n this.refreshModel({ step: ClientSideRowModelSteps.SORT, keepRenderedRows: true, animate: animate, keepEditingRows: true });\n };\n ClientSideRowModel.prototype.getType = function () {\n return 'clientSide';\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.gridOptionsService.is('treeData')) {\n changedPath.setInactive();\n }\n return changedPath;\n };\n ClientSideRowModel.prototype.isSuppressModelUpdateAfterUpdateTransaction = function (params) {\n if (!this.gridOptionsService.is('suppressModelUpdateAfterUpdateTransaction')) {\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.buildRefreshModelParams = function (step) {\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 undefined;\n }\n var animate = !this.gridOptionsService.is('suppressAnimationFrame');\n var modelParams = {\n step: paramsStep,\n keepRenderedRows: true,\n keepEditingRows: true,\n animate: animate\n };\n return modelParams;\n };\n ClientSideRowModel.prototype.refreshModel = function (paramsOrStep) {\n var params = typeof paramsOrStep === 'object' && \"step\" in paramsOrStep ? paramsOrStep : this.buildRefreshModelParams(paramsOrStep);\n if (!params) {\n return;\n }\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 started = !lastInRange;\n var finished = false;\n var result = [];\n var groupsSelectChildren = this.gridOptionsService.is('groupSelectsChildren');\n this.forEachNodeAfterFilterAndSort(function (rowNode) {\n // range has been closed, skip till end\n if (finished) {\n return;\n }\n if (started) {\n if (rowNode === lastInRange || rowNode === firstInRange) {\n // check if this is the last node we're going to be adding\n finished = true;\n // if the final node was a group node, and we're doing groupSelectsChildren\n // make the exception to select all of it's descendants too\n if (rowNode.group && groupsSelectChildren) {\n result.push.apply(result, __spreadArray([], __read$1(rowNode.allLeafChildren)));\n return;\n }\n }\n }\n if (!started) {\n if (rowNode !== lastInRange && rowNode !== firstInRange) {\n // still haven't hit a boundary node, keep searching\n return;\n }\n started = true;\n }\n // only select leaf nodes if groupsSelectChildren\n var includeThisNode = !rowNode.group || !groupsSelectChildren;\n if (includeThisNode) {\n result.push(rowNode);\n return;\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, includeFooterNodes) {\n if (includeFooterNodes === void 0) { includeFooterNodes = false; }\n this.recursivelyWalkNodesAndCallback({\n nodes: __spreadArray([], __read$1((this.rootNode.childrenAfterGroup || []))),\n callback: callback,\n recursionType: RecursionType.Normal,\n index: 0,\n includeFooterNodes: includeFooterNodes\n });\n };\n ClientSideRowModel.prototype.forEachNodeAfterFilter = function (callback, includeFooterNodes) {\n if (includeFooterNodes === void 0) { includeFooterNodes = false; }\n this.recursivelyWalkNodesAndCallback({\n nodes: __spreadArray([], __read$1((this.rootNode.childrenAfterAggFilter || []))),\n callback: callback,\n recursionType: RecursionType.AfterFilter,\n index: 0,\n includeFooterNodes: includeFooterNodes\n });\n };\n ClientSideRowModel.prototype.forEachNodeAfterFilterAndSort = function (callback, includeFooterNodes) {\n if (includeFooterNodes === void 0) { includeFooterNodes = false; }\n this.recursivelyWalkNodesAndCallback({\n nodes: __spreadArray([], __read$1((this.rootNode.childrenAfterSort || []))),\n callback: callback,\n recursionType: RecursionType.AfterFilterAndSort,\n index: 0,\n includeFooterNodes: includeFooterNodes\n });\n };\n ClientSideRowModel.prototype.forEachPivotNode = function (callback, includeFooterNodes) {\n if (includeFooterNodes === void 0) { includeFooterNodes = false; }\n this.recursivelyWalkNodesAndCallback({\n nodes: [this.rootNode],\n callback: callback,\n recursionType: RecursionType.PivotNodes,\n index: 0,\n includeFooterNodes: includeFooterNodes\n });\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 (params) {\n var _a;\n var nodes = params.nodes, callback = params.callback, recursionType = params.recursionType, includeFooterNodes = params.includeFooterNodes;\n var index = params.index;\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() && !node.footer) {\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({\n nodes: __spreadArray([], __read$1(nodeChildren)),\n callback: callback,\n recursionType: recursionType,\n index: index,\n includeFooterNodes: includeFooterNodes\n });\n }\n }\n }\n var parentNode = (_a = nodes[0]) === null || _a === void 0 ? void 0 : _a.parent;\n if (!includeFooterNodes || !parentNode)\n return index;\n var isRootNode = parentNode === this.rootNode;\n if (isRootNode) {\n var totalFooters = this.gridOptionsService.is('groupIncludeTotalFooter');\n if (!totalFooters)\n return index;\n }\n else {\n var isGroupIncludeFooter = this.gridOptionsService.getGroupIncludeFooter();\n if (!isGroupIncludeFooter({ node: parentNode }))\n return index;\n }\n parentNode.createFooter();\n callback(parentNode.sibling, index++);\n return index;\n };\n // it's possible to recompute the aggregate without doing the other parts\n // + api.refreshClientSideRowModel('aggregate')\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.gridOptionsService.is('treeData');\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.gridOptionsService.is('groupSelectsChildren')) {\n var selectionChanged = this.selectionService.updateGroupsFromChildrenSelections('rowGroupChanged', changedPath);\n if (selectionChanged) {\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: 'rowGroupChanged'\n };\n this.eventService.dispatchEvent(event_1);\n }\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.gridOptionsService.is('rememberGroupStateWhenNewData')) {\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.gridOptionsService.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_2 = {\n type: Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED,\n results: rowNodeTrans\n };\n this.eventService.dispatchEvent(event_2);\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.gridOptionsService.is('suppressMaintainUnsortedOrder');\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.gridOptionsService.is('suppressAnimationFrame');\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 = this.resetRowHeightsForAllRowNodes();\n this.rootNode.setRowHeight(this.rootNode.rowHeight, true);\n if (this.rootNode.sibling) {\n this.rootNode.sibling.setRowHeight(this.rootNode.sibling.rowHeight, true);\n }\n // when pivotMode but pivot not active, root node is displayed on its own\n // because it's only ever displayed alone, refreshing the model (onRowHeightChanged) is not required\n if (atLeastOne) {\n this.onRowHeightChanged();\n }\n };\n ClientSideRowModel.prototype.resetRowHeightsForAllRowNodes = 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 if (rowNode.sibling) {\n rowNode.sibling.setRowHeight(rowNode.sibling.rowHeight, true);\n }\n atLeastOne = true;\n });\n return atLeastOne;\n };\n ClientSideRowModel.prototype.onGridStylesChanges = function () {\n if (this.columnModel.isAutoRowHeightActive()) {\n return;\n }\n this.resetRowHeights();\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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.gridOptionsService.is('deltaSort');\n var sortContainsGroupColumns = sortOptions.some(function (opt) {\n var isSortingCoupled = _this.gridOptionsService.isColumnsSortingCoupledToGroup();\n if (isSortingCoupled) {\n return opt.column.isPrimary() && opt.column.isRowGroupActive();\n }\n return !!opt.column.getColDef().showRowGroup;\n });\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 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 var details = this.getFlattenDetails();\n this.recursivelyAddToRowsToDisplay(details, topList, result, 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 && details.groupIncludeTotalFooter;\n if (includeGroupTotalFooter) {\n rootNode.createFooter();\n this.addRowNodeToRowsToDisplay(details, rootNode.sibling, result, 0);\n }\n return result;\n };\n FlattenStage.prototype.getFlattenDetails = function () {\n // these two are mutually exclusive, so if first set, we don't set the second\n var groupRemoveSingleChildren = this.gridOptionsService.is('groupRemoveSingleChildren');\n var groupRemoveLowestSingleChildren = !groupRemoveSingleChildren && this.gridOptionsService.is('groupRemoveLowestSingleChildren');\n return {\n groupRemoveLowestSingleChildren: groupRemoveLowestSingleChildren,\n groupRemoveSingleChildren: groupRemoveSingleChildren,\n isGroupMultiAutoColumn: this.gridOptionsService.isGroupMultiAutoColumn(),\n hideOpenParents: this.gridOptionsService.is('groupHideOpenParents'),\n groupIncludeTotalFooter: this.gridOptionsService.is('groupIncludeTotalFooter'),\n getGroupIncludeFooter: this.gridOptionsService.getGroupIncludeFooter(),\n };\n };\n FlattenStage.prototype.recursivelyAddToRowsToDisplay = function (details, rowsToFlatten, result, skipLeafNodes, uiLevel) {\n if (_.missingOrEmpty(rowsToFlatten)) {\n return;\n }\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 = details.groupRemoveSingleChildren && isParent && rowNode.childrenAfterGroup.length === 1;\n var isRemovedLowestSingleChildrenGroup = details.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 row groups')\n var neverAllowToExpand = skipLeafNodes && rowNode.leafGroup;\n var isHiddenOpenParent = details.hideOpenParents && rowNode.expanded && !rowNode.master && !neverAllowToExpand;\n var thisRowShouldBeRendered = !isSkippedLeafNode && !isHiddenOpenParent &&\n !isRemovedSingleChildrenGroup && !isRemovedLowestSingleChildrenGroup;\n if (thisRowShouldBeRendered) {\n this.addRowNodeToRowsToDisplay(details, rowNode, result, 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(details, rowNode.childrenAfterSort, result, skipLeafNodes, uiLevelForChildren);\n // put a footer in if user is looking for it\n var doesRowShowFooter = details.getGroupIncludeFooter({ node: rowNode });\n if (doesRowShowFooter) {\n // ensure node is available.\n rowNode.createFooter();\n this.addRowNodeToRowsToDisplay(details, rowNode.sibling, result, uiLevelForChildren);\n }\n else {\n // remove node if it's unnecessary.\n rowNode.destroyFooter();\n }\n }\n }\n else if (rowNode.master && rowNode.expanded) {\n var detailNode = this.createDetailNode(rowNode);\n this.addRowNodeToRowsToDisplay(details, detailNode, result, uiLevel);\n }\n }\n };\n // duplicated method, it's also in floatingRowModel\n FlattenStage.prototype.addRowNodeToRowsToDisplay = function (details, rowNode, result, uiLevel) {\n result.push(rowNode);\n rowNode.setUiLevel(details.isGroupMultiAutoColumn ? 0 : uiLevel);\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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.gridOptionsService.getCallback('postSortRows');\n };\n SortService.prototype.sort = function (sortOptions, sortActive, useDeltaSort, rowNodeTransactions, changedPath, sortContainsGroupColumns) {\n var _this = this;\n var groupMaintainOrder = this.gridOptionsService.is('groupMaintainOrder');\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 (skipSortingGroups) {\n var childrenToBeSorted = rowNode.childrenAfterAggFilter.slice(0);\n if (rowNode.childrenAfterSort) {\n var indexedOrders_1 = {};\n rowNode.childrenAfterSort.forEach(function (node, idx) {\n indexedOrders_1[node.id] = idx;\n });\n childrenToBeSorted.sort(function (row1, row2) { var _a, _b; return ((_a = indexedOrders_1[row1.id]) !== null && _a !== void 0 ? _a : 0) - ((_b = indexedOrders_1[row2.id]) !== null && _b !== void 0 ? _b : 0); });\n }\n rowNode.childrenAfterSort = childrenToBeSorted;\n }\n else if (!sortActive || skipSortingPivotLeafs) {\n // if there's no sort to make, skip this step\n rowNode.childrenAfterSort = rowNode.childrenAfterAggFilter.slice(0);\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.gridOptionsService.is('groupHideOpenParents')) {\n return;\n }\n if (this.gridOptionsService.is('treeData')) {\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.gridOptionsService.is('groupHideOpenParents') || _.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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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.isChildFilterPresent();\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.gridOptionsService.is('treeData') && !this.gridOptionsService.is('excludeChildrenWhenTreeDataFiltering');\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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() === 'clientSide') {\n this.clientSideRowModel = this.rowModel;\n }\n };\n ImmutableService.prototype.isActive = function () {\n var getRowIdProvided = this.gridOptionsService.exists('getRowId');\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 = this.gridOptionsService.is('resetRowDataOnUpdate');\n if (resetRowDataOnUpdate) {\n return false;\n }\n return getRowIdProvided;\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 this.clientSideRowModel.updateRowData(transaction, orderIdMap);\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.gridOptionsService.getCallback('getRowId');\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.gridOptionsService.is('suppressMaintainUnsortedOrder');\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 PostConstruct\n ], ImmutableService.prototype, \"postConstruct\", null);\n ImmutableService = __decorate$5([\n Bean('immutableService')\n ], ImmutableService);\n return ImmutableService;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$2 = '30.2.0';\n\nvar ClientSideRowModelModule = {\n version: VERSION$2,\n moduleName: ModuleNames.ClientSideRowModelModule,\n rowModel: 'clientSide',\n beans: [ClientSideRowModel, FilterStage, SortStage, FlattenStage, SortService, FilterService, ImmutableService],\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 (_.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.gridOptionsService.context\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 if (!rowNode.id && rowNode.alreadyRendered && data) {\n // if the node had no id and was rendered, but we have data for it now, then\n // destroy the old row and copy its position into new row. This prevents an additional\n // set of events being fired as the row renderer tries to understand the changing id\n _this.rowNodes[index] = new RowNode(_this.beans);\n _this.rowNodes[index].setRowIndex(rowNode.rowIndex);\n _this.rowNodes[index].setRowTop(rowNode.rowTop);\n _this.rowNodes[index].setRowHeight(rowNode.rowHeight);\n // clean up the old row\n rowNode.clearRowTopAndRowIndex();\n }\n _this.setDataAndId(_this.rowNodes[index], 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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.gridOptionsService.isRowModelType('infinite')) {\n return;\n }\n this.rowHeight = this.gridOptionsService.getRowHeightAsNumber();\n this.addEventListeners();\n this.addDestroyFunc(function () { return _this.destroyCache(); });\n this.verifyProps();\n };\n InfiniteRowModel.prototype.verifyProps = function () {\n if (this.gridOptionsService.exists('initialGroupOrderComparator')) {\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.gridOptionsService.get('datasource'));\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 '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.gridOptionsService.getCallback('getRowId');\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.gridOptionsService.getNum('infiniteInitialRowCount'), 1),\n maxBlocksInCache: this.gridOptionsService.getNum('maxBlocksInCache'),\n rowHeight: this.gridOptionsService.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.gridOptionsService.getNum('cacheOverflowSize'), 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.gridOptionsService.getNum('cacheBlockSize'), 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\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$1 = '30.2.0';\n\nvar InfiniteRowModelModule = {\n version: VERSION$1,\n moduleName: ModuleNames.InfiniteRowModelModule,\n rowModel: 'infinite',\n beans: [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, gridOptionsService = config.gridOptionsService, valueFormatterService = config.valueFormatterService, valueParserService = config.valueParserService, processCellCallback = config.processCellCallback, processHeaderCallback = config.processHeaderCallback, processGroupHeaderCallback = config.processGroupHeaderCallback, processRowGroupCallback = config.processRowGroupCallback;\n this.columnModel = columnModel;\n this.valueService = valueService;\n this.gridOptionsService = gridOptionsService;\n this.valueFormatterService = valueFormatterService;\n this.valueParserService = valueParserService;\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.gridOptionsService.is('groupHideOpenParents');\n var value = ((!hideOpenParents || node.footer) && 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;\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) {\n if (((_a = node.groupData) === null || _a === void 0 ? void 0 : _a[column.getId()]) != null) {\n return true;\n }\n if (this.gridOptionsService.isRowModelType('serverSide') && node.group) {\n return true;\n }\n // if this is a top level footer, always render`Total` in the left-most cell\n if (node.footer && node.level === -1) {\n var colDef = column.getColDef();\n var isFullWidth = colDef == null || colDef.showRowGroup === true;\n return isFullWidth || colDef.showRowGroup === this.columnModel.getRowGroupColumns()[0].getId();\n }\n }\n var isGroupUseEntireRow = this.gridOptionsService.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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\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.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n });\n }\n var isFooter = node.footer;\n var keys = [node.key];\n if (!this.gridOptionsService.isGroupMultiAutoColumn()) {\n while (node.parent) {\n node = node.parent;\n keys.push(node.key);\n }\n }\n var groupValue = keys.reverse().join(' -> ');\n return isFooter ? \"Total \" + groupValue : groupValue;\n };\n BaseGridSerializingSession.prototype.processCell = function (params) {\n var _this = this;\n var _a;\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 {\n value: (_a = processCellCallback({\n accumulatedRowIndex: accumulatedRowIndex,\n column: column,\n node: rowNode,\n value: value,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n type: type,\n parseValue: function (valueToParse) { return _this.valueParserService.parseValue(column, rowNode, valueToParse, _this.valueService.getValue(column, rowNode)); },\n formatValue: function (valueToFormat) { var _a; return (_a = _this.valueFormatterService.formatValue(column, rowNode, valueToFormat)) !== null && _a !== void 0 ? _a : valueToFormat; }\n })) !== null && _a !== void 0 ? _a : ''\n };\n }\n if (column.getColDef().useValueFormatterForExport) {\n return {\n value: value !== null && value !== void 0 ? value : '',\n valueFormatted: this.valueFormatterService.formatValue(column, rowNode, value),\n };\n }\n return { value: value !== null && value !== void 0 ? 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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 var _a;\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n var rowCellValue = this.extractRowCellValue(column, index, index, 'csv', node);\n this.result += this.putInQuotes((_a = rowCellValue.valueFormatted) !== null && _a !== void 0 ? _a : rowCellValue.value);\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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 gridOptionsService: this.gridOptionsService\n });\n };\n CsvCreator.prototype.getMergedParams = function (params) {\n var baseParams = this.gridOptionsService.get('defaultCsvExportParams');\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, gridOptionsService = _a.gridOptionsService, valueFormatterService = _a.valueFormatterService, valueParserService = _a.valueParserService;\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 gridOptionsService: gridOptionsService,\n valueFormatterService: valueFormatterService,\n valueParserService: valueParserService,\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.gridOptionsService.is('suppressCsvExport');\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('gridOptionsService')\n ], CsvCreator.prototype, \"gridOptionsService\", void 0);\n __decorate$1([\n Autowired('valueFormatterService')\n ], CsvCreator.prototype, \"valueFormatterService\", void 0);\n __decorate$1([\n Autowired('valueParserService')\n ], CsvCreator.prototype, \"valueParserService\", 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n 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 context = this.gridOptionsService.context;\n var api = this.gridOptionsService.api;\n var columnApi = this.gridOptionsService.columnApi;\n var skipSingleChildrenGroup = this.gridOptionsService.is('groupRemoveSingleChildren');\n var skipLowestSingleChildrenGroup = this.gridOptionsService.is('groupRemoveLowestSingleChildren');\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 = this.gridOptionsService.is('groupHideOpenParents') && !isExplicitExportSelection;\n var isLeafNode = this.columnModel.isPivotMode() ? node.leafGroup : !node.group;\n var isFooter = !!node.footer;\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 && !isFooter && (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 && !isLeafNode && !isFooter) {\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(node);\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, 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 === 'clientSide';\n var usingSsrm = rowModelType === 'serverSide';\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, true);\n }\n else if (usingSsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow, true);\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 _this.replicateSortedOrder(selectedNodes);\n // serialize each node\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, true);\n }\n else if (usingSsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow, true);\n }\n else {\n rowModel.forEachNode(processRow);\n }\n }\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.replicateSortedOrder = function (rows) {\n var _this = this;\n var sortOptions = this.sortController.getSortOptions();\n var compareNodes = function (rowA, rowB) {\n var _a, _b, _c, _d;\n if (rowA.rowIndex != null && rowB.rowIndex != null) {\n // if the rows have rowIndexes, this is the easiest way to compare,\n // as they're already ordered\n return rowA.rowIndex - rowB.rowIndex;\n }\n // if the level is the same, compare these nodes, or their parents\n if (rowA.level === rowB.level) {\n if (((_a = rowA.parent) === null || _a === void 0 ? void 0 : _a.id) === ((_b = rowB.parent) === null || _b === void 0 ? void 0 : _b.id)) {\n return _this.rowNodeSorter.compareRowNodes(sortOptions, {\n rowNode: rowA,\n currentPos: (_c = rowA.rowIndex) !== null && _c !== void 0 ? _c : -1,\n }, {\n rowNode: rowB,\n currentPos: (_d = rowB.rowIndex) !== null && _d !== void 0 ? _d : -1,\n });\n }\n // level is same, but parent isn't, compare parents\n return compareNodes(rowA.parent, rowB.parent);\n }\n // if level is different, match levels\n if (rowA.level > rowB.level) {\n return compareNodes(rowA.parent, rowB);\n }\n return compareNodes(rowA, rowB.parent);\n };\n // sort the nodes either by existing row index or compare them\n rows.sort(compareNodes);\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.gridOptionsService.is('treeData')\n ? this.columnModel.getGridColumns([GROUP_AUTO_COLUMN_ID])\n : [];\n return columns.concat(this.columnModel.getAllGridColumns() || []);\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.gridOptionsService.api,\n columnApi: _this.gridOptionsService.columnApi,\n context: _this.gridOptionsService.context\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('rowNodeSorter')\n ], GridSerializer.prototype, \"rowNodeSorter\", void 0);\n __decorate([\n Autowired('sortController')\n ], GridSerializer.prototype, \"sortController\", void 0);\n GridSerializer = __decorate([\n Bean(\"gridSerializer\")\n ], GridSerializer);\n return GridSerializer;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION = '30.2.0';\n\nvar CsvExportModule = {\n version: VERSION,\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, AgAbstractLabel, AgAutocomplete, AgCheckbox, AgDialog, AgGroupComponent, AgInputDateField, AgInputNumberField, AgInputRange, AgInputTextArea, AgInputTextField, AgMenuItemComponent, AgMenuList, AgMenuPanel, AgPanel, AgPickerField, AgPromise, AgPromiseStatus, AgRadioButton, AgRichSelect, 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, CheckboxCellEditor, CheckboxCellRenderer, CheckboxSelectionComponent, ClientSideRowModelModule, ClientSideRowModelSteps, ColDefUtil, Column, ColumnApi, ColumnFactory, ColumnGroup, ColumnKeyCreator, ColumnModel, ColumnUtils, Component, ComponentUtil, Context, CssClassApplier, CssClassManager, CsvCreator, CsvExportModule, CtrlsService, CustomTooltipFeature, DEFAULT_CHART_GROUPS, DataTypeService, DateCellEditor, DateFilter, DateStringCellEditor, DisplayedGroupCreator, Downloader, DragAndDropService, DragService, DragSourceType, Environment, EventService, Events, ExcelFactoryMode, ExpressionService, FilterManager, FloatingFilterMapper, FocusService, GROUP_AUTO_COLUMN_ID, Grid, GridApi, GridBodyComp, GridBodyCtrl, GridComp, GridCoreCreator, GridCtrl, GridHeaderComp, GridHeaderCtrl, GridOptionsService, GridSerializer, GroupCellRenderer, GroupCellRendererCtrl, GroupInstanceIdCreator, HeaderCellCtrl, HeaderFilterCellComp, HeaderFilterCellCtrl, HeaderGroupCellCtrl, HeaderNavigationDirection, HeaderNavigationService, HeaderPositionUtils, HeaderRowComp, HeaderRowContainerComp, HeaderRowContainerCtrl, HeaderRowCtrl, HeaderRowType, HorizontalDirection, HorizontalResizeService, InfiniteRowModelModule, KeyCode, LargeTextCellEditor, LayoutCssClasses, LocaleService, Logger, LoggerFactory, ManagedFocusFeature, ModuleNames, ModuleRegistry, MouseEventService, MoveColumnFeature, NavigationService, NumberCellEditor, NumberFilter, NumberSequence, Optional, PaginationProxy, PinnedRowModel, PopupComponent, PopupEditorWrapper, PopupService, 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, ServerSideTransactionResultStatus, SetLeftFeature, SimpleFilter, SortController, SortIndicatorComp, StandardMenuFactory, StylingService, TabGuardClassNames, TabGuardComp, TabGuardCtrl, TabbedLayout, TemplateService, TextCellEditor, TextFilter, TextFloatingFilter, Timer, TooltipFeature, TouchListener, UserComponentFactory, UserComponentRegistry, ValueCache, ValueFormatterService, ValueParserService, ValueService, VanillaFrameworkOverrides, VerticalDirection, VirtualList, VirtualListDragFeature, XmlFactory, ZipContainer, _, __FORCE_MODULE_DETECTION, getRowContainerTypeForName, simpleHttpRequest };\n","import * as i0 from '@angular/core';\nimport { NgZone, Injectable, EventEmitter, Component, ViewEncapsulation, Input, Output, NgModule } from '@angular/core';\nimport { VanillaFrameworkOverrides, AgPromise, BaseComponentWrapper, ComponentUtil, Grid } from 'ag-grid-community';\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.17\", ngImport: i0, type: AngularFrameworkOverrides, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });\nAngularFrameworkOverrides.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: AngularFrameworkOverrides });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.17\", 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.17\", ngImport: i0, type: AngularFrameworkComponentWrapper, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\nAngularFrameworkComponentWrapper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: AngularFrameworkComponentWrapper });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.17\", 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 */\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 trigger that will cause tooltips to show and hide.\n * - `hover` - The tooltip will show/hide when a cell/header is hovered.\n * - `focus` - The tooltip will show/hide when a cell/header is focused.\n * Default: 'hover'\n */\n this.tooltipTrigger = 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 */\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` and `tooltipHideTriggers` includes `timeout`.\n * Default: `10000`\n */\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 /** Set to `true` to enable tooltip interaction. When this option is enabled, the tooltip will not hide while the\n * tooltip itself it being hovered or has focus.\n * Default: `false`\n */\n this.tooltipInteraction = 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 */\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. Default: `false` */\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. Default: `false` */\n this.suppressClipboardApi = undefined;\n /** Set to `true` to block **cut** operations within the grid. Default: `false` */\n this.suppressCutToClipboard = 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 /** An object map of cell data types to their definitions.\n * Cell data types can either override/update the pre-defined data types\n * (`'text'`, `'number'`, `'boolean'`, `'date'`, `'dateString'` or `'object'`),\n * or can be custom data types.\n */\n this.dataTypeDefinitions = 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 /** 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: `20`\n */\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 /** 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` to stop the grid updating data after `Edit`, `Clipboard` and `Fill Handle` operations. 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.
    **Note:** `rowNode.setDataValue()` does not update the value of the cell when this is `True`, it fires `onCellEditRequest` instead. Default: `false` */\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 */\n this.stopEditingWhenCellsLoseFocus = undefined;\n /** @deprecated As of v30, no longer used. To navigate with the Enter key use `enterNavigatesVertically`. */\n this.enterMovesDown = undefined;\n /** @deprecated As of v30, no longer used. To navigate with the Enter key after edit use `enterNavigatesVerticallyAfterEdit`. */\n this.enterMovesDownAfterEdit = undefined;\n /** Set to `true` along with `enterNavigatesVerticallyAfterEdit` to have Excel-style behaviour for the `Enter` key.\n * i.e. pressing the `Enter` key will move down to the cell beneath and `Shift+Enter` will move up to the cell above.\n * Default: `false`\n */\n this.enterNavigatesVertically = undefined;\n /** Set to `true` along with `enterNavigatesVertically` to have Excel-style behaviour for the 'Enter' key.\n * i.e. pressing the Enter key will move down to the cell beneath and Shift+Enter key will move up to the cell above.\n * Default: `false`\n */\n this.enterNavigatesVerticallyAfterEdit = 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 /** 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 /** 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 /** @deprecated As of v30, hidden columns are excluded from the Quick Filter by default. This can be toggled using `includeHiddenColumnsInQuickFilter`.\n */\n this.excludeHiddenColumnsFromQuickFilter = undefined;\n /** Hidden columns are excluded from the Quick Filter by default.\n * To include hidden columns, set to `true`.\n * Default: `false`\n */\n this.includeHiddenColumnsInQuickFilter = undefined;\n /** Changes how the Quick Filter splits the Quick Filter text into search terms. */\n this.quickFilterParser = undefined;\n /** Changes the matching logic for whether a row passes the Quick Filter. */\n this.quickFilterMatcher = 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 the Advanced Filter. Default: `false` */\n this.enableAdvancedFilter = undefined;\n /** Allows the state of the Advanced Filter to be set before the grid is loaded. */\n this.advancedFilterModel = undefined;\n /** Hidden columns are excluded from the Advanced Filter by default.\n * To include hidden columns, set to `true`.\n * Default: `false`\n */\n this.includeHiddenColumnsInAdvancedFilter = undefined;\n /** DOM element to use as the parent for the Advanced Filter to allow it to appear outside of the grid.\n * Set to `null` or `undefined` to appear inside the grid.\n */\n this.advancedFilterParent = undefined;\n /** Customise the parameters passed to the Advanced Filter Builder. */\n this.advancedFilterBuilderParams = undefined;\n /** Set to `true` to Enable Charts. Default: `false` */\n this.enableCharts = undefined;\n /** The list of chart themes that a user can chose from in the chart settings panel.\n * Default: `['ag-default', 'ag-material', 'ag-pastel', 'ag-vivid', 'ag-solar' ]`\n */\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 /** @deprecated As of v29, no longer used. To suppress use `suppressChartToolPanelsButton`. */\n this.enableChartToolPanelsButton = undefined;\n /** Set to `true` to show the 'hamburger' menu option from the Chart Toolbar and display the remaining toolbar buttons. Default: `false` */\n this.suppressChartToolPanelsButton = 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 */\n this.loadingCellRenderer = 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 */\n this.detailCellRenderer = 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 */\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 /** @deprecated v30.2 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 */\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 */\n this.loadingOverlayComponent = 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 */\n this.noRowsOverlayComponent = 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 */\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 /** If pivoting, set to the number of column group 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.pivotDefaultExpanded = 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 using aggregations, the grid will always calculate the root level aggregation value. Default: `false` */\n this.alwaysAggregateAtRootLevel = undefined;\n /** @deprecated v30 - made default and toggled via alwaysAggregateAtRootLevel */\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 */\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 */\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 */\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 */\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 */\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 */\n this.fullWidthCellRenderer = undefined;\n /** Customise the parameters provided to the `fullWidthCellRenderer` component. */\n this.fullWidthCellRendererParams = undefined;\n /** Set to `true` to have the Full Width Rows embedded in grid's main container so they can be scrolled horizontally . */\n this.embedFullWidthRows = 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 */\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 * If a callback function is provided, it can used to select which groups will have a footer added.\n * Default: `false`\n */\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 /** Set to `true` to prevent the grid from creating a '(Blanks)' group for nodes which do not belong to a group, and display the unbalanced nodes alongside group nodes. Default: `false` */\n this.groupAllowUnbalanced = 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 */\n this.groupRowRenderer = 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` prevent Group Rows from sticking to the top of the grid. Default: `false` */\n this.suppressGroupRowsSticky = undefined;\n /** @deprecated v24 - 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 /** 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 /** 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 */\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 */\n this.infiniteInitialRowCount = undefined;\n /** Set how many loading rows to display to the user for the root level group.\n * Default: `1`\n */\n this.serverSideInitialRowCount = undefined;\n /** @deprecated v28 Whether to use Full Store or Partial Store for storing rows. Default: `partial`.\n * Deprecated in favour of suppressServerSideInfiniteScroll. When false, Partial Store is used. When true,\n * Full Store is used.\n */\n this.serverSideStoreType = undefined;\n /** When `true`, the Server-side Row Model will suppress Infinite Scrolling and load all the data at the current level.\n * Default: `false`\n */\n this.suppressServerSideInfiniteScroll = 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 */\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 */\n this.maxConcurrentDatasourceRequests = undefined;\n /** How many milliseconds to wait before loading a block. Useful when scrolling over many 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, only refresh groups directly impacted by a filter. This property only applies when there is Row Grouping & filtering is handled on the server. Default: `false` */\n this.serverSideOnlyRefreshFilteredGroups = undefined;\n /** @deprecated v30 This property has been deprecated. Use `serverSideOnlyRefreshFilteredGroups` instead */\n this.serverSideFilterAllLevels = undefined;\n /**\n * When enabled, Sorting will be done on the server. Only applicable when `suppressServerSideInfiniteScroll=true`.\n * Default: `false`\n */\n this.serverSideSortOnServer = undefined;\n /** When enabled, Filtering will be done on the server. Only applicable when `suppressServerSideInfiniteScroll=true`.\n * Default: `false`\n */\n this.serverSideFilterOnServer = undefined;\n /** @deprecated v28 This property has been deprecated. Use `serverSideSortAllLevels` instead. */\n this.serverSideSortingAlwaysResets = undefined;\n /** @deprecated v28 This property has been deprecated. Use `serverSideOnlyRefreshFilteredGroups` instead. */\n this.serverSideFilteringAlwaysResets = undefined;\n /** Used to split pivot field strings for generating pivot result columns when `pivotResultFields` is provided as part of a `getRows` success.\n * Default: `_`\n */\n this.serverSidePivotResultFieldSeparator = 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 /** 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 */\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 /** Provide a custom `gridId` for this instance of the grid. Value will be set on the root DOM node using the attribute `grid-id` as well as being accessible via the `gridApi.getGridId()` method. */\n this.gridId = undefined;\n this.deltaSort = undefined;\n this.treeDataDisplayType = undefined;\n /** @deprecated v29.2 */\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 /** 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 /** 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 v28 - Use `processPivotResultColDef` instead */\n this.processSecondaryColDef = undefined;\n /** @deprecated v28 - 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 /** 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 v28 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 */\n this.getBusinessKeyForNode = 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 /** Callback to perform additional sorting after the grid has sorted the rows. When used with SSRM, only applicable when `suppressServerSideInfiniteScroll=true` */\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 /** Tells the grid if this row should be rendered as full width. */\n this.isFullWidthRow = undefined;\n /** The tool panel visibility has changed. Fires twice if switching between panels - once with the old panel and once with the new panel. */\n this.toolPanelVisibleChanged = new EventEmitter();\n /** The tool panel size has been changed. */\n this.toolPanelSizeChanged = new EventEmitter();\n /** Cut operation has started. */\n this.cutStart = new EventEmitter();\n /** Cut operation has ended. */\n this.cutEnd = 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. */\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.applyColumnState()` 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 */\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 cut, paste, cell clear (pressing Delete key),\n * fill handle, copy range down, undo and redo.\n */\n this.cellValueChanged = new EventEmitter();\n /** Value has changed after editing. Only fires when `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 /** Undo operation has started. */\n this.undoStarted = new EventEmitter();\n /** Undo operation has ended. */\n this.undoEnded = new EventEmitter();\n /** Redo operation has started. */\n this.redoStarted = new EventEmitter();\n /** Redo operation has ended. */\n this.redoEnded = new EventEmitter();\n /** Range delete operation (cell clear) has started. */\n this.rangeDeleteStart = new EventEmitter();\n /** Range delete operation (cell clear) has ended. */\n this.rangeDeleteEnd = 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 /** Advanced Filter Builder visibility has changed (opened or closed). */\n this.advancedFilterBuilderVisibleChanged = 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 /** The grid has initialised and is ready for most api calls, but may not be fully rendered yet */\n this.gridReady = new EventEmitter();\n /** Invoked immediately before the grid is destroyed. This is useful for cleanup logic that needs to run before the grid is torn down. */\n this.gridPreDestroyed = 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 */\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 v28 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 /** A server side store has finished refreshing. */\n this.storeRefreshed = 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 /** A tooltip has been displayed */\n this.tooltipShow = new EventEmitter();\n /** A tooltip was hidden */\n this.tooltipHide = new EventEmitter();\n /** Sort has changed. The grid also listens for this and updates the model. */\n this.sortChanged = new EventEmitter();\n /** @deprecated v29.2 */\n this.columnRowGroupChangeRequest = new EventEmitter();\n /** @deprecated v29.2 */\n this.columnPivotChangeRequest = new EventEmitter();\n /** @deprecated v29.2 */\n this.columnValueChangeRequest = new EventEmitter();\n /** @deprecated v29.2 */\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);\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 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 if (this.gridPreDestroyed.observers.length > 0) {\n console.warn('AG Grid: gridPreDestroyed event listener registered via (gridPreDestroyed)=\"method($event)\" will be ignored! ' +\n 'Please assign via gridOptions.gridPreDestroyed and pass to the grid as [gridOptions]=\"gridOptions\"');\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.api);\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.17\", 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.17\", 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\", tooltipTrigger: \"tooltipTrigger\", tooltipShowDelay: \"tooltipShowDelay\", tooltipHideDelay: \"tooltipHideDelay\", tooltipMouseTrack: \"tooltipMouseTrack\", tooltipInteraction: \"tooltipInteraction\", popupParent: \"popupParent\", copyHeadersToClipboard: \"copyHeadersToClipboard\", copyGroupHeadersToClipboard: \"copyGroupHeadersToClipboard\", clipboardDelimiter: \"clipboardDelimiter\", suppressCopyRowsToClipboard: \"suppressCopyRowsToClipboard\", suppressCopySingleCellRanges: \"suppressCopySingleCellRanges\", suppressLastEmptyLineOnPaste: \"suppressLastEmptyLineOnPaste\", suppressClipboardPaste: \"suppressClipboardPaste\", suppressClipboardApi: \"suppressClipboardApi\", suppressCutToClipboard: \"suppressCutToClipboard\", columnDefs: \"columnDefs\", defaultColDef: \"defaultColDef\", defaultColGroupDef: \"defaultColGroupDef\", columnTypes: \"columnTypes\", dataTypeDefinitions: \"dataTypeDefinitions\", maintainColumnOrder: \"maintainColumnOrder\", suppressFieldDotNotation: \"suppressFieldDotNotation\", 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\", editType: \"editType\", singleClickEdit: \"singleClickEdit\", suppressClickEdit: \"suppressClickEdit\", readOnlyEdit: \"readOnlyEdit\", stopEditingWhenCellsLoseFocus: \"stopEditingWhenCellsLoseFocus\", enterMovesDown: \"enterMovesDown\", enterMovesDownAfterEdit: \"enterMovesDownAfterEdit\", enterNavigatesVertically: \"enterNavigatesVertically\", enterNavigatesVerticallyAfterEdit: \"enterNavigatesVerticallyAfterEdit\", enableCellEditingOnBackspace: \"enableCellEditingOnBackspace\", undoRedoCellEditing: \"undoRedoCellEditing\", undoRedoCellEditingLimit: \"undoRedoCellEditingLimit\", defaultCsvExportParams: \"defaultCsvExportParams\", suppressCsvExport: \"suppressCsvExport\", defaultExcelExportParams: \"defaultExcelExportParams\", suppressExcelExport: \"suppressExcelExport\", excelStyles: \"excelStyles\", quickFilterText: \"quickFilterText\", cacheQuickFilter: \"cacheQuickFilter\", excludeHiddenColumnsFromQuickFilter: \"excludeHiddenColumnsFromQuickFilter\", includeHiddenColumnsInQuickFilter: \"includeHiddenColumnsInQuickFilter\", quickFilterParser: \"quickFilterParser\", quickFilterMatcher: \"quickFilterMatcher\", excludeChildrenWhenTreeDataFiltering: \"excludeChildrenWhenTreeDataFiltering\", enableAdvancedFilter: \"enableAdvancedFilter\", advancedFilterModel: \"advancedFilterModel\", includeHiddenColumnsInAdvancedFilter: \"includeHiddenColumnsInAdvancedFilter\", advancedFilterParent: \"advancedFilterParent\", advancedFilterBuilderParams: \"advancedFilterBuilderParams\", enableCharts: \"enableCharts\", chartThemes: \"chartThemes\", customChartThemes: \"customChartThemes\", chartThemeOverrides: \"chartThemeOverrides\", enableChartToolPanelsButton: \"enableChartToolPanelsButton\", suppressChartToolPanelsButton: \"suppressChartToolPanelsButton\", chartToolPanelsDef: \"chartToolPanelsDef\", loadingCellRenderer: \"loadingCellRenderer\", loadingCellRendererParams: \"loadingCellRendererParams\", loadingCellRendererSelector: \"loadingCellRendererSelector\", localeText: \"localeText\", masterDetail: \"masterDetail\", keepDetailRows: \"keepDetailRows\", keepDetailRowsCount: \"keepDetailRowsCount\", detailCellRenderer: \"detailCellRenderer\", 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\", loadingOverlayComponentParams: \"loadingOverlayComponentParams\", suppressLoadingOverlay: \"suppressLoadingOverlay\", overlayNoRowsTemplate: \"overlayNoRowsTemplate\", noRowsOverlayComponent: \"noRowsOverlayComponent\", noRowsOverlayComponentParams: \"noRowsOverlayComponentParams\", suppressNoRowsOverlay: \"suppressNoRowsOverlay\", pagination: \"pagination\", paginationPageSize: \"paginationPageSize\", paginationAutoPageSize: \"paginationAutoPageSize\", paginateChildRows: \"paginateChildRows\", suppressPaginationPanel: \"suppressPaginationPanel\", pivotMode: \"pivotMode\", pivotPanelShow: \"pivotPanelShow\", pivotDefaultExpanded: \"pivotDefaultExpanded\", pivotColumnGroupTotals: \"pivotColumnGroupTotals\", pivotRowTotals: \"pivotRowTotals\", pivotSuppressAutoColumn: \"pivotSuppressAutoColumn\", suppressExpandablePivotGroups: \"suppressExpandablePivotGroups\", functionsReadOnly: \"functionsReadOnly\", aggFuncs: \"aggFuncs\", suppressAggFuncInHeader: \"suppressAggFuncInHeader\", alwaysAggregateAtRootLevel: \"alwaysAggregateAtRootLevel\", 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\", fullWidthCellRendererParams: \"fullWidthCellRendererParams\", embedFullWidthRows: \"embedFullWidthRows\", 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\", groupAllowUnbalanced: \"groupAllowUnbalanced\", rowGroupPanelShow: \"rowGroupPanelShow\", groupRowRenderer: \"groupRowRenderer\", groupRowRendererParams: \"groupRowRendererParams\", suppressMakeColumnVisibleAfterUnGroup: \"suppressMakeColumnVisibleAfterUnGroup\", treeData: \"treeData\", rowGroupPanelSuppressSort: \"rowGroupPanelSuppressSort\", suppressGroupRowsSticky: \"suppressGroupRowsSticky\", rememberGroupStateWhenNewData: \"rememberGroupStateWhenNewData\", pinnedTopRowData: \"pinnedTopRowData\", pinnedBottomRowData: \"pinnedBottomRowData\", rowModelType: \"rowModelType\", rowData: \"rowData\", asyncTransactionWaitMillis: \"asyncTransactionWaitMillis\", suppressModelUpdateAfterUpdateTransaction: \"suppressModelUpdateAfterUpdateTransaction\", datasource: \"datasource\", cacheOverflowSize: \"cacheOverflowSize\", infiniteInitialRowCount: \"infiniteInitialRowCount\", serverSideInitialRowCount: \"serverSideInitialRowCount\", serverSideStoreType: \"serverSideStoreType\", suppressServerSideInfiniteScroll: \"suppressServerSideInfiniteScroll\", cacheBlockSize: \"cacheBlockSize\", maxBlocksInCache: \"maxBlocksInCache\", maxConcurrentDatasourceRequests: \"maxConcurrentDatasourceRequests\", blockLoadDebounceMillis: \"blockLoadDebounceMillis\", purgeClosedRowNodes: \"purgeClosedRowNodes\", serverSideDatasource: \"serverSideDatasource\", serverSideSortAllLevels: \"serverSideSortAllLevels\", serverSideOnlyRefreshFilteredGroups: \"serverSideOnlyRefreshFilteredGroups\", serverSideFilterAllLevels: \"serverSideFilterAllLevels\", serverSideSortOnServer: \"serverSideSortOnServer\", serverSideFilterOnServer: \"serverSideFilterOnServer\", serverSideSortingAlwaysResets: \"serverSideSortingAlwaysResets\", serverSideFilteringAlwaysResets: \"serverSideFilteringAlwaysResets\", serverSidePivotResultFieldSeparator: \"serverSidePivotResultFieldSeparator\", 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\", 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\", gridId: \"gridId\", deltaSort: \"deltaSort\", treeDataDisplayType: \"treeDataDisplayType\", 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\", getLocaleText: \"getLocaleText\", getDocument: \"getDocument\", paginationNumberFormatter: \"paginationNumberFormatter\", getGroupRowAgg: \"getGroupRowAgg\", isGroupOpenByDefault: \"isGroupOpenByDefault\", initialGroupOrderComparator: \"initialGroupOrderComparator\", processSecondaryColDef: \"processSecondaryColDef\", processSecondaryColGroupDef: \"processSecondaryColGroupDef\", processPivotResultColDef: \"processPivotResultColDef\", processPivotResultColGroupDef: \"processPivotResultColGroupDef\", getDataPath: \"getDataPath\", getChildCount: \"getChildCount\", getServerSideGroupLevelParams: \"getServerSideGroupLevelParams\", getServerSideStoreParams: \"getServerSideStoreParams\", isServerSideGroupOpenByDefault: \"isServerSideGroupOpenByDefault\", isApplyServerSideTransaction: \"isApplyServerSideTransaction\", isServerSideGroup: \"isServerSideGroup\", getServerSideGroupKey: \"getServerSideGroupKey\", getBusinessKeyForNode: \"getBusinessKeyForNode\", getRowId: \"getRowId\", resetRowDataOnUpdate: \"resetRowDataOnUpdate\", processRowPostCreate: \"processRowPostCreate\", isRowSelectable: \"isRowSelectable\", isRowMaster: \"isRowMaster\", fillOperation: \"fillOperation\", postSortRows: \"postSortRows\", getRowStyle: \"getRowStyle\", getRowClass: \"getRowClass\", getRowHeight: \"getRowHeight\", isFullWidthRow: \"isFullWidthRow\" }, outputs: { toolPanelVisibleChanged: \"toolPanelVisibleChanged\", toolPanelSizeChanged: \"toolPanelSizeChanged\", cutStart: \"cutStart\", cutEnd: \"cutEnd\", 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\", undoStarted: \"undoStarted\", undoEnded: \"undoEnded\", redoStarted: \"redoStarted\", redoEnded: \"redoEnded\", rangeDeleteStart: \"rangeDeleteStart\", rangeDeleteEnd: \"rangeDeleteEnd\", filterOpened: \"filterOpened\", filterChanged: \"filterChanged\", filterModified: \"filterModified\", advancedFilterBuilderVisibleChanged: \"advancedFilterBuilderVisibleChanged\", chartCreated: \"chartCreated\", chartRangeSelectionChanged: \"chartRangeSelectionChanged\", chartOptionsChanged: \"chartOptionsChanged\", chartDestroyed: \"chartDestroyed\", cellKeyDown: \"cellKeyDown\", gridReady: \"gridReady\", gridPreDestroyed: \"gridPreDestroyed\", 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\", storeRefreshed: \"storeRefreshed\", cellClicked: \"cellClicked\", cellDoubleClicked: \"cellDoubleClicked\", cellFocused: \"cellFocused\", cellMouseOver: \"cellMouseOver\", cellMouseOut: \"cellMouseOut\", cellMouseDown: \"cellMouseDown\", rowClicked: \"rowClicked\", rowDoubleClicked: \"rowDoubleClicked\", rowSelected: \"rowSelected\", selectionChanged: \"selectionChanged\", cellContextMenu: \"cellContextMenu\", rangeSelectionChanged: \"rangeSelectionChanged\", tooltipShow: \"tooltipShow\", tooltipHide: \"tooltipHide\", sortChanged: \"sortChanged\", columnRowGroupChangeRequest: \"columnRowGroupChangeRequest\", columnPivotChangeRequest: \"columnPivotChangeRequest\", columnValueChangeRequest: \"columnValueChangeRequest\", columnAggFuncChangeRequest: \"columnAggFuncChangeRequest\" }, providers: [\n AngularFrameworkOverrides,\n AngularFrameworkComponentWrapper\n ], usesOnChanges: true, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.17\", 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: { 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 }], tooltipTrigger: [{\n type: Input\n }], tooltipShowDelay: [{\n type: Input\n }], tooltipHideDelay: [{\n type: Input\n }], tooltipMouseTrack: [{\n type: Input\n }], tooltipInteraction: [{\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 }], suppressCutToClipboard: [{\n type: Input\n }], columnDefs: [{\n type: Input\n }], defaultColDef: [{\n type: Input\n }], defaultColGroupDef: [{\n type: Input\n }], columnTypes: [{\n type: Input\n }], dataTypeDefinitions: [{\n type: Input\n }], maintainColumnOrder: [{\n type: Input\n }], suppressFieldDotNotation: [{\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 }], 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 }], enterNavigatesVertically: [{\n type: Input\n }], enterNavigatesVerticallyAfterEdit: [{\n type: Input\n }], enableCellEditingOnBackspace: [{\n type: Input\n }], undoRedoCellEditing: [{\n type: Input\n }], undoRedoCellEditingLimit: [{\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 }], quickFilterText: [{\n type: Input\n }], cacheQuickFilter: [{\n type: Input\n }], excludeHiddenColumnsFromQuickFilter: [{\n type: Input\n }], includeHiddenColumnsInQuickFilter: [{\n type: Input\n }], quickFilterParser: [{\n type: Input\n }], quickFilterMatcher: [{\n type: Input\n }], excludeChildrenWhenTreeDataFiltering: [{\n type: Input\n }], enableAdvancedFilter: [{\n type: Input\n }], advancedFilterModel: [{\n type: Input\n }], includeHiddenColumnsInAdvancedFilter: [{\n type: Input\n }], advancedFilterParent: [{\n type: Input\n }], advancedFilterBuilderParams: [{\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 }], suppressChartToolPanelsButton: [{\n type: Input\n }], chartToolPanelsDef: [{\n type: Input\n }], loadingCellRenderer: [{\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 }], 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 }], loadingOverlayComponentParams: [{\n type: Input\n }], suppressLoadingOverlay: [{\n type: Input\n }], overlayNoRowsTemplate: [{\n type: Input\n }], noRowsOverlayComponent: [{\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 }], pivotDefaultExpanded: [{\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 }], alwaysAggregateAtRootLevel: [{\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 }], fullWidthCellRendererParams: [{\n type: Input\n }], embedFullWidthRows: [{\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 }], groupAllowUnbalanced: [{\n type: Input\n }], rowGroupPanelShow: [{\n type: Input\n }], groupRowRenderer: [{\n type: Input\n }], groupRowRendererParams: [{\n type: Input\n }], suppressMakeColumnVisibleAfterUnGroup: [{\n type: Input\n }], treeData: [{\n type: Input\n }], rowGroupPanelSuppressSort: [{\n type: Input\n }], suppressGroupRowsSticky: [{\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 }], asyncTransactionWaitMillis: [{\n type: Input\n }], suppressModelUpdateAfterUpdateTransaction: [{\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 }], suppressServerSideInfiniteScroll: [{\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 }], serverSideOnlyRefreshFilteredGroups: [{\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 }], serverSidePivotResultFieldSeparator: [{\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 }], 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 }], gridId: [{\n type: Input\n }], deltaSort: [{\n type: Input\n }], treeDataDisplayType: [{\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 }], getLocaleText: [{\n type: Input\n }], getDocument: [{\n type: Input\n }], paginationNumberFormatter: [{\n type: Input\n }], getGroupRowAgg: [{\n type: Input\n }], isGroupOpenByDefault: [{\n type: Input\n }], initialGroupOrderComparator: [{\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 }], 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 }], 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 }], postSortRows: [{\n type: Input\n }], getRowStyle: [{\n type: Input\n }], getRowClass: [{\n type: Input\n }], getRowHeight: [{\n type: Input\n }], isFullWidthRow: [{\n type: Input\n }], toolPanelVisibleChanged: [{\n type: Output\n }], toolPanelSizeChanged: [{\n type: Output\n }], cutStart: [{\n type: Output\n }], cutEnd: [{\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 }], undoStarted: [{\n type: Output\n }], undoEnded: [{\n type: Output\n }], redoStarted: [{\n type: Output\n }], redoEnded: [{\n type: Output\n }], rangeDeleteStart: [{\n type: Output\n }], rangeDeleteEnd: [{\n type: Output\n }], filterOpened: [{\n type: Output\n }], filterChanged: [{\n type: Output\n }], filterModified: [{\n type: Output\n }], advancedFilterBuilderVisibleChanged: [{\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 }], gridReady: [{\n type: Output\n }], gridPreDestroyed: [{\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 }], storeRefreshed: [{\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 }], tooltipShow: [{\n type: Output\n }], tooltipHide: [{\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.17\", ngImport: i0, type: AgGridModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\nAgGridModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: AgGridModule, declarations: [AgGridAngular], exports: [AgGridAngular] });\nAgGridModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: AgGridModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"12.2.17\", ngImport: i0, type: AgGridModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [AgGridAngular],\n exports: [AgGridAngular]\n }]\n }] });\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AgGridAngular, AgGridModule, AngularFrameworkComponentWrapper, AngularFrameworkOverrides };\n","/*!\n * ApexCharts v3.41.0\n * (c) 2018-2023 ApexCharts\n * Released under the MIT License.\n */\n\"use strict\";function t(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function e(e){for(var i=1;it.length)&&(e=t.length);for(var i=0,a=new Array(e);i>16,o=i>>8&255,n=255&i;return\"#\"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-o)*s)+o)+(Math.round((a-n)*s)+n)).toString(16).slice(1)}},{key:\"shadeColor\",value:function(e,i){return t.isColorHex(i)?this.shadeHexColor(e,i):this.shadeRGBColor(e,i)}}],[{key:\"bind\",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:\"isObject\",value:function(t){return t&&\"object\"===i(t)&&!Array.isArray(t)&&null!=t}},{key:\"is\",value:function(t,e){return Object.prototype.toString.call(e)===\"[object \"+t+\"]\"}},{key:\"listToArray\",value:function(t){var e,i=[];for(e=0;ee.length?t:e}))),t.length>e.length?t:e}),0)}},{key:\"hexToRgba\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"#999999\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;\"#\"!==t.substring(0,1)&&(t=\"#999999\");var i=t.replace(\"#\",\"\");i=i.match(new RegExp(\"(.{\"+i.length/3+\"})\",\"g\"));for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:\"x\",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()|+\\=?;:'\",.<>{}[\\]\\\\/]/gi,e)}},{key:\"negToZero\",value:function(t){return t<0?0:t}},{key:\"moveIndexInArray\",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:\"extractNumber\",value:function(t){return parseFloat(t.replace(/[^\\d.]*/g,\"\"))}},{key:\"findAncestor\",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:\"setELstyles\",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:\"isNumber\",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:\"isFloat\",value:function(t){return Number(t)===t&&t%1!=0}},{key:\"isSafari\",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:\"isFirefox\",value:function(){return navigator.userAgent.toLowerCase().indexOf(\"firefox\")>-1}},{key:\"isIE11\",value:function(){if(-1!==window.navigator.userAgent.indexOf(\"MSIE\")||window.navigator.appVersion.indexOf(\"Trident/\")>-1)return!0}},{key:\"isIE\",value:function(){var t=window.navigator.userAgent,e=t.indexOf(\"MSIE \");if(e>0)return parseInt(t.substring(e+5,t.indexOf(\".\",e)),10);if(t.indexOf(\"Trident/\")>0){var i=t.indexOf(\"rv:\");return parseInt(t.substring(i+3,t.indexOf(\".\",i)),10)}var a=t.indexOf(\"Edge/\");return a>0&&parseInt(t.substring(a+5,t.indexOf(\".\",a)),10)}}]),t}(),b=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.setEasingFunctions()}return r(t,[{key:\"setEasingFunctions\",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case\"linear\":t=\"-\";break;case\"easein\":t=\"<\";break;case\"easeout\":t=\">\";break;case\"easeinout\":default:t=\"<>\";break;case\"swing\":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case\"bounce\":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case\"elastic\":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1}}this.w.globals.easing=t}}},{key:\"animateLine\",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:\"animateMarker\",value:function(t,e,i,a,s,r){e||(e=0),t.attr({r:e,width:e,height:e}).animate(a,s).attr({r:i,width:i.width,height:i.height}).afterAll((function(){r()}))}},{key:\"animateCircle\",value:function(t,e,i,a,s){t.attr({r:e.r,cx:e.cx,cy:e.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:\"animateRect\",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:\"animatePathsGradually\",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,o=t.pathTo,n=t.speed,l=t.delay,h=this.w,c=0;h.config.chart.animations.animateGradually.enabled&&(c=h.config.chart.animations.animateGradually.delay),h.config.chart.animations.dynamicAnimation.enabled&&h.globals.dataChanged&&\"bar\"!==h.config.chart.type&&(c=0),this.morphSVG(e,i,a,\"line\"!==h.config.chart.type||h.globals.comboCharts?s:\"stroke\",r,o,n,l*c)}},{key:\"showDelayedElements\",value:function(){this.w.globals.delayedElements.forEach((function(t){var e=t.el;e.classList.remove(\"apexcharts-element-hidden\"),e.classList.add(\"apexcharts-hidden-element-shown\")}))}},{key:\"animationCompleted\",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),\"function\"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:\"morphSVG\",value:function(t,e,i,a,s,r,o,n){var l=this,h=this.w;s||(s=t.attr(\"pathFrom\")),r||(r=t.attr(\"pathTo\"));var c=function(t){return\"radar\"===h.config.chart.type&&(o=1),\"M 0 \".concat(h.globals.gridHeight)};(!s||s.indexOf(\"undefined\")>-1||s.indexOf(\"NaN\")>-1)&&(s=c()),(!r||r.indexOf(\"undefined\")>-1||r.indexOf(\"NaN\")>-1)&&(r=c()),h.globals.shouldAnimate||(o=1),t.plot(s).animate(1,h.globals.easing,n).plot(s).animate(o,h.globals.easing,n).plot(r).afterAll((function(){x.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&l.animationCompleted(t):\"none\"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&l.animationCompleted(t),l.showDelayedElements()}))}}]),t}(),v=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"getDefaultFilter\",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size(\"120%\",\"180%\",\"-5%\",\"-40%\"),\"none\"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:\"addNormalFilter\",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&!t.node.classList.contains(\"apexcharts-marker\")&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:\"addLightenFilter\",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:\"linear\",slope:1.5,intercept:r}})})),t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)}},{key:\"addDarkenFilter\",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:\"linear\",slope:r}})})),t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)}},{key:\"applyFilter\",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case\"none\":this.addNormalFilter(t,e);break;case\"lighten\":this.addLightenFilter(t,e,{intensity:a});break;case\"darken\":this.addDarkenFilter(t,e,{intensity:a})}}},{key:\"addShadow\",value:function(t,e,i){var a=i.blur,s=i.top,r=i.left,o=i.color,n=i.opacity,l=t.flood(Array.isArray(o)?o[e]:o,n).composite(t.sourceAlpha,\"in\").offset(r,s).gaussianBlur(a).merge(t.source);return t.blend(t.source,l)}},{key:\"dropShadow\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=e.top,s=e.left,r=e.blur,o=e.color,n=e.opacity,l=e.noUserSpaceOnUse,h=this.w;return t.unfilter(!0),x.isIE()&&\"radialBar\"===h.config.chart.type||(o=Array.isArray(o)?o[i]:o,t.filter((function(t){var e=null;e=x.isSafari()||x.isFirefox()||x.isIE()?t.flood(o,n).composite(t.sourceAlpha,\"in\").offset(s,a).gaussianBlur(r):t.flood(o,n).composite(t.sourceAlpha,\"in\").offset(s,a).gaussianBlur(r).merge(t.source),t.blend(t.source,e)})),l||t.filterer.node.setAttribute(\"filterUnits\",\"userSpaceOnUse\"),this._scaleFilterSize(t.filterer.node)),t}},{key:\"setSelectionFilter\",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute(\"selected\",!0);var s=a.config.states.active.filter;\"none\"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:\"_scaleFilterSize\",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:\"200%\",height:\"200%\",x:\"-50%\",y:\"-50%\"})}}]),t}(),m=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"roundPathCorners\",value:function(t,e){function i(t,e,i){var s=e.x-t.x,r=e.y-t.y,o=Math.sqrt(s*s+r*r);return a(t,e,Math.min(1,i/o))}function a(t,e,i){return{x:t.x+(e.x-t.x)*i,y:t.y+(e.y-t.y)*i}}function s(t,e){t.length>2&&(t[t.length-2]=e.x,t[t.length-1]=e.y)}function r(t){return{x:parseFloat(t[t.length-2]),y:parseFloat(t[t.length-1])}}t.indexOf(\"NaN\")>-1&&(t=\"\");var o=t.split(/[,\\s]/).reduce((function(t,e){var i=e.match(\"([a-zA-Z])(.+)\");return i?(t.push(i[1]),t.push(i[2])):t.push(e),t}),[]).reduce((function(t,e){return parseFloat(e)==e&&t.length?t[t.length-1].push(e):t.push([e]),t}),[]),n=[];if(o.length>1){var l=r(o[0]),h=null;\"Z\"==o[o.length-1][0]&&o[0].length>2&&(h=[\"L\",l.x,l.y],o[o.length-1]=h),n.push(o[0]);for(var c=1;c2&&\"L\"==g[0]&&u.length>2&&\"L\"==u[0]){var p,f,x=r(d),b=r(g),v=r(u);p=i(b,x,e),f=i(b,v,e),s(g,p),g.origPoint=b,n.push(g);var m=a(p,b,.5),y=a(b,f,.5),w=[\"C\",m.x,m.y,y.x,y.y,f.x,f.y];w.origPoint=b,n.push(w)}else n.push(g)}if(h){var k=r(n[n.length-1]);n.push([\"Z\"]),s(n[0],k)}}else n=o;return n.reduce((function(t,e){return t+e.join(\" \")+\" \"}),\"\")}},{key:\"drawLine\",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:\"#a8a8a8\",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:\"butt\";return this.w.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,\"stroke-dasharray\":r,\"stroke-width\":o,\"stroke-linecap\":n})}},{key:\"drawRect\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"#fefefe\",o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w.globals.dom.Paper.rect();return c.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:o,\"stroke-width\":null!==n?n:0,stroke:null!==l?l:\"none\",\"stroke-dasharray\":h}),c.node.setAttribute(\"fill\",r),c}},{key:\"drawPolygon\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"#e1e1e1\",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"none\";return this.w.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,\"stroke-width\":i})}},{key:\"drawCircle\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t<0&&(t=0);var i=this.w.globals.dom.Paper.circle(2*t);return null!==e&&i.attr(e),i}},{key:\"drawPath\",value:function(t){var e=t.d,i=void 0===e?\"\":e,a=t.stroke,s=void 0===a?\"#a8a8a8\":a,r=t.strokeWidth,o=void 0===r?1:r,n=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,g=t.classes,u=t.strokeLinecap,p=void 0===u?null:u,f=t.strokeDashArray,x=void 0===f?0:f,b=this.w;return null===p&&(p=b.config.stroke.lineCap),(i.indexOf(\"undefined\")>-1||i.indexOf(\"NaN\")>-1)&&(i=\"M 0 \".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:n,\"fill-opacity\":h,stroke:s,\"stroke-opacity\":d,\"stroke-linecap\":p,\"stroke-width\":o,\"stroke-dasharray\":x,class:g})}},{key:\"group\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w.globals.dom.Paper.group();return null!==t&&e.attr(t),e}},{key:\"move\",value:function(t,e){var i=[\"M\",t,e].join(\" \");return i}},{key:\"line\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=[\" L\",t,e].join(\" \"):\"H\"===i?a=[\" H\",t].join(\" \"):\"V\"===i&&(a=[\" V\",e].join(\" \")),a}},{key:\"curve\",value:function(t,e,i,a,s,r){var o=[\"C\",t,e,i,a,s,r].join(\" \");return o}},{key:\"quadraticCurve\",value:function(t,e,i,a){return[\"Q\",t,e,i,a].join(\" \")}},{key:\"arc\",value:function(t,e,i,a,s,r,o){var n=\"A\";arguments.length>7&&void 0!==arguments[7]&&arguments[7]&&(n=\"a\");var l=[n,t,e,i,a,s,r,o].join(\" \");return l}},{key:\"renderPaths\",value:function(t){var i,a=t.j,s=t.realIndex,r=t.pathFrom,o=t.pathTo,n=t.stroke,l=t.strokeWidth,h=t.strokeLinecap,c=t.fill,d=t.animationDelay,g=t.initialSpeed,u=t.dataChangeSpeed,p=t.className,f=t.shouldClipToGrid,x=void 0===f||f,m=t.bindEventsOnPaths,y=void 0===m||m,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new v(this.ctx),C=new b(this.ctx),L=this.w.config.chart.animations.enabled,P=L&&this.w.config.chart.animations.dynamicAnimation.enabled,I=!!(L&&!A.globals.resized||P&&A.globals.dataChanged&&A.globals.shouldAnimate);I?i=r:(i=o,A.globals.animationEnded=!0);var T=A.config.stroke.dashArray,M=0;M=Array.isArray(T)?T[s]:A.config.stroke.dashArray;var X=this.drawPath({d:i,stroke:n,strokeWidth:l,fill:c,fillOpacity:1,classes:p,strokeLinecap:h,strokeDashArray:M});if(X.attr(\"index\",s),x&&X.attr({\"clip-path\":\"url(#gridRectMask\".concat(A.globals.cuid,\")\")}),\"none\"!==A.config.states.normal.filter.type)S.getDefaultFilter(X,s);else if(A.config.chart.dropShadow.enabled&&k&&(!A.config.chart.dropShadow.enabledOnSeries||A.config.chart.dropShadow.enabledOnSeries&&-1!==A.config.chart.dropShadow.enabledOnSeries.indexOf(s))){var z=A.config.chart.dropShadow;S.dropShadow(X,z,s)}y&&(X.node.addEventListener(\"mouseenter\",this.pathMouseEnter.bind(this,X)),X.node.addEventListener(\"mouseleave\",this.pathMouseLeave.bind(this,X)),X.node.addEventListener(\"mousedown\",this.pathMouseDown.bind(this,X))),X.attr({pathTo:o,pathFrom:r});var E={el:X,j:a,realIndex:s,pathFrom:r,pathTo:o,fill:c,strokeWidth:l,delay:d};return!L||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(e(e({},E),{},{speed:g})),A.globals.dataChanged&&P&&I&&C.animatePathsGradually(e(e({},E),{},{speed:u})),X}},{key:\"drawPattern\",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:\"#a8a8a8\",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;return this.w.globals.dom.Paper.pattern(e,i,(function(r){\"horizontalLines\"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):\"verticalLines\"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):\"slantedLines\"===t?r.line(0,0,e,i).stroke({color:a,width:s}):\"squares\"===t?r.rect(e,i).fill(\"none\").stroke({color:a,width:s}):\"circles\"===t&&r.circle(e).fill(\"none\").stroke({color:a,width:s})}))}},{key:\"drawGradient\",value:function(t,e,i,a,s){var r,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e.length<9&&0===e.indexOf(\"#\")&&(e=x.hexToRgba(e,a)),i.length<9&&0===i.indexOf(\"#\")&&(i=x.hexToRgba(i,s));var d=0,g=1,u=1,p=null;null!==n&&(d=void 0!==n[0]?n[0]/100:0,g=void 0!==n[1]?n[1]/100:1,u=void 0!==n[2]?n[2]/100:1,p=void 0!==n[3]?n[3]/100:null);var f=!(\"donut\"!==c.config.chart.type&&\"pie\"!==c.config.chart.type&&\"polarArea\"!==c.config.chart.type&&\"bubble\"!==c.config.chart.type);if(r=null===l||0===l.length?c.globals.dom.Paper.gradient(f?\"radial\":\"linear\",(function(t){t.at(d,e,a),t.at(g,i,s),t.at(u,i,s),null!==p&&t.at(p,e,a)})):c.globals.dom.Paper.gradient(f?\"radial\":\"linear\",(function(t){(Array.isArray(l[h])?l[h]:l).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),f){var b=c.globals.gridWidth/2,v=c.globals.gridHeight/2;\"bubble\"!==c.config.chart.type?r.attr({gradientUnits:\"userSpaceOnUse\",cx:b,cy:v,r:o}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else\"vertical\"===t?r.from(0,0).to(0,1):\"diagonal\"===t?r.from(0,0).to(1,1):\"horizontal\"===t?r.from(0,1).to(1,1):\"diagonal2\"===t&&r.from(1,0).to(0,1);return r}},{key:\"getTextBasedOnMaxWidth\",value:function(t){var e=t.text,i=t.maxWidth,a=t.fontSize,s=t.fontFamily,r=this.getTextRects(e,a,s),o=r.width/e.length,n=Math.floor(i/o);return i-1){var n=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(n,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(\".apexcharts-series path\").members,h=i.globals.dom.Paper.select(\".apexcharts-series circle, .apexcharts-series rect\").members,c=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute(\"selected\",\"false\"),a.getDefaultFilter(t,s)}))};c(l),c(h)}t.node.setAttribute(\"selected\",\"true\"),o=\"true\",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if(\"true\"===o){var d=i.config.states.active.filter;if(\"none\"!==d)a.applyFilter(t,s,d.type,d.value);else if(\"none\"!==i.config.states.hover.filter&&!i.globals.isTouchDevice){var g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}}else if(\"none\"!==i.config.states.active.filter.type)if(\"none\"===i.config.states.hover.filter.type||i.globals.isTouchDevice)a.getDefaultFilter(t,s);else{g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}\"function\"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent(\"dataPointSelection\",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:\"rotateAroundCenter\",value:function(t){var e={};return t&&\"function\"==typeof t.getBBox&&(e=t.getBBox()),{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:\"getTextRects\",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,o=this.drawText({x:-200,y:-200,text:t,textAnchor:\"start\",fontSize:e,fontFamily:i,foreColor:\"#fff\",opacity:0});a&&o.attr(\"transform\",a),r.globals.dom.Paper.add(o);var n=o.bbox();return s||(n=o.node.getBoundingClientRect()),o.remove(),{width:n.width,height:n.height}}},{key:\"placeTextWithEllipsis\",value:function(t,e,i){if(\"function\"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+\"...\");t.textContent=\".\"}}}],[{key:\"setAttrs\",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}(),y=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"getStackedSeriesTotals\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.w,i=[];if(0===e.globals.series.length)return i;for(var a=0;a0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:\"isSeriesNull\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:\"seriesHaveSameValues\",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:\"getCategoryLabels\",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:\"getLargestSeries\",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:\"getLargestMarkerSize\",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.config.markers.discrete&&t.config.markers.discrete.length&&t.config.markers.discrete.forEach((function(t){e=Math.max(e,t.size)})),e>0&&(e+=t.config.markers.hover.sizeOffset+1),t.globals.markers.largestSize=e,e}},{key:\"getSeriesTotals\",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;at&&i.globals.seriesX[s][o]0&&(e=!0),{comboBarCount:i,comboCharts:e}}},{key:\"extendArrayProps\",value:function(t,e,i){return e.yaxis&&(e=t.extendYAxis(e,i)),e.annotations&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),e.annotations.xaxis&&(e=t.extendXAxisAnnotations(e)),e.annotations.points&&(e=t.extendPointAnnotations(e))),e}}]),t}(),w=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e}return r(t,[{key:\"setOrientations\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if(\"vertical\"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='\".concat(a,\"']\"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute(\"x\",parseFloat(s.getAttribute(\"x\"))-r.height+4),\"top\"===t.label.position?s.setAttribute(\"y\",parseFloat(s.getAttribute(\"y\"))+r.width):s.setAttribute(\"y\",parseFloat(s.getAttribute(\"y\"))-r.width);var o=this.annoCtx.graphics.rotateAroundCenter(s),n=o.x,l=o.y;s.setAttribute(\"transform\",\"rotate(-90 \".concat(n,\" \").concat(l,\")\"))}}}},{key:\"addBackgroundToAnno\",value:function(t,e){var i=this.w;if(!t||void 0===e.label.text||void 0!==e.label.text&&!String(e.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(\".apexcharts-grid\").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding.left,o=e.label.style.padding.right,n=e.label.style.padding.top,l=e.label.style.padding.bottom;\"vertical\"===e.label.orientation&&(n=e.label.style.padding.left,l=e.label.style.padding.right,r=e.label.style.padding.top,o=e.label.style.padding.bottom);var h=s.left-a.left-r,c=s.top-a.top-n,d=this.annoCtx.graphics.drawRect(h-i.globals.barPadForNumericAxis,c,s.width+r+o,s.height+n+l,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:\"annotationsBackground\",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations .apexcharts-\").concat(s,\"-annotation-label[rel='\").concat(a,\"']\"));if(r){var o=r.parentNode,n=t.addBackgroundToAnno(r,i);n&&(o.insertBefore(n.node,r),i.label.mouseEnter&&n.node.addEventListener(\"mouseenter\",i.label.mouseEnter.bind(t,i)),i.label.mouseLeave&&n.node.addEventListener(\"mouseleave\",i.label.mouseLeave.bind(t,i)),i.label.click&&n.node.addEventListener(\"click\",i.label.click.bind(t,i)))}};e.config.annotations.xaxis.map((function(t,e){i(t,e,\"xaxis\")})),e.config.annotations.yaxis.map((function(t,e){i(t,e,\"yaxis\")})),e.config.annotations.points.map((function(t,e){i(t,e,\"point\")}))}},{key:\"getY1Y2\",value:function(t,e){var i,a=\"y1\"===t?e.y:e.y2,s=this.w;if(this.annoCtx.invertAxis){var r=s.globals.labels.indexOf(a);s.config.xaxis.convertedCatToNumeric&&(r=s.globals.categoryLabels.indexOf(a));var o=s.globals.dom.baseEl.querySelector(\".apexcharts-yaxis-texts-g text:nth-child(\"+(r+1)+\")\");o&&(i=parseFloat(o.getAttribute(\"y\")))}else{var n;if(s.config.yaxis[e.yAxisIndex].logarithmic)n=(a=new y(this.annoCtx.ctx).getLogVal(a,e.yAxisIndex))/s.globals.yLogRatio[e.yAxisIndex];else n=(a-s.globals.minYArr[e.yAxisIndex])/(s.globals.yRange[e.yAxisIndex]/s.globals.gridHeight);i=s.globals.gridHeight-n,!e.marker||void 0!==e.y&&null!==e.y||(i=0),s.config.yaxis[e.yAxisIndex]&&s.config.yaxis[e.yAxisIndex].reversed&&(i=n)}return\"string\"==typeof a&&a.indexOf(\"px\")>-1&&(i=parseFloat(a)),i}},{key:\"getX1X2\",value:function(t,e){var i=this.w,a=this.annoCtx.invertAxis?i.globals.minY:i.globals.minX,s=this.annoCtx.invertAxis?i.globals.maxY:i.globals.maxX,r=this.annoCtx.invertAxis?i.globals.yRange[0]:i.globals.xRange,o=(e.x-a)/(r/i.globals.gridWidth);this.annoCtx.inversedReversedAxis&&(o=(s-e.x)/(r/i.globals.gridWidth)),\"category\"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(o=this.getStringX(e.x));var n=(e.x2-a)/(r/i.globals.gridWidth);return this.annoCtx.inversedReversedAxis&&(n=(s-e.x2)/(r/i.globals.gridWidth)),\"category\"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(n=this.getStringX(e.x2)),void 0!==e.x&&null!==e.x||!e.marker||(o=i.globals.gridWidth),\"x1\"===t&&\"string\"==typeof e.x&&e.x.indexOf(\"px\")>-1&&(o=parseFloat(e.x)),\"x2\"===t&&\"string\"==typeof e.x2&&e.x2.indexOf(\"px\")>-1&&(n=parseFloat(e.x2)),\"x1\"===t?o:n}},{key:\"getStringX\",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(\".apexcharts-xaxis-texts-g text:nth-child(\"+(a+1)+\")\");return s&&(i=parseFloat(s.getAttribute(\"x\"))),i}}]),t}(),k=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new w(this.annoCtx)}return r(t,[{key:\"addXaxisAnnotation\",value:function(t,e,i){var a,s=this.w,r=this.helpers.getX1X2(\"x1\",t),o=t.label.text,n=t.strokeDashArray;if(x.isNumber(r)){if(null===t.x2||void 0===t.x2){var l=this.annoCtx.graphics.drawLine(r+t.offsetX,0+t.offsetY,r+t.offsetX,s.globals.gridHeight+t.offsetY,t.borderColor,n,t.borderWidth);e.appendChild(l.node),t.id&&l.node.classList.add(t.id)}else{if((a=this.helpers.getX1X2(\"x2\",t))o){var h=o;o=a,a=h}var c=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),o-a,0,t.fillColor,t.opacity,1,t.borderColor,r);c.node.classList.add(\"apexcharts-annotation-rect\"),c.attr(\"clip-path\",\"url(#gridRectMask\".concat(s.globals.cuid,\")\")),e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}var d=\"right\"===t.label.position?s.globals.gridWidth:\"center\"===t.label.position?s.globals.gridWidth/2:0,g=this.annoCtx.graphics.drawText({x:d+t.label.offsetX,y:(null!=a?a:o)+t.label.offsetY-3,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:\"apexcharts-yaxis-annotation-label \".concat(t.label.style.cssClass,\" \").concat(t.id?t.id:\"\")});g.attr({rel:i}),e.appendChild(g.node)}},{key:\"_getYAxisAnnotationWidth\",value:function(t){var e=this.w;e.globals.gridWidth;return(t.width.indexOf(\"%\")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:\"drawYAxisAnnotations\",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:\"apexcharts-yaxis-annotations\"});return e.config.annotations.yaxis.map((function(e,a){t.addYaxisAnnotation(e,i.node,a)})),i}}]),t}(),S=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new w(this.annoCtx)}return r(t,[{key:\"addPointAnnotation\",value:function(t,e,i){this.w;var a=this.helpers.getX1X2(\"x1\",t),s=this.helpers.getY1Y2(\"y1\",t);if(x.isNumber(a)){var r={pSize:t.marker.size,pointStrokeWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,pRadius:t.marker.radius,class:\"apexcharts-point-annotation-marker \".concat(t.marker.cssClass,\" \").concat(t.id?t.id:\"\")},o=this.annoCtx.graphics.drawMarker(a+t.marker.offsetX,s+t.marker.offsetY,r);e.appendChild(o.node);var n=t.label.text?t.label.text:\"\",l=this.annoCtx.graphics.drawText({x:a+t.label.offsetX,y:s+t.label.offsetY-t.marker.size-parseFloat(t.label.style.fontSize)/1.6,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:\"apexcharts-point-annotation-label \".concat(t.label.style.cssClass,\" \").concat(t.id?t.id:\"\")});if(l.attr({rel:i}),e.appendChild(l.node),t.customSVG.SVG){var h=this.annoCtx.graphics.group({class:\"apexcharts-point-annotations-custom-svg \"+t.customSVG.cssClass});h.attr({transform:\"translate(\".concat(a+t.customSVG.offsetX,\", \").concat(s+t.customSVG.offsetY,\")\")}),h.node.innerHTML=t.customSVG.SVG,e.appendChild(h.node)}if(t.image.path){var c=t.image.width?t.image.width:20,d=t.image.height?t.image.height:20;o=this.annoCtx.addImage({x:a+t.image.offsetX-c/2,y:s+t.image.offsetY-d/2,width:c,height:d,path:t.image.path,appendTo:\".apexcharts-point-annotations\"})}t.mouseEnter&&o.node.addEventListener(\"mouseenter\",t.mouseEnter.bind(this,t)),t.mouseLeave&&o.node.addEventListener(\"mouseleave\",t.mouseLeave.bind(this,t)),t.click&&o.node.addEventListener(\"click\",t.click.bind(this,t))}}},{key:\"drawPointAnnotations\",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:\"apexcharts-point-annotations\"});return e.config.annotations.points.map((function(e,a){t.addPointAnnotation(e,i.node,a)})),i}}]),t}();var C={name:\"en\",options:{months:[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],shortMonths:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"],days:[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],shortDays:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],toolbar:{exportToSVG:\"Download SVG\",exportToPNG:\"Download PNG\",exportToCSV:\"Download CSV\",menu:\"Menu\",selection:\"Selection\",selectionZoom:\"Selection Zoom\",zoomIn:\"Zoom In\",zoomOut:\"Zoom Out\",pan:\"Panning\",reset:\"Reset Zoom\"}}},L=function(){function t(){a(this,t),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:\"11px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"},formatter:void 0},axisBorder:{show:!1,color:\"#e0e0e0\",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:\"#e0e0e0\",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:\"11px\",fontWeight:900,fontFamily:void 0,cssClass:\"\"}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:\"front\",stroke:{color:\"#b6b6b6\",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,marker:{size:4,fillColor:\"#fff\",strokeWidth:2,strokeColor:\"#333\",shape:\"circle\",offsetX:0,offsetY:0,radius:2,cssClass:\"\"},label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"middle\",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:\"#c2c2c2\",borderColor:\"#c2c2c2\",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:\"100%\",yAxisIndex:0,label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"end\",position:\"right\",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:\"#c2c2c2\",borderColor:\"#c2c2c2\",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:\"#c2c2c2\",borderWidth:1,borderRadius:2,text:void 0,textAnchor:\"middle\",orientation:\"vertical\",position:\"top\",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:\"#fff\",color:void 0,fontSize:\"11px\",fontFamily:void 0,fontWeight:400,cssClass:\"\",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:\"\",textAnchor:\"start\",foreColor:void 0,fontSize:\"13px\",fontFamily:void 0,fontWeight:400,appendTo:\".apexcharts-annotations\",backgroundColor:\"transparent\",borderColor:\"#c2c2c2\",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return r(t,[{key:\"init\",value:function(){return{annotations:{yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:\"easeinout\",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:\"transparent\",locales:[C],defaultLocale:\"en\",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:\"#000\",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,xAxisLabelClick:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:\"#373d3f\",fontFamily:\"Helvetica, Arial, sans-serif\",height:\"auto\",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:\"x\",fill:{color:\"#24292e\",opacity:.1},stroke:{width:1,color:\"#24292e\",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0},stacked:!1,stackType:\"normal\",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:\",\",headerCategory:\"category\",headerValue:\"value\",dateFormatter:function(t){return new Date(t).toDateString()}},png:{filename:void 0},svg:{filename:void 0}},autoSelected:\"zoom\"},type:\"line\",width:\"100%\",zoom:{enabled:!0,type:\"x\",autoScaleYaxis:!1,zoomedArea:{fill:{color:\"#90CAF9\",opacity:.4},stroke:{color:\"#0D47A1\",opacity:.4,width:1}}}},plotOptions:{area:{fillTo:\"origin\"},bar:{horizontal:!1,columnWidth:\"70%\",barHeight:\"70%\",distributed:!1,borderRadius:0,borderRadiusApplication:\"around\",borderRadiusWhenStacked:\"last\",rangeBarOverlap:!0,rangeBarGroupRows:!1,hideZeroBarsWhenGrouped:!1,isDumbbell:!1,dumbbellColors:void 0,isFunnel:!1,isFunnel3d:!0,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:\"top\",maxItems:100,hideOverflowingLabels:!0,orientation:\"horizontal\",total:{enabled:!1,formatter:void 0,offsetX:0,offsetY:0,style:{color:\"#373d3f\",fontSize:\"12px\",fontFamily:void 0,fontWeight:600}}}},bubble:{zScaling:!0,minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:\"#00B746\",downward:\"#EF403C\"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:\"#00E396\",lower:\"#008FFB\"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:\"50%\",background:\"transparent\",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:\"front\",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:\"#000\",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:\"#f2f2f2\",strokeWidth:\"97%\",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:\"#000\",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:\"16px\",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(t){return t}},value:{show:!0,fontSize:\"14px\",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(t){return t+\"%\"}},total:{show:!1,label:\"Total\",fontSize:\"16px\",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)/t.globals.series.length+\"%\"}}}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:\"65%\",background:\"transparent\",labels:{show:!1,name:{show:!0,fontSize:\"16px\",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(t){return t}},value:{show:!0,fontSize:\"20px\",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:\"Total\",fontSize:\"16px\",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:\"#e8e8e8\"},spokes:{strokeWidth:1,connectorColors:\"#e8e8e8\"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:\"#e8e8e8\",connectorColors:\"#e8e8e8\",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:\"\"},textAnchor:\"middle\",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:\"12px\",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:\"#fff\",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:\"#fff\",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:\"#000\",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:\"#000\",opacity:.45}},fill:{type:\"solid\",colors:void 0,opacity:.85,gradient:{shade:\"dark\",type:\"horizontal\",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:\"squares\",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:\"#e0e0e0\",strokeDashArray:0,position:\"back\",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:\"bottom\",horizontalAlign:\"center\",inverseOrder:!1,fontSize:\"12px\",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{width:12,height:12,strokeWidth:0,fillColors:void 0,strokeColor:\"#fff\",radius:12,customHTML:void 0,offsetX:0,offsetY:0,onClick:void 0},itemMargin:{horizontal:5,vertical:2},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:\"#fff\",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:\"circle\",width:8,height:8,radius:2,offsetX:0,offsetY:0,onClick:void 0,onDblClick:void 0,showNullDataPoints:!0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:\"center\",verticalAlign:\"middle\",offsetX:0,offsetY:0,style:{color:void 0,fontSize:\"14px\",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:\"none\",value:0}},hover:{filter:{type:\"lighten\",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:\"darken\",value:.5}}},title:{text:void 0,align:\"left\",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:\"14px\",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:\"left\",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:\"12px\",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:\"smooth\",lineCap:\"butt\",width:2,colors:void 0,dashArray:0,fill:{type:\"solid\",colors:void 0,opacity:.85,gradient:{shade:\"dark\",type:\"horizontal\",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]}}},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:\"light\",cssClass:\"\",style:{fontSize:\"12px\",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:\"dd MMM\",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t?t+\": \":\"\"}}},z:{formatter:void 0,title:\"Size: \"},marker:{show:!0,fillColors:void 0},items:{display:\"flex\"},fixed:{enabled:!1,position:\"topRight\",offsetX:0,offsetY:0}},xaxis:{type:\"category\",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:\"12px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:\"yyyy\",month:\"MMM 'yy\",day:\"dd MMM\",hour:\"HH:mm\",minute:\"HH:mm:ss\",second:\"HH:mm:ss\"}},group:{groups:[],style:{colors:[],fontSize:\"12px\",fontWeight:400,fontFamily:void 0,cssClass:\"\"}},axisBorder:{show:!0,color:\"#e0e0e0\",width:\"100%\",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:\"#e0e0e0\",height:6,offsetX:0,offsetY:0},tickAmount:void 0,tickPlacement:\"on\",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:\"bottom\",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:\"12px\",fontWeight:900,fontFamily:void 0,cssClass:\"\"}},crosshairs:{show:!0,width:1,position:\"back\",opacity:.9,stroke:{color:\"#b6b6b6\",width:1,dashArray:3},fill:{type:\"solid\",color:\"#B1B9C4\",gradient:{colorFrom:\"#D8E3F0\",colorTo:\"#BED1E6\",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:\"12px\",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:\"light\",palette:\"palette1\",monochrome:{enabled:!1,color:\"#008FFB\",shadeTo:\"light\",shadeIntensity:.65}}}}}]),t}(),P=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.graphics=new m(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new w(this),this.xAxisAnnotations=new k(this),this.yAxisAnnotations=new A(this),this.pointsAnnotations=new S(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return r(t,[{key:\"drawAxesAnnotations\",value:function(){var t=this.w;if(t.globals.axisCharts){for(var e=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=t.config.chart.animations.enabled,r=[e,i,a],o=[i.node,e.node,a.node],n=0;n<3;n++)t.globals.dom.elGraphical.add(r[n]),!s||t.globals.resized||t.globals.dataChanged||\"scatter\"!==t.config.chart.type&&\"bubble\"!==t.config.chart.type&&t.globals.dataPoints>1&&o[n].classList.add(\"apexcharts-element-hidden\"),t.globals.delayedElements.push({el:o[n],index:0});this.helpers.annotationsBackground()}}},{key:\"drawImageAnnos\",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:\"drawTextAnnos\",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:\"addXaxisAnnotation\",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:\"addYaxisAnnotation\",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:\"addPointAnnotation\",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:\"addText\",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.foreColor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.cssClass,d=t.backgroundColor,g=t.borderWidth,u=t.strokeDashArray,p=t.borderRadius,f=t.borderColor,x=t.appendTo,b=void 0===x?\".apexcharts-annotations\":x,v=t.paddingLeft,m=void 0===v?4:v,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=this.w,P=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||\"start\",fontSize:n||\"12px\",fontWeight:h||\"regular\",fontFamily:l||L.config.chart.fontFamily,foreColor:o||L.config.chart.foreColor,cssClass:c}),I=L.globals.dom.baseEl.querySelector(b);I&&I.appendChild(P.node);var T=P.bbox();if(s){var M=this.graphics.drawRect(T.x-m,T.y-C,T.width+m+w,T.height+A+C,p,d||\"transparent\",1,g,f,u);I.insertBefore(M.node,P.node)}}},{key:\"addImage\",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,o=t.y,n=void 0===o?0:o,l=t.width,h=void 0===l?20:l,c=t.height,d=void 0===c?20:c,g=t.appendTo,u=void 0===g?\".apexcharts-annotations\":g,p=i.globals.dom.Paper.image(a);p.size(h,d).move(r,n);var f=i.globals.dom.baseEl.querySelector(u);return f&&f.appendChild(p.node),p}},{key:\"addXaxisAnnotationExternal\",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"xaxis\",contextMethod:i.addXaxisAnnotation}),i}},{key:\"addYaxisAnnotationExternal\",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"yaxis\",contextMethod:i.addYaxisAnnotation}),i}},{key:\"addPointAnnotationExternal\",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:\"point\",contextMethod:i.addPointAnnotation}),i}},{key:\"addAnnotationExternal\",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,r=t.contextMethod,o=a,n=o.w,l=n.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations\")),h=l.childNodes.length+1,c=new L,d=Object.assign({},\"xaxis\"===s?c.xAxisAnnotation:\"yaxis\"===s?c.yAxisAnnotation:c.pointAnnotation),g=x.extend(d,e);switch(s){case\"xaxis\":this.addXaxisAnnotation(g,l,h);break;case\"yaxis\":this.addYaxisAnnotation(g,l,h);break;case\"point\":this.addPointAnnotation(g,l,h)}var u=n.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(s,\"-annotations .apexcharts-\").concat(s,\"-annotation-label[rel='\").concat(h,\"']\")),p=this.helpers.addBackgroundToAnno(u,g);return p&&l.insertBefore(p.node,u),i&&n.globals.memory.methodsToExec.push({context:o,id:g.id?g.id:x.randomId(),method:r,label:\"addAnnotation\",params:e}),a}},{key:\"clearAnnotations\",value:function(t){var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations\");e.globals.memory.methodsToExec.map((function(t,i){\"addText\"!==t.label&&\"addAnnotation\"!==t.label||e.globals.memory.methodsToExec.splice(i,1)})),i=x.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:\"removeAnnotation\",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(\".\".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}]),t}(),I=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}return r(t,[{key:\"isValidDate\",value:function(t){return!isNaN(this.parseDate(t))}},{key:\"getTimeStamp\",value:function(t){return Date.parse(t)?this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toISOString().substr(0,25)).getTime():new Date(t).getTime():t}},{key:\"getDate\",value:function(t){return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toUTCString()):new Date(t)}},{key:\"parseDate\",value:function(t){var e=Date.parse(t);if(!isNaN(e))return this.getTimeStamp(t);var i=Date.parse(t.replace(/-/g,\"/\").replace(/[a-z]+/gi,\" \"));return i=this.getTimeStamp(i)}},{key:\"parseDateWithTimezone\",value:function(t){return Date.parse(t.replace(/-/g,\"/\").replace(/[a-z]+/gi,\" \"))}},{key:\"formatDate\",value:function(t,e){var i=this.w.globals.locale,a=this.w.config.xaxis.labels.datetimeUTC,s=[\"\\0\"].concat(u(i.months)),r=[\"\\x01\"].concat(u(i.shortMonths)),o=[\"\\x02\"].concat(u(i.days)),n=[\"\\x03\"].concat(u(i.shortDays));function l(t,e){var i=t+\"\";for(e=e||2;i.length12?g-12:0===g?12:g;e=(e=(e=(e=e.replace(/(^|[^\\\\])HH+/g,\"$1\"+l(g))).replace(/(^|[^\\\\])H/g,\"$1\"+g)).replace(/(^|[^\\\\])hh+/g,\"$1\"+l(p))).replace(/(^|[^\\\\])h/g,\"$1\"+p);var f=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\\\])mm+/g,\"$1\"+l(f))).replace(/(^|[^\\\\])m/g,\"$1\"+f);var x=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\\\])ss+/g,\"$1\"+l(x))).replace(/(^|[^\\\\])s/g,\"$1\"+x);var b=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\\\])fff+/g,\"$1\"+l(b,3)),b=Math.round(b/10),e=e.replace(/(^|[^\\\\])ff/g,\"$1\"+l(b)),b=Math.round(b/10);var v=g<12?\"AM\":\"PM\";e=(e=(e=e.replace(/(^|[^\\\\])f/g,\"$1\"+b)).replace(/(^|[^\\\\])TT+/g,\"$1\"+v)).replace(/(^|[^\\\\])T/g,\"$1\"+v.charAt(0));var m=v.toLowerCase();e=(e=e.replace(/(^|[^\\\\])tt+/g,\"$1\"+m)).replace(/(^|[^\\\\])t/g,\"$1\"+m.charAt(0));var y=-t.getTimezoneOffset(),w=a||!y?\"Z\":y>0?\"+\":\"-\";if(!a){var k=(y=Math.abs(y))%60;w+=l(Math.floor(y/60))+\":\"+l(k)}e=e.replace(/(^|[^\\\\])K/g,\"$1\"+w);var A=(a?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(o[0],\"g\"),o[A])).replace(new RegExp(n[0],\"g\"),n[A])).replace(new RegExp(s[0],\"g\"),s[c])).replace(new RegExp(r[0],\"g\"),r[c])).replace(/\\\\(.)/g,\"$1\")}},{key:\"getTimeUnitsfromTimestamp\",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),o=this.formatDate(s,\"yyyy MM dd HH mm ss fff\").split(\" \"),n=this.formatDate(r,\"yyyy MM dd HH mm ss fff\").split(\" \");return{minMillisecond:parseInt(o[6],10),maxMillisecond:parseInt(n[6],10),minSecond:parseInt(o[5],10),maxSecond:parseInt(n[5],10),minMinute:parseInt(o[4],10),maxMinute:parseInt(n[4],10),minHour:parseInt(o[3],10),maxHour:parseInt(n[3],10),minDate:parseInt(o[2],10),maxDate:parseInt(n[2],10),minMonth:parseInt(o[1],10)-1,maxMonth:parseInt(n[1],10)-1,minYear:parseInt(o[0],10),maxYear:parseInt(n[0],10)}}},{key:\"isLeapYear\",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:\"calculcateLastDaysOfMonth\",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:\"determineDaysOfYear\",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:\"determineRemainingDaysOfYear\",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:\"determineDaysOfMonths\",value:function(t,e){var i=30;switch(t=x.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),T=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.tooltipKeyFormat=\"dd MMM\"}return r(t,[{key:\"xLabelFormat\",value:function(t,e,i,a){var s=this.w;if(\"datetime\"===s.config.xaxis.type&&void 0===s.config.xaxis.labels.formatter&&void 0===s.config.tooltip.x.formatter){var r=new I(this.ctx);return r.formatDate(r.getDate(e),s.config.tooltip.x.format)}return t(e,i,a)}},{key:\"defaultGeneralFormatter\",value:function(t){return Array.isArray(t)?t.map((function(t){return t})):t}},{key:\"defaultYFormatter\",value:function(t,e,i){var a=this.w;return x.isNumber(t)&&(t=0!==a.globals.yValueDecimal?t.toFixed(void 0!==e.decimalsInFloat?e.decimalsInFloat:a.globals.yValueDecimal):a.globals.maxYArr[i]-a.globals.minYArr[i]<5?t.toFixed(1):t.toFixed(0)),t}},{key:\"setLabelFormatters\",value:function(){var t=this,e=this.w;return e.globals.xaxisTooltipFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttKeyFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttZFormatter=function(t){return t},e.globals.legendFormatter=function(e){return t.defaultGeneralFormatter(e)},void 0!==e.config.xaxis.labels.formatter?e.globals.xLabelFormatter=e.config.xaxis.labels.formatter:e.globals.xLabelFormatter=function(t){if(x.isNumber(t)){if(!e.config.xaxis.convertedCatToNumeric&&\"numeric\"===e.config.xaxis.type){if(x.isNumber(e.config.xaxis.decimalsInFloat))return t.toFixed(e.config.xaxis.decimalsInFloat);var i=e.globals.maxX-e.globals.minX;return i>0&&i<100?t.toFixed(1):t.toFixed(0)}if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},\"function\"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,\"function\"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:\"heatmapLabelFormatters\",value:function(){var t=this.w;if(\"heatmap\"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),M=function(t){var e,i=t.isTimeline,a=t.ctx,s=t.seriesIndex,r=t.dataPointIndex,o=t.y1,n=t.y2,l=t.w,h=l.globals.seriesRangeStart[s][r],c=l.globals.seriesRangeEnd[s][r],d=l.globals.labels[r],g=l.config.series[s].name?l.config.series[s].name:\"\",u=l.globals.ttKeyFormatter,p=l.config.tooltip.y.title.formatter,f={w:l,seriesIndex:s,dataPointIndex:r,start:h,end:c};(\"function\"==typeof p&&(g=p(g,f)),null!==(e=l.config.series[s].data[r])&&void 0!==e&&e.x&&(d=l.config.series[s].data[r].x),i)||\"datetime\"===l.config.xaxis.type&&(d=new T(a).xLabelFormat(l.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new I(a).formatDate,w:l}));\"function\"==typeof u&&(d=u(d,f)),Number.isFinite(o)&&Number.isFinite(n)&&(h=o,c=n);var x=\"\",b=\"\",v=l.globals.colors[s];if(void 0===l.config.tooltip.x.formatter)if(\"datetime\"===l.config.xaxis.type){var m=new I(a);x=m.formatDate(m.getDate(h),l.config.tooltip.x.format),b=m.formatDate(m.getDate(c),l.config.tooltip.x.format)}else x=h,b=c;else x=l.config.tooltip.x.formatter(h),b=l.config.tooltip.x.formatter(c);return{start:h,end:c,startVal:x,endVal:b,ylabel:d,color:v,seriesName:g}},X=function(t){var e=t.color,i=t.seriesName,a=t.ylabel,s=t.start,r=t.end,o=t.seriesIndex,n=t.dataPointIndex,l=t.ctx.tooltip.tooltipLabels.getFormatters(o);s=l.yLbFormatter(s),r=l.yLbFormatter(r);var h=l.yLbFormatter(t.w.globals.series[o][n]),c='\\n '.concat(s,'\\n - \\n ').concat(r,\"\\n \");return'
    '+(i||\"\")+'
    '+a+\": \"+(t.w.globals.comboCharts?\"rangeArea\"===t.w.config.series[o].type||\"rangeBar\"===t.w.config.series[o].type?c:\"\".concat(h,\"\"):c)+\"
    \"},z=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:\"hideYAxis\",value:function(){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text=\"\",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0}},{key:\"line\",value:function(){return{chart:{animations:{easing:\"swing\"}},dataLabels:{enabled:!1},stroke:{width:5,curve:\"straight\"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:\"sparkline\",value:function(t){this.hideYAxis();return x.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:\"bar\",value:function(){return{chart:{stacked:!1,animations:{easing:\"swing\"}},plotOptions:{bar:{dataLabels:{position:\"center\"}}},dataLabels:{style:{colors:[\"#fff\"]},background:{enabled:!1}},stroke:{width:0,lineCap:\"round\"},fill:{opacity:.85},legend:{markers:{shape:\"square\",radius:2,size:8}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:\"between\",crosshairs:{width:\"barWidth\",position:\"back\",fill:{type:\"gradient\"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:\"funnel\",value:function(){return this.hideYAxis(),e(e({},this.bar()),{},{chart:{animations:{easing:\"linear\",speed:800,animateGradually:{enabled:!1}}},plotOptions:{bar:{horizontal:!0,borderRadiusApplication:\"around\",borderRadius:0,dataLabels:{position:\"center\"}}},grid:{show:!1,padding:{left:0,right:0}},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}}})}},{key:\"candlestick\",value:function(){var t=this;return{stroke:{width:1,colors:[\"#333\"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,[\"Open\",\"High\",\"\",\"Low\",\"Close\"],\"candlestick\")}},states:{active:{filter:{type:\"none\"}}},xaxis:{crosshairs:{width:1}}}}},{key:\"boxPlot\",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:[\"#24292e\"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,[\"Minimum\",\"Q1\",\"Median\",\"Q3\",\"Maximum\"],\"boxPlot\")}},markers:{size:5,strokeWidth:1,strokeColors:\"#111\"},xaxis:{crosshairs:{width:1}}}}},{key:\"rangeBar\",value:function(){return{chart:{animations:{animateGradually:!1}},stroke:{width:0,lineCap:\"square\"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:\"center\"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=function(){var t=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-t};return s.globals.comboCharts?\"rangeBar\"===s.config.series[i].type||\"rangeArea\"===s.config.series[i].type?r():t:r()},background:{enabled:!1},style:{colors:[\"#fff\"]}},markers:{size:10},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var i=M(e(e({},t),{},{isTimeline:!0})),a=i.color,s=i.seriesName,r=i.ylabel,o=i.startVal,n=i.endVal;return X(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t):function(t){var i=M(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return X(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t)}},xaxis:{tickPlacement:\"between\",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:\"dumbbell\",value:function(t){var e,i;return null!==(e=t.plotOptions.bar)&&void 0!==e&&e.barHeight||(t.plotOptions.bar.barHeight=2),null!==(i=t.plotOptions.bar)&&void 0!==i&&i.columnWidth||(t.plotOptions.bar.columnWidth=2),t}},{key:\"area\",value:function(){return{stroke:{width:4,fill:{type:\"solid\",gradient:{inverseColors:!1,shade:\"light\",type:\"vertical\",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:\"gradient\",gradient:{inverseColors:!1,shade:\"light\",type:\"vertical\",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:\"rangeArea\",value:function(){return{stroke:{curve:\"straight\",width:0},fill:{type:\"solid\",opacity:.6},markers:{size:0},states:{hover:{filter:{type:\"none\"}},active:{filter:{type:\"none\"}}},tooltip:{intersect:!1,shared:!0,followCursor:!0,custom:function(t){return function(t){var i=M(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return X(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t)}}}}},{key:\"brush\",value:function(t){return x.extend(t,{chart:{toolbar:{autoSelected:\"selection\",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:\"stacked100\",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),\"bar\"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return\"number\"==typeof t&&t?t.toFixed(0)+\"%\":t}),t}},{key:\"stackedBars\",value:function(){var t=this.bar();return e(e({},t),{},{plotOptions:e(e({},t.plotOptions),{},{bar:e(e({},t.plotOptions.bar),{},{borderRadiusApplication:\"end\",borderRadiusWhenStacked:\"last\"})})})}},{key:\"convertCatToNumeric\",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:\"convertCatToNumericXaxis\",value:function(t,e,i){t.xaxis.type=\"numeric\",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return x.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return x.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||\"dataPoints\",t}},{key:\"bubble\",value:function(){return{dataLabels:{style:{colors:[\"#fff\"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:\"solid\",gradient:{shade:\"light\",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:\"scatter\",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:\"heatmap\",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:[\"#fff\"]}},stroke:{colors:[\"#fff\"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:\"top\",markers:{shape:\"square\",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:\"treemap\",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:[\"#fff\"]}},stroke:{show:!0,width:2,colors:[\"#fff\"]},legend:{show:!1},fill:{gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:\"pie\",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},style:{colors:[\"#fff\"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:[\"#fff\"]},fill:{opacity:1,gradient:{shade:\"light\",stops:[0,100]}},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"}}}},{key:\"donut\",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},style:{colors:[\"#fff\"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:[\"#fff\"]},fill:{opacity:1,gradient:{shade:\"light\",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"}}}},{key:\"polarArea\",value:function(){return this.opts.yaxis[0].tickAmount=this.opts.yaxis[0].tickAmount?this.opts.yaxis[0].tickAmount:6,{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+\"%\"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:\"dark\",fillSeriesColor:!0},legend:{position:\"right\"}}}},{key:\"radar\",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:\"11px\"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(t){return t},style:{colors:[\"#a8a8a8\"],fontSize:\"11px\"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:\"radialBar\",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:\"dark\",shadeIntensity:.4,inverseColors:!1,type:\"diagonal2\",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:\"right\"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:\"_getBoxTooltip\",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],o=t.globals.seriesCandleH[e][i],n=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'
    \\n '.concat(t.config.series[e].name?t.config.series[e].name:\"series-\"+(e+1),\": \").concat(t.globals.series[e][i],\"\\n
    \"):'
    ')+\"
    \".concat(a[0],': ')+r+\"
    \"+\"
    \".concat(a[1],': ')+o+\"
    \"+(n?\"
    \".concat(a[2],': ')+n+\"
    \":\"\")+\"
    \".concat(a[3],': ')+l+\"
    \"+\"
    \".concat(a[4],': ')+h+\"
    \"}}]),t}(),E=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:\"init\",value:function(t){var e=t.responsiveOverride,a=this.opts,s=new L,r=new z(a);this.chartType=a.chart.type,a=this.extendYAxis(a),a=this.extendAnnotations(a);var o=s.init(),n={};if(a&&\"object\"===i(a)){var l,h,c,d,g,u,p,f,b={};b=-1!==[\"line\",\"area\",\"bar\",\"candlestick\",\"boxPlot\",\"rangeBar\",\"rangeArea\",\"bubble\",\"scatter\",\"heatmap\",\"treemap\",\"pie\",\"polarArea\",\"donut\",\"radar\",\"radialBar\"].indexOf(a.chart.type)?r[a.chart.type]():r.line(),null!==(l=a.plotOptions)&&void 0!==l&&null!==(h=l.bar)&&void 0!==h&&h.isFunnel&&(b=r.funnel()),a.chart.stacked&&\"bar\"===a.chart.type&&(b=r.stackedBars()),null!==(c=a.chart.brush)&&void 0!==c&&c.enabled&&(b=r.brush(b)),a.chart.stacked&&\"100%\"===a.chart.stackType&&(a=r.stacked100(a)),null!==(d=a.plotOptions)&&void 0!==d&&null!==(g=d.bar)&&void 0!==g&&g.isDumbbell&&(a=r.dumbbell(a)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(a),a.xaxis=a.xaxis||window.Apex.xaxis||{},e||(a.xaxis.convertedCatToNumeric=!1),(null!==(u=(a=this.checkForCatToNumericXAxis(this.chartType,b,a)).chart.sparkline)&&void 0!==u&&u.enabled||null!==(p=window.Apex.chart)&&void 0!==p&&null!==(f=p.sparkline)&&void 0!==f&&f.enabled)&&(b=r.sparkline(b)),n=x.extend(o,b)}var v=x.extend(n,window.Apex);return o=x.extend(v,a),o=this.handleUserInputErrors(o)}},{key:\"checkForCatToNumericXAxis\",value:function(t,e,i){var a,s,r=new z(i),o=(\"bar\"===t||\"boxPlot\"===t)&&(null===(a=i.plotOptions)||void 0===a||null===(s=a.bar)||void 0===s?void 0:s.horizontal),n=\"pie\"===t||\"polarArea\"===t||\"donut\"===t||\"radar\"===t||\"radialBar\"===t||\"heatmap\"===t,l=\"datetime\"!==i.xaxis.type&&\"numeric\"!==i.xaxis.type,h=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return o||n||!l||\"between\"===h||(i=r.convertCatToNumeric(i)),i}},{key:\"extendYAxis\",value:function(t,e){var i=new L;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=x.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[x.extend(i.yAxis,t.yaxis)]:t.yaxis=x.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name=\"series-\".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=x.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn(\"A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both.\"),t}},{key:\"extendAnnotations\",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:\"extendYAxisAnnotations\",value:function(t){var e=new L;return t.annotations.yaxis=x.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:\"extendXAxisAnnotations\",value:function(t){var e=new L;return t.annotations.xaxis=x.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:\"extendPointAnnotations\",value:function(t){var e=new L;return t.annotations.points=x.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:\"checkForDarkTheme\",value:function(t){t.theme&&\"dark\"===t.theme.mode&&(t.tooltip||(t.tooltip={}),\"light\"!==t.tooltip.theme&&(t.tooltip.theme=\"dark\"),t.chart.foreColor||(t.chart.foreColor=\"#f6f7f8\"),t.chart.background||(t.chart.background=\"#424242\"),t.theme.palette||(t.theme.palette=\"palette4\"))}},{key:\"handleUserInputErrors\",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error(\"tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.\");if(\"bar\"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error(\"Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false\");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return\"bar\"!==e.chart.type&&\"rangeBar\"!==e.chart.type||e.tooltip.shared&&\"barWidth\"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width=\"tickWidth\"),\"candlestick\"!==e.chart.type&&\"boxPlot\"!==e.chart.type||e.yaxis[0].reversed&&(console.warn(\"Reversed y-axis in \".concat(e.chart.type,\" chart is not supported.\")),e.yaxis[0].reversed=!1),e}}]),t}(),Y=function(){function t(){a(this,t)}return r(t,[{key:\"initGlobalVars\",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRange=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.hasXaxisGroups=!1,t.groups=[],t.hasSeriesGroups=!1,t.seriesGroups=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0}},{key:\"globalVars\",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:\"ontouchstart\"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:\"zoom\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:\"pan\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:\"selection\"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:\"http://www.w3.org/2000/svg\",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null}}},{key:\"init\",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=x.extend({},t),e.initialSeries=x.clone(t.series),e.lastXAxis=x.clone(e.initialConfig.xaxis),e.lastYAxis=x.clone(e.initialConfig.yaxis),e}}]),t}(),F=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:\"init\",value:function(){var t=new E(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new Y).init(t)}}}]),t}(),R=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.opts=null,this.seriesIndex=0}return r(t,[{key:\"clippedImgArea\",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth,10),s=parseInt(e.globals.gridHeight,10),r=a>s?a:s,o=t.image,n=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(n=i.fill.image.width+1,l=i.fill.image.height):(n=r+1,l=r):(n=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,\"pattern\");m.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:\"userSpaceOnUse\",width:n+\"px\",height:l+\"px\"});var c=document.createElementNS(e.globals.SVGNS,\"image\");h.appendChild(c),c.setAttributeNS(window.SVG.xlink,\"href\",o),m.setAttrs(c,{x:0,y:0,preserveAspectRatio:\"none\",width:n+\"px\",height:l+\"px\"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:\"getSeriesIndex\",value:function(t){var e=this.w,i=e.config.chart.type;return(\"bar\"===i||\"rangeBar\"===i)&&e.config.plotOptions.bar.distributed||\"heatmap\"===i||\"treemap\"===i?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:\"fillPath\",value:function(t){var e=this.w;this.opts=t;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var o=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(o=e.globals.seriesColors[this.seriesIndex]),\"function\"==typeof o&&(o=o({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var n=t.fillType?t.fillType:this.getFillType(this.seriesIndex),l=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;t.color&&(o=t.color);var h=o;if(-1===o.indexOf(\"rgb\")?o.length<9&&(h=x.hexToRgba(o,l)):o.indexOf(\"rgba\")>-1&&(l=x.getOpacityFromRGBA(o)),t.opacity&&(l=t.opacity),\"pattern\"===n&&(a=this.handlePatternFill({fillConfig:t.fillConfig,patternFill:a,fillColor:o,fillOpacity:l,defaultColor:h})),\"gradient\"===n&&(s=this.handleGradientFill({fillConfig:t.fillConfig,fillColor:o,fillOpacity:l,i:this.seriesIndex})),\"image\"===n){var c=r.fill.image.src,d=t.patternID?t.patternID:\"\";this.clippedImgArea({opacity:l,image:Array.isArray(c)?t.seriesNumber-1&&(u=x.getOpacityFromRGBA(g));var p=void 0===o.gradient.opacityTo?a:Array.isArray(o.gradient.opacityTo)?o.gradient.opacityTo[r]:o.gradient.opacityTo;if(void 0===o.gradient.gradientToColors||0===o.gradient.gradientToColors.length)n=\"dark\"===o.gradient.shade?c.shadeColor(-1*parseFloat(o.gradient.shadeIntensity),i.indexOf(\"rgb\")>-1?x.rgb2hex(i):i):c.shadeColor(parseFloat(o.gradient.shadeIntensity),i.indexOf(\"rgb\")>-1?x.rgb2hex(i):i);else if(o.gradient.gradientToColors[l.seriesNumber]){var f=o.gradient.gradientToColors[l.seriesNumber];n=f,f.indexOf(\"rgba\")>-1&&(p=x.getOpacityFromRGBA(f))}else n=i;if(o.gradient.gradientFrom&&(g=o.gradient.gradientFrom),o.gradient.gradientTo&&(n=o.gradient.gradientTo),o.gradient.inverseColors){var b=g;g=n,n=b}return g.indexOf(\"rgb\")>-1&&(g=x.rgb2hex(g)),n.indexOf(\"rgb\")>-1&&(n=x.rgb2hex(n)),h.drawGradient(d,g,n,u,p,l.size,o.gradient.stops,o.gradient.colorStops,r)}}]),t}(),H=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"setGlobalMarkerSize\",value:function(){var t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.length4&&void 0!==arguments[4]&&arguments[4],o=this.w,n=e,l=t,h=null,c=new m(this.ctx),d=o.config.markers.discrete&&o.config.markers.discrete.length;if((o.globals.markers.size[e]>0||r||d)&&(h=c.group({class:r||d?\"\":\"apexcharts-series-markers\"})).attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(o.globals.cuid,\")\")),Array.isArray(l.x))for(var g=0;g0:o.config.markers.size>0)||r||d){x.isNumber(l.y[g])?p+=\" w\".concat(x.randomId()):p=\"apexcharts-nullpoint\";var f=this.getMarkerConfig({cssClass:p,seriesIndex:e,dataPointIndex:u});o.config.series[n].data[u]&&(o.config.series[n].data[u].fillColor&&(f.pointFillColor=o.config.series[n].data[u].fillColor),o.config.series[n].data[u].strokeColor&&(f.pointStrokeColor=o.config.series[n].data[u].strokeColor)),a&&(f.pSize=a),(l.x[g]<0||l.x[g]>o.globals.gridWidth||l.y[g]<0||l.y[g]>o.globals.gridHeight)&&(f.pSize=0),(s=c.drawMarker(l.x[g],l.y[g],f)).attr(\"rel\",u),s.attr(\"j\",u),s.attr(\"index\",e),s.node.setAttribute(\"default-marker-size\",f.pSize),new v(this.ctx).setSelectionFilter(s,e,u),this.addEvents(s),h&&h.add(s)}else void 0===o.globals.pointsArray[e]&&(o.globals.pointsArray[e]=[]),o.globals.pointsArray[e].push([l.x[g],l.y[g]])}return h}},{key:\"getMarkerConfig\",value:function(t){var e=t.cssClass,i=t.seriesIndex,a=t.dataPointIndex,s=void 0===a?null:a,r=t.finishRadius,o=void 0===r?null:r,n=this.w,l=this.getMarkerStyle(i),h=n.globals.markers.size[i],c=n.config.markers;return null!==s&&c.discrete.length&&c.discrete.map((function(t){t.seriesIndex===i&&t.dataPointIndex===s&&(l.pointStrokeColor=t.strokeColor,l.pointFillColor=t.fillColor,h=t.size,l.pointShape=t.shape)})),{pSize:null===o?h:o,pRadius:c.radius,width:Array.isArray(c.width)?c.width[i]:c.width,height:Array.isArray(c.height)?c.height[i]:c.height,pointStrokeWidth:Array.isArray(c.strokeWidth)?c.strokeWidth[i]:c.strokeWidth,pointStrokeColor:l.pointStrokeColor,pointFillColor:l.pointFillColor,shape:l.pointShape||(Array.isArray(c.shape)?c.shape[i]:c.shape),class:e,pointStrokeOpacity:Array.isArray(c.strokeOpacity)?c.strokeOpacity[i]:c.strokeOpacity,pointStrokeDashArray:Array.isArray(c.strokeDashArray)?c.strokeDashArray[i]:c.strokeDashArray,pointFillOpacity:Array.isArray(c.fillOpacity)?c.fillOpacity[i]:c.fillOpacity,seriesIndex:i}}},{key:\"addEvents\",value:function(t){var e=this.w,i=new m(this.ctx);t.node.addEventListener(\"mouseenter\",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener(\"mouseleave\",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener(\"mousedown\",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener(\"click\",e.config.markers.onClick),t.node.addEventListener(\"dblclick\",e.config.markers.onDblClick),t.node.addEventListener(\"touchstart\",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:\"getMarkerStyle\",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}]),t}(),D=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled}return r(t,[{key:\"draw\",value:function(t,e,i){var a=this.w,s=new m(this.ctx),r=i.realIndex,o=i.pointsPos,n=i.zRatio,l=i.elParent,h=s.group({class:\"apexcharts-series-markers apexcharts-series-\".concat(a.config.chart.type)});if(h.attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(a.globals.cuid,\")\")),Array.isArray(o.x))for(var c=0;cf.maxBubbleRadius&&(p=f.maxBubbleRadius)}a.config.chart.animations.enabled||(u=p);var x=o.x[c],b=o.y[c];if(u=u||0,null!==b&&void 0!==a.globals.series[r][d]||(g=!1),g){var v=this.drawPoint(x,b,u,p,r,d,e);h.add(v)}l.add(h)}}},{key:\"drawPoint\",value:function(t,e,i,a,s,r,o){var n=this.w,l=s,h=new b(this.ctx),c=new v(this.ctx),d=new R(this.ctx),g=new H(this.ctx),u=new m(this.ctx),p=g.getMarkerConfig({cssClass:\"apexcharts-marker\",seriesIndex:l,dataPointIndex:r,finishRadius:\"bubble\"===n.config.chart.type||n.globals.comboCharts&&n.config.series[s]&&\"bubble\"===n.config.series[s].type?a:null});a=p.pSize;var f,x=d.fillPath({seriesNumber:s,dataPointIndex:r,color:p.pointFillColor,patternUnits:\"objectBoundingBox\",value:n.globals.series[s][o]});if(\"circle\"===p.shape?f=u.drawCircle(i):\"square\"!==p.shape&&\"rect\"!==p.shape||(f=u.drawRect(0,0,p.width-p.pointStrokeWidth/2,p.height-p.pointStrokeWidth/2,p.pRadius)),n.config.series[l].data[r]&&n.config.series[l].data[r].fillColor&&(x=n.config.series[l].data[r].fillColor),f.attr({x:t-p.width/2-p.pointStrokeWidth/2,y:e-p.height/2-p.pointStrokeWidth/2,cx:t,cy:e,fill:x,\"fill-opacity\":p.pointFillOpacity,stroke:p.pointStrokeColor,r:a,\"stroke-width\":p.pointStrokeWidth,\"stroke-dasharray\":p.pointStrokeDashArray,\"stroke-opacity\":p.pointStrokeOpacity}),n.config.chart.dropShadow.enabled){var y=n.config.chart.dropShadow;c.dropShadow(f,y,s)}if(!this.initialAnim||n.globals.dataChanged||n.globals.resized)n.globals.animationEnded=!0;else{var w=n.config.chart.animations.speed;h.animateMarker(f,0,\"circle\"===p.shape?a:{width:p.width,height:p.height},w,n.globals.easing,(function(){window.setTimeout((function(){h.animationCompleted(f)}),100)}))}if(n.globals.dataChanged&&\"circle\"===p.shape)if(this.dynamicAnim){var k,A,S,C,L=n.config.chart.animations.dynamicAnimation.speed;null!=(C=n.globals.previousPaths[s]&&n.globals.previousPaths[s][o])&&(k=C.x,A=C.y,S=void 0!==C.r?C.r:a);for(var P=0;Pn.globals.gridHeight+d&&(e=n.globals.gridHeight+d/2),void 0===n.globals.dataLabelsRects[a]&&(n.globals.dataLabelsRects[a]=[]),n.globals.dataLabelsRects[a].push({x:t,y:e,width:c,height:d});var g=n.globals.dataLabelsRects[a].length-2,u=void 0!==n.globals.lastDrawnDataLabelsIndexes[a]?n.globals.lastDrawnDataLabelsIndexes[a][n.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==n.globals.dataLabelsRects[a][g]){var p=n.globals.dataLabelsRects[a][u];(t>p.x+p.width+2||e>p.y+p.height+2||t+ce.globals.gridWidth+f.textRects.width+10)&&(n=\"\");var x=e.globals.dataLabels.style.colors[r];((\"bar\"===e.config.chart.type||\"rangeBar\"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(x=e.globals.dataLabels.style.colors[o]),\"function\"==typeof x&&(x=x({series:e.globals.series,seriesIndex:r,dataPointIndex:o,w:e})),g&&(x=g);var b=d.offsetX,y=d.offsetY;if(\"bar\"!==e.config.chart.type&&\"rangeBar\"!==e.config.chart.type||(b=0,y=0),f.drawnextLabel){var w=i.drawText({width:100,height:parseInt(d.style.fontSize,10),x:a+b,y:s+y,foreColor:x,textAnchor:l||d.textAnchor,text:n,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||\"normal\"});if(w.attr({class:\"apexcharts-datalabel\",cx:a,cy:s}),d.dropShadow.enabled){var k=d.dropShadow;new v(this.ctx).dropShadow(w,k)}c.add(w),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(o)}}}},{key:\"addBackgroundToDataLabel\",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,o=e.width,n=e.height,l=new m(this.ctx).drawRect(e.x-s,e.y-r/2,o+2*s,n+r,a.borderRadius,\"transparent\"===i.config.chart.background?\"#fff\":i.config.chart.background,a.opacity,a.borderWidth,a.borderColor);a.dropShadow.enabled&&new v(this.ctx).dropShadow(l,a.dropShadow);return l}},{key:\"dataLabelsBackground\",value:function(){var t=this.w;if(\"bubble\"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-datalabels text\"),i=0;i0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=x.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:\"emptyCollapsedSeries\",value:function(t){for(var e=this.w,i=0;i-1&&(t[i].data=[]);return t}},{key:\"toggleSeriesOnHover\",value:function(t,e){var i=this.w;e||(e=t.target);var a=i.globals.dom.baseEl.querySelectorAll(\".apexcharts-series, .apexcharts-datalabels\");if(\"mousemove\"===t.type){var s=parseInt(e.getAttribute(\"rel\"),10)-1,r=null,o=null;i.globals.axisCharts||\"radialBar\"===i.config.chart.type?i.globals.axisCharts?(r=i.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(s,\"']\")),o=i.globals.dom.baseEl.querySelector(\".apexcharts-datalabels[data\\\\:realIndex='\".concat(s,\"']\"))):r=i.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(s+1,\"']\")):r=i.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(s+1,\"'] path\"));for(var n=0;n=t.from&&a<=t.to&&s[e].classList.remove(i.legendInactiveClass)}}(a.config.plotOptions.heatmap.colorScale.ranges[o])}else\"mouseout\"===t.type&&r(\"remove\")}},{key:\"getActiveConfigSeriesIndex\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:\"asc\",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(t,a){return t.data&&t.data.length>0&&-1===i.globals.collapsedSeriesIndices.indexOf(a)&&(!i.globals.comboCharts||0===e.length||e.length&&e.indexOf(i.config.series[a].type)>-1)?a:-1})),r=\"asc\"===t?0:s.length-1;\"asc\"===t?r=0;\"asc\"===t?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:\"getBarSeriesIndices\",value:function(){return this.w.globals.comboCharts?this.w.config.series.map((function(t,e){return\"bar\"===t.type||\"column\"===t.type?e:-1})).filter((function(t){return-1!==t})):this.w.config.series.map((function(t,e){return e}))}},{key:\"getPreviousPaths\",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute(\"data:realIndex\")},o=0;o0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-\".concat(t.config.chart.type,\" .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] rect\")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e(\"x\")),y:parseFloat(e(\"y\")),width:parseFloat(e(\"width\")),height:parseFloat(e(\"height\"))};a.push({rect:s,color:i[t].getAttribute(\"color\")})},r=0;r0)for(var a=0;a0?t:[]}));return t}}]),t}(),W=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new y(this.ctx)}return r(t,[{key:\"isMultiFormat\",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:\"isFormatXY\",value:function(){var t=this.w.config.series.slice(),e=new N(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:\"isFormat2DArray\",value:function(){var t=this.w.config.series.slice(),e=new N(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:\"handleFormat2DArray\",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s=\"boxPlot\"===i.chart.type||\"boxPlot\"===i.series[e].type,r=0;r=5?this.twoDSeries.push(x.parseNumber(t[e].data[r][4])):this.twoDSeries.push(x.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),\"datetime\"===i.xaxis.type){var o=new Date(t[e].data[r][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var n=0;n-1&&(r=this.activeSeriesIndex);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:this.ctx,s=this.w.config,r=this.w.globals,o=new I(a),n=s.labels.length>0?s.labels.slice():s.xaxis.categories.slice();if(r.isRangeBar=\"rangeBar\"===s.chart.type&&r.isBarHorizontal,r.hasXaxisGroups=\"category\"===s.xaxis.type&&s.xaxis.group.groups.length>0,r.hasXaxisGroups&&(r.groups=s.xaxis.group.groups),r.hasSeriesGroups=null===(e=t[0])||void 0===e?void 0:e.group,r.hasSeriesGroups){var l=[],h=u(new Set(t.map((function(t){return t.group}))));t.forEach((function(t,e){var i=h.indexOf(t.group);l[i]||(l[i]=[]),l[i].push(t.name)})),r.seriesGroups=l}for(var c=function(){for(var t=0;t0&&(this.twoDSeriesX=n,r.seriesX.push(this.twoDSeriesX))),r.labels.push(this.twoDSeriesX);var g=t[d].data.map((function(t){return x.parseNumber(t)}));r.series.push(g)}r.seriesZ.push(this.threeDSeries),void 0!==t[d].name?r.seriesNames.push(t[d].name):r.seriesNames.push(\"series-\"+parseInt(d+1,10)),void 0!==t[d].color?r.seriesColors.push(t[d].color):r.seriesColors.push(void 0)}return this.w}},{key:\"parseDataNonAxisCharts\",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRange.length&&(i.seriesRange.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=Array.from(new Set(i.labels.map(JSON.stringify)),JSON.parse)),e.xaxis.convertedCatToNumeric)new z(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:\"_generateExternalLabels\",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)if(this.isFormatXY())for(var s=i.series.map((function(t,e){return t.data.filter((function(t,e,i){return i.findIndex((function(e){return e.x===t.x}))===e}))})),r=s.reduce((function(t,e,i,a){return a[t].length>e.length?t:i}),0),o=0;o4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:\"12px\",o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],n=this.w,l=void 0===t[a]?\"\":t[a],h=l,c=n.globals.xLabelFormatter,d=n.config.xaxis.labels.formatter,g=!1,u=new T(this.ctx),p=l;o&&(h=u.xLabelFormat(c,l,p,{i:a,dateFormatter:new I(this.ctx).formatDate,w:n}),void 0!==d&&(h=d(l,t[a],{i:a,dateFormatter:new I(this.ctx).formatDate,w:n})));var f,x;e.length>0?(f=e[a].unit,x=null,e.forEach((function(t){\"month\"===t.unit?x=\"year\":\"day\"===t.unit?x=\"month\":\"hour\"===t.unit?x=\"day\":\"minute\"===t.unit&&(x=\"hour\")})),g=x===f,i=e[a].position,h=e[a].value):\"datetime\"===n.config.xaxis.type&&void 0===d&&(h=\"\"),void 0===h&&(h=\"\"),h=Array.isArray(h)?h:h.toString();var b=new m(this.ctx),v={};v=n.globals.rotateXLabels&&o?b.getTextRects(h,parseInt(r,10),null,\"rotate(\".concat(n.config.xaxis.labels.rotate,\" 0 0)\"),!1):b.getTextRects(h,parseInt(r,10));var y=!n.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(h)&&(0===h.indexOf(\"NaN\")||0===h.toLowerCase().indexOf(\"invalid\")||h.toLowerCase().indexOf(\"infinity\")>=0||s.indexOf(h)>=0&&y)&&(h=\"\"),{x:i,text:h,textRect:v,isBold:g}}},{key:\"checkLabelBasedOnTickamount\",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return\"dataPoints\"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=\"\"),e}},{key:\"checkForOverflowingLabels\",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=\"\"),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=\"\"),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var o=s[s.length-1];e.x0){!0===n.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=h+e/10+n.config.yaxis[s].labels.offsetY-1;n.globals.isBarHorizontal&&(d=r*c),\"heatmap\"===n.config.chart.type&&(d+=r/2);var g=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,a.color);o.add(g),h+=r}}}}]),t}(),G=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"scaleSvgNode\",value:function(t,e){var i=parseFloat(t.getAttributeNS(null,\"width\")),a=parseFloat(t.getAttributeNS(null,\"height\"));t.setAttributeNS(null,\"width\",i*e),t.setAttributeNS(null,\"height\",a*e),t.setAttributeNS(null,\"viewBox\",\"0 0 \"+i+\" \"+a)}},{key:\"fixSvgStringForIe11\",value:function(t){if(!x.isIE11())return t.replace(/ /g,\" \");var e=0,i=t.replace(/xmlns=\"http:\\/\\/www.w3.org\\/2000\\/svg\"/g,(function(t){return 2===++e?'xmlns:xlink=\"http://www.w3.org/1999/xlink\" xmlns:svgjs=\"http://svgjs.dev\"':t}));return i=(i=i.replace(/xmlns:NS\\d+=\"\"/g,\"\")).replace(/NS\\d+:(\\w+:\\w+=\")/g,\"$1\")}},{key:\"getSvgString\",value:function(t){null==t&&(t=1);var e=this.w.globals.dom.Paper.svg();if(1!==t){var i=this.w.globals.dom.Paper.node.cloneNode(!0);this.scaleSvgNode(i,t),e=(new XMLSerializer).serializeToString(i)}return this.fixSvgStringForIe11(e)}},{key:\"cleanup\",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-xcrosshairs\"),i=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-ycrosshairs\"),a=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-zoom-rect, .apexcharts-selection-rect\");Array.prototype.forEach.call(a,(function(t){t.setAttribute(\"width\",0)})),e&&e[0]&&(e[0].setAttribute(\"x\",-500),e[0].setAttribute(\"x1\",-500),e[0].setAttribute(\"x2\",-500)),i&&i[0]&&(i[0].setAttribute(\"y\",-100),i[0].setAttribute(\"y1\",-100),i[0].setAttribute(\"y2\",-100))}},{key:\"svgUrl\",value:function(){this.cleanup();var t=this.getSvgString(),e=new Blob([t],{type:\"image/svg+xml;charset=utf-8\"});return URL.createObjectURL(e)}},{key:\"dataURI\",value:function(t){var e=this;return new Promise((function(i){var a=e.w,s=t?t.scale||t.width/a.globals.svgWidth:1;e.cleanup();var r=document.createElement(\"canvas\");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var o=\"transparent\"===a.config.chart.background?\"#fff\":a.config.chart.background,n=r.getContext(\"2d\");n.fillStyle=o,n.fillRect(0,0,r.width*s,r.height*s);var l=e.getSvgString(s);if(window.canvg&&x.isIE11()){var h=window.canvg.Canvg.fromString(n,l,{ignoreClear:!0,ignoreDimensions:!0});h.start();var c=r.msToBlob();h.stop(),i({blob:c})}else{var d=\"data:image/svg+xml,\"+encodeURIComponent(l),g=new Image;g.crossOrigin=\"anonymous\",g.onload=function(){if(n.drawImage(g,0,0),r.msToBlob){var t=r.msToBlob();i({blob:t})}else{var e=r.toDataURL(\"image/png\");i({imgURI:e})}},g.src=d}}))}},{key:\"exportToSVG\",value:function(){this.triggerDownload(this.svgUrl(),this.w.config.chart.toolbar.export.svg.filename,\".svg\")}},{key:\"exportToPng\",value:function(){var t=this;this.dataURI().then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+\".png\"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,\".png\")}))}},{key:\"exportToCSV\",value:function(t){var e=this,i=t.series,a=t.fileName,s=t.columnDelimiter,r=void 0===s?\",\":s,o=t.lineDelimiter,n=void 0===o?\"\\n\":o,l=this.w;i||(i=l.config.series);var h=[],c=[],d=\"\",g=l.globals.series.map((function(t,e){return-1===l.globals.collapsedSeriesIndices.indexOf(e)?t:[]})),p=Math.max.apply(Math,u(i.map((function(t){return t.data?t.data.length:0})))),f=new W(this.ctx),b=new B(this.ctx),v=function(t){var i=\"\";if(l.globals.axisCharts){if(\"category\"===l.config.xaxis.type||l.config.xaxis.convertedCatToNumeric)if(l.globals.isBarHorizontal){var a=l.globals.yLabelFormatters[0],s=new N(e.ctx).getActiveConfigSeriesIndex();i=a(l.globals.labels[t],{seriesIndex:s,dataPointIndex:t,w:l})}else i=b.getLabel(l.globals.labels,l.globals.timescaleLabels,0,t).text;\"datetime\"===l.config.xaxis.type&&(l.config.xaxis.categories.length?i=l.config.xaxis.categories[t]:l.config.labels.length&&(i=l.config.labels[t]))}else i=l.config.labels[t];return Array.isArray(i)&&(i=i.join(\" \")),x.isNumber(i)?i:i.split(r).join(\"\")},m=function(t,e){if(h.length&&0===e&&c.push(h.join(r)),t.data){t.data=t.data.length&&t.data||u(Array(p)).map((function(){return\"\"}));for(var a=0;a=10?l.config.chart.toolbar.export.csv.dateFormatter(s):x.isNumber(s)?s:s.split(r).join(\"\")));for(var o=0;o0&&!s.globals.isBarHorizontal&&(this.xaxisLabels=s.globals.timescaleLabels.slice()),s.config.xaxis.overwriteCategories&&(this.xaxisLabels=s.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],\"top\"===s.config.xaxis.position?this.offY=0:this.offY=s.globals.gridHeight+1,this.offY=this.offY+s.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal=\"bar\"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.xaxisBorderWidth=s.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=s.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf(\"%\")>-1?this.xaxisBorderWidth=s.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=s.config.xaxis.axisBorder.height,this.yaxis=s.config.yaxis[0]}return r(t,[{key:\"drawXaxis\",value:function(){var t=this.w,e=new m(this.ctx),i=e.group({class:\"apexcharts-xaxis\",transform:\"translate(\".concat(t.config.xaxis.offsetX,\", \").concat(t.config.xaxis.offsetY,\")\")}),a=e.group({class:\"apexcharts-xaxis-texts-g\",transform:\"translate(\".concat(t.globals.translateXAxisX,\", \").concat(t.globals.translateXAxisY,\")\")});i.add(a);for(var s=[],r=0;r6&&void 0!==arguments[6]?arguments[6]:{},h=[],c=[],d=this.w,g=l.xaxisFontSize||this.xaxisFontSize,u=l.xaxisFontFamily||this.xaxisFontFamily,p=l.xaxisForeColors||this.xaxisForeColors,f=l.fontWeight||d.config.xaxis.labels.style.fontWeight,x=l.cssClass||d.config.xaxis.labels.style.cssClass,b=d.globals.padHorizontal,v=a.length,m=\"category\"===d.config.xaxis.type?d.globals.dataPoints:v;if(0===m&&v>m&&(m=v),s){var y=m>1?m-1:m;o=d.globals.gridWidth/y,b=b+r(0,o)/2+d.config.xaxis.labels.offsetX}else o=d.globals.gridWidth/m,b=b+r(0,o)+d.config.xaxis.labels.offsetX;for(var w=function(s){var l=b-r(s,o)/2+d.config.xaxis.labels.offsetX;0===s&&1===v&&o/2===b&&1===m&&(l=d.globals.gridWidth/2);var y=n.axesUtils.getLabel(a,d.globals.timescaleLabels,l,s,h,g,t),w=28;d.globals.rotateXLabels&&t&&(w=22),d.config.xaxis.title.text&&\"top\"===d.config.xaxis.position&&(w+=parseFloat(d.config.xaxis.title.style.fontSize)+2),t||(w=w+parseFloat(g)+(d.globals.xAxisLabelsHeight-d.globals.xAxisGroupLabelsHeight)+(d.globals.rotateXLabels?10:0)),y=void 0!==d.config.xaxis.tickAmount&&\"dataPoints\"!==d.config.xaxis.tickAmount&&\"datetime\"!==d.config.xaxis.type?n.axesUtils.checkLabelBasedOnTickamount(s,y,v):n.axesUtils.checkForOverflowingLabels(s,y,v,h,c);if(d.config.xaxis.labels.show){var k=e.drawText({x:y.x,y:n.offY+d.config.xaxis.labels.offsetY+w-(\"top\"===d.config.xaxis.position?d.globals.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:y.text,textAnchor:\"middle\",fontWeight:y.isBold?600:f,fontSize:g,fontFamily:u,foreColor:Array.isArray(p)?t&&d.config.xaxis.convertedCatToNumeric?p[d.globals.minX+s-1]:p[s]:p,isPlainText:!1,cssClass:(t?\"apexcharts-xaxis-label \":\"apexcharts-xaxis-group-label \")+x});if(i.add(k),k.on(\"click\",(function(t){if(\"function\"==typeof d.config.chart.events.xAxisLabelClick){var e=Object.assign({},d,{labelIndex:s});d.config.chart.events.xAxisLabelClick(t,n.ctx,e)}})),t){var A=document.createElementNS(d.globals.SVGNS,\"title\");A.textContent=Array.isArray(y.text)?y.text.join(\" \"):y.text,k.node.appendChild(A),\"\"!==y.text&&(h.push(y.text),c.push(y))}}sa.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(e=e+r+a.config.xaxis.axisTicks.height,\"top\"===a.config.xaxis.position&&(e=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var o=new m(this.ctx).drawLine(t+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,e+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(o),o.node.classList.add(\"apexcharts-xaxis-tick\")}}}},{key:\"getXAxisTicksPositions\",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d0&&(this.xaxisLabels=i.globals.timescaleLabels.slice())}return r(t,[{key:\"drawGridArea\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new m(this.ctx);null===t&&(t=i.group({class:\"apexcharts-grid\"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,\"transparent\"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,\"transparent\");return t.add(s),t.add(a),t}},{key:\"drawGrid\",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:\"createGridMask\",value:function(){var t=this.w,e=t.globals,i=new m(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elGridRectMask.setAttribute(\"id\",\"gridRectMask\".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elGridRectMarkerMask.setAttribute(\"id\",\"gridRectMarkerMask\".concat(e.cuid)),e.dom.elForecastMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elForecastMask.setAttribute(\"id\",\"forecastMask\".concat(e.cuid)),e.dom.elNonForecastMask=document.createElementNS(e.SVGNS,\"clipPath\"),e.dom.elNonForecastMask.setAttribute(\"id\",\"nonForecastMask\".concat(e.cuid));var r=t.config.chart.type,o=0,n=0;(\"bar\"===r||\"rangeBar\"===r||\"candlestick\"===r||\"boxPlot\"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(o=t.config.grid.padding.left,n=t.config.grid.padding.right,e.barPadForNumericAxis>o&&(o=e.barPadForNumericAxis,n=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-o-2,-a/2,e.gridWidth+a+n+o+4,e.gridHeight+a,0,\"#fff\");var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,\"#fff\"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var h=e.dom.baseEl.querySelector(\"defs\");h.appendChild(e.dom.elGridRectMask),h.appendChild(e.dom.elForecastMask),h.appendChild(e.dom.elNonForecastMask),h.appendChild(e.dom.elGridRectMarkerMask)}},{key:\"_drawGridLines\",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w;if(!(0===e&&l.globals.skipFirstTimelinelabel||e===o-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||\"radar\"===l.config.chart.type)){l.config.grid.xaxis.lines.show&&this._drawGridLine({i:e,x1:i,y1:a,x2:s,y2:r,xCount:o,parent:n});var h=0;if(l.globals.hasXaxisGroups&&\"between\"===l.config.xaxis.tickPlacement){var c=l.globals.groups;if(c){for(var d=0,g=0;d2));s++);return!t.globals.isBarHorizontal||this.isRangeBar?(i=this.xaxisLabels.length,this.isRangeBar&&t.globals.isBarHorizontal&&(i--,a=t.globals.labels.length,t.config.xaxis.tickAmount&&t.config.xaxis.labels.formatter&&(i=t.config.xaxis.tickAmount)),this._drawXYLines({xCount:i,tickAmount:a})):(i=a,a=t.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a})),this.drawGridBands(i,a),{el:this.elg,elGridBorders:this.elGridBorders,xAxisTickWidth:t.globals.gridWidth/i}}},{key:\"drawGridBands\",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,o=0,n=0;o=i.config.grid.row.colors.length&&(n=0),this._drawGridBandRect({c:n,x1:0,y1:a,x2:r,y2:s,type:\"row\"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0)for(var l=i.globals.isBarHorizontal||\"category\"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1,h=i.globals.padHorizontal,c=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,g=0,u=0;g=i.config.grid.column.colors.length&&(u=0),this._drawGridBandRect({c:u,x1:h,y1:0,x2:c,y2:d,type:\"column\"}),h+=i.globals.gridWidth/l}}]),t}(),_=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"niceScale\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,r=this.w,o=Math.abs(e-t);if(\"dataPoints\"===(i=this._adjustTicksForSmallRange(i,a,o))&&(i=r.globals.dataPoints-1),t===Number.MIN_VALUE&&0===e||!x.isNumber(t)&&!x.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE)return t=0,e=i,this.linearScale(t,e,i);t>e?(console.warn(\"axis.min cannot be greater than axis.max\"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var n=[];o<1&&s&&(\"candlestick\"===r.config.chart.type||\"candlestick\"===r.config.series[a].type||\"boxPlot\"===r.config.chart.type||\"boxPlot\"===r.config.series[a].type||r.globals.isRangeData)&&(e*=1.01);var l=i+1;l<2?l=2:l>2&&(l-=2);var h=o/l,c=Math.floor(x.log10(h)),d=Math.pow(10,c),g=Math.round(h/d);g<1&&(g=1);var u=g*d,p=u*Math.floor(t/u),f=u*Math.ceil(e/u),b=p;if(s&&o>2){for(;n.push(b),!((b+=u)>f););return{result:n,niceMin:n[0],niceMax:n[n.length-1]}}var v=t;(n=[]).push(v);for(var m=Math.abs(e-t)/i,y=0;y<=i;y++)v+=m,n.push(v);return n[n.length-2]>=e&&n.pop(),{result:n,niceMin:n[0],niceMax:n[n.length-1]}}},{key:\"linearScale\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3?arguments[3]:void 0,s=Math.abs(e-t);\"dataPoints\"===(i=this._adjustTicksForSmallRange(i,a,s))&&(i=this.w.globals.dataPoints-1);var r=s/i;i===Number.MAX_VALUE&&(i=10,r=1);for(var o=[],n=t;i>=0;)o.push(n),n+=r,i-=1;return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:\"logarithmicScaleNice\",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.ceil(Math.log(e)/Math.log(i)+1),r=Math.floor(Math.log(t)/Math.log(i));r5)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(e,i,r.logBase),a.yAxisScale[t]=r.forceNiceScale?this.logarithmicScaleNice(e,i,r.logBase):this.logarithmicScale(e,i,r.logBase);else if(i!==-Number.MAX_VALUE&&x.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===r.min&&void 0===r.max||r.forceNiceScale){var n=void 0===s.yaxis[t].max&&void 0===s.yaxis[t].min||s.yaxis[t].forceNiceScale;a.yAxisScale[t]=this.niceScale(e,i,r.tickAmount?r.tickAmount:o<5&&o>1?o+1:5,t,n)}else a.yAxisScale[t]=this.linearScale(e,i,r.tickAmount,t);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:\"setXScale\",value:function(t,e){var i=this.w,a=i.globals,s=i.config.xaxis,r=Math.abs(e-t);return e!==-Number.MAX_VALUE&&x.isNumber(e)?a.xAxisScale=this.linearScale(t,e,s.tickAmount?s.tickAmount:r<5&&r>1?r+1:5,0):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:\"setMultipleYScales\",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),r=[];i.yaxis.forEach((function(e,o){var n=o;i.series.forEach((function(t,i){t.name===e.seriesName&&(n=i,o!==i?r.push({index:i,similarIndex:o,alreadyExists:!0}):r.push({index:i}))}));var l=a[n],h=s[n];t.setYScaleForIndex(o,l,h)})),this.sameScaleInMultipleAxes(a,s,r)}},{key:\"sameScaleInMultipleAxes\",value:function(t,e,i){var a=this,s=this.w.config,r=this.w.globals,o=[];i.forEach((function(t){t.alreadyExists&&(void 0===o[t.index]&&(o[t.index]=[]),o[t.index].push(t.index),o[t.index].push(t.similarIndex))})),r.yAxisSameScaleIndices=o,o.forEach((function(t,e){o.forEach((function(i,a){var s,r;e!==a&&(s=t,r=i,s.filter((function(t){return-1!==r.indexOf(t)}))).length>0&&(o[e]=o[e].concat(o[a]))}))}));var n=o.map((function(t){return t.filter((function(e,i){return t.indexOf(e)===i}))})).map((function(t){return t.sort()}));o=o.filter((function(t){return!!t}));var l=n.slice(),h=l.map((function(t){return JSON.stringify(t)}));l=l.filter((function(t,e){return h.indexOf(JSON.stringify(t))===e}));var c=[],d=[];t.forEach((function(t,i){l.forEach((function(a,s){a.indexOf(i)>-1&&(void 0===c[s]&&(c[s]=[],d[s]=[]),c[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))}))}));var g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);c.forEach((function(t,e){t.forEach((function(t,i){g[e]=Math.min(t.value,g[e])}))})),d.forEach((function(t,e){t.forEach((function(t,i){u[e]=Math.max(t.value,u[e])}))})),t.forEach((function(t,e){d.forEach((function(t,i){var o=g[i],n=u[i];s.chart.stacked&&(n=0,t.forEach((function(t,e){t.value!==-Number.MAX_VALUE&&(n+=t.value),o!==Number.MIN_VALUE&&(o+=c[i][e].value)}))),t.forEach((function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(o=\"function\"==typeof s.yaxis[e].min?s.yaxis[e].min(r.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(n=\"function\"==typeof s.yaxis[e].max?s.yaxis[e].max(r.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,o,n))}))}))}))}},{key:\"autoScaleY\",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn(\"autoScaleYaxis is not supported in a multi-yaxis chart.\"),e;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return e.forEach((function(t,o){for(var n=0,l=0;l=i.xaxis.min){n=l;break}var h,c,d=a.globals.minYArr[o],g=a.globals.maxYArr[o],u=a.globals.stackedSeriesTotals;a.globals.series.forEach((function(o,l){var p=o[n];r?(p=u[n],h=c=p,u.forEach((function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>c&&null!==t&&(c=t),o[e]=i.xaxis.min){var r=t,o=t;a.globals.series.forEach((function(i,a){null!==t&&(r=Math.min(i[e],r),o=Math.max(i[e],o))})),o>c&&null!==o&&(c=o),rd&&(h=d),e.length>1?(e[l].min=void 0===t.min?h:t.min,e[l].max=void 0===t.max?c:t.max):(e[0].min=void 0===t.min?h:t.min,e[0].max=void 0===t.max?c:t.max)}))})),e}}]),t}(),U=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.scales=new _(e)}return r(t,[{key:\"init\",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:\"getMinYMaxY\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;\"candlestick\"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):\"boxPlot\"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);for(var d=t;dh[d][g]&&h[d][g]<0&&(n=h[d][g])):r.hasNullValues=!0}}return\"rangeBar\"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&(n=e),\"bar\"===s.chart.type&&(n<0&&o<0&&(o=0),n===Number.MIN_VALUE&&(n=0)),{minY:n,maxY:o,lowestY:e,highestY:i}}},{key:\"setYRange\",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a=0&&i<=10||void 0!==e.yaxis[0].min||void 0!==e.yaxis[0].max)&&(o=0),t.minY=i-5*o/100,i>0&&t.minY<0&&(t.minY=0),t.maxY=t.maxY+5*o/100}if(e.yaxis.forEach((function(e,i){void 0!==e.max&&(\"number\"==typeof e.max?t.maxYArr[i]=e.max:\"function\"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&(\"number\"==typeof e.min?t.minYArr[i]=e.min:\"function\"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])})),t.isBarHorizontal){[\"min\",\"max\"].forEach((function(i){void 0!==e.xaxis[i]&&\"number\"==typeof e.xaxis[i]&&(\"min\"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])}))}return t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach((function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax}))):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}},{key:\"setXRange\",value:function(){var t=this.w.globals,e=this.w.config,i=\"numeric\"===e.xaxis.type||\"datetime\"===e.xaxis.type||\"category\"===e.xaxis.type&&!t.noLabelsProvided||t.noLabelsProvided||t.isXNumeric;if(t.isXNumeric&&function(){for(var e=0;et.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1)):\"dataPoints\"===e.xaxis.tickAmount?(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric&&(a=t.maxX-t.minX-1)):a=e.xaxis.tickAmount,t.xTickAmount=a,void 0!==e.xaxis.max&&\"number\"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&\"number\"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var s=[],r=t.minX-1;r0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:\"setZRange\",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}))}},{key:\"_setStackedMinMax\",value:function(){var t=this,e=this.w.globals;if(e.series.length){var i=e.seriesGroups;i.length||(i=[this.w.config.series.map((function(t){return t.name}))]);var a={},s={};i.forEach((function(i){a[i]=[],s[i]=[],t.w.config.series.map((function(t,e){return i.indexOf(t.name)>-1?e:null})).filter((function(t){return null!==t})).forEach((function(t){for(var r=0;r0?a[i][r]+=parseFloat(e.series[t][r])+1e-4:s[i][r]+=parseFloat(e.series[t][r]))}))})),Object.entries(a).forEach((function(t){var i=g(t,1)[0];a[i].forEach((function(t,r){e.maxY=Math.max(e.maxY,a[i][r]),e.minY=Math.min(e.minY,s[i][r])}))}))}}}]),t}(),q=function(){function t(e,i){a(this,t),this.ctx=e,this.elgrid=i,this.w=e.w;var s=this.w;this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.axisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.isCategoryBarHorizontal=\"bar\"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xAxisoffX=0,\"bottom\"===s.config.xaxis.position&&(this.xAxisoffX=s.globals.gridHeight),this.drawnLabels=[],this.axesUtils=new B(e)}return r(t,[{key:\"drawYaxis\",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.yaxis[t].labels.style,r=s.fontSize,o=s.fontFamily,n=s.fontWeight,l=a.group({class:\"apexcharts-yaxis\",rel:t,transform:\"translate(\"+i.globals.translateYAxisX[t]+\", 0)\"});if(this.axesUtils.isYAxisHidden(t))return l;var h=a.group({class:\"apexcharts-yaxis-texts-g\"});l.add(h);var c=i.globals.yAxisScale[t].result.length-1,d=i.globals.gridHeight/c,g=i.globals.translateY,u=i.globals.yLabelFormatters[t],p=i.globals.yAxisScale[t].result.slice();p=this.axesUtils.checkForReversedLabels(t,p);var f=\"\";if(i.config.yaxis[t].labels.show)for(var x=function(l){var x=p[l];x=u(x,l,i);var b=i.config.yaxis[t].labels.padding;i.config.yaxis[t].opposite&&0!==i.config.yaxis.length&&(b*=-1);var v=\"end\";i.config.yaxis[t].opposite&&(v=\"start\"),\"left\"===i.config.yaxis[t].labels.align?v=\"start\":\"center\"===i.config.yaxis[t].labels.align?v=\"middle\":\"right\"===i.config.yaxis[t].labels.align&&(v=\"end\");var m=e.axesUtils.getYAxisForeColor(s.colors,t),y=a.drawText({x:b,y:g+c/10+i.config.yaxis[t].labels.offsetY+1,text:x,textAnchor:v,fontSize:r,fontFamily:o,fontWeight:n,maxWidth:i.config.yaxis[t].labels.maxWidth,foreColor:Array.isArray(m)?m[l]:m,isPlainText:!1,cssClass:\"apexcharts-yaxis-label \"+s.cssClass});l===c&&(f=y),h.add(y);var w=document.createElementNS(i.globals.SVGNS,\"title\");if(w.textContent=Array.isArray(x)?x.join(\" \"):x,y.node.appendChild(w),0!==i.config.yaxis[t].labels.rotate){var k=a.rotateAroundCenter(f.node),A=a.rotateAroundCenter(y.node);y.node.setAttribute(\"transform\",\"rotate(\".concat(i.config.yaxis[t].labels.rotate,\" \").concat(k.x,\" \").concat(A.y,\")\"))}g+=d},b=c;b>=0;b--)x(b);if(void 0!==i.config.yaxis[t].title.text){var v=a.group({class:\"apexcharts-yaxis-title\"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var w=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:\"end\",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:\"apexcharts-yaxis-title-text \"+i.config.yaxis[t].title.style.cssClass});v.add(w),l.add(v)}var k=i.config.yaxis[t].axisBorder,A=31+k.offsetX;if(i.config.yaxis[t].opposite&&(A=-31-k.offsetX),k.show){var S=a.drawLine(A,i.globals.translateY+k.offsetY-2,A,i.globals.gridHeight+i.globals.translateY+k.offsetY+2,k.color,0,k.width);l.add(S)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(A,c,k,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:\"drawYaxisInversed\",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:\"apexcharts-xaxis apexcharts-yaxis-inversed\"}),s=i.group({class:\"apexcharts-xaxis-texts-g\",transform:\"translate(\".concat(e.globals.translateXAxisX,\", \").concat(e.globals.translateXAxisY,\")\")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,o=e.globals.gridWidth/r+.1,n=o+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.timescaleLabels;c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),h=this.axesUtils.checkForReversedLabels(t,h);var d=c.length;if(e.config.xaxis.labels.show)for(var g=d?0:r;d?g=0;d?g++:g--){var u=h[g];u=l(u,g,e);var p=e.globals.gridWidth+e.globals.padHorizontal-(n-o+e.config.xaxis.labels.offsetX);if(c.length){var f=this.axesUtils.getLabel(h,c,p,g,this.drawnLabels,this.xaxisFontSize);p=f.x,u=f.text,this.drawnLabels.push(f.text),0===g&&e.globals.skipFirstTimelinelabel&&(u=\"\"),g===h.length-1&&e.globals.skipLastTimelinelabel&&(u=\"\")}var x=i.drawText({x:p,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-(\"top\"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:u,textAnchor:\"middle\",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:\"apexcharts-xaxis-label \"+e.config.xaxis.labels.style.cssClass});s.add(x),x.tspan(u);var b=document.createElementNS(e.globals.SVGNS,\"title\");b.textContent=u,x.node.appendChild(b),n+=o}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:\"inversedYAxisBorder\",value:function(t){var e=this.w,i=new m(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;\"bar\"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);this.elgrid&&this.elgrid.elGridBorders&&e.config.grid.show?this.elgrid.elGridBorders.add(r):t.add(r)}}},{key:\"inversedYAxisTitleText\",value:function(t){var e=this.w,i=new m(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:\"apexcharts-xaxis-title apexcharts-yaxis-title-inversed\"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:\"middle\",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:\"apexcharts-xaxis-title-text \"+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:\"yAxisTitleRotate\",value:function(t,e){var i=this.w,a=new m(this.ctx),s={width:0,height:0},r={width:0,height:0},o=i.globals.dom.baseEl.querySelector(\" .apexcharts-yaxis[rel='\".concat(t,\"'] .apexcharts-yaxis-texts-g\"));null!==o&&(s=o.getBoundingClientRect());var n=i.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(t,\"'] .apexcharts-yaxis-title text\"));if(null!==n&&(r=n.getBoundingClientRect()),null!==n){var l=this.xPaddingForYAxisTitle(t,s,r,e);n.setAttribute(\"x\",l.xPos-(e?10:0))}if(null!==n){var h=a.rotateAroundCenter(n);n.setAttribute(\"transform\",\"rotate(\".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate,\" \").concat(h.x,\" \").concat(h.y,\")\"))}}},{key:\"xPaddingForYAxisTitle\",value:function(t,e,i,a){var s=this.w,r=0,o=0,n=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:o,padd:0}:(a?(o=e.width+s.config.yaxis[t].title.offsetX+i.width/2+n/2,0===(r+=1)&&(o-=n/2)):(o=-1*e.width+s.config.yaxis[t].title.offsetX+n/2+i.width/2,s.globals.isBarHorizontal&&(n=25,o=-1*e.width-s.config.yaxis[t].title.offsetX-n)),{xPos:o,padd:n})}},{key:\"setYAxisXPosition\",value:function(t,e){var i=this.w,a=0,s=0,r=18,o=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(n,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!n.show||n.floating||0===t[l].width,c=t[l].width+e[l].width;n.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-n.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+o,h||(o=o+c+20),i.globals.translateYAxisX[l]=s-n.labels.offsetX+20):(a=i.globals.translateX-r,h||(r=r+c+20),i.globals.translateYAxisX[l]=a+n.labels.offsetX)}))}},{key:\"setYAxisTextAlignments\",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName(\"apexcharts-yaxis\");(e=x.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&!a.floating&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(\".apexcharts-yaxis[rel='\".concat(i,\"'] .apexcharts-yaxis-texts-g\")),r=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxis[rel='\".concat(i,\"'] .apexcharts-yaxis-label\"));r=x.listToArray(r);var o=s.getBoundingClientRect();\"left\"===a.labels.align?(r.forEach((function(t,e){t.setAttribute(\"text-anchor\",\"start\")})),a.opposite||s.setAttribute(\"transform\",\"translate(-\".concat(o.width,\", 0)\"))):\"center\"===a.labels.align?(r.forEach((function(t,e){t.setAttribute(\"text-anchor\",\"middle\")})),s.setAttribute(\"transform\",\"translate(\".concat(o.width/2*(a.opposite?1:-1),\", 0)\"))):\"right\"===a.labels.align&&(r.forEach((function(t,e){t.setAttribute(\"text-anchor\",\"end\")})),a.opposite&&s.setAttribute(\"transform\",\"translate(\".concat(o.width,\", 0)\")))}}))}}]),t}(),Z=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.documentEvent=x.bind(this.documentEvent,this)}return r(t,[{key:\"addEventListener\",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:\"removeEventListener\",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:\"fireEvent\",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error(\"Wrong locale name provided. Please make sure you set the correct locale name in options\");var a=x.extend(C,i);this.w.globals.locale=a.options}}]),t}(),J=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"drawAxis\",value:function(t,e){var i,a,s=this,r=this.w.globals,o=this.w.config,n=new V(this.ctx,e),l=new q(this.ctx,e);r.axisCharts&&\"radar\"!==t&&(r.isBarHorizontal?(a=l.drawYaxisInversed(0),i=n.drawXaxisInversed(0),r.dom.elGraphical.add(i),r.dom.elGraphical.add(a)):(i=n.drawXaxis(),r.dom.elGraphical.add(i),o.yaxis.map((function(t,e){if(-1===r.ignoreYAxisIndexes.indexOf(e)&&(a=l.drawYaxis(e),r.dom.Paper.add(a),\"back\"===s.w.config.grid.position)){var i=r.dom.Paper.children()[1];i.remove(),r.dom.Paper.add(i)}}))))}}]),t}(),Q=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"drawXCrosshairs\",value:function(){var t=this.w,e=new m(this.ctx),i=new v(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,o=a.colorFrom,n=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,p=s.blur,f=s.color,b=s.opacity,y=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){\"gradient\"===r&&(y=e.drawGradient(\"vertical\",o,n,l,h,null,c,null));var w=e.drawRect();1===t.config.xaxis.crosshairs.width&&(w=e.drawLine());var k=t.globals.gridHeight;(!x.isNumber(k)||k<0)&&(k=0);var A=t.config.xaxis.crosshairs.width;(!x.isNumber(A)||A<0)&&(A=0),w.attr({class:\"apexcharts-xcrosshairs\",x:0,y:0,y2:k,width:A,height:k,fill:y,filter:\"none\",\"fill-opacity\":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,\"stroke-width\":t.config.xaxis.crosshairs.stroke.width,\"stroke-dasharray\":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(w=i.dropShadow(w,{left:g,top:u,blur:p,color:f,opacity:b})),t.globals.dom.elGraphical.add(w)}}},{key:\"drawYCrosshairs\",value:function(){var t=this.w,e=new m(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:\"apexcharts-ycrosshairs\"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:\"apexcharts-ycrosshairs-hidden\"}),t.globals.dom.elGraphical.add(r)}}]),t}(),K=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"checkResponsiveConfig\",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new E({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var n=y.extendArrayProps(r,i.globals.initialConfig,i);t=x.extend(n,t),t=x.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var l=0;l0&&\"function\"==typeof i.config.colors[0]&&(i.globals.colors=i.config.series.map((function(t,a){var s=i.config.colors[a];return s||(s=i.config.colors[0]),\"function\"==typeof s?(e.isColorFn=!0,s({value:i.globals.axisCharts?i.globals.series[a][0]?i.globals.series[a][0]:0:i.globals.series[a],seriesIndex:a,dataPointIndex:a,w:i})):s})))),i.globals.seriesColors.map((function(t,e){t&&(i.globals.colors[e]=t)})),i.config.theme.monochrome.enabled){var s=[],r=i.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(r=i.globals.series[0].length*i.globals.series.length);for(var o=i.config.theme.monochrome.color,n=1/(r/i.config.theme.monochrome.shadeIntensity),l=i.config.theme.monochrome.shadeTo,h=0,c=0;c2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||\"heatmap\"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.lengtht.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:\"getLargestStringFromMultiArr\",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,u(a));i=e[a.indexOf(s)]}return i}}]),t}(),at=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:\"getxAxisLabelsCoords\",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends=\"left\"!==e.config.legend.position&&\"right\"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=x.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(o=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var n=new T(this.dCtx.ctx),l=r;r=n.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new I(this.dCtx.ctx).formatDate,w:e}),o=n.xLabelFormat(s,o,l,{i:void 0,dateFormatter:new I(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||\"\"===String(r).trim())&&(o=r=\"1\");var h=new m(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==o&&(d=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,\"rotate(\".concat(e.config.xaxis.labels.rotate,\" 0 0)\"),!1)};c=g(r),r!==o&&(d=g(o)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:\"getxAxisGroupLabelsCoords\",value:function(){var t,e=this.w;if(!e.globals.hasXaxisGroups)return{width:0,height:0};var i,a=(null===(t=e.config.xaxis.group.style)||void 0===t?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.globals.groups.map((function(t){return t.title})),r=x.getLargestStringFromArr(s),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),n=new m(this.dCtx.ctx),l=n.getTextRects(r,a),h=l;return r!==o&&(h=n.getTextRects(o,a)),i={width:l.width>=h.width?l.width:h.width,height:l.height>=h.height?l.height:h.height},e.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:\"getxAxisTitleCoords\",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new m(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:\"getxAxisTimeScaleLabelsCoords\",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error(\"You have possibly supplied invalid Date format. Please supply a valid JavaScript Date\"),0):t.length>e.length?t:e}),0);return 1.05*(t=new m(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:\"additionalPaddingXLabels\",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,o=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var n=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,n){s.yaxis.length>1&&function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)}(n)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var n=e.dCtx.timescaleLabels[0],l=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+o/1.75-e.dCtx.yAxisWidthRight,h=n.position-o/1.75+e.dCtx.yAxisWidthLeft,c=\"right\"===i.config.legend.position&&e.dCtx.lgRect.width>0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-c&&(a.skipLastTimelinelabel=!0),h<-(t.show&&!t.floating||\"bar\"!==s.chart.type&&\"candlestick\"!==s.chart.type&&\"rangeBar\"!==s.chart.type&&\"boxPlot\"!==s.chart.type?10:o/1.75)&&(a.skipFirstTimelinelabel=!0)}else\"datetime\"===r?e.dCtx.gridPad.rightString(n.niceMax).length?c:n.niceMax,g=h(d,{seriesIndex:o,dataPointIndex:-1,w:e}),u=g;if(void 0!==g&&0!==g.length||(g=d),e.globals.isBarHorizontal){a=0;var p=e.globals.labels.slice();g=h(g=x.getLargestStringFromArr(p),{seriesIndex:o,dataPointIndex:-1,w:e}),u=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,p)}var f=new m(t.dCtx.ctx),b=\"rotate(\".concat(r.labels.rotate,\" 0 0)\"),v=f.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1),y=v;g!==u&&(y=f.getTextRects(u,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1)),i.push({width:(l>y.width||l>v.width?l:y.width>v.width?y.width:v.width)+a,height:y.height>v.height?y.height:v.height})}else i.push({width:0,height:0})})),i}},{key:\"getyAxisTitleCoords\",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new m(t.dCtx.ctx),r=\"rotate(\".concat(e.title.rotate,\" 0 0)\"),o=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})})),i}},{key:\"getTotalYAxisWidth\",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new B(this.dCtx.ctx),o=function(o,n){var l=t.config.yaxis[n].floating,h=0;o.width>0&&!l?(h=o.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(n)&&(h=h-o.width-s)):h=l||r.isYAxisHidden(n)?0:5,t.config.yaxis[n].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){o(t,e)})),t.globals.yTitleCoords.map((function(t,e){o(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),rt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:\"gridPadForColumnsInNumericAxis\",value:function(t){var e=this.w;if(e.globals.noData||e.globals.allSeriesCollapsed)return 0;var i=function(t){return\"bar\"===t||\"rangeBar\"===t||\"candlestick\"===t||\"boxPlot\"===t},a=e.config.chart.type,s=0,r=i(a)?e.config.series.length:1;if(e.globals.comboBarCount>0&&(r=e.globals.comboBarCount),e.globals.collapsedSeries.forEach((function(t){i(t.type)&&(r-=1)})),e.config.chart.stacked&&(r=1),(i(a)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&r>0){var o,n,l=Math.abs(e.globals.initialMaxX-e.globals.initialMinX);l<=3&&(l=e.globals.dataPoints),o=l/t,e.globals.minXDiff&&e.globals.minXDiff/o>0&&(n=e.globals.minXDiff/o),n>t/2&&(n/=2),(s=n/r*parseInt(e.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,e.globals.barPadForNumericAxis=s}return s}},{key:\"gridPadFortitleSubtitle\",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;[\"title\",\"subtitle\"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||\"bottom\"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords(\"title\"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords(\"subtitle\");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:\"setGridXPosForDualYAxis\",value:function(t,e){var i=this.w,a=new B(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),ot=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new it(this),this.dimYAxis=new st(this),this.dimXAxis=new at(this),this.dimGrid=new rt(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return r(t,[{key:\"plotCoords\",value:function(){var t=this,e=this.w,i=e.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.isSparkline&&(e.config.markers.discrete.length>0||e.config.markers.size>0)&&Object.entries(this.gridPad).forEach((function(e){var i=g(e,2),a=i[0],s=i[1];t.gridPad[a]=Math.max(s,t.w.globals.markers.largestSize/1.5)})),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var a=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*a,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(a>0?a+4:0),i.translateY=i.translateY+this.gridPad.top}},{key:\"setDimensionsForAxisCharts\",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),o=this.dimXAxis.getxAxisGroupLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,n,o),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var l=this.yAxisWidth,h=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-n.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var c=10;(\"radar\"===e.config.chart.type||this.isSparkline)&&(l=0,h=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||\"treemap\"===e.config.chart.type)&&(l=0,h=0,c=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var d=function(){i.translateX=l,i.gridHeight=i.svgHeight-t.lgRect.height-h-(t.isSparkline||\"treemap\"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-l};switch(\"top\"===e.config.xaxis.position&&(c=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case\"bottom\":i.translateY=c,d();break;case\"top\":i.translateY=this.lgRect.height+c,d();break;case\"left\":i.translateY=c,i.translateX=this.lgRect.width+l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l;break;case\"right\":i.translateY=c,i.translateX=l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-5;break;default:throw new Error(\"Legend position not supported\")}this.dimGrid.setGridXPosForDualYAxis(s,a),new q(this.ctx).setYAxisXPosition(a,s)}},{key:\"setDimensionsForNonAxisCharts\",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s=\"pie\"===i.chart.type||\"polarArea\"===i.chart.type||\"donut\"===i.chart.type?\"pie\":\"radialBar\",r=i.plotOptions[s].offsetY,o=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return e.gridHeight=e.svgHeight-i.grid.padding.left+i.grid.padding.right,e.gridWidth=e.gridHeight,e.translateY=r,void(e.translateX=o+(e.svgWidth-e.gridWidth)/2);switch(i.legend.position){case\"bottom\":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case\"top\":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case\"left\":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight=\"auto\"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+this.lgRect.width+a;break;case\"right\":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight=\"auto\"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+10;break;default:throw new Error(\"Legend position not supported\")}}},{key:\"conditionalChecksForAxisCoords\",value:function(t,e,i){var a=this.w,s=a.globals.hasXaxisGroups?2:1,r=i.height+t.height+e.height,o=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,n=a.globals.rotateXLabels?22:10,l=a.globals.rotateXLabels&&\"bottom\"===a.config.legend.position?10:0;this.xAxisHeight=r*o+s*n+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeightc&&(this.yAxisWidth=c)}}]),t}(),nt=function(){function t(e){a(this,t),this.w=e.w,this.lgCtx=e}return r(t,[{key:\"getLegendStyles\",value:function(){var t=document.createElement(\"style\");t.setAttribute(\"type\",\"text/css\");var e=document.createTextNode(\"\\t\\n \\t\\n .apexcharts-legend {\\t\\n display: flex;\\t\\n overflow: auto;\\t\\n padding: 0 10px;\\t\\n }\\t\\n .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\\t\\n flex-wrap: wrap\\t\\n }\\t\\n .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\\t\\n flex-direction: column;\\t\\n bottom: 0;\\t\\n }\\t\\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\\t\\n justify-content: flex-start;\\t\\n }\\t\\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\\t\\n justify-content: center; \\t\\n }\\t\\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\\t\\n justify-content: flex-end;\\t\\n }\\t\\n .apexcharts-legend-series {\\t\\n cursor: pointer;\\t\\n line-height: normal;\\t\\n }\\t\\n .apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{\\t\\n display: flex;\\t\\n align-items: center;\\t\\n }\\t\\n .apexcharts-legend-text {\\t\\n position: relative;\\t\\n font-size: 14px;\\t\\n }\\t\\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\\t\\n pointer-events: none;\\t\\n }\\t\\n .apexcharts-legend-marker {\\t\\n position: relative;\\t\\n display: inline-block;\\t\\n cursor: pointer;\\t\\n margin-right: 3px;\\t\\n border-style: solid;\\n }\\t\\n \\t\\n .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\\t\\n display: inline-block;\\t\\n }\\t\\n .apexcharts-legend-series.apexcharts-no-click {\\t\\n cursor: auto;\\t\\n }\\t\\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\\t\\n display: none !important;\\t\\n }\\t\\n .apexcharts-inactive-legend {\\t\\n opacity: 0.45;\\t\\n }\");return t.appendChild(e),t}},{key:\"getLegendBBox\",value:function(){var t=this.w.globals.dom.baseEl.querySelector(\".apexcharts-legend\").getBoundingClientRect(),e=t.width;return{clwh:t.height,clww:e}}},{key:\"appendToForeignObject\",value:function(){this.w.globals.dom.elLegendForeign.appendChild(this.getLegendStyles())}},{key:\"toggleDataSeries\",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||\"radialBar\"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(\".apexcharts-series[data\\\\:realIndex='\".concat(t,\"']\")),r=parseInt(s.getAttribute(\"data:realIndex\"),10)):(s=a.globals.dom.baseEl.querySelector(\".apexcharts-series[rel='\".concat(t+1,\"']\")),r=parseInt(s.getAttribute(\"rel\"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var o=a.globals.dom.Paper.select(\" .apexcharts-series[rel='\".concat(t+1,\"'] path\")),n=a.config.chart.type;if(\"pie\"===n||\"polarArea\"===n||\"donut\"===n){var l=a.config.plotOptions.pie.donut.labels;new m(this.lgCtx.ctx).pathMouseDown(o.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node,l)}o.fire(\"click\")}}},{key:\"hideSeries\",value:function(t){var e=t.seriesEl,i=t.realIndex,a=this.w,s=x.clone(a.config.series);if(a.globals.axisCharts){var r=!1;if(a.config.yaxis[i]&&a.config.yaxis[i].show&&a.config.yaxis[i].showAlways&&(r=!0,a.globals.ancillaryCollapsedSeriesIndices.indexOf(i)<0&&(a.globals.ancillaryCollapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split(\"-\")[1]}),a.globals.ancillaryCollapsedSeriesIndices.push(i))),!r){a.globals.collapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split(\"-\")[1]}),a.globals.collapsedSeriesIndices.push(i);var o=a.globals.risingSeries.indexOf(i);a.globals.risingSeries.splice(o,1)}}else a.globals.collapsedSeries.push({index:i,data:s[i]}),a.globals.collapsedSeriesIndices.push(i);for(var n=e.childNodes,l=0;l0){for(var r=0;r-1&&(t[a].data=[])})):t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a]=0)})),t}}]),t}(),lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this),this.isBarsDistributed=\"bar\"===this.w.config.chart.type&&this.w.config.plotOptions.bar.distributed&&1===this.w.config.series.length,this.legendHelpers=new nt(this)}return r(t,[{key:\"init\",value:function(){var t=this.w,e=t.globals,i=t.config;if((i.legend.showForSingleSeries&&1===e.series.length||this.isBarsDistributed||e.series.length>1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),x.isIE11()?document.getElementsByTagName(\"head\")[0].appendChild(this.legendHelpers.getLegendStyles()):this.legendHelpers.appendToForeignObject(),\"bottom\"===i.legend.position||\"top\"===i.legend.position?this.legendAlignHorizontal():\"right\"!==i.legend.position&&\"left\"!==i.legend.position||this.legendAlignVertical()}}},{key:\"drawLegends\",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.globals.colors.slice();if(\"heatmap\"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+\" - \"+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,n=e.config.legend.inverseOrder,l=n?a.length-1:0;n?l>=0:l<=a.length-1;n?l--:l++){var h=o(a[l],{seriesIndex:l,w:e}),c=!1,d=!1;if(e.globals.collapsedSeries.length>0)for(var g=0;g0)for(var u=0;u0?l-10:0)+(h>0?h-10:0)}a.style.position=\"absolute\",r=r+t+i.config.legend.offsetX,o=o+e+i.config.legend.offsetY,a.style.left=r+\"px\",a.style.top=o+\"px\",\"bottom\"===i.config.legend.position?(a.style.top=\"auto\",a.style.bottom=5-i.config.legend.offsetY+\"px\"):\"right\"===i.config.legend.position&&(a.style.left=\"auto\",a.style.right=25+i.config.legend.offsetX+\"px\");[\"width\",\"height\"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+\"px\")}))}},{key:\"legendAlignHorizontal\",value:function(){var t=this.w;t.globals.dom.elLegendWrap.style.right=0;var e=this.legendHelpers.getLegendBBox(),i=new ot(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords(\"title\"),s=i.dimHelpers.getTitleSubtitleCoords(\"subtitle\"),r=0;\"bottom\"===t.config.legend.position?r=-e.clwh/1.8:\"top\"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:\"legendAlignVertical\",value:function(){var t=this.w,e=this.legendHelpers.getLegendBBox(),i=0;\"left\"===t.config.legend.position&&(i=20),\"right\"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:\"onLegendHovered\",value:function(t){var e=this.w,i=t.target.classList.contains(\"apexcharts-legend-text\")||t.target.classList.contains(\"apexcharts-legend-marker\");if(\"heatmap\"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute(\"rel\"),10)-1;this.ctx.events.fireEvent(\"legendHover\",[this.ctx,a,this.w]),new N(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains(\"apexcharts-inactive-legend\")&&i&&new N(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:\"onLegendClick\",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains(\"apexcharts-legend-text\")||t.target.classList.contains(\"apexcharts-legend-marker\"))){var i=parseInt(t.target.getAttribute(\"rel\"),10)-1,a=\"true\"===t.target.getAttribute(\"data:collapsed\"),s=this.w.config.chart.events.legendClick;\"function\"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent(\"legendClick\",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;\"function\"==typeof r&&t.target.classList.contains(\"apexcharts-legend-marker\")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent(\"legendMarkerClick\",[this.ctx,i,this.w])),\"treemap\"!==e.config.chart.type&&\"heatmap\"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),ht=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.ev=this.w.config.chart.events,this.selectedClass=\"apexcharts-selected\",this.localeValues=this.w.globals.locale.toolbar,this.minX=i.globals.minX,this.maxX=i.globals.maxX}return r(t,[{key:\"createToolbar\",value:function(){var t=this,e=this.w,i=function(){return document.createElement(\"div\")},a=i();if(a.setAttribute(\"class\",\"apexcharts-toolbar\"),a.style.top=e.config.chart.toolbar.offsetY+\"px\",a.style.right=3-e.config.chart.toolbar.offsetX+\"px\",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s\\n \\n \\n\\n'),o(\"zoomOut\",this.elZoomOut,'\\n \\n \\n\\n');var n=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:\"zoom\"===i?t.elZoom:t.elSelection,icon:\"string\"==typeof t.t[i]?t.t[i]:\"zoom\"===i?'\\n \\n \\n \\n':'\\n \\n \\n',title:t.localeValues[\"zoom\"===i?\"selectionZoom\":\"selection\"],class:e.globals.isTouchDevice?\"apexcharts-element-hidden\":\"apexcharts-\".concat(i,\"-icon\")})};n(\"zoom\"),n(\"selection\"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:\"string\"==typeof this.t.pan?this.t.pan:'\\n \\n \\n \\n \\n \\n \\n \\n',title:this.localeValues.pan,class:e.globals.isTouchDevice?\"apexcharts-element-hidden\":\"apexcharts-pan-icon\"}),o(\"reset\",this.elZoomReset,'\\n \\n \\n'),this.t.download&&r.push({el:this.elMenuIcon,icon:\"string\"==typeof this.t.download?this.t.download:'',title:this.localeValues.menu,class:\"apexcharts-menu-icon\"});for(var l=0;l0&&e.height>0&&this.slDraggableRect.selectize({points:\"l, r\",pointSize:8,pointType:\"rect\"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on(\"resizing\",this.selectionDragging.bind(this,\"resizing\"))}}},{key:\"preselectedSelection\",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),\"function\"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:\"drawSelectionRect\",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,o=void 0===r?0:r,n=t.translateY,l=void 0===n?0:n,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:\"translate(\"+o+\", \"+l+\")\"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,\"fill-opacity\":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,\"stroke-width\":h.config.chart.zoom.zoomedArea.stroke.width,\"stroke-opacity\":h.config.chart.zoom.zoomedArea.stroke.opacity}),m.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,\"fill-opacity\":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,\"stroke-width\":h.config.chart.selection.stroke.width,\"stroke-dasharray\":h.config.chart.selection.stroke.dashArray,\"stroke-opacity\":h.config.chart.selection.stroke.opacity}),m.setAttrs(d.node,g))}}},{key:\"hideSelectionRect\",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:\"selectionDrawing\",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),o=s.startX-1,n=s.startY,l=!1,h=!1,c=s.clientX-r.left-o,d=s.clientY-r.top-n,g={};return Math.abs(c+o)>a.globals.gridWidth?c=a.globals.gridWidth-o:s.clientX-r.left<0&&(c=o),o>s.clientX-r.left&&(l=!0,c=Math.abs(c)),n>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g=\"x\"===i?{x:l?o-c:o,y:0,width:c,height:a.globals.gridHeight}:\"y\"===i?{x:0,y:h?n-d:n,width:a.globals.gridWidth,height:d}:{x:l?o-c:o,y:h?n-d:n,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging(\"resizing\"),g}},{key:\"selectionDragging\",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,o=0;\"resizing\"===t&&(o=30);var n=function(t){return parseFloat(r.node.getAttribute(t))},l={x:n(\"x\"),y:n(\"y\"),width:n(\"width\"),height:n(\"height\")};a.globals.selection=l,\"function\"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t=i.gridRect.getBoundingClientRect(),e=r.node.getBoundingClientRect(),o={xaxis:{min:a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,max:a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio},yaxis:{min:a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],max:a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0]}};a.config.chart.events.selection(i.ctx,o),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,o)}),o))}},{key:\"selectionDrawn\",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var n=s.startX;s.startX=s.endX,s.endX=n}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isRangeBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=x.clone(a.globals.initialConfig.yaxis),p=x.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),\"xy\"!==i&&\"x\"!==i||(p={min:h,max:c}),\"xy\"!==i&&\"y\"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),a.config.chart.zoom.autoScaleYaxis){var f=new _(s.ctx);u=f.autoScaleY(s.ctx,u,{xaxis:p})}if(o){var b=o.getBeforeZoomRange(p,u);b&&(p=b.xaxis?b.xaxis:p,u=b.yaxis?b.yaxis:u)}var v={xaxis:p};a.config.chart.group||(v.yaxis=u),s.ctx.updateHelpers._updateOptions(v,!1,s.w.config.chart.animations.dynamicAnimation.enabled),\"function\"==typeof a.config.chart.events.zoomed&&o.zoomCallback(p,u)}else if(a.globals.selectionEnabled){var m,y=null;m={min:h,max:c},\"xy\"!==i&&\"y\"!==i||(y=x.clone(a.config.yaxis)).forEach((function(t,e){y[e].min=g[e],y[e].max=d[e]})),a.globals.selection=s.selection,\"function\"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:m,yaxis:y})}}},{key:\"panDragging\",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection=\"left\":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection=\"right\":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection=\"up\":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection=\"down\")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var o=i.globals.isRangeBar?i.globals.minY:i.globals.minX,n=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(o,n)}},{key:\"delayedPanScrolled\",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;\"left\"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):\"right\"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:\"panScrolled\",value:function(t,e){var i=this.w,a=this.xyRatios,s=x.clone(i.globals.initialConfig.yaxis),r=a.xRatio,o=i.globals.minX,n=i.globals.maxX;i.globals.isRangeBar&&(r=a.invertedYRatio,o=i.globals.minY,n=i.globals.maxY),\"left\"===this.moveDirection?(t=o+i.globals.gridWidth/15*r,e=n+i.globals.gridWidth/15*r):\"right\"===this.moveDirection&&(t=o-i.globals.gridWidth/15*r,e=n-i.globals.gridWidth/15*r),i.globals.isRangeBar||(ti.globals.initialMaxX)&&(t=o,e=n);var l={min:t,max:e};i.config.chart.zoom.autoScaleYaxis&&(s=new _(this.ctx).autoScaleY(this.ctx,s,{xaxis:l}));var h={xaxis:{min:t,max:e}};i.config.chart.group||(h.yaxis=s),this.updateScrolledChart(h,t,e)}},{key:\"updateScrolledChart\",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),\"function\"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),i}(),dt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return r(t,[{key:\"getNearestValues\",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,o=i.getBoundingClientRect(),n=o.width,l=o.height,h=n/(r.globals.dataPoints-1),c=l/r.globals.dataPoints,d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(h=n/r.globals.dataPoints);var g=a-o.left-r.globals.barPadForNumericAxis,u=s-o.top;g<0||u<0||g>n||u>l?(e.classList.remove(\"hovering-zoom\"),e.classList.remove(\"hovering-pan\")):r.globals.zoomEnabled?(e.classList.remove(\"hovering-pan\"),e.classList.add(\"hovering-zoom\")):r.globals.panEnabled&&(e.classList.remove(\"hovering-zoom\"),e.classList.add(\"hovering-pan\"));var p=Math.round(g/h),f=Math.floor(u/c);d&&!r.config.xaxis.convertedCatToNumeric&&(p=Math.ceil(g/h),p-=1);var b=null,v=null,m=[],y=[];if(r.globals.seriesXvalues.forEach((function(t){m.push([t[0]+1e-6].concat(t))})),r.globals.seriesYvalues.forEach((function(t){y.push([t[0]+1e-6].concat(t))})),m=m.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),y=y.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),r.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),k=g*(w.width/n),A=u*(w.height/l);b=(v=this.closestInMultiArray(k,A,m,y)).index,p=v.j,null!==b&&(m=r.globals.seriesXvalues[b],p=(v=this.closestInArray(k,m)).index)}return r.globals.capturedSeriesIndex=null===b?-1:b,(!p||p<1)&&(p=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=f:r.globals.capturedDataPointIndex=p,{capturedSeries:b,j:r.globals.isBarHorizontal?f:p,hoverX:g,hoverY:u}}},{key:\"closestInMultiArray\",value:function(t,e,i,a){var s=this.w,r=0,o=null,n=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):o=0;var l=i[r][0],h=Math.abs(t-l);if(i.forEach((function(e){e.forEach((function(e,i){var a=Math.abs(t-e);a0?e:-1})),s=0;s0)for(var a=0;a *\")):this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers-wrap > *\")}},{key:\"getAllMarkers\",value:function(){var t=this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers-wrap\");(t=u(t)).sort((function(t,e){var i=Number(t.getAttribute(\"data:realIndex\")),a=Number(e.getAttribute(\"data:realIndex\"));return ai?-1:0}));var e=[];return t.forEach((function(t){e.push(t.querySelector(\".apexcharts-marker\"))})),e}},{key:\"hasMarkers\",value:function(t){return this.getElMarkers(t).length>0}},{key:\"getElBars\",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series\")}},{key:\"hasBars\",value:function(){return this.getElBars().length>0}},{key:\"getHoverMarkerSize\",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:\"toggleAllTooltipSeriesGroups\",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-tooltip-series-group\"));for(var a=i.allTooltipSeriesGroups,s=0;s\",e=\"
    \";d.forEach((function(i,a){t+='
    ').concat(i.attrs.name,\"
    \"),e+=\"
    \".concat(i.val,\"
    \")})),v.innerHTML=t+\"
    \",m.innerHTML=e+\"
    \"};o?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?y():(v.innerHTML=\"\",m.innerHTML=\"\"):y()}else v.innerHTML=\"\",m.innerHTML=\"\";null!==p&&(a[e].querySelector(\".apexcharts-tooltip-text-z-label\").innerHTML=l.config.tooltip.z.title,a[e].querySelector(\".apexcharts-tooltip-text-z-value\").innerHTML=void 0!==p?p:\"\");o&&f[0]&&(null==c||l.globals.ancillaryCollapsedSeriesIndices.indexOf(e)>-1||l.globals.collapsedSeriesIndices.indexOf(e)>-1?f[0].parentNode.style.display=\"none\":f[0].parentNode.style.display=l.config.tooltip.items.display)}},{key:\"toggleActiveInactiveSeries\",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups(\"enable\");else{this.tooltipUtil.toggleAllTooltipSeriesGroups(\"disable\");var i=e.globals.dom.baseEl.querySelector(\".apexcharts-tooltip-series-group\");i&&(i.classList.add(\"apexcharts-active\"),i.style.display=e.config.tooltip.items.display)}}},{key:\"getValuesToPrint\",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r=\"\",o=\"\",n=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&\"treemap\"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:\"\";var d=r;a.globals.isXNumeric&&\"datetime\"===a.config.xaxis.type?r=new T(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new I(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(n=c(a.globals.seriesZ[e][i],a)),o=\"function\"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(\" \"):l,xVal:Array.isArray(r)?r.join(\" \"):r,xAxisTTVal:Array.isArray(o)?o.join(\" \"):o,zVal:n}}},{key:\"handleCustomTooltip\",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,o=this.ttCtx.getElTooltip(),n=r.config.tooltip.custom;Array.isArray(n)&&n[e]&&(n=n[e]),o.innerHTML=n({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),ut=function(){function t(e){a(this,t),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return r(t,[{key:\"moveXCrosshairs\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,o=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/o*e),null===s||a.globals.isBarHorizontal||(s.setAttribute(\"x\",r),s.setAttribute(\"x1\",r),s.setAttribute(\"x2\",r),s.setAttribute(\"y2\",a.globals.gridHeight),s.classList.add(\"apexcharts-active\")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var n=r;\"tickWidth\"!==a.config.xaxis.crosshairs.width&&\"barWidth\"!==a.config.xaxis.crosshairs.width||(n=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(n)}}},{key:\"moveYCrosshairs\",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&m.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&m.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:\"moveXAxisTooltip\",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip&&0!==i.xcrosshairsWidth){i.xaxisTooltip.classList.add(\"apexcharts-active\");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new m(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+\"px\",i.xaxisTooltip.style.left=t+\"px\",i.xaxisTooltip.style.top=a+\"px\"}}}},{key:\"moveYAxisTooltip\",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-yaxistooltip\"));var a=parseInt(i.ycrosshairsHidden.getAttribute(\"y1\"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,o=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(o-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add(\"apexcharts-active\"),i.yaxisTTEls[t].style.top=s+\"px\",i.yaxisTTEls[t].style.left=o+e.config.yaxis[t].tooltip.offsetX+\"px\"):i.yaxisTTEls[t].classList.remove(\"apexcharts-active\")}},{key:\"moveTooltip\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),o=s.tooltipRect,n=null!==i?parseFloat(i):1,l=parseFloat(t)+n+5,h=parseFloat(e)+n/2;if(l>a.globals.gridWidth/2&&(l=l-o.ttWidth-n-10),l>a.globals.gridWidth-o.ttWidth-10&&(l=a.globals.gridWidth-o.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid().getBoundingClientRect();(l=s.e.clientX-c.left)>a.globals.gridWidth/2&&(l-=s.tooltipRect.ttWidth),(h=s.e.clientY+a.globals.translateY-c.top)>a.globals.gridHeight/2&&(h-=s.tooltipRect.ttHeight)}else a.globals.isBarHorizontal||o.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-o.ttHeight+a.globals.translateY);isNaN(l)||(l+=a.globals.translateX,r.style.left=l+\"px\",r.style.top=h+\"px\")}},{key:\"moveMarkers\",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(\" .apexcharts-series[data\\\\:realIndex='\".concat(t,\"'] .apexcharts-marker\")),r=0;r0&&(h.setAttribute(\"r\",n),h.setAttribute(\"cx\",i),h.setAttribute(\"cy\",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,n)}}},{key:\"moveDynamicPointsOnHover\",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,o=a.globals.pointsArray;e=new N(this.ctx).getActiveConfigSeriesIndex(\"asc\",[\"line\",\"area\",\"scatter\",\"bubble\"]);var n=i.tooltipUtil.getHoverMarkerSize(e);o[e]&&(s=o[e][t][0],r=o[e][t][1]);var l=i.tooltipUtil.getAllMarkers();if(null!==l)for(var h=0;h0?(l[h]&&l[h].setAttribute(\"r\",n),l[h]&&l[h].setAttribute(\"cy\",d)):l[h]&&l[h].setAttribute(\"r\",0)}}this.moveXCrosshairs(s),i.fixedTooltip||this.moveTooltip(s,r||a.globals.gridHeight,n)}},{key:\"moveStickyTooltipOverBars\",value:function(t,e){var i=this.w,a=this.ttCtx,s=i.globals.columnSeries?i.globals.columnSeries.length:i.globals.series.length,r=s>=2&&s%2==0?Math.floor(s/2):Math.floor(s/2)+1;i.globals.isBarHorizontal&&(r=new N(this.ctx).getActiveConfigSeriesIndex(\"desc\")+1);var o=i.globals.dom.baseEl.querySelector(\".apexcharts-bar-series .apexcharts-series[rel='\".concat(r,\"'] path[j='\").concat(t,\"'], .apexcharts-candlestick-series .apexcharts-series[rel='\").concat(r,\"'] path[j='\").concat(t,\"'], .apexcharts-boxPlot-series .apexcharts-series[rel='\").concat(r,\"'] path[j='\").concat(t,\"'], .apexcharts-rangebar-series .apexcharts-series[rel='\").concat(r,\"'] path[j='\").concat(t,\"']\"));o||\"number\"!=typeof e||(o=i.globals.dom.baseEl.querySelector(\".apexcharts-bar-series .apexcharts-series[data\\\\:realIndex='\".concat(e,\"'] path[j='\").concat(t,\"'],\\n .apexcharts-candlestick-series .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] path[j='\").concat(t,\"'],\\n .apexcharts-boxPlot-series .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] path[j='\").concat(t,\"'],\\n .apexcharts-rangebar-series .apexcharts-series[data\\\\:realIndex='\").concat(e,\"'] path[j='\").concat(t,\"']\")));var n=o?parseFloat(o.getAttribute(\"cx\")):0,l=o?parseFloat(o.getAttribute(\"cy\")):0,h=o?parseFloat(o.getAttribute(\"barWidth\")):0,c=a.getElGrid().getBoundingClientRect(),d=o&&(o.classList.contains(\"apexcharts-candlestick-area\")||o.classList.contains(\"apexcharts-boxPlot-area\"));i.globals.isXNumeric?(o&&!d&&(n-=s%2!=0?h/2:0),o&&d&&i.globals.comboCharts&&(n-=h/2)):i.globals.isBarHorizontal||(n=a.xAxisTicksPositions[t-1]+a.dataPointsDividedWidth/2,isNaN(n)&&(n=a.xAxisTicksPositions[t]-a.dataPointsDividedWidth/2)),i.globals.isBarHorizontal?l-=a.tooltipRect.ttHeight:i.config.tooltip.followCursor?l=a.e.clientY-c.top-a.tooltipRect.ttHeight/2:l+a.tooltipRect.ttHeight+15>i.globals.gridHeight&&(l=i.globals.gridHeight),i.globals.isBarHorizontal||this.moveXCrosshairs(n),a.fixedTooltip||this.moveTooltip(n,l||i.globals.gridHeight)}}]),t}(),pt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new ut(e)}return r(t,[{key:\"drawDynamicPoints\",value:function(){var t=this.w,e=new m(this.ctx),i=new H(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(\".apexcharts-series\");a=u(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute(\"data:realIndex\"))-parseFloat(e.getAttribute(\"data:realIndex\"))}));for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;\"bubble\"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute(\"cx\"),o=e.getAttribute(\"cy\");if(null!==i&&null!==a&&(r=i,o=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if(\"radar\"===s.config.chart.type){var n=this.ttCtx.getElGrid().getBoundingClientRect();r=this.ttCtx.e.clientX-n.left}this.tooltipPosition.moveTooltip(r,o,s.config.markers.hover.size)}}},{key:\"enlargePoints\",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker\"),o=e.config.markers.hover.size,n=0;n=0?t[e].setAttribute(\"r\",i):t[e].setAttribute(\"r\",0)}}}]),t}(),ft=function(){function t(e){a(this,t),this.w=e.w;var i=this.w;this.ttCtx=e,this.isVerticalGroupedRangeBar=!i.globals.isBarHorizontal&&\"rangeBar\"===i.config.chart.type&&i.config.plotOptions.bar.rangeBarGroupRows}return r(t,[{key:\"getAttr\",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:\"handleHeatTreeTooltip\",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,o=this.ttCtx,n=this.w;if(e.target.classList.contains(\"apexcharts-\".concat(r,\"-rect\"))){var l=this.getAttr(e,\"i\"),h=this.getAttr(e,\"j\"),c=this.getAttr(e,\"cx\"),d=this.getAttr(e,\"cy\"),g=this.getAttr(e,\"width\"),u=this.getAttr(e,\"height\");if(o.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),n.globals.capturedSeriesIndex=l,n.globals.capturedDataPointIndex=h,a=c+o.tooltipRect.ttWidth/2+g,s=d+o.tooltipRect.ttHeight/2-u/2,o.tooltipPosition.moveXCrosshairs(c+g/2),a>n.globals.gridWidth/2&&(a=c-o.tooltipRect.ttWidth/2+g),o.w.config.tooltip.followCursor){var p=n.globals.dom.elWrap.getBoundingClientRect();a=n.globals.clientX-p.left-(a>n.globals.gridWidth/2?o.tooltipRect.ttWidth:0),s=n.globals.clientY-p.top-(s>n.globals.gridHeight/2?o.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:\"handleMarkerTooltip\",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,o=t.y,n=this.w,l=this.ttCtx;if(a.target.classList.contains(\"apexcharts-marker\")){var h=parseInt(s.paths.getAttribute(\"cx\"),10),c=parseInt(s.paths.getAttribute(\"cy\"),10),d=parseFloat(s.paths.getAttribute(\"val\"));if(i=parseInt(s.paths.getAttribute(\"rel\"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute(\"rel\"),10)-1,l.intersect){var g=x.findAncestor(s.paths,\"apexcharts-series\");g&&(e=parseInt(g.getAttribute(\"data:realIndex\"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&n.config.tooltip.shared,e:a}),\"mouseup\"===a.type&&l.markerClick(a,e,i),n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=i,r=h,o=c+n.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();o=l.e.clientY+n.globals.translateY-u.top}d<0&&(o=c),l.marker.enlargeCurrentPoint(i,s.paths,r,o)}return{x:r,y:o}}},{key:\"handleBarTooltip\",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=this.ttCtx,n=o.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.barHeight,u=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=u,r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)&&(c=r.globals.svgHeight-o.tooltipRect.ttHeight);var p=parseInt(s.paths.parentNode.getAttribute(\"data:realIndex\"),10),f=r.globals.isMultipleYAxis?r.config.yaxis[p]&&r.config.yaxis[p].reversed:r.config.yaxis[0].reversed;if(h+o.tooltipRect.ttWidth>r.globals.gridWidth&&!f?h-=o.tooltipRect.ttWidth:h<0&&(h=0),o.w.config.tooltip.followCursor){var x=o.getElGrid().getBoundingClientRect();c=o.e.clientY-x.top}null===o.tooltip&&(o.tooltip=r.globals.dom.baseEl.querySelector(\".apexcharts-tooltip\")),r.config.tooltip.shared||(r.globals.comboBarCount>0?o.tooltipPosition.moveXCrosshairs(l+i/2):o.tooltipPosition.moveXCrosshairs(l)),!o.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars())&&(f&&(h-=o.tooltipRect.ttWidth)<0&&(h=0),!f||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||(c=c+g-2*(r.globals.series[e][u]<0?g:0)),c=c+r.globals.translateY-o.tooltipRect.ttHeight/2,n.style.left=h+r.globals.translateX+\"px\",n.style.top=c+\"px\")}},{key:\"getBarTooltipXY\",value:function(t){var e=this,i=t.e,a=t.opt,s=this.w,r=null,o=this.ttCtx,n=0,l=0,h=0,c=0,d=0,g=i.target.classList;if(g.contains(\"apexcharts-bar-area\")||g.contains(\"apexcharts-candlestick-area\")||g.contains(\"apexcharts-boxPlot-area\")||g.contains(\"apexcharts-rangebar-area\")){var u=i.target,p=u.getBoundingClientRect(),f=a.elGrid.getBoundingClientRect(),x=p.height;d=p.height;var b=p.width,v=parseInt(u.getAttribute(\"cx\"),10),m=parseInt(u.getAttribute(\"cy\"),10);c=parseFloat(u.getAttribute(\"barWidth\"));var y=\"touchmove\"===i.type?i.touches[0].clientX:i.clientX;r=parseInt(u.getAttribute(\"j\"),10),n=parseInt(u.parentNode.getAttribute(\"rel\"),10)-1;var w=u.getAttribute(\"data-range-y1\"),k=u.getAttribute(\"data-range-y2\");s.globals.comboCharts&&(n=parseInt(u.parentNode.getAttribute(\"data:realIndex\"),10));var A=function(t){return s.globals.isXNumeric?v-b/2:e.isVerticalGroupedRangeBar?v+b/2:v-o.dataPointsDividedWidth+b/2},S=function(){return m-o.dataPointsDividedHeight+x/2-o.tooltipRect.ttHeight/2};o.tooltipLabels.drawSeriesTexts({ttItems:a.ttItems,i:n,j:r,y1:w?parseInt(w,10):null,y2:k?parseInt(k,10):null,shared:!o.showOnIntersect&&s.config.tooltip.shared,e:i}),s.config.tooltip.followCursor?s.globals.isBarHorizontal?(l=y-f.left+15,h=S()):(l=A(),h=i.clientY-f.top-o.tooltipRect.ttHeight/2-15):s.globals.isBarHorizontal?((l=v)0&&i.setAttribute(\"width\",e.xcrosshairsWidth)}},{key:\"handleYCrosshair\",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(\".apexcharts-ycrosshairs\"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(\".apexcharts-ycrosshairs-hidden\")}},{key:\"drawYaxisTooltipText\",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[t];if(a.yaxisTooltips[t]){var o=a.getElGrid().getBoundingClientRect(),n=(e-o.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],h=s.globals.minYArr[t]+(l-n);a.tooltipPosition.moveYCrosshairs(e-o.top),a.yaxisTooltipText[t].innerHTML=r(h),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),bt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.tConfig=i.config.tooltip,this.tooltipUtil=new dt(this),this.tooltipLabels=new gt(this),this.tooltipPosition=new ut(this),this.marker=new pt(this),this.intersect=new ft(this),this.axesTooltip=new xt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!i.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return r(t,[{key:\"getElTooltip\",value:function(t){return t||(t=this),t.w.globals.dom.baseEl?t.w.globals.dom.baseEl.querySelector(\".apexcharts-tooltip\"):null}},{key:\"getElXCrosshairs\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-xcrosshairs\")}},{key:\"getElGrid\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-grid\")}},{key:\"drawTooltip\",value:function(t){var e=this.w;this.xyRatios=t,this.isXAxisTooltipEnabled=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement(\"div\");if(i.classList.add(\"apexcharts-tooltip\"),e.config.tooltip.cssClass&&i.classList.add(e.config.tooltip.cssClass),i.classList.add(\"apexcharts-theme-\".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new V(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&\"rangeBar\"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement(\"div\"),this.tooltipTitle.classList.add(\"apexcharts-tooltip-title\"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(\".apexcharts-legend-text\"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:\"createTTElements\",value:function(t){for(var e=this,i=this.w,a=[],s=this.getElTooltip(),r=function(r){var o=document.createElement(\"div\");o.classList.add(\"apexcharts-tooltip-series-group\"),o.style.order=i.config.tooltip.inverseOrder?t-r:r+1,e.tConfig.shared&&e.tConfig.enabledOnSeries&&Array.isArray(e.tConfig.enabledOnSeries)&&e.tConfig.enabledOnSeries.indexOf(r)<0&&o.classList.add(\"apexcharts-tooltip-series-group-hidden\");var n=document.createElement(\"span\");n.classList.add(\"apexcharts-tooltip-marker\"),n.style.backgroundColor=i.globals.colors[r],o.appendChild(n);var l=document.createElement(\"div\");l.classList.add(\"apexcharts-tooltip-text\"),l.style.fontFamily=e.tConfig.style.fontFamily||i.config.chart.fontFamily,l.style.fontSize=e.tConfig.style.fontSize,[\"y\",\"goals\",\"z\"].forEach((function(t){var e=document.createElement(\"div\");e.classList.add(\"apexcharts-tooltip-\".concat(t,\"-group\"));var i=document.createElement(\"span\");i.classList.add(\"apexcharts-tooltip-text-\".concat(t,\"-label\")),e.appendChild(i);var a=document.createElement(\"span\");a.classList.add(\"apexcharts-tooltip-text-\".concat(t,\"-value\")),e.appendChild(a),l.appendChild(e)})),o.appendChild(l),s.appendChild(o),a.push(o)},o=0;o0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:\"drawFixedTooltipRect\",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,o=this.tConfig.fixed.offsetY,n=this.tConfig.fixed.position.toLowerCase();return n.indexOf(\"right\")>-1&&(r=r+t.globals.svgWidth-a+10),n.indexOf(\"bottom\")>-1&&(o=o+t.globals.svgHeight-s-10),e.style.left=r+\"px\",e.style.top=o+\"px\",{x:r,y:o,ttWidth:a,ttHeight:s}}},{key:\"addDatapointEventsListeners\",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(\".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area\");this.addPathsEventListeners(e,t)}},{key:\"addPathsEventListeners\",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};[\"mousemove\",\"mouseup\",\"touchmove\",\"mouseout\",\"touchend\"].map((function(e){return t[a].addEventListener(e,i.onSeriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s=100?this.seriesHover(t,e):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout((function(){i.seriesHover(t,e)}),100-a))}},{key:\"seriesHover\",value:function(t,e){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e:e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e:e}))}},{key:\"seriesHoverByContext\",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,o=this.getElTooltip();if(o){if(i.tooltipRect={x:0,y:0,ttWidth:o.getBoundingClientRect().width,ttHeight:o.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared)if(this.tConfig.onDatasetHover.highlightDataSeries)new N(e).toggleSeriesOnHover(s,s.target.parentNode);i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect})}}},{key:\"axisChartsTooltips\",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=s.elGrid.getBoundingClientRect(),n=\"touchmove\"===a.type?a.touches[0].clientX:a.clientX,l=\"touchmove\"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=n,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,lo.top+o.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute(\"index\"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=r.globals.xyCharts||\"bar\"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if(\"mousemove\"===a.type||\"touchmove\"===a.type||\"mouseup\"===a.type){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;null!==d&&d.classList.add(\"apexcharts-active\");var u=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&u.length&&this.ycrosshairs.classList.add(\"apexcharts-active\"),g&&!this.showOnIntersect)this.handleStickyTooltip(a,n,l,s);else if(\"heatmap\"===r.config.chart.type||\"treemap\"===r.config.chart.type){var p=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=p.x,i=p.y,c.style.left=e+\"px\",c.style.top=i+\"px\"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var f=0;fl.width)this.handleMouseOut(a);else if(null!==n)this.handleStickyCapturedSeries(t,n,a,o);else if(this.tooltipUtil.isXoverlap(o)||s.globals.isBarHorizontal){var h=s.globals.series.findIndex((function(t,e){return!s.globals.collapsedSeriesIndices.includes(e)}));this.create(t,this,h,o,a.ttItems)}}},{key:\"handleStickyCapturedSeries\",value:function(t,e,i,a){var s=this.w;if(!this.tConfig.shared&&null===s.globals.series[e][a])return void this.handleMouseOut(i);if(void 0!==s.globals.series[e][a])this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1);else if(this.tooltipUtil.isXoverlap(a)){var r=s.globals.series.findIndex((function(t,e){return!s.globals.collapsedSeriesIndices.includes(e)}));this.create(t,this,r,a,i.ttItems)}}},{key:\"deactivateHoverFilter\",value:function(){for(var t=this.w,e=new m(this.ctx),i=t.globals.dom.Paper.select(\".apexcharts-bar-area\"),a=0;a5&&void 0!==arguments[5]?arguments[5]:null,S=this.w,C=i;\"mouseup\"===t.type&&this.markerClick(t,a,s),null===A&&(A=this.tConfig.shared);var L=this.tooltipUtil.hasMarkers(a),P=this.tooltipUtil.getElBars();if(S.config.legend.tooltipHoverFormatter){var I=S.config.legend.tooltipHoverFormatter,T=Array.from(this.legendLabels);T.forEach((function(t){var e=t.getAttribute(\"data:default-text\");t.innerHTML=decodeURIComponent(e)}));for(var M=0;M0?C.marker.enlargePoints(s):C.tooltipPosition.moveDynamicPointsOnHover(s);else if(this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(P),this.barSeriesHeight>0)){var R=new m(this.ctx),H=S.globals.dom.Paper.select(\".apexcharts-bar-area[j='\".concat(s,\"']\"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(s,a);for(var D=0;Da.globals.gridHeight&&(p=a.globals.gridHeight-v)),{bcx:h,bcy:l,dataLabelsX:u,dataLabelsY:p,totalDataLabelsX:i,totalDataLabelsY:e,totalDataLabelsAnchor:\"middle\"}}},{key:\"calculateBarsDataLabelsPosition\",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.realIndex,o=t.groupIndex,n=t.bcy,l=t.barHeight,h=t.barWidth,c=t.textRects,d=t.dataLabelsX,g=t.strokeWidth,u=t.dataLabelsConfig,p=t.barDataLabelsConfig,f=t.barTotalDataLabelsConfig,x=t.offX,b=t.offY,v=e.globals.gridHeight/e.globals.dataPoints;h=Math.abs(h);var y,w,k=(n+=-1!==o?o*l:0)-(this.barCtx.isRangeBar?0:v)+l/2+c.height/2+b-3,A=\"start\",S=this.barCtx.series[a][s]<0,C=i;switch(this.barCtx.isReversed&&(C=i+h-(S?2*h:0),i=e.globals.gridWidth-h),p.position){case\"center\":d=S?C+h/2-x:Math.max(c.width/2,C-h/2)+x;break;case\"bottom\":d=S?C+h-g-Math.round(c.width/2)-x:C-h+g+Math.round(c.width/2)+x;break;case\"top\":d=S?C-g+Math.round(c.width/2)-x:C-g-Math.round(c.width/2)+x}if(this.barCtx.lastActiveBarSerieIndex===r&&f.enabled){var L=new m(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:r,j:s}),u.fontSize);S?(y=C-g+Math.round(L.width/2)-x-f.offsetX-15,A=\"end\"):y=C-g-Math.round(L.width/2)+x+f.offsetX+15,w=k+f.offsetY}return e.config.chart.stacked||(d<0?d=d+c.width+g:d+c.width/2>e.globals.gridWidth&&(d=e.globals.gridWidth-c.width-g)),{bcx:i,bcy:n,dataLabelsX:d,dataLabelsY:k,totalDataLabelsX:y,totalDataLabelsY:w,totalDataLabelsAnchor:A}}},{key:\"drawCalculatedDataLabels\",value:function(t){var i=t.x,a=t.y,s=t.val,r=t.i,o=t.j,n=t.textRects,l=t.barHeight,h=t.barWidth,c=t.dataLabelsConfig,d=this.w,g=\"rotate(0)\";\"vertical\"===d.config.plotOptions.bar.dataLabels.orientation&&(g=\"rotate(-90, \".concat(i,\", \").concat(a,\")\"));var u=new O(this.barCtx.ctx),p=new m(this.barCtx.ctx),f=c.formatter,x=null,b=d.globals.collapsedSeriesIndices.indexOf(r)>-1;if(c.enabled&&!b){x=p.group({class:\"apexcharts-data-labels\",transform:g});var v=\"\";void 0!==s&&(v=f(s,e(e({},d),{},{seriesIndex:r,dataPointIndex:o,w:d}))),!s&&d.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(v=\"\");var y=d.globals.series[r][o]<0,w=d.config.plotOptions.bar.dataLabels.position;if(\"vertical\"===d.config.plotOptions.bar.dataLabels.orientation&&(\"top\"===w&&(c.textAnchor=y?\"end\":\"start\"),\"center\"===w&&(c.textAnchor=\"middle\"),\"bottom\"===w&&(c.textAnchor=y?\"end\":\"start\")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels)hMath.abs(h)&&(v=\"\"):n.height/1.6>Math.abs(l)&&(v=\"\"));var k=e({},c);this.barCtx.isHorizontal&&s<0&&(\"start\"===c.textAnchor?k.textAnchor=\"end\":\"end\"===c.textAnchor&&(k.textAnchor=\"start\")),u.plotDataLabelsText({x:i,y:a,text:v,i:r,j:o,parent:x,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}},{key:\"drawTotalDataLabels\",value:function(t){var e,i=t.x,a=t.y,s=t.val,r=t.realIndex,o=t.textAnchor,n=t.barTotalDataLabelsConfig,l=new m(this.barCtx.ctx);return n.enabled&&void 0!==i&&void 0!==a&&this.barCtx.lastActiveBarSerieIndex===r&&(e=l.drawText({x:i,y:a,foreColor:n.style.color,text:s,textAnchor:o,fontFamily:n.style.fontFamily,fontSize:n.style.fontSize,fontWeight:n.style.fontWeight})),e}}]),t}(),mt=function(){function t(e){a(this,t),this.w=e.w,this.barCtx=e}return r(t,[{key:\"initVariables\",value:function(t){var e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;ae.globals.minX&&e.globals.seriesX[i][a]0&&(a=l.globals.minXDiff/d),(r=a/c*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}-1===String(this.barCtx.barOptions.columnWidth).indexOf(\"%\")&&(r=parseInt(this.barCtx.barOptions.columnWidth,10)),o=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.yaxisIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.yaxisIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:o,zeroW:n}}},{key:\"initializeStackedPrevVars\",value:function(t){var e=t.w;e.globals.hasSeriesGroups?e.globals.seriesGroups.forEach((function(e){t[e]||(t[e]={}),t[e].prevY=[],t[e].prevX=[],t[e].prevYF=[],t[e].prevXF=[],t[e].prevYVal=[],t[e].prevXVal=[]})):(t.prevY=[],t.prevX=[],t.prevYF=[],t.prevXF=[],t.prevYVal=[],t.prevXVal=[])}},{key:\"initializeStackedXYVars\",value:function(t){var e=t.w;e.globals.hasSeriesGroups?e.globals.seriesGroups.forEach((function(e){t[e]||(t[e]={}),t[e].xArrj=[],t[e].xArrjF=[],t[e].xArrjVal=[],t[e].yArrj=[],t[e].yArrjF=[],t[e].yArrjVal=[]})):(t.xArrj=[],t.xArrjF=[],t.xArrjVal=[],t.yArrj=[],t.yArrjF=[],t.yArrjVal=[])}},{key:\"getPathFillColor\",value:function(t,e,i,a){var s,r,o,n,l=this.w,h=new R(this.barCtx.ctx),c=null,d=this.barCtx.barOptions.distributed?i:e;this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(c=a.color)}));return l.config.series[e].data[i]&&l.config.series[e].data[i].fillColor&&(c=l.config.series[e].data[i].fillColor),h.fillPath({seriesNumber:this.barCtx.barOptions.distributed?d:a,dataPointIndex:i,color:c,value:t[e][i],fillConfig:null===(s=l.config.series[e].data[i])||void 0===s?void 0:s.fill,fillType:null!==(r=l.config.series[e].data[i])&&void 0!==r&&null!==(o=r.fill)&&void 0!==o&&o.type?null===(n=l.config.series[e].data[i])||void 0===n?void 0:n.fill.type:l.config.fill.type})}},{key:\"getStrokeWidth\",value:function(t,e,i){var a=0,s=this.w;return this.barCtx.series[t][e]?this.barCtx.isNullValue=!1:this.barCtx.isNullValue=!0,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:\"shouldApplyRadius\",value:function(t){var e=this.w,i=!1;return e.config.plotOptions.bar.borderRadius>0&&(e.config.chart.stacked&&\"last\"===e.config.plotOptions.bar.borderRadiusWhenStacked?this.barCtx.lastActiveBarSerieIndex===t&&(i=!0):i=!0),i}},{key:\"barBackground\",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,o=t.y2,n=t.elSeries,l=this.w,h=new m(this.barCtx.ctx),c=new N(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],g=h.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==o?o:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);n.add(g),g.node.classList.add(\"apexcharts-backgroundBar\")}}},{key:\"getColumnPaths\",value:function(t){var e,i=t.barWidth,a=t.barXPosition,s=t.y1,r=t.y2,o=t.strokeWidth,n=t.seriesGroup,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u=i,p=a;null!==(e=d.config.series[l].data[c])&&void 0!==e&&e.columnWidthOffset&&(p=a-d.config.series[l].data[c].columnWidthOffset/2,u=i+d.config.series[l].data[c].columnWidthOffset);var f=p,x=p+u;s+=.001,r+=.001;var b=g.move(f,s),v=g.move(f,s),y=g.line(x-o,s);if(d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1)),b=b+g.line(f,r)+g.line(x-o,r)+g.line(x-o,s)+(\"around\"===d.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\"),v=v+g.line(f,s)+y+y+y+y+y+g.line(f,s)+(\"around\"===d.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\"),this.shouldApplyRadius(l)&&(b=g.roundPathCorners(b,d.config.plotOptions.bar.borderRadius)),d.config.chart.stacked){var w=this.barCtx;d.globals.hasSeriesGroups&&n&&(w=this.barCtx[n]),w.yArrj.push(r),w.yArrjF.push(Math.abs(s-r)),w.yArrjVal.push(this.barCtx.series[h][c])}return{pathTo:b,pathFrom:v}}},{key:\"getBarpaths\",value:function(t){var e,i=t.barYPosition,a=t.barHeight,s=t.x1,r=t.x2,o=t.strokeWidth,n=t.seriesGroup,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u=i,p=a;null!==(e=d.config.series[l].data[c])&&void 0!==e&&e.barHeightOffset&&(u=i-d.config.series[l].data[c].barHeightOffset/2,p=a+d.config.series[l].data[c].barHeightOffset);var f=u,x=u+p;s+=.001,r+=.001;var b=g.move(s,f),v=g.move(s,f);d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1));var y=g.line(s,x-o);if(b=b+g.line(r,f)+g.line(r,x-o)+y+(\"around\"===d.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\"),v=v+g.line(s,f)+y+y+y+y+y+g.line(s,f)+(\"around\"===d.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\"),this.shouldApplyRadius(l)&&(b=g.roundPathCorners(b,d.config.plotOptions.bar.borderRadius)),d.config.chart.stacked){var w=this.barCtx;d.globals.hasSeriesGroups&&n&&(w=this.barCtx[n]),w.xArrj.push(r),w.xArrjF.push(Math.abs(s-r)),w.xArrjVal.push(this.barCtx.series[h][c])}return{pathTo:b,pathFrom:v}}},{key:\"checkZeroSeries\",value:function(t){for(var e=t.series,i=this.w,a=0;a2&&void 0!==arguments[2])||arguments[2]?e:null;return null!=t&&(i=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),i}},{key:\"getYForValue\",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?e:null;return null!=t&&(i=e-t/this.barCtx.yRatio[this.barCtx.yaxisIndex]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[this.barCtx.yaxisIndex]:0)),i}},{key:\"getGoalValues\",value:function(t,i,a,s,r){var n=this,l=this.w,h=[],c=function(e,s){var r;h.push((o(r={},t,\"x\"===t?n.getXForValue(e,i,!1):n.getYForValue(e,a,!1)),o(r,\"attrs\",s),r))};if(l.globals.seriesGoals[s]&&l.globals.seriesGoals[s][r]&&Array.isArray(l.globals.seriesGoals[s][r])&&l.globals.seriesGoals[s][r].forEach((function(t){c(t.value,t)})),this.barCtx.barOptions.isDumbbell&&l.globals.seriesRange.length){var d=this.barCtx.barOptions.dumbbellColors?this.barCtx.barOptions.dumbbellColors:l.globals.colors,g={strokeHeight:\"x\"===t?0:l.globals.markers.size[s],strokeWidth:\"x\"===t?l.globals.markers.size[s]:0,strokeDashArray:0,strokeLineCap:\"round\",strokeColor:Array.isArray(d[s])?d[s][0]:d[s]};c(l.globals.seriesRangeStart[s][r],g),c(l.globals.seriesRangeEnd[s][r],e(e({},g),{},{strokeColor:Array.isArray(d[s])?d[s][1]:d[s]}))}return h}},{key:\"drawGoalLine\",value:function(t){var e=t.barXPosition,i=t.barYPosition,a=t.goalX,s=t.goalY,r=t.barWidth,o=t.barHeight,n=new m(this.barCtx.ctx),l=n.group({className:\"apexcharts-bar-goals-groups\"});l.node.classList.add(\"apexcharts-element-hidden\"),this.barCtx.w.globals.delayedElements.push({el:l.node}),l.attr(\"clip-path\",\"url(#gridRectMarkerMask\".concat(this.barCtx.w.globals.cuid,\")\"));var h=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach((function(t){var e=void 0!==t.attrs.strokeHeight?t.attrs.strokeHeight:o/2,a=i+e+o/2;h=n.drawLine(t.x,a-2*e,t.x,a,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeWidth?t.attrs.strokeWidth:2,t.attrs.strokeLineCap),l.add(h)})):Array.isArray(s)&&s.forEach((function(t){var i=void 0!==t.attrs.strokeWidth?t.attrs.strokeWidth:r/2,a=e+i+r/2;h=n.drawLine(a-2*i,t.y,a,t.y,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeHeight?t.attrs.strokeHeight:2,t.attrs.strokeLineCap),l.add(h)})),l}},{key:\"drawBarShadow\",value:function(t){var e=t.prevPaths,i=t.currPaths,a=t.color,s=this.w,r=e.x,o=e.x1,n=e.barYPosition,l=i.x,h=i.x1,c=i.barYPosition,d=n+i.barHeight,g=new m(this.barCtx.ctx),u=new x,p=g.move(o,d)+g.line(r,d)+g.line(l,c)+g.line(h,c)+g.line(o,d)+(\"around\"===s.config.plotOptions.bar.borderRadiusApplication?\" Z\":\" z\");return g.drawPath({d:p,fill:u.shadeColor(.5,x.rgb2hex(a)),stroke:\"none\",strokeWidth:0,fillOpacity:1,classes:\"apexcharts-bar-shadows\"})}}]),t}(),yt=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.isRangeBar=s.globals.seriesRange.length&&this.isHorizontal,this.isVerticalGroupedRangeBar=!s.globals.isBarHorizontal&&s.globals.seriesRange.length&&s.config.plotOptions.bar.rangeBarGroupRows,this.isFunnel=this.barOptions.isFunnel,this.xyRatios=i,null!==this.xyRatios&&(this.xRatio=i.xRatio,this.initialXRatio=i.initialXRatio,this.yRatio=i.yRatio,this.invertedXRatio=i.invertedXRatio,this.invertedYRatio=i.invertedYRatio,this.baseLineY=i.baseLineY,this.baseLineInvertedY=i.baseLineInvertedY),this.yaxisIndex=0,this.seriesLen=0,this.pathArr=[];var r=new N(this.ctx);this.lastActiveBarSerieIndex=r.getActiveConfigSeriesIndex(\"desc\",[\"bar\",\"column\"]);var o=r.getBarSeriesIndices(),n=new y(this.ctx);this.stackedSeriesTotals=n.getStackedSeriesTotals(this.w.config.series.map((function(t,e){return-1===o.indexOf(e)?e:-1})).filter((function(t){return-1!==t}))),this.barHelpers=new mt(this)}return r(t,[{key:\"draw\",value:function(t,i){var a=this.w,s=new m(this.ctx),r=new y(this.ctx,a);t=r.getLogSeries(t),this.series=t,this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);var o=s.group({class:\"apexcharts-bar-series apexcharts-plot-series\"});a.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn(\"WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.\");for(var n=0,l=0;n0&&(this.visibleI=this.visibleI+1);var k=0,A=0;this.yRatio.length>1&&(this.yaxisIndex=v),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed;var S=this.barHelpers.initialPositions();p=S.y,k=S.barHeight,c=S.yDivision,g=S.zeroW,u=S.x,A=S.barWidth,h=S.xDivision,d=S.zeroH,this.horizontal||b.push(u+A/2);var C=s.group({class:\"apexcharts-datalabels\",\"data:realIndex\":v});a.globals.delayedElements.push({el:C.node}),C.node.classList.add(\"apexcharts-element-hidden\");var L=s.group({class:\"apexcharts-bar-goals-markers\",style:\"pointer-events: none\"}),P=s.group({class:\"apexcharts-bar-shadows\",style:\"pointer-events: none\"});a.globals.delayedElements.push({el:P.node}),P.node.classList.add(\"apexcharts-element-hidden\");for(var I=0;I0){var E=this.barHelpers.drawBarShadow({color:\"string\"==typeof z&&-1===(null==z?void 0:z.indexOf(\"url\"))?z:x.hexToRgba(a.globals.colors[n]),prevPaths:this.pathArr[this.pathArr.length-1],currPaths:M});E&&P.add(E)}this.pathArr.push(M);var Y=this.barHelpers.drawGoalLine({barXPosition:M.barXPosition,barYPosition:M.barYPosition,goalX:M.goalX,goalY:M.goalY,barHeight:k,barWidth:A});Y&&L.add(Y),p=M.y,u=M.x,I>0&&b.push(u+A/2),f.push(p),this.renderSeries({realIndex:v,pathFill:z,j:I,i:n,pathFrom:M.pathFrom,pathTo:M.pathTo,strokeWidth:T,elSeries:w,x:u,y:p,series:t,barHeight:M.barHeight?M.barHeight:k,barWidth:M.barWidth?M.barWidth:A,elDataLabelsWrap:C,elGoalsMarkers:L,elBarShadows:P,visibleSeries:this.visibleI,type:\"bar\"})}a.globals.seriesXvalues[v]=b,a.globals.seriesYvalues[v]=f,o.add(w)}return o}},{key:\"renderSeries\",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,o=t.groupIndex,n=t.pathFrom,l=t.pathTo,h=t.strokeWidth,c=t.elSeries,d=t.x,g=t.y,u=t.y1,p=t.y2,f=t.series,x=t.barHeight,b=t.barWidth,y=t.barXPosition,w=t.barYPosition,k=t.elDataLabelsWrap,A=t.elGoalsMarkers,S=t.elBarShadows,C=t.visibleSeries,L=t.type,P=this.w,I=new m(this.ctx);a||(a=this.barOptions.distributed?P.globals.stroke.colors[s]:P.globals.stroke.colors[e]),P.config.series[r].data[s]&&P.config.series[r].data[s].strokeColor&&(a=P.config.series[r].data[s].strokeColor),this.isNullValue&&(i=\"none\");var T=s/P.config.chart.animations.animateGradually.delay*(P.config.chart.animations.speed/P.globals.dataPoints)/2.4,M=I.renderPaths({i:r,j:s,realIndex:e,pathFrom:n,pathTo:l,stroke:a,strokeWidth:h,strokeLineCap:P.config.stroke.lineCap,fill:i,animationDelay:T,initialSpeed:P.config.chart.animations.speed,dataChangeSpeed:P.config.chart.animations.dynamicAnimation.speed,className:\"apexcharts-\".concat(L,\"-area\")});M.attr(\"clip-path\",\"url(#gridRectMask\".concat(P.globals.cuid,\")\"));var X=P.config.forecastDataPoints;X.count>0&&s>=P.globals.dataPoints-X.count&&(M.node.setAttribute(\"stroke-dasharray\",X.dashArray),M.node.setAttribute(\"stroke-width\",X.strokeWidth),M.node.setAttribute(\"fill-opacity\",X.fillOpacity)),void 0!==u&&void 0!==p&&(M.attr(\"data-range-y1\",u),M.attr(\"data-range-y2\",p)),new v(this.ctx).setSelectionFilter(M,e,s),c.add(M);var z=new vt(this).handleBarDataLabels({x:d,y:g,y1:u,y2:p,i:r,j:s,series:f,realIndex:e,groupIndex:o,barHeight:x,barWidth:b,barXPosition:y,barYPosition:w,renderedPath:M,visibleSeries:C});return null!==z.dataLabels&&k.add(z.dataLabels),z.totalDataLabels&&k.add(z.totalDataLabels),c.add(k),A&&c.add(A),S&&c.add(S),c}},{key:\"drawBarPaths\",value:function(t){var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=i.i,g=i.j;if(c.globals.isXNumeric)e=(n=(c.globals.seriesX[d][g]-c.globals.minX)/this.invertedXRatio-a)+a*this.visibleI;else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var u=0,p=0;c.globals.seriesPercent.forEach((function(t,e){t[g]&&u++,e0&&(a=this.seriesLen*a/u),e=n+a*this.visibleI,e-=a*p}else e=n+a*this.visibleI;this.isFunnel&&(r-=(this.barHelpers.getXForValue(this.series[d][g],r)-r)/2),o=this.barHelpers.getXForValue(this.series[d][g],r);var f=this.barHelpers.getBarpaths({barYPosition:e,barHeight:a,x1:r,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:d,j:g,w:c});return c.globals.isXNumeric||(n+=l),this.barHelpers.barBackground({j:g,i:d,y1:e-a*this.visibleI,y2:a*this.seriesLen,elSeries:h}),{pathTo:f.pathTo,pathFrom:f.pathFrom,x1:r,x:o,y:n,goalX:this.barHelpers.getGoalValues(\"x\",r,null,d,g),barYPosition:e,barHeight:a}}},{key:\"drawColumnPaths\",value:function(t){var e,i=t.indexes,a=t.x,s=t.y,r=t.xDivision,o=t.barWidth,n=t.zeroH,l=t.strokeWidth,h=t.elSeries,c=this.w,d=i.realIndex,g=i.i,u=i.j,p=i.bc;if(c.globals.isXNumeric){var f=d;c.globals.seriesX[d].length||(f=c.globals.maxValsInArrayIndex),c.globals.seriesX[f][u]&&(a=(c.globals.seriesX[f][u]-c.globals.minX)/this.xRatio-o*this.seriesLen/2),e=a+o*this.visibleI}else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var x=0,b=0;c.globals.seriesPercent.forEach((function(t,e){t[u]&&x++,e0&&(o=this.seriesLen*o/x),e=a+o*this.visibleI,e-=o*b}else e=a+o*this.visibleI;s=this.barHelpers.getYForValue(this.series[g][u],n);var v=this.barHelpers.getColumnPaths({barXPosition:e,barWidth:o,y1:n,y2:s,strokeWidth:l,series:this.series,realIndex:i.realIndex,i:g,j:u,w:c});return c.globals.isXNumeric||(a+=r),this.barHelpers.barBackground({bc:p,j:u,i:g,x1:e-l/2-o*this.visibleI,x2:o*this.seriesLen+l/2,elSeries:h}),{pathTo:v.pathTo,pathFrom:v.pathFrom,x:a,y:s,goalY:this.barHelpers.getGoalValues(\"y\",null,n,g,u),barXPosition:e,barWidth:o}}},{key:\"getPreviousPath\",value:function(t,e){for(var i,a=this.w,s=0;s0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}]),t}(),wt=function(t){n(s,yt);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:\"draw\",value:function(t,i){var a=this,s=this.w;this.graphics=new m(this.ctx),this.bar=new yt(this.ctx,this.xyRatios);var r=new y(this.ctx,s);t=r.getLogSeries(t),this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t),\"100%\"===s.config.chart.stackType&&(t=s.globals.seriesPercent.slice()),this.series=t,this.barHelpers.initializeStackedPrevVars(this);for(var o=this.graphics.group({class:\"apexcharts-bar-series apexcharts-plot-series\"}),n=0,l=0,h=function(r,h){var c=void 0,d=void 0,g=void 0,u=void 0,p=-1;a.groupCtx=a,s.globals.seriesGroups.forEach((function(t,e){t.indexOf(s.config.series[r].name)>-1&&(p=e)})),-1!==p&&(a.groupCtx=a[s.globals.seriesGroups[p]]);var f=[],b=[],v=s.globals.comboCharts?i[r]:r;a.yRatio.length>1&&(a.yaxisIndex=v),a.isReversed=s.config.yaxis[a.yaxisIndex]&&s.config.yaxis[a.yaxisIndex].reversed;var m=a.graphics.group({class:\"apexcharts-series\",seriesName:x.escapeString(s.globals.seriesNames[v]),rel:r+1,\"data:realIndex\":v});a.ctx.series.addCollapsedClassToSeries(m,v);var y=a.graphics.group({class:\"apexcharts-datalabels\",\"data:realIndex\":v}),w=a.graphics.group({class:\"apexcharts-bar-goals-markers\",style:\"pointer-events: none\"}),k=0,A=0,S=a.initialPositions(n,l,c,d,g,u);l=S.y,k=S.barHeight,d=S.yDivision,u=S.zeroW,n=S.x,A=S.barWidth,c=S.xDivision,g=S.zeroH,a.barHelpers.initializeStackedXYVars(a),1===a.groupCtx.prevY.length&&a.groupCtx.prevY[0].every((function(t){return isNaN(t)}))&&(a.groupCtx.prevY[0]=a.groupCtx.prevY[0].map((function(t){return g})),a.groupCtx.prevYF[0]=a.groupCtx.prevYF[0].map((function(t){return 0})));for(var C=0;C1?(i=c.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:h*parseInt(c.config.plotOptions.bar.columnWidth,10)/100,-1===String(c.config.plotOptions.bar.columnWidth).indexOf(\"%\")&&(h=parseInt(c.config.plotOptions.bar.columnWidth,10)),s=c.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?c.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=c.globals.padHorizontal+(i-h)/2),{x:t,y:e,yDivision:a,xDivision:i,barHeight:null!==(o=c.globals.seriesGroups)&&void 0!==o&&o.length?l/c.globals.seriesGroups.length:l,barWidth:null!==(n=c.globals.seriesGroups)&&void 0!==n&&n.length?h/c.globals.seriesGroups.length:h,zeroH:s,zeroW:r}}},{key:\"drawStackedBarPaths\",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.groupIndex,h=t.seriesGroup,c=t.yDivision,d=t.elSeries,g=this.w,u=n+(-1!==l?l*a:0),p=i.i,f=i.j,x=0,b=0;b0){var m=r;this.groupCtx.prevXVal[v-1][f]<0?m=this.series[p][f]>=0?this.groupCtx.prevX[v-1][f]+x-2*(this.isReversed?x:0):this.groupCtx.prevX[v-1][f]:this.groupCtx.prevXVal[v-1][f]>=0&&(m=this.series[p][f]>=0?this.groupCtx.prevX[v-1][f]:this.groupCtx.prevX[v-1][f]-x+2*(this.isReversed?x:0)),e=m}else e=r;o=null===this.series[p][f]?e:e+this.series[p][f]/this.invertedYRatio-2*(this.isReversed?this.series[p][f]/this.invertedYRatio:0);var y=this.barHelpers.getBarpaths({barYPosition:u,barHeight:a,x1:e,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,seriesGroup:h,i:p,j:f,w:g});return this.barHelpers.barBackground({j:f,i:p,y1:u,y2:a,elSeries:d}),n+=c,{pathTo:y.pathTo,pathFrom:y.pathFrom,goalX:this.barHelpers.getGoalValues(\"x\",r,null,p,f),barYPosition:u,x:o,y:n}}},{key:\"drawStackedColumnPaths\",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH,n=t.groupIndex,l=t.seriesGroup,h=t.elSeries,c=this.w,d=e.i,g=e.j,u=e.bc;if(c.globals.isXNumeric){var p=c.globals.seriesX[d][g];p||(p=0),i=(p-c.globals.minX)/this.xRatio-r/2,c.globals.seriesGroups.length&&(i=(p-c.globals.minX)/this.xRatio-r/2*c.globals.seriesGroups.length)}for(var f,x=i+(-1!==n?n*r:0),b=0,v=0;v0&&!c.globals.isXNumeric||m>0&&c.globals.isXNumeric&&c.globals.seriesX[d-1][g]===c.globals.seriesX[d][g]){var y,w,k,A=Math.min(this.yRatio.length+1,d+1);if(void 0!==this.groupCtx.prevY[m-1]&&this.groupCtx.prevY[m-1].length)for(var S=1;S=0?k-b+2*(this.isReversed?b:0):k;break}if((null===(I=this.groupCtx.prevYVal[m-L])||void 0===I?void 0:I[g])>=0){w=this.series[d][g]>=0?k:k+b-2*(this.isReversed?b:0);break}}void 0===w&&(w=c.globals.gridHeight),f=null!==(y=this.groupCtx.prevYF[0])&&void 0!==y&&y.every((function(t){return 0===t}))&&this.groupCtx.prevYF.slice(1,m).every((function(t){return t.every((function(t){return isNaN(t)}))}))?o:w}else f=o;a=this.series[d][g]?f-this.series[d][g]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[d][g]/this.yRatio[this.yaxisIndex]:0):f;var T=this.barHelpers.getColumnPaths({barXPosition:x,barWidth:r,y1:f,y2:a,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,seriesGroup:l,realIndex:e.realIndex,i:d,j:g,w:c});return this.barHelpers.barBackground({bc:u,j:g,i:d,x1:x,x2:r,elSeries:h}),i+=s,{pathTo:T.pathTo,pathFrom:T.pathFrom,goalY:this.barHelpers.getGoalValues(\"y\",null,o,d,g),barXPosition:x,x:c.globals.isXNumeric?i-s:i,y:a}}}]),s}(),kt=function(t){n(s,yt);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:\"draw\",value:function(t,i,a){var s=this,r=this.w,o=new m(this.ctx),n=r.globals.comboCharts?i:r.config.chart.type,l=new R(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=r.config.plotOptions.bar.horizontal;var h=new y(this.ctx,r);t=h.getLogSeries(t),this.series=t,this.yRatio=h.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var c=o.group({class:\"apexcharts-\".concat(n,\"-series apexcharts-plot-series\")}),d=function(i){s.isBoxPlot=\"boxPlot\"===r.config.chart.type||\"boxPlot\"===r.config.series[i].type;var n,h,d,g,u=void 0,p=void 0,f=[],b=[],v=r.globals.comboCharts?a[i]:i,m=o.group({class:\"apexcharts-series\",seriesName:x.escapeString(r.globals.seriesNames[v]),rel:i+1,\"data:realIndex\":v});s.ctx.series.addCollapsedClassToSeries(m,v),t[i].length>0&&(s.visibleI=s.visibleI+1);var y,w;s.yRatio.length>1&&(s.yaxisIndex=v);var k=s.barHelpers.initialPositions();p=k.y,y=k.barHeight,h=k.yDivision,g=k.zeroW,u=k.x,w=k.barWidth,n=k.xDivision,d=k.zeroH,b.push(u+w/2);for(var A=o.group({class:\"apexcharts-datalabels\",\"data:realIndex\":v}),S=function(a){var o=s.barHelpers.getStrokeWidth(i,a,v),c=null,x={indexes:{i:i,j:a,realIndex:v},x:u,y:p,strokeWidth:o,elSeries:m};c=s.isHorizontal?s.drawHorizontalBoxPaths(e(e({},x),{},{yDivision:h,barHeight:y,zeroW:g})):s.drawVerticalBoxPaths(e(e({},x),{},{xDivision:n,barWidth:w,zeroH:d})),p=c.y,u=c.x,a>0&&b.push(u+w/2),f.push(p),c.pathTo.forEach((function(e,n){var h=!s.isBoxPlot&&s.candlestickOptions.wick.useFillColor?c.color[n]:r.globals.stroke.colors[i],d=l.fillPath({seriesNumber:v,dataPointIndex:a,color:c.color[n],value:t[i][a]});s.renderSeries({realIndex:v,pathFill:d,lineFill:h,j:a,i:i,pathFrom:c.pathFrom,pathTo:e,strokeWidth:o,elSeries:m,x:u,y:p,series:t,barHeight:y,barWidth:w,elDataLabelsWrap:A,visibleSeries:s.visibleI,type:r.config.chart.type})}))},C=0;Cb.c&&(d=!1);var w=Math.min(b.o,b.c),k=Math.max(b.o,b.c),A=b.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[x][c]-n.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(w=r,k=r):(w=r-w/f,k=r-k/f,v=r-b.h/f,y=r-b.l/f,A=r-b.m/f);var C=l.move(S,r),L=l.move(S+s/2,w);return n.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,A)+l.line(S,A)+l.line(S,w+o/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,y)+l.line(S+s-s/4,y)+l.line(S+s/4,y)+l.line(S+s/2,y)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+\"z\"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,v)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,y)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,k-o/2)],L+=l.move(S,w),n.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:k,barXPosition:S,color:this.isBoxPlot?p:d?[g]:[u]}}},{key:\"drawHorizontalBoxPaths\",value:function(t){var e=t.indexes;t.x;var i=t.y,a=t.yDivision,s=t.barHeight,r=t.zeroW,o=t.strokeWidth,n=this.w,l=new m(this.ctx),h=e.i,c=e.j,d=this.boxOptions.colors.lower;this.isBoxPlot&&(d=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var g=this.invertedYRatio,u=e.realIndex,p=this.getOHLCValue(u,c),f=r,x=r,b=Math.min(p.o,p.c),v=Math.max(p.o,p.c),y=p.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[u][c]-n.globals.minX)/this.invertedXRatio-s/2);var w=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(b=r,v=r):(b=r+b/g,v=r+v/g,f=r+p.h/g,x=r+p.l/g,y=r+p.m/g);var k=l.move(r,w),A=l.move(b,w+s/2);return n.globals.previousPaths.length>0&&(A=this.getPreviousPath(u,c,!0)),k=[l.move(b,w)+l.line(b,w+s/2)+l.line(f,w+s/2)+l.line(f,w+s/2-s/4)+l.line(f,w+s/2+s/4)+l.line(f,w+s/2)+l.line(b,w+s/2)+l.line(b,w+s)+l.line(y,w+s)+l.line(y,w)+l.line(b+o/2,w),l.move(y,w)+l.line(y,w+s)+l.line(v,w+s)+l.line(v,w+s/2)+l.line(x,w+s/2)+l.line(x,w+s-s/4)+l.line(x,w+s/4)+l.line(x,w+s/2)+l.line(v,w+s/2)+l.line(v,w)+l.line(y,w)+\"z\"],A+=l.move(b,w),n.globals.isXNumeric||(i+=a),{pathTo:k,pathFrom:A,x:v,y:i,barYPosition:w,color:d}}},{key:\"getOHLCValue\",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),s}(),At=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"checkColorRange\",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:\"getShadeColor\",value:function(t,e,i,a){var s=this.w,r=1,o=s.config.plotOptions[t].shadeIntensity,n=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?n.percent<0?n.percent/100*(1.25*o):(1-n.percent/100)*(1.25*o):n.percent<=0?1-(1+n.percent/100)*o:(1-n.percent/100)*o:(r=1-n.percent/100,\"treemap\"===t&&(r=(1-n.percent/100)*(1.25*o)));var l=n.color,h=new x;return s.config.plotOptions[t].enableShades&&(l=\"dark\"===this.w.config.theme.mode?x.hexToRgba(h.shadeColor(-1*r,n.color),s.config.fill.opacity):x.hexToRgba(h.shadeColor(r,n.color),s.config.fill.opacity)),{color:l,colorProps:n}}},{key:\"determineColor\",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],o=r.colorScale.inverse?i:e;r.distributed&&\"treemap\"===a.config.chart.type&&(o=i);var n=a.globals.colors[o],l=null,h=Math.min.apply(Math,u(a.globals.series[e])),c=Math.max.apply(Math,u(a.globals.series[e]));r.distributed||\"heatmap\"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),g=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){n=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);g=100*s/(0===i?i-1e-6:i)}}));return{color:n,foreColor:l,percent:g}}},{key:\"calculateDataLabels\",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,o=t.colorProps,n=t.fontSize,l=this.w.config.dataLabels,h=new m(this.ctx),c=new O(this.ctx),d=null;if(l.enabled){d=h.group({class:\"apexcharts-data-labels\"});var g=l.offsetX,u=l.offsetY,p=i+g,f=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:p,y:f,text:e,i:s,j:r,color:o.foreColor,parent:d,fontSize:n,dataLabelsConfig:l})}return d}},{key:\"addListeners\",value:function(t){var e=new m(this.ctx);t.node.addEventListener(\"mouseenter\",e.pathMouseEnter.bind(this,t)),t.node.addEventListener(\"mouseleave\",e.pathMouseLeave.bind(this,t)),t.node.addEventListener(\"mousedown\",e.pathMouseDown.bind(this,t))}}]),t}(),St=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.xRatio=i.xRatio,this.yRatio=i.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new At(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return r(t,[{key:\"draw\",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:\"apexcharts-heatmap\"});a.attr(\"clip-path\",\"url(#gridRectMask\".concat(e.globals.cuid,\")\"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,o=0,n=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(n=!0,l.reverse());for(var h=n?0:l.length-1;n?h=0;n?h++:h--){var c=i.group({class:\"apexcharts-series apexcharts-heatmap-series\",seriesName:x.escapeString(e.globals.seriesNames[h]),rel:h+1,\"data:realIndex\":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new v(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,p=0;p-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=w.x,S=w.y,C=100*u/this.fullAngle+\"%\";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?e.endAngle=e.endAngle-(a+o):a+o=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(n)>this.fullAngle&&(n-=this.fullAngle);var l=Math.PI*(n-90)/180,h=e.centerX+s*Math.cos(o),c=e.centerY+s*Math.sin(o),d=e.centerX+s*Math.cos(l),g=e.centerY+s*Math.sin(l),u=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,n),p=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,r),f=a>180?1:0,b=[\"M\",h,c,\"A\",s,s,0,f,1,d,g];return\"donut\"===e.chartType?[].concat(b,[\"L\",u.x,u.y,\"A\",e.donutSize,e.donutSize,0,f,0,p.x,p.y,\"L\",h,c,\"z\"]).join(\" \"):\"pie\"===e.chartType||\"polarArea\"===e.chartType?[].concat(b,[\"L\",e.centerX,e.centerY,\"L\",h,c]).join(\" \"):[].concat(b).join(\" \")}},{key:\"drawPolarElements\",value:function(t){var e=this.w,i=new _(this.ctx),a=new m(this.ctx),s=new Ct(this.ctx),r=a.group(),o=a.group(),n=i.niceScale(0,Math.ceil(this.maxY),e.config.yaxis[0].tickAmount,0,!0),l=n.result.reverse(),h=n.result.length;this.maxY=n.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g1&&t.total.show&&(s=t.total.color);var o=r.globals.dom.baseEl.querySelector(\".apexcharts-datalabel-label\"),n=r.globals.dom.baseEl.querySelector(\".apexcharts-datalabel-value\");i=(0,t.value.formatter)(i,r),a||\"function\"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==o&&(o.textContent=e),null!==n&&(n.textContent=i),null!==o&&(o.style.fill=s)}},{key:\"printDataLabelsInner\",value:function(t,e){var i=this.w,a=t.getAttribute(\"data:value\"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute(\"rel\"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(\".apexcharts-datalabels-group\");null!==r&&(r.style.opacity=1)}},{key:\"drawSpokes\",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],o=360/i.globals.series.length,n=0;n1)o&&!e.total.showAlways?l({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(e,e.total.label,e.total.formatter(s));else if(l({makeSliceOut:!1,printLabel:!0}),!o)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var h=s.globals.selectedDataPoints[0],c=s.globals.dom.baseEl.querySelector(\".apexcharts-\".concat(this.chartType.toLowerCase(),\"-slice-\").concat(h));this.printDataLabelsInner(c,e)}else r&&s.globals.selectedDataPoints.length&&0===s.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}]),t}(),Pt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var i=this.w;this.graphics=new m(this.ctx),this.lineColorArr=void 0!==i.globals.stroke.colors?i.globals.stroke.colors:i.globals.colors,this.defaultSize=i.globals.svgHeight0&&(f=i.getPreviousPath(n));for(var b=0;b=10?t.x>0?(i=\"start\",a+=10):t.x<0&&(i=\"end\",a-=10):i=\"middle\",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:\"getPreviousPath\",value:function(t){for(var e=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:\"getDataPointsPos\",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:\"\",stroke:c,strokeWidth:o*parseInt(h.strokeWidth,10)/100,fill:\"none\",strokeOpacity:h.opacity,classes:\"apexcharts-radialbar-area\"});if(h.dropShadow.enabled){var p=h.dropShadow;s.dropShadow(u,p)}l.add(u),u.attr(\"id\",\"apexcharts-radialbarTrack-\"+n),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:n,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:\"drawArcs\",value:function(t){var e=this.w,i=new m(this.ctx),a=new R(this.ctx),s=new v(this.ctx),r=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var n=e.config.plotOptions.radialBar.hollow.background,l=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(n=this.drawHollowImage(t,r,l,n));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:n||\"transparent\"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;this.radialDataLabels.show&&(u=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})),\"back\"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var p=!1;e.config.plotOptions.radialBar.inverseOrder&&(p=!0);for(var f=p?t.series.length-1:0;p?f>=0:f100?100:t.series[f])/100,S=Math.round(this.totalAngle*A)+this.startAngle,C=void 0;e.globals.dataChanged&&(k=this.startAngle,C=Math.round(this.totalAngle*x.negToZero(e.globals.previousPaths[f])/100)+k),Math.abs(S)+Math.abs(w)>=360&&(S-=.01),Math.abs(C)+Math.abs(k)>=360&&(C-=.01);var L=S-w,P=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[f]:e.config.stroke.dashArray,I=i.drawPath({d:\"\",stroke:y,strokeWidth:o,fill:\"none\",fillOpacity:e.config.fill.opacity,classes:\"apexcharts-radialbar-area apexcharts-radialbar-slice-\"+f,strokeDashArray:P});if(m.setAttrs(I.node,{\"data:angle\":L,\"data:value\":t.series[f]}),e.config.chart.dropShadow.enabled){var T=e.config.chart.dropShadow;s.dropShadow(I,T,f)}s.setSelectionFilter(I,0,f),this.addListeners(I,this.radialDataLabels),b.add(I),I.attr({index:0,j:f});var M=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(M=e.config.chart.animations.speed),e.globals.dataChanged&&(M=e.config.chart.animations.dynamicAnimation.speed),this.animDur=M/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(I,{centerX:t.centerX,centerY:t.centerY,endAngle:S,startAngle:w,prevEndAngle:C,prevStartAngle:k,size:t.size,i:f,totalItems:2,animBeginArr:this.animBeginArr,dur:M,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:\"drawHollow\",value:function(t){var e=new m(this.ctx).drawCircle(2*t.size);return e.attr({class:\"apexcharts-radialbar-hollow\",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:\"drawHollowImage\",value:function(t,e,i,a){var s=this.w,r=new R(this.ctx),o=x.randomId(),n=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:n,patternID:\"pattern\".concat(s.globals.cuid).concat(o)}),a=\"url(#pattern\".concat(s.globals.cuid).concat(o,\")\");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:\"getStrokeWidth\",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}}]),i}(),Tt=function(t){n(s,yt);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:\"draw\",value:function(t,i){var a=this.w,s=new m(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=a.globals.seriesRangeStart,this.seriesRangeEnd=a.globals.seriesRangeEnd,this.barHelpers.initVariables(t);for(var r=s.group({class:\"apexcharts-rangebar-series apexcharts-plot-series\"}),n=0;n0&&(this.visibleI=this.visibleI+1);var b=0,v=0;this.yRatio.length>1&&(this.yaxisIndex=p);var y=this.barHelpers.initialPositions();u=y.y,d=y.zeroW,g=y.x,v=y.barWidth,b=y.barHeight,l=y.xDivision,h=y.yDivision,c=y.zeroH;for(var w=s.group({class:\"apexcharts-datalabels\",\"data:realIndex\":p}),k=s.group({class:\"apexcharts-rangebar-goals-markers\",style:\"pointer-events: none\"}),A=0;A0}));return this.isHorizontal?(a=g.config.plotOptions.bar.rangeBarGroupRows?r+h*b:r+n*this.visibleI+h*b,v>-1&&!g.config.plotOptions.bar.rangeBarOverlap&&(u=g.globals.seriesRange[e][v].overlaps).indexOf(p)>-1&&(a=(n=d.barHeight/u.length)*this.visibleI+h*(100-parseInt(this.barOptions.barHeight,10))/100/2+n*(this.visibleI+u.indexOf(p))+h*b)):(b>-1&&(s=g.config.plotOptions.bar.rangeBarGroupRows?o+c*b:o+l*this.visibleI+c*b),v>-1&&!g.config.plotOptions.bar.rangeBarOverlap&&(u=g.globals.seriesRange[e][v].overlaps).indexOf(p)>-1&&(s=(l=d.barWidth/u.length)*this.visibleI+c*(100-parseInt(this.barOptions.barWidth,10))/100/2+l*(this.visibleI+u.indexOf(p))+c*b)),{barYPosition:a,barXPosition:s,barHeight:n,barWidth:l}}},{key:\"drawRangeColumnPaths\",value:function(t){var e=t.indexes,i=t.x,a=t.xDivision,s=t.barWidth,r=t.barXPosition,o=t.zeroH,n=this.w,l=e.i,h=e.j,c=this.yRatio[this.yaxisIndex],d=e.realIndex,g=this.getRangeValue(d,h),u=Math.min(g.start,g.end),p=Math.max(g.start,g.end);void 0===this.series[l][h]||null===this.series[l][h]?u=o:(u=o-u/c,p=o-p/c);var f=Math.abs(p-u),x=this.barHelpers.getColumnPaths({barXPosition:r,barWidth:s,y1:u,y2:p,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:e.realIndex,i:d,j:h,w:n});return n.globals.isXNumeric||(i+=a),{pathTo:x.pathTo,pathFrom:x.pathFrom,barHeight:f,x:i,y:p,goalY:this.barHelpers.getGoalValues(\"y\",null,o,l,h),barXPosition:r}}},{key:\"drawRangeBarPaths\",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,o=t.barHeight,n=t.barYPosition,l=t.zeroW,h=this.w,c=l+a/this.invertedYRatio,d=l+s/this.invertedYRatio,g=Math.abs(d-c),u=this.barHelpers.getBarpaths({barYPosition:n,barHeight:o,x1:c,x2:d,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:e.realIndex,realIndex:e.realIndex,j:e.j,w:h});return h.globals.isXNumeric||(i+=r),{pathTo:u.pathTo,pathFrom:u.pathFrom,barWidth:g,x:d,goalX:this.barHelpers.getGoalValues(\"x\",l,null,e.realIndex,e.j),y:i}}},{key:\"getRangeValue\",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}}]),s}(),Mt=function(){function t(e){a(this,t),this.w=e.w,this.lineCtx=e}return r(t,[{key:\"sameValueSeriesFix\",value:function(t,e){var i=this.w;if((\"gradient\"===i.config.fill.type||\"gradient\"===i.config.fill.type[t])&&new y(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:\"calculatePoints\",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,o=t.j,n=t.prevY,l=this.w,h=[],c=[];if(0===o){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(x.isNumber(e[r][0])?n+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:\"checkPreviousPaths\",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r0&&parseInt(o.realIndex,10)===parseInt(a,10)&&(\"line\"===o.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):\"area\"===o.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:\"determineFirstPrevY\",value:function(t){var e,i=t.i,a=t.series,s=t.prevY,r=t.lineYPosition,o=this.w;if(void 0!==(null===(e=a[i])||void 0===e?void 0:e[0]))s=(r=o.config.chart.stacked&&i>0?this.lineCtx.prevSeriesY[i-1][0]:this.lineCtx.zeroY)-a[i][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?a[i][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(o.config.chart.stacked&&i>0&&void 0===a[i][0])for(var n=i-1;n>=0;n--)if(null!==a[n][0]&&void 0!==a[n][0]){s=r=this.lineCtx.prevSeriesY[n][0];break}return{prevY:s,lineYPosition:r}}}]),t}(),Xt=function(){function t(e,i,s){a(this,t),this.ctx=e,this.w=e.w,this.xyRatios=i,this.pointsChart=!(\"bubble\"!==this.w.config.chart.type&&\"scatter\"!==this.w.config.chart.type)||s,this.scatter=new D(this.ctx),this.noNegatives=this.w.globals.minX===Number.MAX_VALUE,this.lineHelpers=new Mt(this),this.markers=new H(this.ctx),this.prevSeriesY=[],this.categoryAxisCorrection=0,this.yaxisIndex=0}return r(t,[{key:\"draw\",value:function(t,i,a,s){var r=this.w,o=new m(this.ctx),n=r.globals.comboCharts?i:r.config.chart.type,l=o.group({class:\"apexcharts-\".concat(n,\"-series apexcharts-plot-series\")}),h=new y(this.ctx,r);this.yRatio=this.xyRatios.yRatio,this.zRatio=this.xyRatios.zRatio,this.xRatio=this.xyRatios.xRatio,this.baseLineY=this.xyRatios.baseLineY,t=h.getLogSeries(t),this.yRatio=h.getLogYRatios(this.yRatio);for(var c=[],d=0;d0&&(f=(r.globals.seriesX[g][0]-r.globals.minX)/this.xRatio),p.push(f);var x,b=f,v=void 0,w=b,k=this.zeroY,A=this.zeroY;k=this.lineHelpers.determineFirstPrevY({i:d,series:t,prevY:k,lineYPosition:0}).prevY,u.push(k),x=k;\"rangeArea\"===n&&(v=A=this.lineHelpers.determineFirstPrevY({i:d,series:s,prevY:A,lineYPosition:0}).prevY);var S={type:n,series:t,realIndex:g,i:d,x:f,y:1,pX:b,pY:x,pathsFrom:this._calculatePathsFrom({type:n,series:t,i:d,realIndex:g,prevX:w,prevY:k,prevY2:A}),linePaths:[],areaPaths:[],seriesIndex:a,lineYPosition:0,xArrj:p,yArrj:u,seriesRangeEnd:s},C=this._iterateOverDataPoints(e(e({},S),{},{iterations:\"rangeArea\"===n?t[d].length-1:void 0,isRangeStart:!0}));if(\"rangeArea\"===n){var L=this._calculatePathsFrom({series:s,i:d,realIndex:g,prevX:w,prevY:A}),P=this._iterateOverDataPoints(e(e({},S),{},{series:s,pY:v,pathsFrom:L,iterations:s[d].length-1,isRangeStart:!1}));C.linePaths[0]=P.linePath+C.linePath,C.pathFromLine=P.pathFromLine+C.pathFromLine}this._handlePaths({type:n,realIndex:g,i:d,paths:C}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),c.push(this.elSeries)}if(r.config.chart.stacked)for(var I=c.length;I>0;I--)l.add(c[I-1]);else for(var T=0;T1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||\"end\"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:\"apexcharts-series\",seriesName:x.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:\"apexcharts-series-markers-wrap\",\"data:realIndex\":i}),this.elDataLabelsWrap=s.group({class:\"apexcharts-datalabels\",\"data:realIndex\":i});var r=t[e].length===a.globals.dataPoints;this.elSeries.attr({\"data:longestSeries\":r,rel:e+1,\"data:realIndex\":i}),this.appendPathFrom=!0}},{key:\"_calculatePathsFrom\",value:function(t){var e,i,a,s,r=t.type,o=t.series,n=t.i,l=t.realIndex,h=t.prevX,c=t.prevY,d=t.prevY2,g=this.w,u=new m(this.ctx);if(null===o[n][0]){for(var p=0;p0){var f=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:l});a=f.pathFromLine,s=f.pathFromArea}return{prevX:h,prevY:c,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:\"_handlePaths\",value:function(t){var i=t.type,a=t.realIndex,s=t.i,r=t.paths,o=this.w,n=new m(this.ctx),l=new R(this.ctx);this.prevSeriesY.push(r.yArrj),o.globals.seriesXvalues[a]=r.xArrj,o.globals.seriesYvalues[a]=r.yArrj;var h=o.config.forecastDataPoints;if(h.count>0&&\"rangeArea\"!==i){var c=o.globals.seriesXvalues[a][o.globals.seriesXvalues[a].length-h.count-1],d=n.drawRect(c,0,o.globals.gridWidth,o.globals.gridHeight,0);o.globals.dom.elForecastMask.appendChild(d.node);var g=n.drawRect(0,0,c,o.globals.gridHeight,0);o.globals.dom.elNonForecastMask.appendChild(g.node)}this.pointsChart||o.globals.delayedElements.push({el:this.elPointsMain.node,index:a});var u={i:s,realIndex:a,animationDelay:s,initialSpeed:o.config.chart.animations.speed,dataChangeSpeed:o.config.chart.animations.dynamicAnimation.speed,className:\"apexcharts-\".concat(i)};if(\"area\"===i)for(var p=l.fillPath({seriesNumber:a}),f=0;f0&&\"rangeArea\"!==i){var S=n.renderPaths(k);S.node.setAttribute(\"stroke-dasharray\",h.dashArray),h.strokeWidth&&S.node.setAttribute(\"stroke-width\",h.strokeWidth),this.elSeries.add(S),S.attr(\"clip-path\",\"url(#forecastMask\".concat(o.globals.cuid,\")\")),A.attr(\"clip-path\",\"url(#nonForecastMask\".concat(o.globals.cuid,\")\"))}}}}},{key:\"_iterateOverDataPoints\",value:function(t){var e=t.type,i=t.series,a=t.iterations,s=t.realIndex,r=t.i,o=t.x,n=t.y,l=t.pX,h=t.pY,c=t.pathsFrom,d=t.linePaths,g=t.areaPaths,u=t.seriesIndex,p=t.lineYPosition,f=t.xArrj,b=t.yArrj,v=t.isRangeStart,y=t.seriesRangeEnd,w=this.w,k=new m(this.ctx),A=this.yRatio,S=c.prevY,C=c.linePath,L=c.areaPath,P=c.pathFromLine,I=c.pathFromArea,T=x.isNumber(w.globals.minYArr[s])?w.globals.minYArr[s]:w.globals.minY;a||(a=w.globals.dataPoints>1?w.globals.dataPoints-1:w.globals.dataPoints);for(var M=n,X=0;X0&&w.globals.collapsedSeries.length-1){e--;break}return e>=0?e:0}(r-1)][X+1]}else p=this.zeroY;else p=this.zeroY;z?n=p-T/A[this.yaxisIndex]+2*(this.isReversed?T/A[this.yaxisIndex]:0):(n=p-i[r][X+1]/A[this.yaxisIndex]+2*(this.isReversed?i[r][X+1]/A[this.yaxisIndex]:0),\"rangeArea\"===e&&(M=p-y[r][X+1]/A[this.yaxisIndex]+2*(this.isReversed?y[r][X+1]/A[this.yaxisIndex]:0))),f.push(o),b.push(n);var Y=this.lineHelpers.calculatePoints({series:i,x:o,y:n,realIndex:s,i:r,j:X,prevY:S}),F=this._createPaths({type:e,series:i,i:r,realIndex:s,j:X,x:o,y:n,y2:M,pX:l,pY:h,linePath:C,areaPath:L,linePaths:d,areaPaths:g,seriesIndex:u,isRangeStart:v});g=F.areaPaths,d=F.linePaths,l=F.pX,h=F.pY,L=F.areaPath,C=F.linePath,this.appendPathFrom&&(P+=k.line(o,this.zeroY),I+=k.line(o,this.zeroY)),this.handleNullDataPoints(i,Y,r,X,s),this._handleMarkersAndLabels({type:e,pointsPos:Y,i:r,j:X,realIndex:s,isRangeStart:v})}return{yArrj:b,xArrj:f,pathFromArea:I,areaPaths:g,pathFromLine:P,linePaths:d,linePath:C,areaPath:L}}},{key:\"_handleMarkersAndLabels\",value:function(t){var e=t.type,i=t.pointsPos,a=t.isRangeStart,s=t.i,r=t.j,o=t.realIndex,n=this.w,l=new O(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,r,{realIndex:o,pointsPos:i,zRatio:this.zRatio,elParent:this.elPointsMain});else{n.globals.series[s].length>1&&this.elPointsMain.node.classList.add(\"apexcharts-element-hidden\");var h=this.markers.plotChartMarkers(i,o,r+1);null!==h&&this.elPointsMain.add(h)}var c=l.drawDataLabel({type:e,isRangeStart:a,pos:i,i:o,j:r+1});null!==c&&this.elDataLabelsWrap.add(c)}},{key:\"_createPaths\",value:function(t){var e=t.type,i=t.series,a=t.i,s=t.realIndex,r=t.j,o=t.x,n=t.y,l=t.y2,h=t.pX,c=t.pY,d=t.linePath,g=t.areaPath,u=t.linePaths,p=t.areaPaths,f=t.seriesIndex,x=t.isRangeStart,b=this.w,v=new m(this.ctx),y=b.config.stroke.curve,w=this.areaBottomY;if(Array.isArray(b.config.stroke.curve)&&(y=Array.isArray(f)?b.config.stroke.curve[f[a]]:b.config.stroke.curve[a]),\"smooth\"===y){var k=.35*(o-h);b.globals.hasNullValues?(null!==i[a][r]&&(null!==i[a][r+1]?(d=v.move(h,c)+v.curve(h+k,c,o-k,n,o+1,n),g=v.move(h+1,c)+v.curve(h+k,c,o-k,n,o+1,n)+v.line(o,w)+v.line(h,w)+\"z\"):(d=v.move(h,c),g=v.move(h,c)+\"z\")),u.push(d),p.push(g)):(d+=v.curve(h+k,c,o-k,n,o,n),g+=v.curve(h+k,c,o-k,n,o,n)),h=o,c=n,r===i[a].length-2&&(g=g+v.curve(h,c,o,n,o,w)+v.move(o,n)+\"z\",\"rangeArea\"===e&&x?d=d+v.curve(h,c,o,n,o,l)+v.move(o,l)+\"z\":b.globals.hasNullValues||(u.push(d),p.push(g)))}else{if(null===i[a][r+1]){d+=v.move(o,n);var A=b.globals.isXNumeric?(b.globals.seriesX[s][r]-b.globals.minX)/this.xRatio:o-this.xDivision;g=g+v.line(A,w)+v.move(o,n)+\"z\"}null===i[a][r]&&(d+=v.move(o,n),g+=v.move(o,w)),\"stepline\"===y?(d=d+v.line(o,null,\"H\")+v.line(null,n,\"V\"),g=g+v.line(o,null,\"H\")+v.line(null,n,\"V\")):\"straight\"===y&&(d+=v.line(o,n),g+=v.line(o,n)),r===i[a].length-2&&(g=g+v.line(o,w)+v.move(o,n)+\"z\",\"rangeArea\"===e&&x?d=d+v.line(o,l)+v.move(o,l)+\"z\":(u.push(d),p.push(g)))}return{linePaths:u,areaPaths:p,pX:h,pY:c,linePath:d,areaPath:g}}},{key:\"handleNullDataPoints\",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var o=this.markers.plotChartMarkers(e,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);null!==o&&this.elPointsMain.add(o)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,o=r(t)/this.height,n=r(t)/this.width;if(this.width>=this.height)for(e=0;e=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,o=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,o)}return i}}function e(e,a,s,o,n){o=void 0===o?0:o,n=void 0===n?0:n;var l=i(function(t,e){var i,a=[],s=e/r(t);for(i=0;i=o}(e,l=t[0],n)?(e.push(l),i(t.slice(1),e,s,o)):(h=s.cutArea(r(e),o),o.push(s.getCoordinates(e)),i(t,[],h,o)),o;o.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;er-a&&l.width<=o-s){var h=n.rotateAroundCenter(t.node);t.node.setAttribute(\"transform\",\"rotate(-90 \".concat(h.x,\" \").concat(h.y,\")\"))}}},{key:\"animateTreemap\",value:function(t,e,i,a){var s=new b(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),Ft=86400,Rt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return r(t,[{key:\"calculateTimeScaleTicks\",value:function(t,i){var a=this,s=this.w;if(s.globals.allSeriesCollapsed)return s.globals.labels=[],s.globals.timescaleLabels=[],[];var r=new I(this.ctx),o=(i-t)/864e5;this.determineInterval(o),s.globals.disableZoomIn=!1,s.globals.disableZoomOut=!1,o<.00011574074074074075?s.globals.disableZoomIn=!0:o>5e4&&(s.globals.disableZoomOut=!0);var n=r.getTimeUnitsfromTimestamp(t,i,this.utc),l=s.globals.gridWidth/o,h=l/24,c=h/60,d=c/60,g=Math.floor(24*o),u=Math.floor(1440*o),p=Math.floor(o*Ft),f=Math.floor(o),x=Math.floor(o/30),b=Math.floor(o/365),v={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},m={firstVal:v,currentMillisecond:v.minMillisecond,currentSecond:v.minSecond,currentMinute:v.minMinute,currentHour:v.minHour,currentMonthDate:v.minDate,currentDate:v.minDate,currentMonth:v.minMonth,currentYear:v.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,secondsWidthOnXAxis:d,numberOfSeconds:p,numberOfMinutes:u,numberOfHours:g,numberOfDays:f,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case\"years\":this.generateYearScale(m);break;case\"months\":case\"half_year\":this.generateMonthScale(m);break;case\"months_days\":case\"months_fortnight\":case\"days\":case\"week_days\":this.generateDayScale(m);break;case\"hours\":this.generateHourScale(m);break;case\"minutes_fives\":case\"minutes\":this.generateMinuteScale(m);break;case\"seconds_tens\":case\"seconds_fives\":case\"seconds\":this.generateSecondScale(m)}var y=this.timeScaleArray.map((function(t){var i={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return\"month\"===t.unit?e(e({},i),{},{day:1,value:t.value+1}):\"day\"===t.unit||\"hour\"===t.unit?e(e({},i),{},{value:t.value}):\"minute\"===t.unit?e(e({},i),{},{value:t.value,minute:t.value}):\"second\"===t.unit?e(e({},i),{},{value:t.value,minute:t.minute,second:t.second}):t}));return y.filter((function(t){var e=1,i=Math.ceil(s.globals.gridWidth/120),r=t.value;void 0!==s.config.xaxis.tickAmount&&(i=s.config.xaxis.tickAmount),y.length>i&&(e=Math.floor(y.length/i));var o=!1,n=!1;switch(a.tickInterval){case\"years\":\"year\"===t.unit&&(o=!0);break;case\"half_year\":e=7,\"year\"===t.unit&&(o=!0);break;case\"months\":e=1,\"year\"===t.unit&&(o=!0);break;case\"months_fortnight\":e=15,\"year\"!==t.unit&&\"month\"!==t.unit||(o=!0),30===r&&(n=!0);break;case\"months_days\":e=10,\"month\"===t.unit&&(o=!0),30===r&&(n=!0);break;case\"week_days\":e=8,\"month\"===t.unit&&(o=!0);break;case\"days\":e=1,\"month\"===t.unit&&(o=!0);break;case\"hours\":\"day\"===t.unit&&(o=!0);break;case\"minutes_fives\":case\"seconds_fives\":r%5!=0&&(n=!0);break;case\"seconds_tens\":r%10!=0&&(n=!0)}if(\"hours\"===a.tickInterval||\"minutes_fives\"===a.tickInterval||\"seconds_tens\"===a.tickInterval||\"seconds_fives\"===a.tickInterval){if(!n)return!0}else if((r%e==0||o)&&!n)return!0}))}},{key:\"recalcDimensionsBasedOnFormat\",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new ot(this.ctx).plotCoords()}},{key:\"determineInterval\",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval=\"years\";break;case t>800:this.tickInterval=\"half_year\";break;case t>180:this.tickInterval=\"months\";break;case t>90:this.tickInterval=\"months_fortnight\";break;case t>60:this.tickInterval=\"months_days\";break;case t>30:this.tickInterval=\"week_days\";break;case t>2:this.tickInterval=\"days\";break;case e>2.4:this.tickInterval=\"hours\";break;case i>15:this.tickInterval=\"minutes_fives\";break;case i>5:this.tickInterval=\"minutes\";break;case i>1:this.tickInterval=\"seconds_tens\";break;case 60*i>20:this.tickInterval=\"seconds_fives\";break;default:this.tickInterval=\"seconds\"}}},{key:\"generateYearScale\",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,o=e.minYear,n=0,l=new I(this.ctx),h=\"year\";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);n=(l.determineDaysOfYear(e.minYear)-c+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:n,value:o,unit:h,year:o,month:x.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:n,value:o,unit:h,year:a,month:x.monthMod(i+1)});for(var d=o,g=n,u=0;u1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,n=x.monthMod(a+1);var g=s+d,u=x.monthMod(n),p=n;0===n&&(c=\"year\",p=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:p,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:n,unit:c,year:s,month:x.monthMod(a)});for(var f=n+1,b=l,v=0,m=1;vo.determineDaysOfMonths(e+1,i)?(h=1,n=\"month\",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate?(d=0,g=x.monthMod(e.minMonth),n=\"month\",h=e.minDate,r++):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(d=0,l=e.minDate,g=l,u=c(h=l,i,a)),this.timeScaleArray.push({position:d,value:g,unit:n,year:this._getYear(a,u,0),month:x.monthMod(u),day:h});for(var p=d,f=0;fn.determineDaysOfMonths(e+1,s)&&(f=1,e+=1),{month:e,date:f}},c=function(t,e){return t>n.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,p=u+1;60===d&&(g=0,p=(u=e.minHour)+1);var f=i,b=c(f,a);this.timeScaleArray.push({position:g,value:u,unit:l,day:f,hour:p,year:s,month:x.monthMod(b)});for(var v=g,m=0;m=24)p=0,l=\"day\",b=h(f+=1,b).month,b=c(f,b);var y=this._getYear(s,b,0);v=60*r+v;var w=0===p?f:p;this.timeScaleArray.push({position:v,value:w,unit:l,hour:p,day:f,year:y,month:x.monthMod(b)}),p++}}},{key:\"generateMinuteScale\",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,c=t.numberOfMinutes,d=a+1,g=r,u=o,p=n,f=s,b=(60-i-e/1e3)*h,v=0;v=60&&(d=0,24===(f+=1)&&(f=0)),this.timeScaleArray.push({position:b,value:d,unit:\"minute\",hour:f,minute:d,day:g,year:this._getYear(p,u,0),month:x.monthMod(u)}),b+=l,d++}},{key:\"generateSecondScale\",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.secondsWidthOnXAxis,h=t.numberOfSeconds,c=i+1,d=a,g=r,u=o,p=n,f=s,b=(1e3-e)/1e3*l,v=0;v=60&&(c=0,++d>=60&&(d=0,24===++f&&(f=0))),this.timeScaleArray.push({position:b,value:c,unit:\"second\",hour:f,minute:d,second:c,day:g,year:this._getYear(p,u,0),month:x.monthMod(u)}),b+=l,c++}},{key:\"createRawDateString\",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+=\"-\"+(\"0\"+t.month.toString()).slice(-2),\"day\"===t.unit?i+=\"day\"===t.unit?\"-\"+(\"0\"+e).slice(-2):\"-01\":i+=\"-\"+(\"0\"+(t.day?t.day:\"1\")).slice(-2),\"hour\"===t.unit?i+=\"hour\"===t.unit?\"T\"+(\"0\"+e).slice(-2):\"T00\":i+=\"T\"+(\"0\"+(t.hour?t.hour:\"0\")).slice(-2),\"minute\"===t.unit?i+=\":\"+(\"0\"+e).slice(-2):i+=\":\"+(t.minute?(\"0\"+t.minute).slice(-2):\"00\"),\"second\"===t.unit?i+=\":\"+(\"0\"+e).slice(-2):i+=\":00\",this.utc&&(i+=\".000Z\"),i}},{key:\"formatDates\",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new I(e.ctx),r=e.createRawDateString(t,a),o=s.getDate(s.parseDate(r));if(e.utc||(o=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var n=\"dd MMM\",l=i.config.xaxis.labels.datetimeFormatter;\"year\"===t.unit&&(n=l.year),\"month\"===t.unit&&(n=l.month),\"day\"===t.unit&&(n=l.day),\"hour\"===t.unit&&(n=l.hour),\"minute\"===t.unit&&(n=l.minute),\"second\"===t.unit&&(n=l.second),a=s.formatDate(o,n)}else a=s.formatDate(o,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:\"removeOverlappingTS\",value:function(t){var e,i=this,a=new m(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,o=t.map((function(o,n){if(n>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return o.position>h+l+10?(r=n,o):null}return o}));return o=o.filter((function(t){return null!==t}))}},{key:\"_getYear\",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),Ht=function(){function t(e,i){a(this,t),this.ctx=i,this.w=i.w,this.el=e}return r(t,[{key:\"setupElements\",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=[\"line\",\"area\",\"bar\",\"rangeBar\",\"rangeArea\",\"candlestick\",\"boxPlot\",\"scatter\",\"bubble\",\"radar\",\"heatmap\",\"treemap\"].indexOf(i)>-1,t.xyCharts=[\"line\",\"area\",\"bar\",\"rangeBar\",\"rangeArea\",\"candlestick\",\"boxPlot\",\"scatter\",\"bubble\"].indexOf(i)>-1,t.isBarHorizontal=(\"bar\"===e.chart.type||\"rangeBar\"===e.chart.type||\"boxPlot\"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=\".apexcharts\"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement(\"div\"),m.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:\"apexcharts-canvas \"+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:\"apexcharts-svg\",\"xmlns:data\":\"ApexChartsNS\",transform:\"translate(\".concat(e.chart.offsetX,\", \").concat(e.chart.offsetY,\")\")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elLegendForeign=document.createElementNS(t.SVGNS,\"foreignObject\"),m.setAttrs(t.dom.elLegendForeign,{x:0,y:0,width:t.svgWidth,height:t.svgHeight}),t.dom.elLegendWrap=document.createElement(\"div\"),t.dom.elLegendWrap.classList.add(\"apexcharts-legend\"),t.dom.elLegendWrap.setAttribute(\"xmlns\",\"http://www.w3.org/1999/xhtml\"),t.dom.elLegendForeign.appendChild(t.dom.elLegendWrap),t.dom.Paper.node.appendChild(t.dom.elLegendForeign),t.dom.elGraphical=t.dom.Paper.group().attr({class:\"apexcharts-inner apexcharts-graphical\"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:\"plotChartType\",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},o={series:[],i:[]},n={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]},g={series:[],i:[]},u={series:[],seriesRangeEnd:[],i:[]};s.series.map((function(e,p){var f=0;void 0!==t[p].type?(\"column\"===t[p].type||\"bar\"===t[p].type?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn(\"Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`\"),h.series.push(e),h.i.push(p),f++,i.globals.columnSeries=h.series):\"area\"===t[p].type?(o.series.push(e),o.i.push(p),f++):\"line\"===t[p].type?(r.series.push(e),r.i.push(p),f++):\"scatter\"===t[p].type?(n.series.push(e),n.i.push(p)):\"bubble\"===t[p].type?(l.series.push(e),l.i.push(p),f++):\"candlestick\"===t[p].type?(c.series.push(e),c.i.push(p),f++):\"boxPlot\"===t[p].type?(d.series.push(e),d.i.push(p),f++):\"rangeBar\"===t[p].type?(g.series.push(e),g.i.push(p),f++):\"rangeArea\"===t[p].type?(u.series.push(s.seriesRangeStart[p]),u.seriesRangeEnd.push(s.seriesRangeEnd[p]),u.i.push(p),f++):console.warn(\"You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble/candlestick/boxPlot/rangeBar/rangeArea\"),f>1&&(s.comboCharts=!0)):(r.series.push(e),r.i.push(p))}));var p=new Xt(this.ctx,e),f=new kt(this.ctx,e);this.ctx.pie=new Lt(this.ctx);var x=new It(this.ctx);this.ctx.rangeBar=new Tt(this.ctx,e);var b=new Pt(this.ctx),v=[];if(s.comboCharts){if(o.series.length>0&&v.push(p.draw(o.series,\"area\",o.i)),h.series.length>0)if(i.config.chart.stacked){var m=new wt(this.ctx,e);v.push(m.draw(h.series,h.i))}else this.ctx.bar=new yt(this.ctx,e),v.push(this.ctx.bar.draw(h.series,h.i));if(u.series.length>0&&v.push(p.draw(u.series,\"rangeArea\",u.i,u.seriesRangeEnd)),r.series.length>0&&v.push(p.draw(r.series,\"line\",r.i)),c.series.length>0&&v.push(f.draw(c.series,\"candlestick\",c.i)),d.series.length>0&&v.push(f.draw(d.series,\"boxPlot\",d.i)),g.series.length>0&&v.push(this.ctx.rangeBar.draw(g.series,g.i)),n.series.length>0){var y=new Xt(this.ctx,e,!0);v.push(y.draw(n.series,\"scatter\",n.i))}if(l.series.length>0){var w=new Xt(this.ctx,e,!0);v.push(w.draw(l.series,\"bubble\",l.i))}}else switch(a.chart.type){case\"line\":v=p.draw(s.series,\"line\");break;case\"area\":v=p.draw(s.series,\"area\");break;case\"bar\":if(a.chart.stacked)v=new wt(this.ctx,e).draw(s.series);else this.ctx.bar=new yt(this.ctx,e),v=this.ctx.bar.draw(s.series);break;case\"candlestick\":v=new kt(this.ctx,e).draw(s.series,\"candlestick\");break;case\"boxPlot\":v=new kt(this.ctx,e).draw(s.series,a.chart.type);break;case\"rangeBar\":v=this.ctx.rangeBar.draw(s.series);break;case\"rangeArea\":v=p.draw(s.seriesRangeStart,\"rangeArea\",void 0,s.seriesRangeEnd);break;case\"heatmap\":v=new St(this.ctx,e).draw(s.series);break;case\"treemap\":v=new Yt(this.ctx,e).draw(s.series);break;case\"pie\":case\"donut\":case\"polarArea\":v=this.ctx.pie.draw(s.series);break;case\"radialBar\":v=x.draw(s.series);break;case\"radar\":v=b.draw(s.series);break;default:v=p.draw(s.series)}return v}},{key:\"setSVGDimensions\",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=x.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();\"%\"===a?x.isNumber(i[0])&&(0===i[0].width&&(i=x.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):\"px\"!==a&&\"\"!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=e.chart.height.toString().split(/[0-9]+/g).pop();if(\"auto\"!==t.svgHeight&&\"\"!==t.svgHeight)if(\"%\"===s){var r=x.getDimensions(this.el.parentNode);t.svgHeight=r[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),m.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),\"%\"!==s){var o=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+o+\"px\"}t.dom.elWrap.style.width=t.svgWidth+\"px\",t.dom.elWrap.style.height=t.svgHeight+\"px\"}},{key:\"shiftGraphPosition\",value:function(){var t=this.w.globals,e=t.translateY,i={transform:\"translate(\"+t.translateX+\", \"+e+\")\"};m.setAttrs(t.dom.elGraphical.node,i)}},{key:\"resizeNonAxisCharts\",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,\"top\"!==t.config.legend.position&&\"bottom\"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new lt(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=t.globals.dom.baseEl.querySelector(\".apexcharts-radialbar, .apexcharts-pie\"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled&&0!==t.config.plotOptions.radialBar.startAngle){var o=x.getBoundingClientRect(s);r=o.bottom;var n=o.bottom-o.top;r=Math.max(2.05*t.globals.radialSize,n)}var l=r+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute(\"height\",l),t.config.chart.height&&String(t.config.chart.height).indexOf(\"%\")>0||(e.dom.elWrap.style.height=l+\"px\",m.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=l+\"px\")}},{key:\"coreCalculations\",value:function(){new U(this.ctx).init()}},{key:\"resetGlobals\",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new Y,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:\"isMultipleY\",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:\"xySettings\",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if(\"back\"===e.config.xaxis.crosshairs.position)new Q(this.ctx).drawXCrosshairs();if(\"back\"===e.config.yaxis[0].crosshairs.position)new Q(this.ctx).drawYCrosshairs();if(\"datetime\"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new Rt(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new y(this.ctx).getCalculatedRatios()}return t}},{key:\"updateSourceChart\",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:\"setupBrushHandler\",value:function(){var t=this,i=this.w;if(i.config.chart.brush.enabled&&\"function\"!=typeof i.config.chart.events.selection){var a=i.config.chart.brush.targets||[i.config.chart.brush.target];a.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,\"function\"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),\"function\"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),i.config.chart.events.selection=function(t,s){a.forEach((function(t){var a=ApexCharts.getChartByID(t),r=x.clone(i.config.yaxis);if(i.config.chart.brush.autoScaleYaxis&&1===a.w.globals.series.length){var o=new _(a);r=o.autoScaleY(a,r,s)}var n=a.w.config.yaxis.reduce((function(t,i,s){return[].concat(u(t),[e(e({},a.w.config.yaxis[s]),{},{min:r[0].min,max:r[0].max})])}),[]);a.ctx.updateHelpers._updateOptions({xaxis:{min:s.xaxis.min,max:s.xaxis.max},yaxis:n},!1,!1,!1,!1)}))}}}}]),t}(),Dt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"_updateOptions\",value:function(t){var e=this,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise((function(n){var l=[e.ctx];r&&(l=e.ctx.getSyncedCharts()),e.ctx.w.globals.isExecCalled&&(l=[e.ctx],e.ctx.w.globals.isExecCalled=!1),l.forEach((function(r,h){var c=r.w;if(c.globals.shouldAnimate=s,a||(c.globals.resized=!0,c.globals.dataChanged=!0,s&&r.series.getPreviousPaths()),t&&\"object\"===i(t)&&(r.config=new E(t),t=y.extendArrayProps(r.config,t,c),r.w.globals.chartID!==e.ctx.w.globals.chartID&&delete t.series,c.config=x.extend(c.config,t),o&&(c.globals.lastXAxis=t.xaxis?x.clone(t.xaxis):[],c.globals.lastYAxis=t.yaxis?x.clone(t.yaxis):[],c.globals.initialConfig=x.extend({},c.config),c.globals.initialSeries=x.clone(c.config.series),t.series))){for(var d=0;d2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(s){var r,o=i.w;return o.globals.shouldAnimate=e,o.globals.dataChanged=!0,e&&i.ctx.series.getPreviousPaths(),o.globals.axisCharts?(0===(r=t.map((function(t,e){return i._extendSeries(t,e)}))).length&&(r=[{data:[]}]),o.config.series=r):o.config.series=t.slice(),a&&(o.globals.initialConfig.series=x.clone(o.config.series),o.globals.initialSeries=x.clone(o.config.series)),i.ctx.update().then((function(){s(i.ctx)}))}))}},{key:\"_extendSeries\",value:function(t,i){var a=this.w,s=a.config.series[i];return e(e({},a.config.series[i]),{},{name:t.name?t.name:s&&s.name,color:t.color?t.color:s&&s.color,type:t.type?t.type:s&&s.type,data:t.data?t.data:s&&s.data})}},{key:\"toggleDataPointSelection\",value:function(t,e){var i=this.w,a=null,s=\".apexcharts-series[data\\\\:realIndex='\".concat(t,\"']\");return i.globals.axisCharts?a=i.globals.dom.Paper.select(\"\".concat(s,\" path[j='\").concat(e,\"'], \").concat(s,\" circle[j='\").concat(e,\"'], \").concat(s,\" rect[j='\").concat(e,\"']\")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select(\"\".concat(s,\" path[j='\").concat(t,\"']\")).members[0],\"pie\"!==i.config.chart.type&&\"polarArea\"!==i.config.chart.type&&\"donut\"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new m(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn(\"toggleDataPointSelection: Element not found\"),null)}},{key:\"forceXAxisUpdate\",value:function(t){var e=this.w;if([\"min\",\"max\"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new z(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:\"forceYAxisUpdate\",value:function(t){return t.chart&&t.chart.stacked&&\"100%\"===t.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:\"revertDefaultAxisMinMax\",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),t}();zt=\"undefined\"!=typeof window?window:void 0,Et=function(t,e){var a=(void 0!==this?this:t).SVG=function(t){if(a.supported)return t=new a.Doc(t),a.parser.draw||a.prepare(),t};if(a.ns=\"http://www.w3.org/2000/svg\",a.xmlns=\"http://www.w3.org/2000/xmlns/\",a.xlink=\"http://www.w3.org/1999/xlink\",a.svgjs=\"http://svgjs.dev\",a.supported=!0,!a.supported)return!1;a.did=1e3,a.eid=function(t){return\"Svgjs\"+d(t)+a.did++},a.create=function(t){var i=e.createElementNS(this.ns,t);return i.setAttribute(\"id\",this.eid(t)),i},a.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var i=t.length-1;i>=0;i--)if(t[i])for(var s in e)t[i].prototype[s]=e[s];a.Set&&a.Set.inherit&&a.Set.inherit()},a.invent=function(t){var e=\"function\"==typeof t.create?t.create:function(){this.constructor.call(this,a.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&a.extend(e,t.extend),t.construct&&a.extend(t.parent||a.Container,t.construct),e},a.adopt=function(e){return e?e.instance?e.instance:((i=\"svg\"==e.nodeName?e.parentNode instanceof t.SVGElement?new a.Nested:new a.Doc:\"linearGradient\"==e.nodeName?new a.Gradient(\"linear\"):\"radialGradient\"==e.nodeName?new a.Gradient(\"radial\"):a[d(e.nodeName)]?new(a[d(e.nodeName)]):new a.Element(e)).type=e.nodeName,i.node=e,e.instance=i,i instanceof a.Doc&&i.namespace().defs(),i.setData(JSON.parse(e.getAttribute(\"svgjs:data\"))||{}),i):null;var i},a.prepare=function(){var t=e.getElementsByTagName(\"body\")[0],i=(t?new a.Doc(t):a.adopt(e.documentElement).nested()).size(2,0);a.parser={body:t||e.documentElement,draw:i.style(\"opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden\").node,poly:i.polyline().node,path:i.path().node,native:a.create(\"svg\")}},a.parser={native:a.create(\"svg\")},e.addEventListener(\"DOMContentLoaded\",(function(){a.parser.draw||a.prepare()}),!1),a.regex={numberAndUnit:/^([+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i,rgb:/rgb\\((\\d+),(\\d+),(\\d+)\\)/,reference:/#([a-z0-9\\-_]+)/i,transforms:/\\)\\s*,?\\s*/,whitespace:/\\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\\s+)?$/,isNumber:/^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,isPercent:/^-?[\\d\\.]+%$/,isImage:/\\.(jpg|jpeg|png|gif|svg)(\\?[^=]+.*)?/i,delimiter:/[\\s,]+/,hyphen:/([^e])\\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\\d?\\.\\d+(?:e[+-]?\\d+)?)((?:\\.\\d+(?:e[+-]?\\d+)?)+))+/gi,dots:/\\./g},a.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s1?1:t,new a.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),a.Color.test=function(t){return t+=\"\",a.regex.isHex.test(t)||a.regex.isRgb.test(t)},a.Color.isRgb=function(t){return t&&\"number\"==typeof t.r&&\"number\"==typeof t.g&&\"number\"==typeof t.b},a.Color.isColor=function(t){return a.Color.isRgb(t)||a.Color.test(t)},a.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},a.extend(a.Array,{toString:function(){return this.value.join(\" \")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),a.PointArray=function(t,e){a.Array.call(this,t,e||[[0,0]])},a.PointArray.prototype=new a.Array,a.PointArray.prototype.constructor=a.PointArray;for(var s={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.y=t[1],[\"M\",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],[\"L\",t[0],t[1]]},H:function(t,e){return e.x=t[0],[\"H\",t[0]]},V:function(t,e){return e.y=t[0],[\"V\",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],[\"C\",t[0],t[1],t[2],t[3],t[4],t[5]]},Q:function(t,e){return e.x=t[2],e.y=t[3],[\"Q\",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,[\"Z\"]}},r=\"mlhvqtcsaz\".split(\"\"),o=0,n=r.length;ol);return r},bbox:function(){return a.parser.draw||a.prepare(),a.parser.path.setAttribute(\"d\",this.toString()),a.parser.path.getBBox()}}),a.Number=a.invent({create:function(t,e){this.value=0,this.unit=e||\"\",\"number\"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:\"string\"==typeof t?(e=t.match(a.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),\"%\"==e[5]?this.value/=100:\"s\"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof a.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return(\"%\"==this.unit?~~(1e8*this.value)/1e6:\"s\"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new a.Number(t),new a.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new a.Number(t),new a.Number(this-t,this.unit||t.unit)},times:function(t){return t=new a.Number(t),new a.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new a.Number(t),new a.Number(this/t,this.unit||t.unit)},to:function(t){var e=new a.Number(this);return\"string\"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new a.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new a.Number(this.destination).minus(this).times(t).plus(this):this}}}),a.Element=a.invent({create:function(t){this._stroke=a.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute(\"stroke\")||this._stroke)},extend:{x:function(t){return this.attr(\"x\",t)},y:function(t){return this.attr(\"y\",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr(\"width\",t)},height:function(t){return this.attr(\"height\",t)},size:function(t,e){var i=u(this,t,e);return this.width(new a.Number(i.width)).height(new a.Number(i.height))},clone:function(t){this.writeDataToDom();var e=x(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr(\"id\",t)},show:function(){return this.style(\"display\",\"\")},hide:function(){return this.style(\"display\",\"none\")},visible:function(){return\"none\"!=this.style(\"display\")},toString:function(){return this.attr(\"id\")},classes:function(){var t=this.attr(\"class\");return null==t?[]:t.trim().split(a.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var e=this.classes();e.push(t),this.attr(\"class\",e.join(\" \"))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr(\"class\",this.classes().filter((function(e){return e!=t})).join(\" \")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)},reference:function(t){return a.get(this.attr(t))},parent:function(e){var i=this;if(!i.node.parentNode)return null;if(i=a.adopt(i.node.parentNode),!e)return i;for(;i&&i.node instanceof t.SVGElement;){if(\"string\"==typeof e?i.matches(e):i instanceof e)return i;if(!i.node.parentNode||\"#document\"==i.node.parentNode.nodeName)return null;i=a.adopt(i.node.parentNode)}},doc:function(){return this instanceof a.Doc?this:this.parent(a.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var i=e.createElement(\"svg\");if(!(t&&this instanceof a.Parent))return i.appendChild(t=e.createElement(\"svg\")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),i.innerHTML.replace(/^/,\"\").replace(/<\\/svg>$/,\"\");i.innerHTML=\"\"+t.replace(/\\n/,\"\").replace(/<([\\w:-]+)([^<]+?)\\/>/g,\"<$1$2>\")+\"\";for(var s=0,r=i.firstChild.childNodes.length;s\":function(t){return-Math.cos(t*Math.PI)/2+.5},\">\":function(t){return Math.sin(t*Math.PI/2)},\"<\":function(t){return 1-Math.cos(t*Math.PI/2)}},a.morph=function(t){return function(e,i){return new a.MorphObj(e,i).at(t)}},a.Situation=a.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new a.Number(t.duration).valueOf(),this.delay=new a.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),a.FX=a.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(t,e,s){\"object\"===i(t)&&(e=t.ease,s=t.delay,t=t.duration);var r=new a.Situation({duration:t||1e3,delay:s||0,ease:a.easing[e||\"-\"]||e});return this.queue(r),this},target:function(t){return t&&t instanceof a.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=t.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){t.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return(\"function\"==typeof t||t instanceof a.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof a.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var i in e.animations){t=this.target()[i](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[i])||(e.animations[i]=[e.animations[i]]);for(var s=t.length;s--;)e.animations[i][s]instanceof a.Number&&(t[s]=new a.Number(t[s])),e.animations[i][s]=t[s].morph(e.animations[i][s])}for(var i in e.attrs)e.attrs[i]=new a.MorphObj(this.target().attr(i),e.attrs[i]);for(var i in e.styles)e.styles[i]=new a.MorphObj(this.target().style(i),e.styles[i]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on(\"finished.fx\",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off(\"finished.fx\",i))})),this._callStart()},during:function(t){var e=this.last(),i=function(i){i.detail.situation==e&&t.call(this,i.detail.pos,a.morph(i.detail.pos),i.detail.eased,e)};return this.target().off(\"during.fx\",i).on(\"during.fx\",i),this.after((function(){this.off(\"during.fx\",i)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off(\"allfinished.fx\",e)};return this.target().off(\"allfinished.fx\",e).on(\"allfinished.fx\",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||\"animations\"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||ithis.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire(\"during\",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire(\"finished\",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire(\"allfinished\"),this.situations.length||(this.target().off(\".fx\"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,i=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i[r].apply(i,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.attr.apply(i,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return\"string\"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.style.apply(i,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var o=s.transforms.length;r=0;--s)this[v[s]]=null!=t[v[s]]?t[v[s]]:e[v[s]]},extend:{extract:function(){var t=p(this,0,1);p(this,1,0);var e=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new a.Matrix(this)}},clone:function(){return new a.Matrix(this)},morph:function(t){return this.destination=new a.Matrix(t),this},multiply:function(t){return new a.Matrix(this.native().multiply(function(t){return t instanceof a.Matrix||(t=new a.Matrix(t)),t}(t).native()))},inverse:function(){return new a.Matrix(this.native().inverse())},translate:function(t,e){return new a.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=a.parser.native.createSVGMatrix(),e=v.length-1;e>=0;e--)t[v[e]]=this[v[e]];return t},toString:function(){return\"matrix(\"+b(this.a)+\",\"+b(this.b)+\",\"+b(this.c)+\",\"+b(this.d)+\",\"+b(this.e)+\",\"+b(this.f)+\")\"}},parent:a.Element,construct:{ctm:function(){return new a.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof a.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new a.Matrix(e)}return new a.Matrix(this.node.getScreenCTM())}}}),a.Point=a.invent({create:function(t,e){var a;a=Array.isArray(t)?{x:t[0],y:t[1]}:\"object\"===i(t)?{x:t.x,y:t.y}:null!=t?{x:t,y:null!=e?e:t}:{x:0,y:0},this.x=a.x,this.y=a.y},extend:{clone:function(){return new a.Point(this)},morph:function(t,e){return this.destination=new a.Point(t,e),this}}}),a.extend(a.Element,{point:function(t,e){return new a.Point(t,e).transform(this.screenCTM().inverse())}}),a.extend(a.Element,{attr:function(t,e,s){if(null==t){for(t={},s=(e=this.node.attributes).length-1;s>=0;s--)t[e[s].nodeName]=a.regex.isNumber.test(e[s].nodeValue)?parseFloat(e[s].nodeValue):e[s].nodeValue;return t}if(\"object\"===i(t))for(var r in t)this.attr(r,t[r]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?a.defaults.attrs[t]:a.regex.isNumber.test(e)?parseFloat(e):e;\"stroke-width\"==t?this.attr(\"stroke\",parseFloat(e)>0?this._stroke:null):\"stroke\"==t&&(this._stroke=e),\"fill\"!=t&&\"stroke\"!=t||(a.regex.isImage.test(e)&&(e=this.doc().defs().image(e,0,0)),e instanceof a.Image&&(e=this.doc().defs().pattern(0,0,(function(){this.add(e)})))),\"number\"==typeof e?e=new a.Number(e):a.Color.isColor(e)?e=new a.Color(e):Array.isArray(e)&&(e=new a.Array(e)),\"leading\"==t?this.leading&&this.leading(e):\"string\"==typeof s?this.node.setAttributeNS(s,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||\"font-size\"!=t&&\"x\"!=t||this.rebuild(t,e)}return this}}),a.extend(a.Element,{transform:function(t,e){var s;return\"object\"!==i(t)?(s=new a.Matrix(this).extract(),\"string\"==typeof t?s[t]:s):(s=new a.Matrix(this),e=!!e||!!t.relative,null!=t.a&&(s=e?s.multiply(new a.Matrix(t)):new a.Matrix(t)),this.attr(\"transform\",s))}}),a.extend(a.Element,{untransform:function(){return this.attr(\"transform\",null)},matrixify:function(){return(this.attr(\"transform\")||\"\").split(a.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split(\"(\");return[e[0],e[1].split(a.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return\"matrix\"==e[0]?t.multiply(f(e[1])):t[e[0]].apply(t,e[1])}),new a.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),a.Transformation=a.invent({create:function(t,e){if(arguments.length>1&&\"boolean\"!=typeof e)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(t))for(var a=0,s=this.arguments.length;a=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return a.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var i=this.children(),s=0,r=i.length;s=0;i--)e.childNodes[i]instanceof t.SVGElement&&x(e.childNodes[i]);return a.adopt(e).id(a.eid(e.nodeName))}function b(t){return Math.abs(t)>1e-37?t:0}[\"fill\",\"stroke\"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if(\"string\"==typeof e||a.Color.isRgb(e)||e&&\"function\"==typeof e.fill)this.attr(t,e);else for(var i=l[t].length-1;i>=0;i--)null!=e[l[t][i]]&&this.attr(l.prefix(t,l[t][i]),e[l[t][i]]);return this},a.extend(a.Element,a.FX,e)})),a.extend(a.Element,a.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr(\"transform\",new a.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr(\"opacity\",t)},dx:function(t){return this.x(new a.Number(t).plus(this instanceof a.FX?0:this.x()),!0)},dy:function(t){return this.y(new a.Number(t).plus(this instanceof a.FX?0:this.y()),!0)}}),a.extend(a.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),a.Set=a.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new a.Set(t)}}}),a.FX.Set=a.invent({create:function(t){this.set=t}}),a.Set.inherit=function(){var t=[];for(var e in a.Shape.prototype)\"function\"==typeof a.Shape.prototype[e]&&\"function\"!=typeof a.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){a.Set.prototype[t]=function(){for(var e=0,i=this.members.length;e=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),a.get=function(t){var i=e.getElementById(function(t){var e=(t||\"\").toString().match(a.regex.reference);if(e)return e[1]}(t)||t);return a.adopt(i)},a.select=function(t,i){return new a.Set(a.utils.map((i||e).querySelectorAll(t),(function(t){return a.adopt(t)})))},a.extend(a.Parent,{select:function(t){return a.select(t,this.node)}});var v=\"abcdef\".split(\"\");if(\"function\"!=typeof t.CustomEvent){var m=function(t,i){i=i||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent(\"CustomEvent\");return a.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),a};m.prototype=t.Event.prototype,a.CustomEvent=m}else a.CustomEvent=t.CustomEvent;return a},\"function\"==typeof define&&define.amd?define((function(){return Et(zt,zt.document)})):\"object\"===(\"undefined\"==typeof exports?\"undefined\":i(exports))&&\"undefined\"!=typeof module?module.exports=zt.document?Et(zt,zt.document):function(t){return Et(t,t.document)}:zt.SVG=Et(zt,zt.document),\n/*! svg.filter.js - v2.0.2 - 2016-02-24\n* https://github.com/wout/svg.filter.js\n* Copyright (c) 2016 Wout Fierens; Licensed MIT */\nfunction(){SVG.Filter=SVG.invent({create:\"filter\",inherit:SVG.Parent,extend:{source:\"SourceGraphic\",sourceAlpha:\"SourceAlpha\",background:\"BackgroundImage\",backgroundAlpha:\"BackgroundAlpha\",fill:\"FillPaint\",stroke:\"StrokePaint\",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr(\"in\")&&this.autoSetIn&&t.attr(\"in\",this.source),t.attr(\"result\")||t.attr(\"result\",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return\"url(#\"+this.attr(\"id\")+\")\"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return\"function\"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr(\"filter\",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr(\"filter\",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result=\"'+this.attr(\"in\")+'\"]').get(0)||this.attr(\"in\"):this.attr(\"in\",t)},result:function(t){return null==t?this.attr(\"result\"):this.attr(\"result\",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result=\"'+this.attr(\"in\")+'\"]').get(0)||this.attr(\"in\"):this.attr(\"in\",t)},result:function(t){return null==t?this.attr(\"result\"):this.attr(\"result\",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr(\"in\",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||\"normal\"})},colorMatrix:function(t,e){\"matrix\"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(\" \").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr(\"flood-color\",t),null!=e&&this.attr(\"flood-opacity\",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr(\"href\",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr(\"stdDeviation\",function(t){if(!Array.isArray(t))return t;for(var e=0,i=t.length,a=[];e1&&(I*=a=Math.sqrt(a),T*=a);s=(new SVG.Matrix).rotate(M).scale(1/I,1/T).rotate(-M),F=F.transform(s),R=R.transform(s),r=[R.x-F.x,R.y-F.y],n=r[0]*r[0]+r[1]*r[1],o=Math.sqrt(n),r[0]/=o,r[1]/=o,l=n<4?Math.sqrt(1-n/4):0,X===z&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-r[1],(R.y+F.y)/2+l*r[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);z&&g>u&&(u+=2*Math.PI);!z&&gr.maxX-e.width&&(o=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&sr.maxY-e.height&&(n=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,o-=o%r.snapToGrid,n-=n%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:n},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire(\"dragend\",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,\"mousemove.drag\"),SVG.off(window,\"touchmove.drag\"),SVG.off(window,\"mouseup.drag\"),SVG.off(window,\"touchend.drag\")},SVG.extend(SVG.Element,{draggable:function(e,i){\"function\"!=typeof e&&\"object\"!=typeof e||(i=e,e=!0);var a=this.remember(\"_draggable\")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off(\"mousedown.drag\"),this.off(\"touchstart.drag\")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember(\"_selectHandler\",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:[\"width\",0],rb:[\"width\",\"height\"],lb:[0,\"height\"],t:[\"width\",0],r:[\"width\",\"height\"],b:[\"width\",\"height\"],l:[0,\"height\"]},this.pointCoord=function(t,e,i){var a=\"string\"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,\"t\"===t||\"b\"===t),y:this.pointCoord(i[1],e,\"r\"===t||\"l\"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=[\"points\",\"pointsExclude\"];for(var s in r){var o=this.options[r[s]];\"string\"==typeof o?o=o.length>0?o.split(/\\s*,\\s*/i):[]:\"boolean\"==typeof o&&\"points\"===r[s]&&(o=o?a:[]),this.options[r[s]]=o}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==[\"line\",\"polyline\",\"polygon\"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i0&&this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case\"rt\":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case\"rb\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case\"lb\":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr(\"font-size\",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case\"t\":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case\"r\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case\"b\":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case\"l\":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if(\"text\"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case\"rot\":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),o=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(o-o%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case\"point\":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire(\"resizestart\",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,\"touchmove.resize\",(function(t){e.update(t||window.event)})),SVG.on(window,\"touchend.resize\",(function(){e.done()})),SVG.on(window,\"mousemove.resize\",(function(t){e.update(t||window.event)})),SVG.on(window,\"mouseup.resize\",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire(\"resizing\",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,\"mousemove.resize\"),SVG.off(window,\"mouseup.resize\"),SVG.off(window,\"touchmove.resize\"),SVG.off(window,\"touchend.resize\"),this.el.fire(\"resizedone\")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])o.maxX&&(t=o.maxX-s),void 0!==o.minY&&r+eo.maxY&&(e=o.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],o=s/r;return oa&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember(\"_resizeHandler\")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}(),void 0===window.Apex&&(window.Apex={});var Ot=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"initModules\",value:function(){this.ctx.publicMethods=[\"updateOptions\",\"updateSeries\",\"appendData\",\"appendSeries\",\"toggleSeries\",\"showSeries\",\"hideSeries\",\"setLocale\",\"resetSeries\",\"zoomX\",\"toggleDataPointSelection\",\"dataURI\",\"exportToCSV\",\"addXaxisAnnotation\",\"addYaxisAnnotation\",\"addPointAnnotation\",\"clearAnnotations\",\"removeAnnotation\",\"paper\",\"destroy\"],this.ctx.eventList=[\"click\",\"mousedown\",\"mousemove\",\"mouseleave\",\"touchstart\",\"touchmove\",\"touchleave\",\"mouseup\",\"touchend\"],this.ctx.animations=new b(this.ctx),this.ctx.axes=new J(this.ctx),this.ctx.core=new Ht(this.ctx.el,this.ctx),this.ctx.config=new E({}),this.ctx.data=new W(this.ctx),this.ctx.grid=new j(this.ctx),this.ctx.graphics=new m(this.ctx),this.ctx.coreUtils=new y(this.ctx),this.ctx.crosshairs=new Q(this.ctx),this.ctx.events=new Z(this.ctx),this.ctx.exports=new G(this.ctx),this.ctx.localization=new $(this.ctx),this.ctx.options=new L,this.ctx.responsive=new K(this.ctx),this.ctx.series=new N(this.ctx),this.ctx.theme=new tt(this.ctx),this.ctx.formatters=new T(this.ctx),this.ctx.titleSubtitle=new et(this.ctx),this.ctx.legend=new lt(this.ctx),this.ctx.toolbar=new ht(this.ctx),this.ctx.tooltip=new bt(this.ctx),this.ctx.dimensions=new ot(this.ctx),this.ctx.updateHelpers=new Dt(this.ctx),this.ctx.zoomPanSelection=new ct(this.ctx),this.ctx.w.globals.tooltip=new bt(this.ctx)}}]),t}(),Nt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:\"clear\",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:\"killSVG\",value:function(t){t.each((function(t,e){this.removeClass(\"*\"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:\"clearDomElements\",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight=\"unset\");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elLegendWrap=null,r.elLegendForeign=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),t}(),Wt=new WeakMap;var Bt=function(){function t(e,i){a(this,t),this.opts=i,this.ctx=this,this.w=new F(i).init(),this.el=e,this.w.globals.cuid=x.randomId(),this.w.globals.chartID=this.w.config.chart.id?x.escapeString(this.w.config.chart.id):this.w.globals.cuid,new Ot(this).initModules(),this.create=x.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return r(t,[{key:\"render\",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;if(\"function\"==typeof a&&a(t,t.w),t.events.fireEvent(\"beforeMount\",[t,t.w]),window.addEventListener(\"resize\",t.windowResizeHandler),function(t,e){var i=!1;if(t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var a=t.getBoundingClientRect();\"none\"!==t.style.display&&0!==a.width||(i=!0)}var s=new ResizeObserver((function(a){i&&e.call(t,a),i=!0}));t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(t.children).forEach((function(t){return s.observe(t)})):s.observe(t),Wt.set(e,s)}(t.el.parentNode,t.parentResizeHandler),!t.css){var s=t.el.getRootNode&&t.el.getRootNode(),r=x.is(\"ShadowRoot\",s),o=t.el.ownerDocument,n=o.getElementById(\"apexcharts-css\");!r&&n||(t.css=document.createElement(\"style\"),t.css.id=\"apexcharts-css\",t.css.textContent='@keyframes opaque {\\n 0% {\\n opacity: 0\\n }\\n\\n to {\\n opacity: 1\\n }\\n}\\n\\n@keyframes resizeanim {\\n 0%,to {\\n opacity: 0\\n }\\n}\\n\\n.apexcharts-canvas {\\n position: relative;\\n user-select: none\\n}\\n\\n.apexcharts-canvas ::-webkit-scrollbar {\\n -webkit-appearance: none;\\n width: 6px\\n}\\n\\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\\n border-radius: 4px;\\n background-color: rgba(0,0,0,.5);\\n box-shadow: 0 0 1px rgba(255,255,255,.5);\\n -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5)\\n}\\n\\n.apexcharts-inner {\\n position: relative\\n}\\n\\n.apexcharts-text tspan {\\n font-family: inherit\\n}\\n\\n.legend-mouseover-inactive {\\n transition: .15s ease all;\\n opacity: .2\\n}\\n\\n.apexcharts-legend-text {\\n padding-left: 15px;\\n margin-left: -15px;\\n}\\n\\n.apexcharts-series-collapsed {\\n opacity: 0\\n}\\n\\n.apexcharts-tooltip {\\n border-radius: 5px;\\n box-shadow: 2px 2px 6px -4px #999;\\n cursor: default;\\n font-size: 14px;\\n left: 62px;\\n opacity: 0;\\n pointer-events: none;\\n position: absolute;\\n top: 20px;\\n display: flex;\\n flex-direction: column;\\n overflow: hidden;\\n white-space: nowrap;\\n z-index: 12;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-tooltip.apexcharts-active {\\n opacity: 1;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-light {\\n border: 1px solid #e3e3e3;\\n background: rgba(255,255,255,.96)\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-dark {\\n color: #fff;\\n background: rgba(30,30,30,.8)\\n}\\n\\n.apexcharts-tooltip * {\\n font-family: inherit\\n}\\n\\n.apexcharts-tooltip-title {\\n padding: 6px;\\n font-size: 15px;\\n margin-bottom: 4px\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\\n background: #eceff1;\\n border-bottom: 1px solid #ddd\\n}\\n\\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\\n background: rgba(0,0,0,.7);\\n border-bottom: 1px solid #333\\n}\\n\\n.apexcharts-tooltip-text-goals-value,.apexcharts-tooltip-text-y-value,.apexcharts-tooltip-text-z-value {\\n display: inline-block;\\n margin-left: 5px;\\n font-weight: 600\\n}\\n\\n.apexcharts-tooltip-text-goals-label:empty,.apexcharts-tooltip-text-goals-value:empty,.apexcharts-tooltip-text-y-label:empty,.apexcharts-tooltip-text-y-value:empty,.apexcharts-tooltip-text-z-value:empty,.apexcharts-tooltip-title:empty {\\n display: none\\n}\\n\\n.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\\n padding: 6px 0 5px\\n}\\n\\n.apexcharts-tooltip-goals-group,.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\\n display: flex\\n}\\n\\n.apexcharts-tooltip-text-goals-label:not(:empty),.apexcharts-tooltip-text-goals-value:not(:empty) {\\n margin-top: -6px\\n}\\n\\n.apexcharts-tooltip-marker {\\n width: 12px;\\n height: 12px;\\n position: relative;\\n top: 0;\\n margin-right: 10px;\\n border-radius: 50%\\n}\\n\\n.apexcharts-tooltip-series-group {\\n padding: 0 10px;\\n display: none;\\n text-align: left;\\n justify-content: left;\\n align-items: center\\n}\\n\\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\\n opacity: 1\\n}\\n\\n.apexcharts-tooltip-series-group.apexcharts-active,.apexcharts-tooltip-series-group:last-child {\\n padding-bottom: 4px\\n}\\n\\n.apexcharts-tooltip-series-group-hidden {\\n opacity: 0;\\n height: 0;\\n line-height: 0;\\n padding: 0!important\\n}\\n\\n.apexcharts-tooltip-y-group {\\n padding: 6px 0 5px\\n}\\n\\n.apexcharts-custom-tooltip,.apexcharts-tooltip-box {\\n padding: 4px 8px\\n}\\n\\n.apexcharts-tooltip-boxPlot {\\n display: flex;\\n flex-direction: column-reverse\\n}\\n\\n.apexcharts-tooltip-box>div {\\n margin: 4px 0\\n}\\n\\n.apexcharts-tooltip-box span.value {\\n font-weight: 700\\n}\\n\\n.apexcharts-tooltip-rangebar {\\n padding: 5px 8px\\n}\\n\\n.apexcharts-tooltip-rangebar .category {\\n font-weight: 600;\\n color: #777\\n}\\n\\n.apexcharts-tooltip-rangebar .series-name {\\n font-weight: 700;\\n display: block;\\n margin-bottom: 5px\\n}\\n\\n.apexcharts-xaxistooltip,.apexcharts-yaxistooltip {\\n opacity: 0;\\n pointer-events: none;\\n color: #373d3f;\\n font-size: 13px;\\n text-align: center;\\n border-radius: 2px;\\n position: absolute;\\n z-index: 10;\\n background: #eceff1;\\n border: 1px solid #90a4ae\\n}\\n\\n.apexcharts-xaxistooltip {\\n padding: 9px 10px;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\\n background: rgba(0,0,0,.7);\\n border: 1px solid rgba(0,0,0,.5);\\n color: #fff\\n}\\n\\n.apexcharts-xaxistooltip:after,.apexcharts-xaxistooltip:before {\\n left: 50%;\\n border: solid transparent;\\n content: \" \";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none\\n}\\n\\n.apexcharts-xaxistooltip:after {\\n border-color: transparent;\\n border-width: 6px;\\n margin-left: -6px\\n}\\n\\n.apexcharts-xaxistooltip:before {\\n border-color: transparent;\\n border-width: 7px;\\n margin-left: -7px\\n}\\n\\n.apexcharts-xaxistooltip-bottom:after,.apexcharts-xaxistooltip-bottom:before {\\n bottom: 100%\\n}\\n\\n.apexcharts-xaxistooltip-top:after,.apexcharts-xaxistooltip-top:before {\\n top: 100%\\n}\\n\\n.apexcharts-xaxistooltip-bottom:after {\\n border-bottom-color: #eceff1\\n}\\n\\n.apexcharts-xaxistooltip-bottom:before {\\n border-bottom-color: #90a4ae\\n}\\n\\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\\n border-bottom-color: rgba(0,0,0,.5)\\n}\\n\\n.apexcharts-xaxistooltip-top:after {\\n border-top-color: #eceff1\\n}\\n\\n.apexcharts-xaxistooltip-top:before {\\n border-top-color: #90a4ae\\n}\\n\\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\\n border-top-color: rgba(0,0,0,.5)\\n}\\n\\n.apexcharts-xaxistooltip.apexcharts-active {\\n opacity: 1;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-yaxistooltip {\\n padding: 4px 10px\\n}\\n\\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\\n background: rgba(0,0,0,.7);\\n border: 1px solid rgba(0,0,0,.5);\\n color: #fff\\n}\\n\\n.apexcharts-yaxistooltip:after,.apexcharts-yaxistooltip:before {\\n top: 50%;\\n border: solid transparent;\\n content: \" \";\\n height: 0;\\n width: 0;\\n position: absolute;\\n pointer-events: none\\n}\\n\\n.apexcharts-yaxistooltip:after {\\n border-color: transparent;\\n border-width: 6px;\\n margin-top: -6px\\n}\\n\\n.apexcharts-yaxistooltip:before {\\n border-color: transparent;\\n border-width: 7px;\\n margin-top: -7px\\n}\\n\\n.apexcharts-yaxistooltip-left:after,.apexcharts-yaxistooltip-left:before {\\n left: 100%\\n}\\n\\n.apexcharts-yaxistooltip-right:after,.apexcharts-yaxistooltip-right:before {\\n right: 100%\\n}\\n\\n.apexcharts-yaxistooltip-left:after {\\n border-left-color: #eceff1\\n}\\n\\n.apexcharts-yaxistooltip-left:before {\\n border-left-color: #90a4ae\\n}\\n\\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\\n border-left-color: rgba(0,0,0,.5)\\n}\\n\\n.apexcharts-yaxistooltip-right:after {\\n border-right-color: #eceff1\\n}\\n\\n.apexcharts-yaxistooltip-right:before {\\n border-right-color: #90a4ae\\n}\\n\\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\\n border-right-color: rgba(0,0,0,.5)\\n}\\n\\n.apexcharts-yaxistooltip.apexcharts-active {\\n opacity: 1\\n}\\n\\n.apexcharts-yaxistooltip-hidden {\\n display: none\\n}\\n\\n.apexcharts-xcrosshairs,.apexcharts-ycrosshairs {\\n pointer-events: none;\\n opacity: 0;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-xcrosshairs.apexcharts-active,.apexcharts-ycrosshairs.apexcharts-active {\\n opacity: 1;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-ycrosshairs-hidden {\\n opacity: 0\\n}\\n\\n.apexcharts-selection-rect {\\n cursor: move\\n}\\n\\n.svg_select_boundingRect,.svg_select_points_rot {\\n pointer-events: none;\\n opacity: 0;\\n visibility: hidden\\n}\\n\\n.apexcharts-selection-rect+g .svg_select_boundingRect,.apexcharts-selection-rect+g .svg_select_points_rot {\\n opacity: 0;\\n visibility: hidden\\n}\\n\\n.apexcharts-selection-rect+g .svg_select_points_l,.apexcharts-selection-rect+g .svg_select_points_r {\\n cursor: ew-resize;\\n opacity: 1;\\n visibility: visible\\n}\\n\\n.svg_select_points {\\n fill: #efefef;\\n stroke: #333;\\n rx: 2\\n}\\n\\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\\n cursor: crosshair\\n}\\n\\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\\n cursor: move\\n}\\n\\n.apexcharts-menu-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\\n cursor: pointer;\\n width: 20px;\\n height: 20px;\\n line-height: 24px;\\n color: #6e8192;\\n text-align: center\\n}\\n\\n.apexcharts-menu-icon svg,.apexcharts-reset-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg {\\n fill: #6e8192\\n}\\n\\n.apexcharts-selection-icon svg {\\n fill: #444;\\n transform: scale(.76)\\n}\\n\\n.apexcharts-theme-dark .apexcharts-menu-icon svg,.apexcharts-theme-dark .apexcharts-pan-icon svg,.apexcharts-theme-dark .apexcharts-reset-icon svg,.apexcharts-theme-dark .apexcharts-selection-icon svg,.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,.apexcharts-theme-dark .apexcharts-zoom-icon svg,.apexcharts-theme-dark .apexcharts-zoomin-icon svg,.apexcharts-theme-dark .apexcharts-zoomout-icon svg {\\n fill: #f3f4f5\\n}\\n\\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg {\\n fill: #008ffb\\n}\\n\\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg,.apexcharts-theme-light .apexcharts-reset-icon:hover svg,.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg {\\n fill: #333\\n}\\n\\n.apexcharts-menu-icon,.apexcharts-selection-icon {\\n position: relative\\n}\\n\\n.apexcharts-reset-icon {\\n margin-left: 5px\\n}\\n\\n.apexcharts-menu-icon,.apexcharts-reset-icon,.apexcharts-zoom-icon {\\n transform: scale(.85)\\n}\\n\\n.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\\n transform: scale(.7)\\n}\\n\\n.apexcharts-zoomout-icon {\\n margin-right: 3px\\n}\\n\\n.apexcharts-pan-icon {\\n transform: scale(.62);\\n position: relative;\\n left: 1px;\\n top: 0\\n}\\n\\n.apexcharts-pan-icon svg {\\n fill: #fff;\\n stroke: #6e8192;\\n stroke-width: 2\\n}\\n\\n.apexcharts-pan-icon.apexcharts-selected svg {\\n stroke: #008ffb\\n}\\n\\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\\n stroke: #333\\n}\\n\\n.apexcharts-toolbar {\\n position: absolute;\\n z-index: 11;\\n max-width: 176px;\\n text-align: right;\\n border-radius: 3px;\\n padding: 0 6px 2px;\\n display: flex;\\n justify-content: space-between;\\n align-items: center\\n}\\n\\n.apexcharts-menu {\\n background: #fff;\\n position: absolute;\\n top: 100%;\\n border: 1px solid #ddd;\\n border-radius: 3px;\\n padding: 3px;\\n right: 10px;\\n opacity: 0;\\n min-width: 110px;\\n transition: .15s ease all;\\n pointer-events: none\\n}\\n\\n.apexcharts-menu.apexcharts-menu-open {\\n opacity: 1;\\n pointer-events: all;\\n transition: .15s ease all\\n}\\n\\n.apexcharts-menu-item {\\n padding: 6px 7px;\\n font-size: 12px;\\n cursor: pointer\\n}\\n\\n.apexcharts-theme-light .apexcharts-menu-item:hover {\\n background: #eee\\n}\\n\\n.apexcharts-theme-dark .apexcharts-menu {\\n background: rgba(0,0,0,.7);\\n color: #fff\\n}\\n\\n@media screen and (min-width:768px) {\\n .apexcharts-canvas:hover .apexcharts-toolbar {\\n opacity: 1\\n }\\n}\\n\\n.apexcharts-canvas .apexcharts-element-hidden,.apexcharts-datalabel.apexcharts-element-hidden,.apexcharts-hide .apexcharts-series-points {\\n opacity: 0\\n}\\n\\n.apexcharts-hidden-element-shown {\\n opacity: 1;\\n transition: 0.25s ease all;\\n}\\n.apexcharts-datalabel,.apexcharts-datalabel-label,.apexcharts-datalabel-value,.apexcharts-datalabels,.apexcharts-pie-label {\\n cursor: default;\\n pointer-events: none\\n}\\n\\n.apexcharts-pie-label-delay {\\n opacity: 0;\\n animation-name: opaque;\\n animation-duration: .3s;\\n animation-fill-mode: forwards;\\n animation-timing-function: ease\\n}\\n\\n.apexcharts-annotation-rect,.apexcharts-area-series .apexcharts-area,.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-gridline,.apexcharts-line,.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-point-annotation-label,.apexcharts-radar-series path,.apexcharts-radar-series polygon,.apexcharts-toolbar svg,.apexcharts-tooltip .apexcharts-marker,.apexcharts-xaxis-annotation-label,.apexcharts-yaxis-annotation-label,.apexcharts-zoom-rect {\\n pointer-events: none\\n}\\n\\n.apexcharts-marker {\\n transition: .15s ease all\\n}\\n\\n.resize-triggers {\\n animation: 1ms resizeanim;\\n visibility: hidden;\\n opacity: 0;\\n height: 100%;\\n width: 100%;\\n overflow: hidden\\n}\\n\\n.contract-trigger:before,.resize-triggers,.resize-triggers>div {\\n content: \" \";\\n display: block;\\n position: absolute;\\n top: 0;\\n left: 0\\n}\\n\\n.resize-triggers>div {\\n height: 100%;\\n width: 100%;\\n background: #eee;\\n overflow: auto\\n}\\n\\n.contract-trigger:before {\\n overflow: hidden;\\n width: 200%;\\n height: 200%\\n}\\n',r?s.prepend(t.css):o.head.appendChild(t.css))}var l=t.create(t.w.config.series,{});if(!l)return e(t);t.mount(l).then((function(){\"function\"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent(\"mounted\",[t,t.w]),e(l)})).catch((function(t){i(t)}))}else i(new Error(\"Element not found\"))}))}},{key:\"create\",value:function(t,e){var i=this.w;new Ot(this).initModules();var a=this.w.globals;(a.noData=!1,a.animationEnded=!1,this.responsive.checkResponsiveConfig(e),i.config.xaxis.convertedCatToNumeric)&&new z(i.config).convertCatToNumericXaxis(i.config,this.ctx);if(null===this.el)return a.animationEnded=!0,null;if(this.core.setupElements(),\"treemap\"===i.config.chart.type&&(i.config.grid.show=!1,i.config.yaxis[0].show=!1),0===a.svgWidth)return a.animationEnded=!0,null;var s=y.checkComboSeries(t);a.comboCharts=s.comboCharts,a.comboBarCount=s.comboBarCount;var r=t.every((function(t){return t.data&&0===t.data.length}));(0===t.length||r)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(t),this.theme.init(),new H(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),a.noData&&a.collapsedSeries.length!==a.series.length&&!i.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),a.axisCharts&&(this.core.coreCalculations(),\"category\"!==i.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=i.globals.minX,this.ctx.toolbar.maxX=i.globals.maxX),this.formatters.heatmapLabelFormatters(),new y(this).getLargestMarkerSize(),this.dimensions.plotCoords();var o=this.core.xySettings();this.grid.createGridMask();var n=this.core.plotChartType(t,o),l=new O(this);return l.bringForward(),i.config.dataLabels.background.enabled&&l.dataLabelsBackground(),this.core.shiftGraphPosition(),{elGraph:n,xyRatios:o,dimensions:{plot:{left:i.globals.translateX,top:i.globals.translateY,width:i.globals.gridWidth,height:i.globals.gridHeight}}}}},{key:\"mount\",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error(\"Not enough data to display or target element not found\"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),i.grid=new j(i);var o=i.grid.drawGrid();if(i.annotations=new P(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),\"back\"===a.config.grid.position&&o&&a.globals.dom.elGraphical.add(o.el),Array.isArray(e.elGraph))for(var n=0;n0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:\"destroy\",value:function(){var t,e;window.removeEventListener(\"resize\",this.windowResizeHandler),this.el.parentNode,t=this.parentResizeHandler,(e=Wt.get(t))&&(e.disconnect(),Wt.delete(t));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach((function(t,e){t.id===x.escapeString(i)&&Apex._chartInstances.splice(e,1)})),new Nt(this.ctx).clear({isUpdating:!1})}},{key:\"updateOptions\",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.w;return o.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),o.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:\"updateSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:\"appendSeries\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:\"appendData\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:\"addEventListener\",value:function(t,e){this.events.addEventListener(t,e)}},{key:\"removeEventListener\",value:function(t,e){this.events.removeEventListener(t,e)}},{key:\"addXaxisAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:\"addYaxisAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:\"addPointAnnotation\",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:\"clearAnnotations\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:\"removeAnnotation\",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:\"getChartArea\",value:function(){return this.w.globals.dom.baseEl.querySelector(\".apexcharts-inner\")}},{key:\"getSeriesTotalXRange\",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:\"getHighestValueInSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new U(this.ctx).getMinYMaxY(t).highestY}},{key:\"getLowestValueInSeries\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new U(this.ctx).getMinYMaxY(t).lowestY}},{key:\"getSeriesTotal\",value:function(){return this.w.globals.seriesTotals}},{key:\"toggleDataPointSelection\",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:\"zoomX\",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:\"setLocale\",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:\"dataURI\",value:function(t){return new G(this.ctx).dataURI(t)}},{key:\"exportToCSV\",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new G(this.ctx).exportToCSV(t)}},{key:\"paper\",value:function(){return this.w.globals.dom.Paper}},{key:\"_parentResizeCallback\",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:\"_windowResize\",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:\"_windowResizeHandler\",value:function(){var t=this.w.config.chart.redrawOnWindowResize;\"function\"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:\"getChartByID\",value:function(t){var e=x.escapeString(t),i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}},{key:\"initOnLoad\",value:function(){for(var e=document.querySelectorAll(\"[data-apexcharts]\"),i=0;i2?s-2:0),o=2;o number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t// eslint-disable-next-line no-extra-parens\n\tvar intrinsic = /** @type {Parameters[0][0]} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic([intrinsic]);\n\t}\n\treturn intrinsic;\n};\n","var canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nmodule.exports = canUseDOM;","/*!\n * Chart.js v2.9.3\n * https://www.chartjs.org\n * (c) 2019 Chart.js Contributors\n * Released under the MIT License\n */\n(function (global, factory) {\ntypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(function() { try { return require('moment'); } catch(e) { } }()) :\ntypeof define === 'function' && define.amd ? define(['require'], function(require) { return factory(function() { try { return require('moment'); } catch(e) { } }()); }) :\n(global = global || self, global.Chart = factory(global.moment));\n}(this, (function (moment) { 'use strict';\n\nmoment = moment && moment.hasOwnProperty('default') ? moment['default'] : moment;\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nfunction getCjsExportFromNamespace (n) {\n\treturn n && n['default'] || n;\n}\n\nvar colorName = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\nvar conversions = createCommonjsModule(function (module) {\n/* MIT license */\n\n\n// NOTE: conversions should only return primitive values (i.e. arrays, or\n// values that give correct `typeof` results).\n// do not use box values types (i.e. Number(), String(), etc.)\n\nvar reverseKeywords = {};\nfor (var key in colorName) {\n\tif (colorName.hasOwnProperty(key)) {\n\t\treverseKeywords[colorName[key]] = key;\n\t}\n}\n\nvar convert = module.exports = {\n\trgb: {channels: 3, labels: 'rgb'},\n\thsl: {channels: 3, labels: 'hsl'},\n\thsv: {channels: 3, labels: 'hsv'},\n\thwb: {channels: 3, labels: 'hwb'},\n\tcmyk: {channels: 4, labels: 'cmyk'},\n\txyz: {channels: 3, labels: 'xyz'},\n\tlab: {channels: 3, labels: 'lab'},\n\tlch: {channels: 3, labels: 'lch'},\n\thex: {channels: 1, labels: ['hex']},\n\tkeyword: {channels: 1, labels: ['keyword']},\n\tansi16: {channels: 1, labels: ['ansi16']},\n\tansi256: {channels: 1, labels: ['ansi256']},\n\thcg: {channels: 3, labels: ['h', 'c', 'g']},\n\tapple: {channels: 3, labels: ['r16', 'g16', 'b16']},\n\tgray: {channels: 1, labels: ['gray']}\n};\n\n// hide .channels and .labels properties\nfor (var model in convert) {\n\tif (convert.hasOwnProperty(model)) {\n\t\tif (!('channels' in convert[model])) {\n\t\t\tthrow new Error('missing channels property: ' + model);\n\t\t}\n\n\t\tif (!('labels' in convert[model])) {\n\t\t\tthrow new Error('missing channel labels property: ' + model);\n\t\t}\n\n\t\tif (convert[model].labels.length !== convert[model].channels) {\n\t\t\tthrow new Error('channel and label counts mismatch: ' + model);\n\t\t}\n\n\t\tvar channels = convert[model].channels;\n\t\tvar labels = convert[model].labels;\n\t\tdelete convert[model].channels;\n\t\tdelete convert[model].labels;\n\t\tObject.defineProperty(convert[model], 'channels', {value: channels});\n\t\tObject.defineProperty(convert[model], 'labels', {value: labels});\n\t}\n}\n\nconvert.rgb.hsl = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar min = Math.min(r, g, b);\n\tvar max = Math.max(r, g, b);\n\tvar delta = max - min;\n\tvar h;\n\tvar s;\n\tvar l;\n\n\tif (max === min) {\n\t\th = 0;\n\t} else if (r === max) {\n\t\th = (g - b) / delta;\n\t} else if (g === max) {\n\t\th = 2 + (b - r) / delta;\n\t} else if (b === max) {\n\t\th = 4 + (r - g) / delta;\n\t}\n\n\th = Math.min(h * 60, 360);\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tl = (min + max) / 2;\n\n\tif (max === min) {\n\t\ts = 0;\n\t} else if (l <= 0.5) {\n\t\ts = delta / (max + min);\n\t} else {\n\t\ts = delta / (2 - max - min);\n\t}\n\n\treturn [h, s * 100, l * 100];\n};\n\nconvert.rgb.hsv = function (rgb) {\n\tvar rdif;\n\tvar gdif;\n\tvar bdif;\n\tvar h;\n\tvar s;\n\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar v = Math.max(r, g, b);\n\tvar diff = v - Math.min(r, g, b);\n\tvar diffc = function (c) {\n\t\treturn (v - c) / 6 / diff + 1 / 2;\n\t};\n\n\tif (diff === 0) {\n\t\th = s = 0;\n\t} else {\n\t\ts = diff / v;\n\t\trdif = diffc(r);\n\t\tgdif = diffc(g);\n\t\tbdif = diffc(b);\n\n\t\tif (r === v) {\n\t\t\th = bdif - gdif;\n\t\t} else if (g === v) {\n\t\t\th = (1 / 3) + rdif - bdif;\n\t\t} else if (b === v) {\n\t\t\th = (2 / 3) + gdif - rdif;\n\t\t}\n\t\tif (h < 0) {\n\t\t\th += 1;\n\t\t} else if (h > 1) {\n\t\t\th -= 1;\n\t\t}\n\t}\n\n\treturn [\n\t\th * 360,\n\t\ts * 100,\n\t\tv * 100\n\t];\n};\n\nconvert.rgb.hwb = function (rgb) {\n\tvar r = rgb[0];\n\tvar g = rgb[1];\n\tvar b = rgb[2];\n\tvar h = convert.rgb.hsl(rgb)[0];\n\tvar w = 1 / 255 * Math.min(r, Math.min(g, b));\n\n\tb = 1 - 1 / 255 * Math.max(r, Math.max(g, b));\n\n\treturn [h, w * 100, b * 100];\n};\n\nconvert.rgb.cmyk = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar c;\n\tvar m;\n\tvar y;\n\tvar k;\n\n\tk = Math.min(1 - r, 1 - g, 1 - b);\n\tc = (1 - r - k) / (1 - k) || 0;\n\tm = (1 - g - k) / (1 - k) || 0;\n\ty = (1 - b - k) / (1 - k) || 0;\n\n\treturn [c * 100, m * 100, y * 100, k * 100];\n};\n\n/**\n * See https://en.m.wikipedia.org/wiki/Euclidean_distance#Squared_Euclidean_distance\n * */\nfunction comparativeDistance(x, y) {\n\treturn (\n\t\tMath.pow(x[0] - y[0], 2) +\n\t\tMath.pow(x[1] - y[1], 2) +\n\t\tMath.pow(x[2] - y[2], 2)\n\t);\n}\n\nconvert.rgb.keyword = function (rgb) {\n\tvar reversed = reverseKeywords[rgb];\n\tif (reversed) {\n\t\treturn reversed;\n\t}\n\n\tvar currentClosestDistance = Infinity;\n\tvar currentClosestKeyword;\n\n\tfor (var keyword in colorName) {\n\t\tif (colorName.hasOwnProperty(keyword)) {\n\t\t\tvar value = colorName[keyword];\n\n\t\t\t// Compute comparative distance\n\t\t\tvar distance = comparativeDistance(rgb, value);\n\n\t\t\t// Check if its less, if so set as closest\n\t\t\tif (distance < currentClosestDistance) {\n\t\t\t\tcurrentClosestDistance = distance;\n\t\t\t\tcurrentClosestKeyword = keyword;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentClosestKeyword;\n};\n\nconvert.keyword.rgb = function (keyword) {\n\treturn colorName[keyword];\n};\n\nconvert.rgb.xyz = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\n\t// assume sRGB\n\tr = r > 0.04045 ? Math.pow(((r + 0.055) / 1.055), 2.4) : (r / 12.92);\n\tg = g > 0.04045 ? Math.pow(((g + 0.055) / 1.055), 2.4) : (g / 12.92);\n\tb = b > 0.04045 ? Math.pow(((b + 0.055) / 1.055), 2.4) : (b / 12.92);\n\n\tvar x = (r * 0.4124) + (g * 0.3576) + (b * 0.1805);\n\tvar y = (r * 0.2126) + (g * 0.7152) + (b * 0.0722);\n\tvar z = (r * 0.0193) + (g * 0.1192) + (b * 0.9505);\n\n\treturn [x * 100, y * 100, z * 100];\n};\n\nconvert.rgb.lab = function (rgb) {\n\tvar xyz = convert.rgb.xyz(rgb);\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.hsl.rgb = function (hsl) {\n\tvar h = hsl[0] / 360;\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar t1;\n\tvar t2;\n\tvar t3;\n\tvar rgb;\n\tvar val;\n\n\tif (s === 0) {\n\t\tval = l * 255;\n\t\treturn [val, val, val];\n\t}\n\n\tif (l < 0.5) {\n\t\tt2 = l * (1 + s);\n\t} else {\n\t\tt2 = l + s - l * s;\n\t}\n\n\tt1 = 2 * l - t2;\n\n\trgb = [0, 0, 0];\n\tfor (var i = 0; i < 3; i++) {\n\t\tt3 = h + 1 / 3 * -(i - 1);\n\t\tif (t3 < 0) {\n\t\t\tt3++;\n\t\t}\n\t\tif (t3 > 1) {\n\t\t\tt3--;\n\t\t}\n\n\t\tif (6 * t3 < 1) {\n\t\t\tval = t1 + (t2 - t1) * 6 * t3;\n\t\t} else if (2 * t3 < 1) {\n\t\t\tval = t2;\n\t\t} else if (3 * t3 < 2) {\n\t\t\tval = t1 + (t2 - t1) * (2 / 3 - t3) * 6;\n\t\t} else {\n\t\t\tval = t1;\n\t\t}\n\n\t\trgb[i] = val * 255;\n\t}\n\n\treturn rgb;\n};\n\nconvert.hsl.hsv = function (hsl) {\n\tvar h = hsl[0];\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar smin = s;\n\tvar lmin = Math.max(l, 0.01);\n\tvar sv;\n\tvar v;\n\n\tl *= 2;\n\ts *= (l <= 1) ? l : 2 - l;\n\tsmin *= lmin <= 1 ? lmin : 2 - lmin;\n\tv = (l + s) / 2;\n\tsv = l === 0 ? (2 * smin) / (lmin + smin) : (2 * s) / (l + s);\n\n\treturn [h, sv * 100, v * 100];\n};\n\nconvert.hsv.rgb = function (hsv) {\n\tvar h = hsv[0] / 60;\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar hi = Math.floor(h) % 6;\n\n\tvar f = h - Math.floor(h);\n\tvar p = 255 * v * (1 - s);\n\tvar q = 255 * v * (1 - (s * f));\n\tvar t = 255 * v * (1 - (s * (1 - f)));\n\tv *= 255;\n\n\tswitch (hi) {\n\t\tcase 0:\n\t\t\treturn [v, t, p];\n\t\tcase 1:\n\t\t\treturn [q, v, p];\n\t\tcase 2:\n\t\t\treturn [p, v, t];\n\t\tcase 3:\n\t\t\treturn [p, q, v];\n\t\tcase 4:\n\t\t\treturn [t, p, v];\n\t\tcase 5:\n\t\t\treturn [v, p, q];\n\t}\n};\n\nconvert.hsv.hsl = function (hsv) {\n\tvar h = hsv[0];\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\tvar vmin = Math.max(v, 0.01);\n\tvar lmin;\n\tvar sl;\n\tvar l;\n\n\tl = (2 - s) * v;\n\tlmin = (2 - s) * vmin;\n\tsl = s * vmin;\n\tsl /= (lmin <= 1) ? lmin : 2 - lmin;\n\tsl = sl || 0;\n\tl /= 2;\n\n\treturn [h, sl * 100, l * 100];\n};\n\n// http://dev.w3.org/csswg/css-color/#hwb-to-rgb\nconvert.hwb.rgb = function (hwb) {\n\tvar h = hwb[0] / 360;\n\tvar wh = hwb[1] / 100;\n\tvar bl = hwb[2] / 100;\n\tvar ratio = wh + bl;\n\tvar i;\n\tvar v;\n\tvar f;\n\tvar n;\n\n\t// wh + bl cant be > 1\n\tif (ratio > 1) {\n\t\twh /= ratio;\n\t\tbl /= ratio;\n\t}\n\n\ti = Math.floor(6 * h);\n\tv = 1 - bl;\n\tf = 6 * h - i;\n\n\tif ((i & 0x01) !== 0) {\n\t\tf = 1 - f;\n\t}\n\n\tn = wh + f * (v - wh); // linear interpolation\n\n\tvar r;\n\tvar g;\n\tvar b;\n\tswitch (i) {\n\t\tdefault:\n\t\tcase 6:\n\t\tcase 0: r = v; g = n; b = wh; break;\n\t\tcase 1: r = n; g = v; b = wh; break;\n\t\tcase 2: r = wh; g = v; b = n; break;\n\t\tcase 3: r = wh; g = n; b = v; break;\n\t\tcase 4: r = n; g = wh; b = v; break;\n\t\tcase 5: r = v; g = wh; b = n; break;\n\t}\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.cmyk.rgb = function (cmyk) {\n\tvar c = cmyk[0] / 100;\n\tvar m = cmyk[1] / 100;\n\tvar y = cmyk[2] / 100;\n\tvar k = cmyk[3] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = 1 - Math.min(1, c * (1 - k) + k);\n\tg = 1 - Math.min(1, m * (1 - k) + k);\n\tb = 1 - Math.min(1, y * (1 - k) + k);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.rgb = function (xyz) {\n\tvar x = xyz[0] / 100;\n\tvar y = xyz[1] / 100;\n\tvar z = xyz[2] / 100;\n\tvar r;\n\tvar g;\n\tvar b;\n\n\tr = (x * 3.2406) + (y * -1.5372) + (z * -0.4986);\n\tg = (x * -0.9689) + (y * 1.8758) + (z * 0.0415);\n\tb = (x * 0.0557) + (y * -0.2040) + (z * 1.0570);\n\n\t// assume sRGB\n\tr = r > 0.0031308\n\t\t? ((1.055 * Math.pow(r, 1.0 / 2.4)) - 0.055)\n\t\t: r * 12.92;\n\n\tg = g > 0.0031308\n\t\t? ((1.055 * Math.pow(g, 1.0 / 2.4)) - 0.055)\n\t\t: g * 12.92;\n\n\tb = b > 0.0031308\n\t\t? ((1.055 * Math.pow(b, 1.0 / 2.4)) - 0.055)\n\t\t: b * 12.92;\n\n\tr = Math.min(Math.max(0, r), 1);\n\tg = Math.min(Math.max(0, g), 1);\n\tb = Math.min(Math.max(0, b), 1);\n\n\treturn [r * 255, g * 255, b * 255];\n};\n\nconvert.xyz.lab = function (xyz) {\n\tvar x = xyz[0];\n\tvar y = xyz[1];\n\tvar z = xyz[2];\n\tvar l;\n\tvar a;\n\tvar b;\n\n\tx /= 95.047;\n\ty /= 100;\n\tz /= 108.883;\n\n\tx = x > 0.008856 ? Math.pow(x, 1 / 3) : (7.787 * x) + (16 / 116);\n\ty = y > 0.008856 ? Math.pow(y, 1 / 3) : (7.787 * y) + (16 / 116);\n\tz = z > 0.008856 ? Math.pow(z, 1 / 3) : (7.787 * z) + (16 / 116);\n\n\tl = (116 * y) - 16;\n\ta = 500 * (x - y);\n\tb = 200 * (y - z);\n\n\treturn [l, a, b];\n};\n\nconvert.lab.xyz = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar x;\n\tvar y;\n\tvar z;\n\n\ty = (l + 16) / 116;\n\tx = a / 500 + y;\n\tz = y - b / 200;\n\n\tvar y2 = Math.pow(y, 3);\n\tvar x2 = Math.pow(x, 3);\n\tvar z2 = Math.pow(z, 3);\n\ty = y2 > 0.008856 ? y2 : (y - 16 / 116) / 7.787;\n\tx = x2 > 0.008856 ? x2 : (x - 16 / 116) / 7.787;\n\tz = z2 > 0.008856 ? z2 : (z - 16 / 116) / 7.787;\n\n\tx *= 95.047;\n\ty *= 100;\n\tz *= 108.883;\n\n\treturn [x, y, z];\n};\n\nconvert.lab.lch = function (lab) {\n\tvar l = lab[0];\n\tvar a = lab[1];\n\tvar b = lab[2];\n\tvar hr;\n\tvar h;\n\tvar c;\n\n\thr = Math.atan2(b, a);\n\th = hr * 360 / 2 / Math.PI;\n\n\tif (h < 0) {\n\t\th += 360;\n\t}\n\n\tc = Math.sqrt(a * a + b * b);\n\n\treturn [l, c, h];\n};\n\nconvert.lch.lab = function (lch) {\n\tvar l = lch[0];\n\tvar c = lch[1];\n\tvar h = lch[2];\n\tvar a;\n\tvar b;\n\tvar hr;\n\n\thr = h / 360 * 2 * Math.PI;\n\ta = c * Math.cos(hr);\n\tb = c * Math.sin(hr);\n\n\treturn [l, a, b];\n};\n\nconvert.rgb.ansi16 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\tvar value = 1 in arguments ? arguments[1] : convert.rgb.hsv(args)[2]; // hsv -> ansi16 optimization\n\n\tvalue = Math.round(value / 50);\n\n\tif (value === 0) {\n\t\treturn 30;\n\t}\n\n\tvar ansi = 30\n\t\t+ ((Math.round(b / 255) << 2)\n\t\t| (Math.round(g / 255) << 1)\n\t\t| Math.round(r / 255));\n\n\tif (value === 2) {\n\t\tansi += 60;\n\t}\n\n\treturn ansi;\n};\n\nconvert.hsv.ansi16 = function (args) {\n\t// optimization here; we already know the value and don't need to get\n\t// it converted for us.\n\treturn convert.rgb.ansi16(convert.hsv.rgb(args), args[2]);\n};\n\nconvert.rgb.ansi256 = function (args) {\n\tvar r = args[0];\n\tvar g = args[1];\n\tvar b = args[2];\n\n\t// we use the extended greyscale palette here, with the exception of\n\t// black and white. normal palette only has 4 greyscale shades.\n\tif (r === g && g === b) {\n\t\tif (r < 8) {\n\t\t\treturn 16;\n\t\t}\n\n\t\tif (r > 248) {\n\t\t\treturn 231;\n\t\t}\n\n\t\treturn Math.round(((r - 8) / 247) * 24) + 232;\n\t}\n\n\tvar ansi = 16\n\t\t+ (36 * Math.round(r / 255 * 5))\n\t\t+ (6 * Math.round(g / 255 * 5))\n\t\t+ Math.round(b / 255 * 5);\n\n\treturn ansi;\n};\n\nconvert.ansi16.rgb = function (args) {\n\tvar color = args % 10;\n\n\t// handle greyscale\n\tif (color === 0 || color === 7) {\n\t\tif (args > 50) {\n\t\t\tcolor += 3.5;\n\t\t}\n\n\t\tcolor = color / 10.5 * 255;\n\n\t\treturn [color, color, color];\n\t}\n\n\tvar mult = (~~(args > 50) + 1) * 0.5;\n\tvar r = ((color & 1) * mult) * 255;\n\tvar g = (((color >> 1) & 1) * mult) * 255;\n\tvar b = (((color >> 2) & 1) * mult) * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.ansi256.rgb = function (args) {\n\t// handle greyscale\n\tif (args >= 232) {\n\t\tvar c = (args - 232) * 10 + 8;\n\t\treturn [c, c, c];\n\t}\n\n\targs -= 16;\n\n\tvar rem;\n\tvar r = Math.floor(args / 36) / 5 * 255;\n\tvar g = Math.floor((rem = args % 36) / 6) / 5 * 255;\n\tvar b = (rem % 6) / 5 * 255;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hex = function (args) {\n\tvar integer = ((Math.round(args[0]) & 0xFF) << 16)\n\t\t+ ((Math.round(args[1]) & 0xFF) << 8)\n\t\t+ (Math.round(args[2]) & 0xFF);\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.hex.rgb = function (args) {\n\tvar match = args.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);\n\tif (!match) {\n\t\treturn [0, 0, 0];\n\t}\n\n\tvar colorString = match[0];\n\n\tif (match[0].length === 3) {\n\t\tcolorString = colorString.split('').map(function (char) {\n\t\t\treturn char + char;\n\t\t}).join('');\n\t}\n\n\tvar integer = parseInt(colorString, 16);\n\tvar r = (integer >> 16) & 0xFF;\n\tvar g = (integer >> 8) & 0xFF;\n\tvar b = integer & 0xFF;\n\n\treturn [r, g, b];\n};\n\nconvert.rgb.hcg = function (rgb) {\n\tvar r = rgb[0] / 255;\n\tvar g = rgb[1] / 255;\n\tvar b = rgb[2] / 255;\n\tvar max = Math.max(Math.max(r, g), b);\n\tvar min = Math.min(Math.min(r, g), b);\n\tvar chroma = (max - min);\n\tvar grayscale;\n\tvar hue;\n\n\tif (chroma < 1) {\n\t\tgrayscale = min / (1 - chroma);\n\t} else {\n\t\tgrayscale = 0;\n\t}\n\n\tif (chroma <= 0) {\n\t\thue = 0;\n\t} else\n\tif (max === r) {\n\t\thue = ((g - b) / chroma) % 6;\n\t} else\n\tif (max === g) {\n\t\thue = 2 + (b - r) / chroma;\n\t} else {\n\t\thue = 4 + (r - g) / chroma + 4;\n\t}\n\n\thue /= 6;\n\thue %= 1;\n\n\treturn [hue * 360, chroma * 100, grayscale * 100];\n};\n\nconvert.hsl.hcg = function (hsl) {\n\tvar s = hsl[1] / 100;\n\tvar l = hsl[2] / 100;\n\tvar c = 1;\n\tvar f = 0;\n\n\tif (l < 0.5) {\n\t\tc = 2.0 * s * l;\n\t} else {\n\t\tc = 2.0 * s * (1.0 - l);\n\t}\n\n\tif (c < 1.0) {\n\t\tf = (l - 0.5 * c) / (1.0 - c);\n\t}\n\n\treturn [hsl[0], c * 100, f * 100];\n};\n\nconvert.hsv.hcg = function (hsv) {\n\tvar s = hsv[1] / 100;\n\tvar v = hsv[2] / 100;\n\n\tvar c = s * v;\n\tvar f = 0;\n\n\tif (c < 1.0) {\n\t\tf = (v - c) / (1 - c);\n\t}\n\n\treturn [hsv[0], c * 100, f * 100];\n};\n\nconvert.hcg.rgb = function (hcg) {\n\tvar h = hcg[0] / 360;\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tif (c === 0.0) {\n\t\treturn [g * 255, g * 255, g * 255];\n\t}\n\n\tvar pure = [0, 0, 0];\n\tvar hi = (h % 1) * 6;\n\tvar v = hi % 1;\n\tvar w = 1 - v;\n\tvar mg = 0;\n\n\tswitch (Math.floor(hi)) {\n\t\tcase 0:\n\t\t\tpure[0] = 1; pure[1] = v; pure[2] = 0; break;\n\t\tcase 1:\n\t\t\tpure[0] = w; pure[1] = 1; pure[2] = 0; break;\n\t\tcase 2:\n\t\t\tpure[0] = 0; pure[1] = 1; pure[2] = v; break;\n\t\tcase 3:\n\t\t\tpure[0] = 0; pure[1] = w; pure[2] = 1; break;\n\t\tcase 4:\n\t\t\tpure[0] = v; pure[1] = 0; pure[2] = 1; break;\n\t\tdefault:\n\t\t\tpure[0] = 1; pure[1] = 0; pure[2] = w;\n\t}\n\n\tmg = (1.0 - c) * g;\n\n\treturn [\n\t\t(c * pure[0] + mg) * 255,\n\t\t(c * pure[1] + mg) * 255,\n\t\t(c * pure[2] + mg) * 255\n\t];\n};\n\nconvert.hcg.hsv = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar v = c + g * (1.0 - c);\n\tvar f = 0;\n\n\tif (v > 0.0) {\n\t\tf = c / v;\n\t}\n\n\treturn [hcg[0], f * 100, v * 100];\n};\n\nconvert.hcg.hsl = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\n\tvar l = g * (1.0 - c) + 0.5 * c;\n\tvar s = 0;\n\n\tif (l > 0.0 && l < 0.5) {\n\t\ts = c / (2 * l);\n\t} else\n\tif (l >= 0.5 && l < 1.0) {\n\t\ts = c / (2 * (1 - l));\n\t}\n\n\treturn [hcg[0], s * 100, l * 100];\n};\n\nconvert.hcg.hwb = function (hcg) {\n\tvar c = hcg[1] / 100;\n\tvar g = hcg[2] / 100;\n\tvar v = c + g * (1.0 - c);\n\treturn [hcg[0], (v - c) * 100, (1 - v) * 100];\n};\n\nconvert.hwb.hcg = function (hwb) {\n\tvar w = hwb[1] / 100;\n\tvar b = hwb[2] / 100;\n\tvar v = 1 - b;\n\tvar c = v - w;\n\tvar g = 0;\n\n\tif (c < 1) {\n\t\tg = (v - c) / (1 - c);\n\t}\n\n\treturn [hwb[0], c * 100, g * 100];\n};\n\nconvert.apple.rgb = function (apple) {\n\treturn [(apple[0] / 65535) * 255, (apple[1] / 65535) * 255, (apple[2] / 65535) * 255];\n};\n\nconvert.rgb.apple = function (rgb) {\n\treturn [(rgb[0] / 255) * 65535, (rgb[1] / 255) * 65535, (rgb[2] / 255) * 65535];\n};\n\nconvert.gray.rgb = function (args) {\n\treturn [args[0] / 100 * 255, args[0] / 100 * 255, args[0] / 100 * 255];\n};\n\nconvert.gray.hsl = convert.gray.hsv = function (args) {\n\treturn [0, 0, args[0]];\n};\n\nconvert.gray.hwb = function (gray) {\n\treturn [0, 100, gray[0]];\n};\n\nconvert.gray.cmyk = function (gray) {\n\treturn [0, 0, 0, gray[0]];\n};\n\nconvert.gray.lab = function (gray) {\n\treturn [gray[0], 0, 0];\n};\n\nconvert.gray.hex = function (gray) {\n\tvar val = Math.round(gray[0] / 100 * 255) & 0xFF;\n\tvar integer = (val << 16) + (val << 8) + val;\n\n\tvar string = integer.toString(16).toUpperCase();\n\treturn '000000'.substring(string.length) + string;\n};\n\nconvert.rgb.gray = function (rgb) {\n\tvar val = (rgb[0] + rgb[1] + rgb[2]) / 3;\n\treturn [val / 255 * 100];\n};\n});\nvar conversions_1 = conversions.rgb;\nvar conversions_2 = conversions.hsl;\nvar conversions_3 = conversions.hsv;\nvar conversions_4 = conversions.hwb;\nvar conversions_5 = conversions.cmyk;\nvar conversions_6 = conversions.xyz;\nvar conversions_7 = conversions.lab;\nvar conversions_8 = conversions.lch;\nvar conversions_9 = conversions.hex;\nvar conversions_10 = conversions.keyword;\nvar conversions_11 = conversions.ansi16;\nvar conversions_12 = conversions.ansi256;\nvar conversions_13 = conversions.hcg;\nvar conversions_14 = conversions.apple;\nvar conversions_15 = conversions.gray;\n\n/*\n\tthis function routes a model to all other models.\n\n\tall functions that are routed have a property `.conversion` attached\n\tto the returned synthetic function. This property is an array\n\tof strings, each with the steps in between the 'from' and 'to'\n\tcolor models (inclusive).\n\n\tconversions that are not possible simply are not included.\n*/\n\nfunction buildGraph() {\n\tvar graph = {};\n\t// https://jsperf.com/object-keys-vs-for-in-with-closure/3\n\tvar models = Object.keys(conversions);\n\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tgraph[models[i]] = {\n\t\t\t// http://jsperf.com/1-vs-infinity\n\t\t\t// micro-opt, but this is simple.\n\t\t\tdistance: -1,\n\t\t\tparent: null\n\t\t};\n\t}\n\n\treturn graph;\n}\n\n// https://en.wikipedia.org/wiki/Breadth-first_search\nfunction deriveBFS(fromModel) {\n\tvar graph = buildGraph();\n\tvar queue = [fromModel]; // unshift -> queue -> pop\n\n\tgraph[fromModel].distance = 0;\n\n\twhile (queue.length) {\n\t\tvar current = queue.pop();\n\t\tvar adjacents = Object.keys(conversions[current]);\n\n\t\tfor (var len = adjacents.length, i = 0; i < len; i++) {\n\t\t\tvar adjacent = adjacents[i];\n\t\t\tvar node = graph[adjacent];\n\n\t\t\tif (node.distance === -1) {\n\t\t\t\tnode.distance = graph[current].distance + 1;\n\t\t\t\tnode.parent = current;\n\t\t\t\tqueue.unshift(adjacent);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn graph;\n}\n\nfunction link(from, to) {\n\treturn function (args) {\n\t\treturn to(from(args));\n\t};\n}\n\nfunction wrapConversion(toModel, graph) {\n\tvar path = [graph[toModel].parent, toModel];\n\tvar fn = conversions[graph[toModel].parent][toModel];\n\n\tvar cur = graph[toModel].parent;\n\twhile (graph[cur].parent) {\n\t\tpath.unshift(graph[cur].parent);\n\t\tfn = link(conversions[graph[cur].parent][cur], fn);\n\t\tcur = graph[cur].parent;\n\t}\n\n\tfn.conversion = path;\n\treturn fn;\n}\n\nvar route = function (fromModel) {\n\tvar graph = deriveBFS(fromModel);\n\tvar conversion = {};\n\n\tvar models = Object.keys(graph);\n\tfor (var len = models.length, i = 0; i < len; i++) {\n\t\tvar toModel = models[i];\n\t\tvar node = graph[toModel];\n\n\t\tif (node.parent === null) {\n\t\t\t// no possible conversion, or this node is the source model.\n\t\t\tcontinue;\n\t\t}\n\n\t\tconversion[toModel] = wrapConversion(toModel, graph);\n\t}\n\n\treturn conversion;\n};\n\nvar convert = {};\n\nvar models = Object.keys(conversions);\n\nfunction wrapRaw(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\treturn fn(args);\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nfunction wrapRounded(fn) {\n\tvar wrappedFn = function (args) {\n\t\tif (args === undefined || args === null) {\n\t\t\treturn args;\n\t\t}\n\n\t\tif (arguments.length > 1) {\n\t\t\targs = Array.prototype.slice.call(arguments);\n\t\t}\n\n\t\tvar result = fn(args);\n\n\t\t// we're assuming the result is an array here.\n\t\t// see notice in conversions.js; don't use box types\n\t\t// in conversion functions.\n\t\tif (typeof result === 'object') {\n\t\t\tfor (var len = result.length, i = 0; i < len; i++) {\n\t\t\t\tresult[i] = Math.round(result[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t};\n\n\t// preserve .conversion property if there is one\n\tif ('conversion' in fn) {\n\t\twrappedFn.conversion = fn.conversion;\n\t}\n\n\treturn wrappedFn;\n}\n\nmodels.forEach(function (fromModel) {\n\tconvert[fromModel] = {};\n\n\tObject.defineProperty(convert[fromModel], 'channels', {value: conversions[fromModel].channels});\n\tObject.defineProperty(convert[fromModel], 'labels', {value: conversions[fromModel].labels});\n\n\tvar routes = route(fromModel);\n\tvar routeModels = Object.keys(routes);\n\n\trouteModels.forEach(function (toModel) {\n\t\tvar fn = routes[toModel];\n\n\t\tconvert[fromModel][toModel] = wrapRounded(fn);\n\t\tconvert[fromModel][toModel].raw = wrapRaw(fn);\n\t});\n});\n\nvar colorConvert = convert;\n\nvar colorName$1 = {\r\n\t\"aliceblue\": [240, 248, 255],\r\n\t\"antiquewhite\": [250, 235, 215],\r\n\t\"aqua\": [0, 255, 255],\r\n\t\"aquamarine\": [127, 255, 212],\r\n\t\"azure\": [240, 255, 255],\r\n\t\"beige\": [245, 245, 220],\r\n\t\"bisque\": [255, 228, 196],\r\n\t\"black\": [0, 0, 0],\r\n\t\"blanchedalmond\": [255, 235, 205],\r\n\t\"blue\": [0, 0, 255],\r\n\t\"blueviolet\": [138, 43, 226],\r\n\t\"brown\": [165, 42, 42],\r\n\t\"burlywood\": [222, 184, 135],\r\n\t\"cadetblue\": [95, 158, 160],\r\n\t\"chartreuse\": [127, 255, 0],\r\n\t\"chocolate\": [210, 105, 30],\r\n\t\"coral\": [255, 127, 80],\r\n\t\"cornflowerblue\": [100, 149, 237],\r\n\t\"cornsilk\": [255, 248, 220],\r\n\t\"crimson\": [220, 20, 60],\r\n\t\"cyan\": [0, 255, 255],\r\n\t\"darkblue\": [0, 0, 139],\r\n\t\"darkcyan\": [0, 139, 139],\r\n\t\"darkgoldenrod\": [184, 134, 11],\r\n\t\"darkgray\": [169, 169, 169],\r\n\t\"darkgreen\": [0, 100, 0],\r\n\t\"darkgrey\": [169, 169, 169],\r\n\t\"darkkhaki\": [189, 183, 107],\r\n\t\"darkmagenta\": [139, 0, 139],\r\n\t\"darkolivegreen\": [85, 107, 47],\r\n\t\"darkorange\": [255, 140, 0],\r\n\t\"darkorchid\": [153, 50, 204],\r\n\t\"darkred\": [139, 0, 0],\r\n\t\"darksalmon\": [233, 150, 122],\r\n\t\"darkseagreen\": [143, 188, 143],\r\n\t\"darkslateblue\": [72, 61, 139],\r\n\t\"darkslategray\": [47, 79, 79],\r\n\t\"darkslategrey\": [47, 79, 79],\r\n\t\"darkturquoise\": [0, 206, 209],\r\n\t\"darkviolet\": [148, 0, 211],\r\n\t\"deeppink\": [255, 20, 147],\r\n\t\"deepskyblue\": [0, 191, 255],\r\n\t\"dimgray\": [105, 105, 105],\r\n\t\"dimgrey\": [105, 105, 105],\r\n\t\"dodgerblue\": [30, 144, 255],\r\n\t\"firebrick\": [178, 34, 34],\r\n\t\"floralwhite\": [255, 250, 240],\r\n\t\"forestgreen\": [34, 139, 34],\r\n\t\"fuchsia\": [255, 0, 255],\r\n\t\"gainsboro\": [220, 220, 220],\r\n\t\"ghostwhite\": [248, 248, 255],\r\n\t\"gold\": [255, 215, 0],\r\n\t\"goldenrod\": [218, 165, 32],\r\n\t\"gray\": [128, 128, 128],\r\n\t\"green\": [0, 128, 0],\r\n\t\"greenyellow\": [173, 255, 47],\r\n\t\"grey\": [128, 128, 128],\r\n\t\"honeydew\": [240, 255, 240],\r\n\t\"hotpink\": [255, 105, 180],\r\n\t\"indianred\": [205, 92, 92],\r\n\t\"indigo\": [75, 0, 130],\r\n\t\"ivory\": [255, 255, 240],\r\n\t\"khaki\": [240, 230, 140],\r\n\t\"lavender\": [230, 230, 250],\r\n\t\"lavenderblush\": [255, 240, 245],\r\n\t\"lawngreen\": [124, 252, 0],\r\n\t\"lemonchiffon\": [255, 250, 205],\r\n\t\"lightblue\": [173, 216, 230],\r\n\t\"lightcoral\": [240, 128, 128],\r\n\t\"lightcyan\": [224, 255, 255],\r\n\t\"lightgoldenrodyellow\": [250, 250, 210],\r\n\t\"lightgray\": [211, 211, 211],\r\n\t\"lightgreen\": [144, 238, 144],\r\n\t\"lightgrey\": [211, 211, 211],\r\n\t\"lightpink\": [255, 182, 193],\r\n\t\"lightsalmon\": [255, 160, 122],\r\n\t\"lightseagreen\": [32, 178, 170],\r\n\t\"lightskyblue\": [135, 206, 250],\r\n\t\"lightslategray\": [119, 136, 153],\r\n\t\"lightslategrey\": [119, 136, 153],\r\n\t\"lightsteelblue\": [176, 196, 222],\r\n\t\"lightyellow\": [255, 255, 224],\r\n\t\"lime\": [0, 255, 0],\r\n\t\"limegreen\": [50, 205, 50],\r\n\t\"linen\": [250, 240, 230],\r\n\t\"magenta\": [255, 0, 255],\r\n\t\"maroon\": [128, 0, 0],\r\n\t\"mediumaquamarine\": [102, 205, 170],\r\n\t\"mediumblue\": [0, 0, 205],\r\n\t\"mediumorchid\": [186, 85, 211],\r\n\t\"mediumpurple\": [147, 112, 219],\r\n\t\"mediumseagreen\": [60, 179, 113],\r\n\t\"mediumslateblue\": [123, 104, 238],\r\n\t\"mediumspringgreen\": [0, 250, 154],\r\n\t\"mediumturquoise\": [72, 209, 204],\r\n\t\"mediumvioletred\": [199, 21, 133],\r\n\t\"midnightblue\": [25, 25, 112],\r\n\t\"mintcream\": [245, 255, 250],\r\n\t\"mistyrose\": [255, 228, 225],\r\n\t\"moccasin\": [255, 228, 181],\r\n\t\"navajowhite\": [255, 222, 173],\r\n\t\"navy\": [0, 0, 128],\r\n\t\"oldlace\": [253, 245, 230],\r\n\t\"olive\": [128, 128, 0],\r\n\t\"olivedrab\": [107, 142, 35],\r\n\t\"orange\": [255, 165, 0],\r\n\t\"orangered\": [255, 69, 0],\r\n\t\"orchid\": [218, 112, 214],\r\n\t\"palegoldenrod\": [238, 232, 170],\r\n\t\"palegreen\": [152, 251, 152],\r\n\t\"paleturquoise\": [175, 238, 238],\r\n\t\"palevioletred\": [219, 112, 147],\r\n\t\"papayawhip\": [255, 239, 213],\r\n\t\"peachpuff\": [255, 218, 185],\r\n\t\"peru\": [205, 133, 63],\r\n\t\"pink\": [255, 192, 203],\r\n\t\"plum\": [221, 160, 221],\r\n\t\"powderblue\": [176, 224, 230],\r\n\t\"purple\": [128, 0, 128],\r\n\t\"rebeccapurple\": [102, 51, 153],\r\n\t\"red\": [255, 0, 0],\r\n\t\"rosybrown\": [188, 143, 143],\r\n\t\"royalblue\": [65, 105, 225],\r\n\t\"saddlebrown\": [139, 69, 19],\r\n\t\"salmon\": [250, 128, 114],\r\n\t\"sandybrown\": [244, 164, 96],\r\n\t\"seagreen\": [46, 139, 87],\r\n\t\"seashell\": [255, 245, 238],\r\n\t\"sienna\": [160, 82, 45],\r\n\t\"silver\": [192, 192, 192],\r\n\t\"skyblue\": [135, 206, 235],\r\n\t\"slateblue\": [106, 90, 205],\r\n\t\"slategray\": [112, 128, 144],\r\n\t\"slategrey\": [112, 128, 144],\r\n\t\"snow\": [255, 250, 250],\r\n\t\"springgreen\": [0, 255, 127],\r\n\t\"steelblue\": [70, 130, 180],\r\n\t\"tan\": [210, 180, 140],\r\n\t\"teal\": [0, 128, 128],\r\n\t\"thistle\": [216, 191, 216],\r\n\t\"tomato\": [255, 99, 71],\r\n\t\"turquoise\": [64, 224, 208],\r\n\t\"violet\": [238, 130, 238],\r\n\t\"wheat\": [245, 222, 179],\r\n\t\"white\": [255, 255, 255],\r\n\t\"whitesmoke\": [245, 245, 245],\r\n\t\"yellow\": [255, 255, 0],\r\n\t\"yellowgreen\": [154, 205, 50]\r\n};\n\n/* MIT license */\n\n\nvar colorString = {\n getRgba: getRgba,\n getHsla: getHsla,\n getRgb: getRgb,\n getHsl: getHsl,\n getHwb: getHwb,\n getAlpha: getAlpha,\n\n hexString: hexString,\n rgbString: rgbString,\n rgbaString: rgbaString,\n percentString: percentString,\n percentaString: percentaString,\n hslString: hslString,\n hslaString: hslaString,\n hwbString: hwbString,\n keyword: keyword\n};\n\nfunction getRgba(string) {\n if (!string) {\n return;\n }\n var abbr = /^#([a-fA-F0-9]{3,4})$/i,\n hex = /^#([a-fA-F0-9]{6}([a-fA-F0-9]{2})?)$/i,\n rgba = /^rgba?\\(\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*,\\s*([+-]?\\d+)\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n per = /^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*,\\s*([+-]?[\\d\\.]+)\\%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)$/i,\n keyword = /(\\w+)/;\n\n var rgb = [0, 0, 0],\n a = 1,\n match = string.match(abbr),\n hexAlpha = \"\";\n if (match) {\n match = match[1];\n hexAlpha = match[3];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i] + match[i], 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha + hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(hex)) {\n hexAlpha = match[2];\n match = match[1];\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match.slice(i * 2, i * 2 + 2), 16);\n }\n if (hexAlpha) {\n a = Math.round((parseInt(hexAlpha, 16) / 255) * 100) / 100;\n }\n }\n else if (match = string.match(rgba)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = parseInt(match[i + 1]);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(per)) {\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = Math.round(parseFloat(match[i + 1]) * 2.55);\n }\n a = parseFloat(match[4]);\n }\n else if (match = string.match(keyword)) {\n if (match[1] == \"transparent\") {\n return [0, 0, 0, 0];\n }\n rgb = colorName$1[match[1]];\n if (!rgb) {\n return;\n }\n }\n\n for (var i = 0; i < rgb.length; i++) {\n rgb[i] = scale(rgb[i], 0, 255);\n }\n if (!a && a != 0) {\n a = 1;\n }\n else {\n a = scale(a, 0, 1);\n }\n rgb[3] = a;\n return rgb;\n}\n\nfunction getHsla(string) {\n if (!string) {\n return;\n }\n var hsl = /^hsla?\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hsl);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n s = scale(parseFloat(match[2]), 0, 100),\n l = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, s, l, a];\n }\n}\n\nfunction getHwb(string) {\n if (!string) {\n return;\n }\n var hwb = /^hwb\\(\\s*([+-]?\\d+)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?[\\d\\.]+)\\s*)?\\)/;\n var match = string.match(hwb);\n if (match) {\n var alpha = parseFloat(match[4]);\n var h = scale(parseInt(match[1]), 0, 360),\n w = scale(parseFloat(match[2]), 0, 100),\n b = scale(parseFloat(match[3]), 0, 100),\n a = scale(isNaN(alpha) ? 1 : alpha, 0, 1);\n return [h, w, b, a];\n }\n}\n\nfunction getRgb(string) {\n var rgba = getRgba(string);\n return rgba && rgba.slice(0, 3);\n}\n\nfunction getHsl(string) {\n var hsla = getHsla(string);\n return hsla && hsla.slice(0, 3);\n}\n\nfunction getAlpha(string) {\n var vals = getRgba(string);\n if (vals) {\n return vals[3];\n }\n else if (vals = getHsla(string)) {\n return vals[3];\n }\n else if (vals = getHwb(string)) {\n return vals[3];\n }\n}\n\n// generators\nfunction hexString(rgba, a) {\n var a = (a !== undefined && rgba.length === 3) ? a : rgba[3];\n return \"#\" + hexDouble(rgba[0]) \n + hexDouble(rgba[1])\n + hexDouble(rgba[2])\n + (\n (a >= 0 && a < 1)\n ? hexDouble(Math.round(a * 255))\n : \"\"\n );\n}\n\nfunction rgbString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return rgbaString(rgba, alpha);\n }\n return \"rgb(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2] + \")\";\n}\n\nfunction rgbaString(rgba, alpha) {\n if (alpha === undefined) {\n alpha = (rgba[3] !== undefined ? rgba[3] : 1);\n }\n return \"rgba(\" + rgba[0] + \", \" + rgba[1] + \", \" + rgba[2]\n + \", \" + alpha + \")\";\n}\n\nfunction percentString(rgba, alpha) {\n if (alpha < 1 || (rgba[3] && rgba[3] < 1)) {\n return percentaString(rgba, alpha);\n }\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n\n return \"rgb(\" + r + \"%, \" + g + \"%, \" + b + \"%)\";\n}\n\nfunction percentaString(rgba, alpha) {\n var r = Math.round(rgba[0]/255 * 100),\n g = Math.round(rgba[1]/255 * 100),\n b = Math.round(rgba[2]/255 * 100);\n return \"rgba(\" + r + \"%, \" + g + \"%, \" + b + \"%, \" + (alpha || rgba[3] || 1) + \")\";\n}\n\nfunction hslString(hsla, alpha) {\n if (alpha < 1 || (hsla[3] && hsla[3] < 1)) {\n return hslaString(hsla, alpha);\n }\n return \"hsl(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%)\";\n}\n\nfunction hslaString(hsla, alpha) {\n if (alpha === undefined) {\n alpha = (hsla[3] !== undefined ? hsla[3] : 1);\n }\n return \"hsla(\" + hsla[0] + \", \" + hsla[1] + \"%, \" + hsla[2] + \"%, \"\n + alpha + \")\";\n}\n\n// hwb is a bit different than rgb(a) & hsl(a) since there is no alpha specific syntax\n// (hwb have alpha optional & 1 is default value)\nfunction hwbString(hwb, alpha) {\n if (alpha === undefined) {\n alpha = (hwb[3] !== undefined ? hwb[3] : 1);\n }\n return \"hwb(\" + hwb[0] + \", \" + hwb[1] + \"%, \" + hwb[2] + \"%\"\n + (alpha !== undefined && alpha !== 1 ? \", \" + alpha : \"\") + \")\";\n}\n\nfunction keyword(rgb) {\n return reverseNames[rgb.slice(0, 3)];\n}\n\n// helpers\nfunction scale(num, min, max) {\n return Math.min(Math.max(min, num), max);\n}\n\nfunction hexDouble(num) {\n var str = num.toString(16).toUpperCase();\n return (str.length < 2) ? \"0\" + str : str;\n}\n\n\n//create a list of reverse color names\nvar reverseNames = {};\nfor (var name in colorName$1) {\n reverseNames[colorName$1[name]] = name;\n}\n\n/* MIT license */\n\n\n\nvar Color = function (obj) {\n\tif (obj instanceof Color) {\n\t\treturn obj;\n\t}\n\tif (!(this instanceof Color)) {\n\t\treturn new Color(obj);\n\t}\n\n\tthis.valid = false;\n\tthis.values = {\n\t\trgb: [0, 0, 0],\n\t\thsl: [0, 0, 0],\n\t\thsv: [0, 0, 0],\n\t\thwb: [0, 0, 0],\n\t\tcmyk: [0, 0, 0, 0],\n\t\talpha: 1\n\t};\n\n\t// parse Color() argument\n\tvar vals;\n\tif (typeof obj === 'string') {\n\t\tvals = colorString.getRgba(obj);\n\t\tif (vals) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals = colorString.getHsla(obj)) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals = colorString.getHwb(obj)) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t}\n\t} else if (typeof obj === 'object') {\n\t\tvals = obj;\n\t\tif (vals.r !== undefined || vals.red !== undefined) {\n\t\t\tthis.setValues('rgb', vals);\n\t\t} else if (vals.l !== undefined || vals.lightness !== undefined) {\n\t\t\tthis.setValues('hsl', vals);\n\t\t} else if (vals.v !== undefined || vals.value !== undefined) {\n\t\t\tthis.setValues('hsv', vals);\n\t\t} else if (vals.w !== undefined || vals.whiteness !== undefined) {\n\t\t\tthis.setValues('hwb', vals);\n\t\t} else if (vals.c !== undefined || vals.cyan !== undefined) {\n\t\t\tthis.setValues('cmyk', vals);\n\t\t}\n\t}\n};\n\nColor.prototype = {\n\tisValid: function () {\n\t\treturn this.valid;\n\t},\n\trgb: function () {\n\t\treturn this.setSpace('rgb', arguments);\n\t},\n\thsl: function () {\n\t\treturn this.setSpace('hsl', arguments);\n\t},\n\thsv: function () {\n\t\treturn this.setSpace('hsv', arguments);\n\t},\n\thwb: function () {\n\t\treturn this.setSpace('hwb', arguments);\n\t},\n\tcmyk: function () {\n\t\treturn this.setSpace('cmyk', arguments);\n\t},\n\n\trgbArray: function () {\n\t\treturn this.values.rgb;\n\t},\n\thslArray: function () {\n\t\treturn this.values.hsl;\n\t},\n\thsvArray: function () {\n\t\treturn this.values.hsv;\n\t},\n\thwbArray: function () {\n\t\tvar values = this.values;\n\t\tif (values.alpha !== 1) {\n\t\t\treturn values.hwb.concat([values.alpha]);\n\t\t}\n\t\treturn values.hwb;\n\t},\n\tcmykArray: function () {\n\t\treturn this.values.cmyk;\n\t},\n\trgbaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.rgb.concat([values.alpha]);\n\t},\n\thslaArray: function () {\n\t\tvar values = this.values;\n\t\treturn values.hsl.concat([values.alpha]);\n\t},\n\talpha: function (val) {\n\t\tif (val === undefined) {\n\t\t\treturn this.values.alpha;\n\t\t}\n\t\tthis.setValues('alpha', val);\n\t\treturn this;\n\t},\n\n\tred: function (val) {\n\t\treturn this.setChannel('rgb', 0, val);\n\t},\n\tgreen: function (val) {\n\t\treturn this.setChannel('rgb', 1, val);\n\t},\n\tblue: function (val) {\n\t\treturn this.setChannel('rgb', 2, val);\n\t},\n\thue: function (val) {\n\t\tif (val) {\n\t\t\tval %= 360;\n\t\t\tval = val < 0 ? 360 + val : val;\n\t\t}\n\t\treturn this.setChannel('hsl', 0, val);\n\t},\n\tsaturation: function (val) {\n\t\treturn this.setChannel('hsl', 1, val);\n\t},\n\tlightness: function (val) {\n\t\treturn this.setChannel('hsl', 2, val);\n\t},\n\tsaturationv: function (val) {\n\t\treturn this.setChannel('hsv', 1, val);\n\t},\n\twhiteness: function (val) {\n\t\treturn this.setChannel('hwb', 1, val);\n\t},\n\tblackness: function (val) {\n\t\treturn this.setChannel('hwb', 2, val);\n\t},\n\tvalue: function (val) {\n\t\treturn this.setChannel('hsv', 2, val);\n\t},\n\tcyan: function (val) {\n\t\treturn this.setChannel('cmyk', 0, val);\n\t},\n\tmagenta: function (val) {\n\t\treturn this.setChannel('cmyk', 1, val);\n\t},\n\tyellow: function (val) {\n\t\treturn this.setChannel('cmyk', 2, val);\n\t},\n\tblack: function (val) {\n\t\treturn this.setChannel('cmyk', 3, val);\n\t},\n\n\thexString: function () {\n\t\treturn colorString.hexString(this.values.rgb);\n\t},\n\trgbString: function () {\n\t\treturn colorString.rgbString(this.values.rgb, this.values.alpha);\n\t},\n\trgbaString: function () {\n\t\treturn colorString.rgbaString(this.values.rgb, this.values.alpha);\n\t},\n\tpercentString: function () {\n\t\treturn colorString.percentString(this.values.rgb, this.values.alpha);\n\t},\n\thslString: function () {\n\t\treturn colorString.hslString(this.values.hsl, this.values.alpha);\n\t},\n\thslaString: function () {\n\t\treturn colorString.hslaString(this.values.hsl, this.values.alpha);\n\t},\n\thwbString: function () {\n\t\treturn colorString.hwbString(this.values.hwb, this.values.alpha);\n\t},\n\tkeyword: function () {\n\t\treturn colorString.keyword(this.values.rgb, this.values.alpha);\n\t},\n\n\trgbNumber: function () {\n\t\tvar rgb = this.values.rgb;\n\t\treturn (rgb[0] << 16) | (rgb[1] << 8) | rgb[2];\n\t},\n\n\tluminosity: function () {\n\t\t// http://www.w3.org/TR/WCAG20/#relativeluminancedef\n\t\tvar rgb = this.values.rgb;\n\t\tvar lum = [];\n\t\tfor (var i = 0; i < rgb.length; i++) {\n\t\t\tvar chan = rgb[i] / 255;\n\t\t\tlum[i] = (chan <= 0.03928) ? chan / 12.92 : Math.pow(((chan + 0.055) / 1.055), 2.4);\n\t\t}\n\t\treturn 0.2126 * lum[0] + 0.7152 * lum[1] + 0.0722 * lum[2];\n\t},\n\n\tcontrast: function (color2) {\n\t\t// http://www.w3.org/TR/WCAG20/#contrast-ratiodef\n\t\tvar lum1 = this.luminosity();\n\t\tvar lum2 = color2.luminosity();\n\t\tif (lum1 > lum2) {\n\t\t\treturn (lum1 + 0.05) / (lum2 + 0.05);\n\t\t}\n\t\treturn (lum2 + 0.05) / (lum1 + 0.05);\n\t},\n\n\tlevel: function (color2) {\n\t\tvar contrastRatio = this.contrast(color2);\n\t\tif (contrastRatio >= 7.1) {\n\t\t\treturn 'AAA';\n\t\t}\n\n\t\treturn (contrastRatio >= 4.5) ? 'AA' : '';\n\t},\n\n\tdark: function () {\n\t\t// YIQ equation from http://24ways.org/2010/calculating-color-contrast\n\t\tvar rgb = this.values.rgb;\n\t\tvar yiq = (rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000;\n\t\treturn yiq < 128;\n\t},\n\n\tlight: function () {\n\t\treturn !this.dark();\n\t},\n\n\tnegate: function () {\n\t\tvar rgb = [];\n\t\tfor (var i = 0; i < 3; i++) {\n\t\t\trgb[i] = 255 - this.values.rgb[i];\n\t\t}\n\t\tthis.setValues('rgb', rgb);\n\t\treturn this;\n\t},\n\n\tlighten: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] += hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdarken: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[2] -= hsl[2] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tsaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] += hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\tdesaturate: function (ratio) {\n\t\tvar hsl = this.values.hsl;\n\t\thsl[1] -= hsl[1] * ratio;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\twhiten: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[1] += hwb[1] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tblacken: function (ratio) {\n\t\tvar hwb = this.values.hwb;\n\t\thwb[2] += hwb[2] * ratio;\n\t\tthis.setValues('hwb', hwb);\n\t\treturn this;\n\t},\n\n\tgreyscale: function () {\n\t\tvar rgb = this.values.rgb;\n\t\t// http://en.wikipedia.org/wiki/Grayscale#Converting_color_to_grayscale\n\t\tvar val = rgb[0] * 0.3 + rgb[1] * 0.59 + rgb[2] * 0.11;\n\t\tthis.setValues('rgb', [val, val, val]);\n\t\treturn this;\n\t},\n\n\tclearer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha - (alpha * ratio));\n\t\treturn this;\n\t},\n\n\topaquer: function (ratio) {\n\t\tvar alpha = this.values.alpha;\n\t\tthis.setValues('alpha', alpha + (alpha * ratio));\n\t\treturn this;\n\t},\n\n\trotate: function (degrees) {\n\t\tvar hsl = this.values.hsl;\n\t\tvar hue = (hsl[0] + degrees) % 360;\n\t\thsl[0] = hue < 0 ? 360 + hue : hue;\n\t\tthis.setValues('hsl', hsl);\n\t\treturn this;\n\t},\n\n\t/**\n\t * Ported from sass implementation in C\n\t * https://github.com/sass/libsass/blob/0e6b4a2850092356aa3ece07c6b249f0221caced/functions.cpp#L209\n\t */\n\tmix: function (mixinColor, weight) {\n\t\tvar color1 = this;\n\t\tvar color2 = mixinColor;\n\t\tvar p = weight === undefined ? 0.5 : weight;\n\n\t\tvar w = 2 * p - 1;\n\t\tvar a = color1.alpha() - color2.alpha();\n\n\t\tvar w1 = (((w * a === -1) ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\tvar w2 = 1 - w1;\n\n\t\treturn this\n\t\t\t.rgb(\n\t\t\t\tw1 * color1.red() + w2 * color2.red(),\n\t\t\t\tw1 * color1.green() + w2 * color2.green(),\n\t\t\t\tw1 * color1.blue() + w2 * color2.blue()\n\t\t\t)\n\t\t\t.alpha(color1.alpha() * p + color2.alpha() * (1 - p));\n\t},\n\n\ttoJSON: function () {\n\t\treturn this.rgb();\n\t},\n\n\tclone: function () {\n\t\t// NOTE(SB): using node-clone creates a dependency to Buffer when using browserify,\n\t\t// making the final build way to big to embed in Chart.js. So let's do it manually,\n\t\t// assuming that values to clone are 1 dimension arrays containing only numbers,\n\t\t// except 'alpha' which is a number.\n\t\tvar result = new Color();\n\t\tvar source = this.values;\n\t\tvar target = result.values;\n\t\tvar value, type;\n\n\t\tfor (var prop in source) {\n\t\t\tif (source.hasOwnProperty(prop)) {\n\t\t\t\tvalue = source[prop];\n\t\t\t\ttype = ({}).toString.call(value);\n\t\t\t\tif (type === '[object Array]') {\n\t\t\t\t\ttarget[prop] = value.slice(0);\n\t\t\t\t} else if (type === '[object Number]') {\n\t\t\t\t\ttarget[prop] = value;\n\t\t\t\t} else {\n\t\t\t\t\tconsole.error('unexpected color value:', value);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n};\n\nColor.prototype.spaces = {\n\trgb: ['red', 'green', 'blue'],\n\thsl: ['hue', 'saturation', 'lightness'],\n\thsv: ['hue', 'saturation', 'value'],\n\thwb: ['hue', 'whiteness', 'blackness'],\n\tcmyk: ['cyan', 'magenta', 'yellow', 'black']\n};\n\nColor.prototype.maxes = {\n\trgb: [255, 255, 255],\n\thsl: [360, 100, 100],\n\thsv: [360, 100, 100],\n\thwb: [360, 100, 100],\n\tcmyk: [100, 100, 100, 100]\n};\n\nColor.prototype.getValues = function (space) {\n\tvar values = this.values;\n\tvar vals = {};\n\n\tfor (var i = 0; i < space.length; i++) {\n\t\tvals[space.charAt(i)] = values[space][i];\n\t}\n\n\tif (values.alpha !== 1) {\n\t\tvals.a = values.alpha;\n\t}\n\n\t// {r: 255, g: 255, b: 255, a: 0.4}\n\treturn vals;\n};\n\nColor.prototype.setValues = function (space, vals) {\n\tvar values = this.values;\n\tvar spaces = this.spaces;\n\tvar maxes = this.maxes;\n\tvar alpha = 1;\n\tvar i;\n\n\tthis.valid = true;\n\n\tif (space === 'alpha') {\n\t\talpha = vals;\n\t} else if (vals.length) {\n\t\t// [10, 10, 10]\n\t\tvalues[space] = vals.slice(0, space.length);\n\t\talpha = vals[space.length];\n\t} else if (vals[space.charAt(0)] !== undefined) {\n\t\t// {r: 10, g: 10, b: 10}\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[space.charAt(i)];\n\t\t}\n\n\t\talpha = vals.a;\n\t} else if (vals[spaces[space][0]] !== undefined) {\n\t\t// {red: 10, green: 10, blue: 10}\n\t\tvar chans = spaces[space];\n\n\t\tfor (i = 0; i < space.length; i++) {\n\t\t\tvalues[space][i] = vals[chans[i]];\n\t\t}\n\n\t\talpha = vals.alpha;\n\t}\n\n\tvalues.alpha = Math.max(0, Math.min(1, (alpha === undefined ? values.alpha : alpha)));\n\n\tif (space === 'alpha') {\n\t\treturn false;\n\t}\n\n\tvar capped;\n\n\t// cap values of the space prior converting all values\n\tfor (i = 0; i < space.length; i++) {\n\t\tcapped = Math.max(0, Math.min(maxes[space][i], values[space][i]));\n\t\tvalues[space][i] = Math.round(capped);\n\t}\n\n\t// convert to all the other color spaces\n\tfor (var sname in spaces) {\n\t\tif (sname !== space) {\n\t\t\tvalues[sname] = colorConvert[space][sname](values[space]);\n\t\t}\n\t}\n\n\treturn true;\n};\n\nColor.prototype.setSpace = function (space, args) {\n\tvar vals = args[0];\n\n\tif (vals === undefined) {\n\t\t// color.rgb()\n\t\treturn this.getValues(space);\n\t}\n\n\t// color.rgb(10, 10, 10)\n\tif (typeof vals === 'number') {\n\t\tvals = Array.prototype.slice.call(args);\n\t}\n\n\tthis.setValues(space, vals);\n\treturn this;\n};\n\nColor.prototype.setChannel = function (space, index, val) {\n\tvar svalues = this.values[space];\n\tif (val === undefined) {\n\t\t// color.red()\n\t\treturn svalues[index];\n\t} else if (val === svalues[index]) {\n\t\t// color.red(color.red())\n\t\treturn this;\n\t}\n\n\t// color.red(100)\n\tsvalues[index] = val;\n\tthis.setValues(space, svalues);\n\n\treturn this;\n};\n\nif (typeof window !== 'undefined') {\n\twindow.Color = Color;\n}\n\nvar chartjsColor = Color;\n\n/**\n * @namespace Chart.helpers\n */\nvar helpers = {\n\t/**\n\t * An empty function that can be used, for example, for optional callback.\n\t */\n\tnoop: function() {},\n\n\t/**\n\t * Returns a unique id, sequentially generated from a global variable.\n\t * @returns {number}\n\t * @function\n\t */\n\tuid: (function() {\n\t\tvar id = 0;\n\t\treturn function() {\n\t\t\treturn id++;\n\t\t};\n\t}()),\n\n\t/**\n\t * Returns true if `value` is neither null nor undefined, else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisNullOrUndef: function(value) {\n\t\treturn value === null || typeof value === 'undefined';\n\t},\n\n\t/**\n\t * Returns true if `value` is an array (including typed arrays), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @function\n\t */\n\tisArray: function(value) {\n\t\tif (Array.isArray && Array.isArray(value)) {\n\t\t\treturn true;\n\t\t}\n\t\tvar type = Object.prototype.toString.call(value);\n\t\tif (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\t/**\n\t * Returns true if `value` is an object (excluding null), else returns false.\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t * @since 2.7.0\n\t */\n\tisObject: function(value) {\n\t\treturn value !== null && Object.prototype.toString.call(value) === '[object Object]';\n\t},\n\n\t/**\n\t * Returns true if `value` is a finite number, else returns false\n\t * @param {*} value - The value to test.\n\t * @returns {boolean}\n\t */\n\tisFinite: function(value) {\n\t\treturn (typeof value === 'number' || value instanceof Number) && isFinite(value);\n\t},\n\n\t/**\n\t * Returns `value` if defined, else returns `defaultValue`.\n\t * @param {*} value - The value to return if defined.\n\t * @param {*} defaultValue - The value to return if `value` is undefined.\n\t * @returns {*}\n\t */\n\tvalueOrDefault: function(value, defaultValue) {\n\t\treturn typeof value === 'undefined' ? defaultValue : value;\n\t},\n\n\t/**\n\t * Returns value at the given `index` in array if defined, else returns `defaultValue`.\n\t * @param {Array} value - The array to lookup for value at `index`.\n\t * @param {number} index - The index in `value` to lookup for value.\n\t * @param {*} defaultValue - The value to return if `value[index]` is undefined.\n\t * @returns {*}\n\t */\n\tvalueAtIndexOrDefault: function(value, index, defaultValue) {\n\t\treturn helpers.valueOrDefault(helpers.isArray(value) ? value[index] : value, defaultValue);\n\t},\n\n\t/**\n\t * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n\t * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n\t * @param {function} fn - The function to call.\n\t * @param {Array|undefined|null} args - The arguments with which `fn` should be called.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @returns {*}\n\t */\n\tcallback: function(fn, args, thisArg) {\n\t\tif (fn && typeof fn.call === 'function') {\n\t\t\treturn fn.apply(thisArg, args);\n\t\t}\n\t},\n\n\t/**\n\t * Note(SB) for performance sake, this method should only be used when loopable type\n\t * is unknown or in none intensive code (not called often and small loopable). Else\n\t * it's preferable to use a regular for() loop and save extra function calls.\n\t * @param {object|Array} loopable - The object or array to be iterated.\n\t * @param {function} fn - The function to call for each item.\n\t * @param {object} [thisArg] - The value of `this` provided for the call to `fn`.\n\t * @param {boolean} [reverse] - If true, iterates backward on the loopable.\n\t */\n\teach: function(loopable, fn, thisArg, reverse) {\n\t\tvar i, len, keys;\n\t\tif (helpers.isArray(loopable)) {\n\t\t\tlen = loopable.length;\n\t\t\tif (reverse) {\n\t\t\t\tfor (i = len - 1; i >= 0; i--) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\t\tfn.call(thisArg, loopable[i], i);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (helpers.isObject(loopable)) {\n\t\t\tkeys = Object.keys(loopable);\n\t\t\tlen = keys.length;\n\t\t\tfor (i = 0; i < len; i++) {\n\t\t\t\tfn.call(thisArg, loopable[keys[i]], keys[i]);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n\t * @see https://stackoverflow.com/a/14853974\n\t * @param {Array} a0 - The array to compare\n\t * @param {Array} a1 - The array to compare\n\t * @returns {boolean}\n\t */\n\tarrayEquals: function(a0, a1) {\n\t\tvar i, ilen, v0, v1;\n\n\t\tif (!a0 || !a1 || a0.length !== a1.length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (i = 0, ilen = a0.length; i < ilen; ++i) {\n\t\t\tv0 = a0[i];\n\t\t\tv1 = a1[i];\n\n\t\t\tif (v0 instanceof Array && v1 instanceof Array) {\n\t\t\t\tif (!helpers.arrayEquals(v0, v1)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t} else if (v0 !== v1) {\n\t\t\t\t// NOTE: two different object instances will never be equal: {x:20} != {x:20}\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t},\n\n\t/**\n\t * Returns a deep copy of `source` without keeping references on objects and arrays.\n\t * @param {*} source - The value to clone.\n\t * @returns {*}\n\t */\n\tclone: function(source) {\n\t\tif (helpers.isArray(source)) {\n\t\t\treturn source.map(helpers.clone);\n\t\t}\n\n\t\tif (helpers.isObject(source)) {\n\t\t\tvar target = {};\n\t\t\tvar keys = Object.keys(source);\n\t\t\tvar klen = keys.length;\n\t\t\tvar k = 0;\n\n\t\t\tfor (; k < klen; ++k) {\n\t\t\t\ttarget[keys[k]] = helpers.clone(source[keys[k]]);\n\t\t\t}\n\n\t\t\treturn target;\n\t\t}\n\n\t\treturn source;\n\t},\n\n\t/**\n\t * The default merger when Chart.helpers.merge is called without merger option.\n\t * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n\t * @private\n\t */\n\t_merger: function(key, target, source, options) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.merge(tval, sval, options);\n\t\t} else {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Merges source[key] in target[key] only if target[key] is undefined.\n\t * @private\n\t */\n\t_mergerIf: function(key, target, source) {\n\t\tvar tval = target[key];\n\t\tvar sval = source[key];\n\n\t\tif (helpers.isObject(tval) && helpers.isObject(sval)) {\n\t\t\thelpers.mergeIf(tval, sval);\n\t\t} else if (!target.hasOwnProperty(key)) {\n\t\t\ttarget[key] = helpers.clone(sval);\n\t\t}\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` with the given `options`.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @param {object} [options] - Merging options:\n\t * @param {function} [options.merger] - The merge method (key, target, source, options)\n\t * @returns {object} The `target` object.\n\t */\n\tmerge: function(target, source, options) {\n\t\tvar sources = helpers.isArray(source) ? source : [source];\n\t\tvar ilen = sources.length;\n\t\tvar merge, i, keys, klen, k;\n\n\t\tif (!helpers.isObject(target)) {\n\t\t\treturn target;\n\t\t}\n\n\t\toptions = options || {};\n\t\tmerge = options.merger || helpers._merger;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tsource = sources[i];\n\t\t\tif (!helpers.isObject(source)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tkeys = Object.keys(source);\n\t\t\tfor (k = 0, klen = keys.length; k < klen; ++k) {\n\t\t\t\tmerge(keys[k], target, source, options);\n\t\t\t}\n\t\t}\n\n\t\treturn target;\n\t},\n\n\t/**\n\t * Recursively deep copies `source` properties into `target` *only* if not defined in target.\n\t * IMPORTANT: `target` is not cloned and will be updated with `source` properties.\n\t * @param {object} target - The target object in which all sources are merged into.\n\t * @param {object|object[]} source - Object(s) to merge into `target`.\n\t * @returns {object} The `target` object.\n\t */\n\tmergeIf: function(target, source) {\n\t\treturn helpers.merge(target, source, {merger: helpers._mergerIf});\n\t},\n\n\t/**\n\t * Applies the contents of two or more objects together into the first object.\n\t * @param {object} target - The target object in which all objects are merged into.\n\t * @param {object} arg1 - Object containing additional properties to merge in target.\n\t * @param {object} argN - Additional objects containing properties to merge in target.\n\t * @returns {object} The `target` object.\n\t */\n\textend: Object.assign || function(target) {\n\t\treturn helpers.merge(target, [].slice.call(arguments, 1), {\n\t\t\tmerger: function(key, dst, src) {\n\t\t\t\tdst[key] = src[key];\n\t\t\t}\n\t\t});\n\t},\n\n\t/**\n\t * Basic javascript inheritance based on the model created in Backbone.js\n\t */\n\tinherits: function(extensions) {\n\t\tvar me = this;\n\t\tvar ChartElement = (extensions && extensions.hasOwnProperty('constructor')) ? extensions.constructor : function() {\n\t\t\treturn me.apply(this, arguments);\n\t\t};\n\n\t\tvar Surrogate = function() {\n\t\t\tthis.constructor = ChartElement;\n\t\t};\n\n\t\tSurrogate.prototype = me.prototype;\n\t\tChartElement.prototype = new Surrogate();\n\t\tChartElement.extend = helpers.inherits;\n\n\t\tif (extensions) {\n\t\t\thelpers.extend(ChartElement.prototype, extensions);\n\t\t}\n\n\t\tChartElement.__super__ = me.prototype;\n\t\treturn ChartElement;\n\t},\n\n\t_deprecated: function(scope, value, previous, current) {\n\t\tif (value !== undefined) {\n\t\t\tconsole.warn(scope + ': \"' + previous +\n\t\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n\t\t}\n\t}\n};\n\nvar helpers_core = helpers;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.callback instead.\n * @function Chart.helpers.callCallback\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n * @private\n */\nhelpers.callCallback = helpers.callback;\n\n/**\n * Provided for backward compatibility, use Array.prototype.indexOf instead.\n * Array.prototype.indexOf compatibility: Chrome, Opera, Safari, FF1.5+, IE9+\n * @function Chart.helpers.indexOf\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.indexOf = function(array, item, fromIndex) {\n\treturn Array.prototype.indexOf.call(array, item, fromIndex);\n};\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueOrDefault instead.\n * @function Chart.helpers.getValueOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueOrDefault = helpers.valueOrDefault;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.valueAtIndexOrDefault instead.\n * @function Chart.helpers.getValueAtIndexOrDefault\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers.getValueAtIndexOrDefault = helpers.valueAtIndexOrDefault;\n\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easingEffects\n * @see http://www.robertpenner.com/easing/\n */\nvar effects = {\n\tlinear: function(t) {\n\t\treturn t;\n\t},\n\n\teaseInQuad: function(t) {\n\t\treturn t * t;\n\t},\n\n\teaseOutQuad: function(t) {\n\t\treturn -t * (t - 2);\n\t},\n\n\teaseInOutQuad: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t;\n\t\t}\n\t\treturn -0.5 * ((--t) * (t - 2) - 1);\n\t},\n\n\teaseInCubic: function(t) {\n\t\treturn t * t * t;\n\t},\n\n\teaseOutCubic: function(t) {\n\t\treturn (t = t - 1) * t * t + 1;\n\t},\n\n\teaseInOutCubic: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t + 2);\n\t},\n\n\teaseInQuart: function(t) {\n\t\treturn t * t * t * t;\n\t},\n\n\teaseOutQuart: function(t) {\n\t\treturn -((t = t - 1) * t * t * t - 1);\n\t},\n\n\teaseInOutQuart: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t;\n\t\t}\n\t\treturn -0.5 * ((t -= 2) * t * t * t - 2);\n\t},\n\n\teaseInQuint: function(t) {\n\t\treturn t * t * t * t * t;\n\t},\n\n\teaseOutQuint: function(t) {\n\t\treturn (t = t - 1) * t * t * t * t + 1;\n\t},\n\n\teaseInOutQuint: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * t * t * t * t * t;\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * t * t * t + 2);\n\t},\n\n\teaseInSine: function(t) {\n\t\treturn -Math.cos(t * (Math.PI / 2)) + 1;\n\t},\n\n\teaseOutSine: function(t) {\n\t\treturn Math.sin(t * (Math.PI / 2));\n\t},\n\n\teaseInOutSine: function(t) {\n\t\treturn -0.5 * (Math.cos(Math.PI * t) - 1);\n\t},\n\n\teaseInExpo: function(t) {\n\t\treturn (t === 0) ? 0 : Math.pow(2, 10 * (t - 1));\n\t},\n\n\teaseOutExpo: function(t) {\n\t\treturn (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1;\n\t},\n\n\teaseInOutExpo: function(t) {\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * Math.pow(2, 10 * (t - 1));\n\t\t}\n\t\treturn 0.5 * (-Math.pow(2, -10 * --t) + 2);\n\t},\n\n\teaseInCirc: function(t) {\n\t\tif (t >= 1) {\n\t\t\treturn t;\n\t\t}\n\t\treturn -(Math.sqrt(1 - t * t) - 1);\n\t},\n\n\teaseOutCirc: function(t) {\n\t\treturn Math.sqrt(1 - (t = t - 1) * t);\n\t},\n\n\teaseInOutCirc: function(t) {\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn -0.5 * (Math.sqrt(1 - t * t) - 1);\n\t\t}\n\t\treturn 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n\t},\n\n\teaseInElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn -(a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t},\n\n\teaseOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif (t === 1) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.3;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\treturn a * Math.pow(2, -10 * t) * Math.sin((t - s) * (2 * Math.PI) / p) + 1;\n\t},\n\n\teaseInOutElastic: function(t) {\n\t\tvar s = 1.70158;\n\t\tvar p = 0;\n\t\tvar a = 1;\n\t\tif (t === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\tif ((t /= 0.5) === 2) {\n\t\t\treturn 1;\n\t\t}\n\t\tif (!p) {\n\t\t\tp = 0.45;\n\t\t}\n\t\tif (a < 1) {\n\t\t\ta = 1;\n\t\t\ts = p / 4;\n\t\t} else {\n\t\t\ts = p / (2 * Math.PI) * Math.asin(1 / a);\n\t\t}\n\t\tif (t < 1) {\n\t\t\treturn -0.5 * (a * Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p));\n\t\t}\n\t\treturn a * Math.pow(2, -10 * (t -= 1)) * Math.sin((t - s) * (2 * Math.PI) / p) * 0.5 + 1;\n\t},\n\teaseInBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn t * t * ((s + 1) * t - s);\n\t},\n\n\teaseOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\treturn (t = t - 1) * t * ((s + 1) * t + s) + 1;\n\t},\n\n\teaseInOutBack: function(t) {\n\t\tvar s = 1.70158;\n\t\tif ((t /= 0.5) < 1) {\n\t\t\treturn 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n\t\t}\n\t\treturn 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n\t},\n\n\teaseInBounce: function(t) {\n\t\treturn 1 - effects.easeOutBounce(1 - t);\n\t},\n\n\teaseOutBounce: function(t) {\n\t\tif (t < (1 / 2.75)) {\n\t\t\treturn 7.5625 * t * t;\n\t\t}\n\t\tif (t < (2 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (1.5 / 2.75)) * t + 0.75;\n\t\t}\n\t\tif (t < (2.5 / 2.75)) {\n\t\t\treturn 7.5625 * (t -= (2.25 / 2.75)) * t + 0.9375;\n\t\t}\n\t\treturn 7.5625 * (t -= (2.625 / 2.75)) * t + 0.984375;\n\t},\n\n\teaseInOutBounce: function(t) {\n\t\tif (t < 0.5) {\n\t\t\treturn effects.easeInBounce(t * 2) * 0.5;\n\t\t}\n\t\treturn effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5;\n\t}\n};\n\nvar helpers_easing = {\n\teffects: effects\n};\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.easing.effects instead.\n * @function Chart.helpers.easingEffects\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.easingEffects = effects;\n\nvar PI = Math.PI;\nvar RAD_PER_DEG = PI / 180;\nvar DOUBLE_PI = PI * 2;\nvar HALF_PI = PI / 2;\nvar QUARTER_PI = PI / 4;\nvar TWO_THIRDS_PI = PI * 2 / 3;\n\n/**\n * @namespace Chart.helpers.canvas\n */\nvar exports$1 = {\n\t/**\n\t * Clears the entire canvas associated to the given `chart`.\n\t * @param {Chart} chart - The chart for which to clear the canvas.\n\t */\n\tclear: function(chart) {\n\t\tchart.ctx.clearRect(0, 0, chart.width, chart.height);\n\t},\n\n\t/**\n\t * Creates a \"path\" for a rectangle with rounded corners at position (x, y) with a\n\t * given size (width, height) and the same `radius` for all corners.\n\t * @param {CanvasRenderingContext2D} ctx - The canvas 2D Context.\n\t * @param {number} x - The x axis of the coordinate for the rectangle starting point.\n\t * @param {number} y - The y axis of the coordinate for the rectangle starting point.\n\t * @param {number} width - The rectangle's width.\n\t * @param {number} height - The rectangle's height.\n\t * @param {number} radius - The rounded amount (in pixels) for the four corners.\n\t * @todo handle `radius` as top-left, top-right, bottom-right, bottom-left array/object?\n\t */\n\troundedRect: function(ctx, x, y, width, height, radius) {\n\t\tif (radius) {\n\t\t\tvar r = Math.min(radius, height / 2, width / 2);\n\t\t\tvar left = x + r;\n\t\t\tvar top = y + r;\n\t\t\tvar right = x + width - r;\n\t\t\tvar bottom = y + height - r;\n\n\t\t\tctx.moveTo(x, top);\n\t\t\tif (left < right && top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, -HALF_PI);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, 0);\n\t\t\t\tctx.arc(right, bottom, r, 0, HALF_PI);\n\t\t\t\tctx.arc(left, bottom, r, HALF_PI, PI);\n\t\t\t} else if (left < right) {\n\t\t\t\tctx.moveTo(left, y);\n\t\t\t\tctx.arc(right, top, r, -HALF_PI, HALF_PI);\n\t\t\t\tctx.arc(left, top, r, HALF_PI, PI + HALF_PI);\n\t\t\t} else if (top < bottom) {\n\t\t\t\tctx.arc(left, top, r, -PI, 0);\n\t\t\t\tctx.arc(left, bottom, r, 0, PI);\n\t\t\t} else {\n\t\t\t\tctx.arc(left, top, r, -PI, PI);\n\t\t\t}\n\t\t\tctx.closePath();\n\t\t\tctx.moveTo(x, y);\n\t\t} else {\n\t\t\tctx.rect(x, y, width, height);\n\t\t}\n\t},\n\n\tdrawPoint: function(ctx, style, radius, x, y, rotation) {\n\t\tvar type, xOffset, yOffset, size, cornerRadius;\n\t\tvar rad = (rotation || 0) * RAD_PER_DEG;\n\n\t\tif (style && typeof style === 'object') {\n\t\t\ttype = style.toString();\n\t\t\tif (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n\t\t\t\tctx.save();\n\t\t\t\tctx.translate(x, y);\n\t\t\t\tctx.rotate(rad);\n\t\t\t\tctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n\t\t\t\tctx.restore();\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (isNaN(radius) || radius <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.beginPath();\n\n\t\tswitch (style) {\n\t\t// Default includes circle\n\t\tdefault:\n\t\t\tctx.arc(x, y, radius, 0, DOUBLE_PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'triangle':\n\t\t\tctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\trad += TWO_THIRDS_PI;\n\t\t\tctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rectRounded':\n\t\t\t// NOTE: the rounded rect implementation changed to use `arc` instead of\n\t\t\t// `quadraticCurveTo` since it generates better results when rect is\n\t\t\t// almost a circle. 0.516 (instead of 0.5) produces results with visually\n\t\t\t// closer proportion to the previous impl and it is inscribed in the\n\t\t\t// circle with `radius`. For more details, see the following PRs:\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5597\n\t\t\t// https://github.com/chartjs/Chart.js/issues/5858\n\t\t\tcornerRadius = radius * 0.516;\n\t\t\tsize = radius - cornerRadius;\n\t\t\txOffset = Math.cos(rad + QUARTER_PI) * size;\n\t\t\tyOffset = Math.sin(rad + QUARTER_PI) * size;\n\t\t\tctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n\t\t\tctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n\t\t\tctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n\t\t\tctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'rect':\n\t\t\tif (!rotation) {\n\t\t\t\tsize = Math.SQRT1_2 * radius;\n\t\t\t\tctx.rect(x - size, y - size, 2 * size, 2 * size);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'rectRot':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tctx.closePath();\n\t\t\tbreak;\n\t\tcase 'crossRot':\n\t\t\trad += QUARTER_PI;\n\t\t\t/* falls through */\n\t\tcase 'cross':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'star':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\trad += QUARTER_PI;\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tctx.moveTo(x + yOffset, y - xOffset);\n\t\t\tctx.lineTo(x - yOffset, y + xOffset);\n\t\t\tbreak;\n\t\tcase 'line':\n\t\t\txOffset = Math.cos(rad) * radius;\n\t\t\tyOffset = Math.sin(rad) * radius;\n\t\t\tctx.moveTo(x - xOffset, y - yOffset);\n\t\t\tctx.lineTo(x + xOffset, y + yOffset);\n\t\t\tbreak;\n\t\tcase 'dash':\n\t\t\tctx.moveTo(x, y);\n\t\t\tctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n\t\t\tbreak;\n\t\t}\n\n\t\tctx.fill();\n\t\tctx.stroke();\n\t},\n\n\t/**\n\t * Returns true if the point is inside the rectangle\n\t * @param {object} point - The point to test\n\t * @param {object} area - The rectangle\n\t * @returns {boolean}\n\t * @private\n\t */\n\t_isPointInArea: function(point, area) {\n\t\tvar epsilon = 1e-6; // 1e-6 is margin in pixels for accumulated error.\n\n\t\treturn point.x > area.left - epsilon && point.x < area.right + epsilon &&\n\t\t\tpoint.y > area.top - epsilon && point.y < area.bottom + epsilon;\n\t},\n\n\tclipArea: function(ctx, area) {\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n\t\tctx.clip();\n\t},\n\n\tunclipArea: function(ctx) {\n\t\tctx.restore();\n\t},\n\n\tlineTo: function(ctx, previous, target, flip) {\n\t\tvar stepped = target.steppedLine;\n\t\tif (stepped) {\n\t\t\tif (stepped === 'middle') {\n\t\t\t\tvar midpoint = (previous.x + target.x) / 2.0;\n\t\t\t\tctx.lineTo(midpoint, flip ? target.y : previous.y);\n\t\t\t\tctx.lineTo(midpoint, flip ? previous.y : target.y);\n\t\t\t} else if ((stepped === 'after' && !flip) || (stepped !== 'after' && flip)) {\n\t\t\t\tctx.lineTo(previous.x, target.y);\n\t\t\t} else {\n\t\t\t\tctx.lineTo(target.x, previous.y);\n\t\t\t}\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!target.tension) {\n\t\t\tctx.lineTo(target.x, target.y);\n\t\t\treturn;\n\t\t}\n\n\t\tctx.bezierCurveTo(\n\t\t\tflip ? previous.controlPointPreviousX : previous.controlPointNextX,\n\t\t\tflip ? previous.controlPointPreviousY : previous.controlPointNextY,\n\t\t\tflip ? target.controlPointNextX : target.controlPointPreviousX,\n\t\t\tflip ? target.controlPointNextY : target.controlPointPreviousY,\n\t\t\ttarget.x,\n\t\t\ttarget.y);\n\t}\n};\n\nvar helpers_canvas = exports$1;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.clear instead.\n * @namespace Chart.helpers.clear\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.clear = exports$1.clear;\n\n/**\n * Provided for backward compatibility, use Chart.helpers.canvas.roundedRect instead.\n * @namespace Chart.helpers.drawRoundedRectangle\n * @deprecated since version 2.7.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.drawRoundedRectangle = function(ctx) {\n\tctx.beginPath();\n\texports$1.roundedRect.apply(exports$1, arguments);\n};\n\nvar defaults = {\n\t/**\n\t * @private\n\t */\n\t_set: function(scope, values) {\n\t\treturn helpers_core.merge(this[scope] || (this[scope] = {}), values);\n\t}\n};\n\n// TODO(v3): remove 'global' from namespace. all default are global and\n// there's inconsistency around which options are under 'global'\ndefaults._set('global', {\n\tdefaultColor: 'rgba(0,0,0,0.1)',\n\tdefaultFontColor: '#666',\n\tdefaultFontFamily: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n\tdefaultFontSize: 12,\n\tdefaultFontStyle: 'normal',\n\tdefaultLineHeight: 1.2,\n\tshowLines: true\n});\n\nvar core_defaults = defaults;\n\nvar valueOrDefault = helpers_core.valueOrDefault;\n\n/**\n * Converts the given font object into a CSS font string.\n * @param {object} font - A font object.\n * @return {string} The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */\nfunction toFontString(font) {\n\tif (!font || helpers_core.isNullOrUndef(font.size) || helpers_core.isNullOrUndef(font.family)) {\n\t\treturn null;\n\t}\n\n\treturn (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\n\n/**\n * @alias Chart.helpers.options\n * @namespace\n */\nvar helpers_options = {\n\t/**\n\t * Converts the given line height `value` in pixels for a specific font `size`.\n\t * @param {number|string} value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n\t * @param {number} size - The font size (in pixels) used to resolve relative `value`.\n\t * @returns {number} The effective line height in pixels (size * 1.2 if value is invalid).\n\t * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n\t * @since 2.7.0\n\t */\n\ttoLineHeight: function(value, size) {\n\t\tvar matches = ('' + value).match(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\n\t\tif (!matches || matches[1] === 'normal') {\n\t\t\treturn size * 1.2;\n\t\t}\n\n\t\tvalue = +matches[2];\n\n\t\tswitch (matches[3]) {\n\t\tcase 'px':\n\t\t\treturn value;\n\t\tcase '%':\n\t\t\tvalue /= 100;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn size * value;\n\t},\n\n\t/**\n\t * Converts the given value into a padding object with pre-computed width/height.\n\t * @param {number|object} value - If a number, set the value to all TRBL component,\n\t * else, if and object, use defined properties and sets undefined ones to 0.\n\t * @returns {object} The padding values (top, right, bottom, left, width, height)\n\t * @since 2.7.0\n\t */\n\ttoPadding: function(value) {\n\t\tvar t, r, b, l;\n\n\t\tif (helpers_core.isObject(value)) {\n\t\t\tt = +value.top || 0;\n\t\t\tr = +value.right || 0;\n\t\t\tb = +value.bottom || 0;\n\t\t\tl = +value.left || 0;\n\t\t} else {\n\t\t\tt = r = b = l = +value || 0;\n\t\t}\n\n\t\treturn {\n\t\t\ttop: t,\n\t\t\tright: r,\n\t\t\tbottom: b,\n\t\t\tleft: l,\n\t\t\theight: t + b,\n\t\t\twidth: l + r\n\t\t};\n\t},\n\n\t/**\n\t * Parses font options and returns the font object.\n\t * @param {object} options - A object that contains font options to be parsed.\n\t * @return {object} The font object.\n\t * @todo Support font.* options and renamed to toFont().\n\t * @private\n\t */\n\t_parseFont: function(options) {\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar size = valueOrDefault(options.fontSize, globalDefaults.defaultFontSize);\n\t\tvar font = {\n\t\t\tfamily: valueOrDefault(options.fontFamily, globalDefaults.defaultFontFamily),\n\t\t\tlineHeight: helpers_core.options.toLineHeight(valueOrDefault(options.lineHeight, globalDefaults.defaultLineHeight), size),\n\t\t\tsize: size,\n\t\t\tstyle: valueOrDefault(options.fontStyle, globalDefaults.defaultFontStyle),\n\t\t\tweight: null,\n\t\t\tstring: ''\n\t\t};\n\n\t\tfont.string = toFontString(font);\n\t\treturn font;\n\t},\n\n\t/**\n\t * Evaluates the given `inputs` sequentially and returns the first defined value.\n\t * @param {Array} inputs - An array of values, falling back to the last value.\n\t * @param {object} [context] - If defined and the current value is a function, the value\n\t * is called with `context` as first argument and the result becomes the new input.\n\t * @param {number} [index] - If defined and the current value is an array, the value\n\t * at `index` become the new input.\n\t * @param {object} [info] - object to return information about resolution in\n\t * @param {boolean} [info.cacheable] - Will be set to `false` if option is not cacheable.\n\t * @since 2.7.0\n\t */\n\tresolve: function(inputs, context, index, info) {\n\t\tvar cacheable = true;\n\t\tvar i, ilen, value;\n\n\t\tfor (i = 0, ilen = inputs.length; i < ilen; ++i) {\n\t\t\tvalue = inputs[i];\n\t\t\tif (value === undefined) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (context !== undefined && typeof value === 'function') {\n\t\t\t\tvalue = value(context);\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (index !== undefined && helpers_core.isArray(value)) {\n\t\t\t\tvalue = value[index];\n\t\t\t\tcacheable = false;\n\t\t\t}\n\t\t\tif (value !== undefined) {\n\t\t\t\tif (info && !cacheable) {\n\t\t\t\t\tinfo.cacheable = false;\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */\nvar exports$2 = {\n\t/**\n\t * Returns an array of factors sorted from 1 to sqrt(value)\n\t * @private\n\t */\n\t_factorize: function(value) {\n\t\tvar result = [];\n\t\tvar sqrt = Math.sqrt(value);\n\t\tvar i;\n\n\t\tfor (i = 1; i < sqrt; i++) {\n\t\t\tif (value % i === 0) {\n\t\t\t\tresult.push(i);\n\t\t\t\tresult.push(value / i);\n\t\t\t}\n\t\t}\n\t\tif (sqrt === (sqrt | 0)) { // if value is a square number\n\t\t\tresult.push(sqrt);\n\t\t}\n\n\t\tresult.sort(function(a, b) {\n\t\t\treturn a - b;\n\t\t}).pop();\n\t\treturn result;\n\t},\n\n\tlog10: Math.log10 || function(x) {\n\t\tvar exponent = Math.log(x) * Math.LOG10E; // Math.LOG10E = 1 / Math.LN10.\n\t\t// Check for whole powers of 10,\n\t\t// which due to floating point rounding error should be corrected.\n\t\tvar powerOf10 = Math.round(exponent);\n\t\tvar isPowerOf10 = x === Math.pow(10, powerOf10);\n\n\t\treturn isPowerOf10 ? powerOf10 : exponent;\n\t}\n};\n\nvar helpers_math = exports$2;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.helpers.math.log10 instead.\n * @namespace Chart.helpers.log10\n * @deprecated since version 2.9.0\n * @todo remove at version 3\n * @private\n */\nhelpers_core.log10 = exports$2.log10;\n\nvar getRtlAdapter = function(rectX, width) {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn rectX + rectX + width - x;\n\t\t},\n\t\tsetWidth: function(w) {\n\t\t\twidth = w;\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\tif (align === 'center') {\n\t\t\t\treturn align;\n\t\t\t}\n\t\t\treturn align === 'right' ? 'left' : 'right';\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x - value;\n\t\t},\n\t\tleftForLtr: function(x, itemWidth) {\n\t\t\treturn x - itemWidth;\n\t\t},\n\t};\n};\n\nvar getLtrAdapter = function() {\n\treturn {\n\t\tx: function(x) {\n\t\t\treturn x;\n\t\t},\n\t\tsetWidth: function(w) { // eslint-disable-line no-unused-vars\n\t\t},\n\t\ttextAlign: function(align) {\n\t\t\treturn align;\n\t\t},\n\t\txPlus: function(x, value) {\n\t\t\treturn x + value;\n\t\t},\n\t\tleftForLtr: function(x, _itemWidth) { // eslint-disable-line no-unused-vars\n\t\t\treturn x;\n\t\t},\n\t};\n};\n\nvar getAdapter = function(rtl, rectX, width) {\n\treturn rtl ? getRtlAdapter(rectX, width) : getLtrAdapter();\n};\n\nvar overrideTextDirection = function(ctx, direction) {\n\tvar style, original;\n\tif (direction === 'ltr' || direction === 'rtl') {\n\t\tstyle = ctx.canvas.style;\n\t\toriginal = [\n\t\t\tstyle.getPropertyValue('direction'),\n\t\t\tstyle.getPropertyPriority('direction'),\n\t\t];\n\n\t\tstyle.setProperty('direction', direction, 'important');\n\t\tctx.prevTextDirection = original;\n\t}\n};\n\nvar restoreTextDirection = function(ctx) {\n\tvar original = ctx.prevTextDirection;\n\tif (original !== undefined) {\n\t\tdelete ctx.prevTextDirection;\n\t\tctx.canvas.style.setProperty('direction', original[0], original[1]);\n\t}\n};\n\nvar helpers_rtl = {\n\tgetRtlAdapter: getAdapter,\n\toverrideTextDirection: overrideTextDirection,\n\trestoreTextDirection: restoreTextDirection,\n};\n\nvar helpers$1 = helpers_core;\nvar easing = helpers_easing;\nvar canvas = helpers_canvas;\nvar options = helpers_options;\nvar math = helpers_math;\nvar rtl = helpers_rtl;\nhelpers$1.easing = easing;\nhelpers$1.canvas = canvas;\nhelpers$1.options = options;\nhelpers$1.math = math;\nhelpers$1.rtl = rtl;\n\nfunction interpolate(start, view, model, ease) {\n\tvar keys = Object.keys(model);\n\tvar i, ilen, key, actual, origin, target, type, c0, c1;\n\n\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\tkey = keys[i];\n\n\t\ttarget = model[key];\n\n\t\t// if a value is added to the model after pivot() has been called, the view\n\t\t// doesn't contain it, so let's initialize the view to the target value.\n\t\tif (!view.hasOwnProperty(key)) {\n\t\t\tview[key] = target;\n\t\t}\n\n\t\tactual = view[key];\n\n\t\tif (actual === target || key[0] === '_') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tif (!start.hasOwnProperty(key)) {\n\t\t\tstart[key] = actual;\n\t\t}\n\n\t\torigin = start[key];\n\n\t\ttype = typeof target;\n\n\t\tif (type === typeof origin) {\n\t\t\tif (type === 'string') {\n\t\t\t\tc0 = chartjsColor(origin);\n\t\t\t\tif (c0.valid) {\n\t\t\t\t\tc1 = chartjsColor(target);\n\t\t\t\t\tif (c1.valid) {\n\t\t\t\t\t\tview[key] = c1.mix(c0, ease).rgbString();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (helpers$1.isFinite(origin) && helpers$1.isFinite(target)) {\n\t\t\t\tview[key] = origin + (target - origin) * ease;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tview[key] = target;\n\t}\n}\n\nvar Element = function(configuration) {\n\thelpers$1.extend(this, configuration);\n\tthis.initialize.apply(this, arguments);\n};\n\nhelpers$1.extend(Element.prototype, {\n\t_type: undefined,\n\n\tinitialize: function() {\n\t\tthis.hidden = false;\n\t},\n\n\tpivot: function() {\n\t\tvar me = this;\n\t\tif (!me._view) {\n\t\t\tme._view = helpers$1.extend({}, me._model);\n\t\t}\n\t\tme._start = {};\n\t\treturn me;\n\t},\n\n\ttransition: function(ease) {\n\t\tvar me = this;\n\t\tvar model = me._model;\n\t\tvar start = me._start;\n\t\tvar view = me._view;\n\n\t\t// No animation -> No Transition\n\t\tif (!model || ease === 1) {\n\t\t\tme._view = helpers$1.extend({}, model);\n\t\t\tme._start = null;\n\t\t\treturn me;\n\t\t}\n\n\t\tif (!view) {\n\t\t\tview = me._view = {};\n\t\t}\n\n\t\tif (!start) {\n\t\t\tstart = me._start = {};\n\t\t}\n\n\t\tinterpolate(start, view, model, ease);\n\n\t\treturn me;\n\t},\n\n\ttooltipPosition: function() {\n\t\treturn {\n\t\t\tx: this._model.x,\n\t\t\ty: this._model.y\n\t\t};\n\t},\n\n\thasValue: function() {\n\t\treturn helpers$1.isNumber(this._model.x) && helpers$1.isNumber(this._model.y);\n\t}\n});\n\nElement.extend = helpers$1.inherits;\n\nvar core_element = Element;\n\nvar exports$3 = core_element.extend({\n\tchart: null, // the animation associated chart instance\n\tcurrentStep: 0, // the current animation step\n\tnumSteps: 60, // default number of steps\n\teasing: '', // the easing to use for this animation\n\trender: null, // render function used by the animation service\n\n\tonAnimationProgress: null, // user specified callback to fire on each step of the animation\n\tonAnimationComplete: null, // user specified callback to fire when the animation finishes\n});\n\nvar core_animation = exports$3;\n\n// DEPRECATIONS\n\n/**\n * Provided for backward compatibility, use Chart.Animation instead\n * @prop Chart.Animation#animationObject\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'animationObject', {\n\tget: function() {\n\t\treturn this;\n\t}\n});\n\n/**\n * Provided for backward compatibility, use Chart.Animation#chart instead\n * @prop Chart.Animation#chartInstance\n * @deprecated since version 2.6.0\n * @todo remove at version 3\n */\nObject.defineProperty(exports$3.prototype, 'chartInstance', {\n\tget: function() {\n\t\treturn this.chart;\n\t},\n\tset: function(value) {\n\t\tthis.chart = value;\n\t}\n});\n\ncore_defaults._set('global', {\n\tanimation: {\n\t\tduration: 1000,\n\t\teasing: 'easeOutQuart',\n\t\tonProgress: helpers$1.noop,\n\t\tonComplete: helpers$1.noop\n\t}\n});\n\nvar core_animations = {\n\tanimations: [],\n\trequest: null,\n\n\t/**\n\t * @param {Chart} chart - The chart to animate.\n\t * @param {Chart.Animation} animation - The animation that we will animate.\n\t * @param {number} duration - The animation duration in ms.\n\t * @param {boolean} lazy - if true, the chart is not marked as animating to enable more responsive interactions\n\t */\n\taddAnimation: function(chart, animation, duration, lazy) {\n\t\tvar animations = this.animations;\n\t\tvar i, ilen;\n\n\t\tanimation.chart = chart;\n\t\tanimation.startTime = Date.now();\n\t\tanimation.duration = duration;\n\n\t\tif (!lazy) {\n\t\t\tchart.animating = true;\n\t\t}\n\n\t\tfor (i = 0, ilen = animations.length; i < ilen; ++i) {\n\t\t\tif (animations[i].chart === chart) {\n\t\t\t\tanimations[i] = animation;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tanimations.push(animation);\n\n\t\t// If there are no animations queued, manually kickstart a digest, for lack of a better word\n\t\tif (animations.length === 1) {\n\t\t\tthis.requestAnimationFrame();\n\t\t}\n\t},\n\n\tcancelAnimation: function(chart) {\n\t\tvar index = helpers$1.findIndex(this.animations, function(animation) {\n\t\t\treturn animation.chart === chart;\n\t\t});\n\n\t\tif (index !== -1) {\n\t\t\tthis.animations.splice(index, 1);\n\t\t\tchart.animating = false;\n\t\t}\n\t},\n\n\trequestAnimationFrame: function() {\n\t\tvar me = this;\n\t\tif (me.request === null) {\n\t\t\t// Skip animation frame requests until the active one is executed.\n\t\t\t// This can happen when processing mouse events, e.g. 'mousemove'\n\t\t\t// and 'mouseout' events will trigger multiple renders.\n\t\t\tme.request = helpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tme.request = null;\n\t\t\t\tme.startDigest();\n\t\t\t});\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tstartDigest: function() {\n\t\tvar me = this;\n\n\t\tme.advance();\n\n\t\t// Do we have more stuff to animate?\n\t\tif (me.animations.length > 0) {\n\t\t\tme.requestAnimationFrame();\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tadvance: function() {\n\t\tvar animations = this.animations;\n\t\tvar animation, chart, numSteps, nextStep;\n\t\tvar i = 0;\n\n\t\t// 1 animation per chart, so we are looping charts here\n\t\twhile (i < animations.length) {\n\t\t\tanimation = animations[i];\n\t\t\tchart = animation.chart;\n\t\t\tnumSteps = animation.numSteps;\n\n\t\t\t// Make sure that currentStep starts at 1\n\t\t\t// https://github.com/chartjs/Chart.js/issues/6104\n\t\t\tnextStep = Math.floor((Date.now() - animation.startTime) / animation.duration * numSteps) + 1;\n\t\t\tanimation.currentStep = Math.min(nextStep, numSteps);\n\n\t\t\thelpers$1.callback(animation.render, [chart, animation], chart);\n\t\t\thelpers$1.callback(animation.onAnimationProgress, [animation], chart);\n\n\t\t\tif (animation.currentStep >= numSteps) {\n\t\t\t\thelpers$1.callback(animation.onAnimationComplete, [animation], chart);\n\t\t\t\tchart.animating = false;\n\t\t\t\tanimations.splice(i, 1);\n\t\t\t} else {\n\t\t\t\t++i;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar resolve = helpers$1.options.resolve;\n\nvar arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\n\n/**\n * Hooks the array methods that add or remove values ('push', pop', 'shift', 'splice',\n * 'unshift') and notify the listener AFTER the array has been altered. Listeners are\n * called on the 'onData*' callbacks (e.g. onDataPush, etc.) with same arguments.\n */\nfunction listenArrayEvents(array, listener) {\n\tif (array._chartjs) {\n\t\tarray._chartjs.listeners.push(listener);\n\t\treturn;\n\t}\n\n\tObject.defineProperty(array, '_chartjs', {\n\t\tconfigurable: true,\n\t\tenumerable: false,\n\t\tvalue: {\n\t\t\tlisteners: [listener]\n\t\t}\n\t});\n\n\tarrayEvents.forEach(function(key) {\n\t\tvar method = 'onData' + key.charAt(0).toUpperCase() + key.slice(1);\n\t\tvar base = array[key];\n\n\t\tObject.defineProperty(array, key, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: function() {\n\t\t\t\tvar args = Array.prototype.slice.call(arguments);\n\t\t\t\tvar res = base.apply(this, args);\n\n\t\t\t\thelpers$1.each(array._chartjs.listeners, function(object) {\n\t\t\t\t\tif (typeof object[method] === 'function') {\n\t\t\t\t\t\tobject[method].apply(object, args);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn res;\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Removes the given array event listener and cleanup extra attached properties (such as\n * the _chartjs stub and overridden methods) if array doesn't have any more listeners.\n */\nfunction unlistenArrayEvents(array, listener) {\n\tvar stub = array._chartjs;\n\tif (!stub) {\n\t\treturn;\n\t}\n\n\tvar listeners = stub.listeners;\n\tvar index = listeners.indexOf(listener);\n\tif (index !== -1) {\n\t\tlisteners.splice(index, 1);\n\t}\n\n\tif (listeners.length > 0) {\n\t\treturn;\n\t}\n\n\tarrayEvents.forEach(function(key) {\n\t\tdelete array[key];\n\t});\n\n\tdelete array._chartjs;\n}\n\n// Base class for all dataset controllers (line, bar, etc)\nvar DatasetController = function(chart, datasetIndex) {\n\tthis.initialize(chart, datasetIndex);\n};\n\nhelpers$1.extend(DatasetController.prototype, {\n\n\t/**\n\t * Element type used to generate a meta dataset (e.g. Chart.element.Line).\n\t * @type {Chart.core.element}\n\t */\n\tdatasetElementType: null,\n\n\t/**\n\t * Element type used to generate a meta data (e.g. Chart.element.Point).\n\t * @type {Chart.core.element}\n\t */\n\tdataElementType: null,\n\n\t/**\n\t * Dataset element option keys to be resolved in _resolveDatasetElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth'\n\t],\n\n\t/**\n\t * Data element option keys to be resolved in _resolveDataElementOptions.\n\t * A derived controller may override this to resolve controller-specific options.\n\t * The keys defined here are for backward compatibility for legend styles.\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'pointStyle'\n\t],\n\n\tinitialize: function(chart, datasetIndex) {\n\t\tvar me = this;\n\t\tme.chart = chart;\n\t\tme.index = datasetIndex;\n\t\tme.linkScales();\n\t\tme.addElements();\n\t\tme._type = me.getMeta().type;\n\t},\n\n\tupdateIndex: function(datasetIndex) {\n\t\tthis.index = datasetIndex;\n\t},\n\n\tlinkScales: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar chart = me.chart;\n\t\tvar scales = chart.scales;\n\t\tvar dataset = me.getDataset();\n\t\tvar scalesOpts = chart.options.scales;\n\n\t\tif (meta.xAxisID === null || !(meta.xAxisID in scales) || dataset.xAxisID) {\n\t\t\tmeta.xAxisID = dataset.xAxisID || scalesOpts.xAxes[0].id;\n\t\t}\n\t\tif (meta.yAxisID === null || !(meta.yAxisID in scales) || dataset.yAxisID) {\n\t\t\tmeta.yAxisID = dataset.yAxisID || scalesOpts.yAxes[0].id;\n\t\t}\n\t},\n\n\tgetDataset: function() {\n\t\treturn this.chart.data.datasets[this.index];\n\t},\n\n\tgetMeta: function() {\n\t\treturn this.chart.getDatasetMeta(this.index);\n\t},\n\n\tgetScaleForId: function(scaleID) {\n\t\treturn this.chart.scales[scaleID];\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScale: function() {\n\t\treturn this.getScaleForId(this._getValueScaleId());\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScale: function() {\n\t\treturn this.getScaleForId(this._getIndexScaleId());\n\t},\n\n\treset: function() {\n\t\tthis._update(true);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tdestroy: function() {\n\t\tif (this._data) {\n\t\t\tunlistenArrayEvents(this._data, this);\n\t\t}\n\t},\n\n\tcreateMetaDataset: function() {\n\t\tvar me = this;\n\t\tvar type = me.datasetElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index\n\t\t});\n\t},\n\n\tcreateMetaData: function(index) {\n\t\tvar me = this;\n\t\tvar type = me.dataElementType;\n\t\treturn type && new type({\n\t\t\t_chart: me.chart,\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index\n\t\t});\n\t},\n\n\taddElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data || [];\n\t\tvar metaData = meta.data;\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = data.length; i < ilen; ++i) {\n\t\t\tmetaData[i] = metaData[i] || me.createMetaData(i);\n\t\t}\n\n\t\tmeta.dataset = meta.dataset || me.createMetaDataset();\n\t},\n\n\taddElementAndReset: function(index) {\n\t\tvar element = this.createMetaData(index);\n\t\tthis.getMeta().data.splice(index, 0, element);\n\t\tthis.updateElement(element, index, true);\n\t},\n\n\tbuildOrUpdateElements: function() {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar data = dataset.data || (dataset.data = []);\n\n\t\t// In order to correctly handle data addition/deletion animation (an thus simulate\n\t\t// real-time charts), we need to monitor these data modifications and synchronize\n\t\t// the internal meta data accordingly.\n\t\tif (me._data !== data) {\n\t\t\tif (me._data) {\n\t\t\t\t// This case happens when the user replaced the data array instance.\n\t\t\t\tunlistenArrayEvents(me._data, me);\n\t\t\t}\n\n\t\t\tif (data && Object.isExtensible(data)) {\n\t\t\t\tlistenArrayEvents(data, me);\n\t\t\t}\n\t\t\tme._data = data;\n\t\t}\n\n\t\t// Re-sync meta data in case the user replaced the data array or if we missed\n\t\t// any updates and so make sure that we handle number of datapoints changing.\n\t\tme.resyncElements();\n\t},\n\n\t/**\n\t * Returns the merged user-supplied and default dataset-level options\n\t * @private\n\t */\n\t_configure: function() {\n\t\tvar me = this;\n\t\tme._config = helpers$1.merge({}, [\n\t\t\tme.chart.options.datasets[me._type],\n\t\t\tme.getDataset(),\n\t\t], {\n\t\t\tmerger: function(key, target, source) {\n\t\t\t\tif (key !== '_meta' && key !== 'data') {\n\t\t\t\t\thelpers$1._merger(key, target, source);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t},\n\n\t_update: function(reset) {\n\t\tvar me = this;\n\t\tme._configure();\n\t\tme._cachedDataOpts = null;\n\t\tme.update(reset);\n\t},\n\n\tupdate: helpers$1.noop,\n\n\ttransition: function(easingValue) {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].transition(easingValue);\n\t\t}\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.transition(easingValue);\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar meta = this.getMeta();\n\t\tvar elements = meta.data || [];\n\t\tvar ilen = elements.length;\n\t\tvar i = 0;\n\n\t\tif (meta.dataset) {\n\t\t\tmeta.dataset.draw();\n\t\t}\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\telements[i].draw();\n\t\t}\n\t},\n\n\t/**\n\t * Returns a set of predefined style properties that should be used to represent the dataset\n\t * or the data if the index is specified\n\t * @param {number} index - data index\n\t * @return {IStyleInterface} style object\n\t */\n\tgetStyle: function(index) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = meta.dataset;\n\t\tvar style;\n\n\t\tme._configure();\n\t\tif (dataset && index === undefined) {\n\t\t\tstyle = me._resolveDatasetElementOptions(dataset || {});\n\t\t} else {\n\t\t\tindex = index || 0;\n\t\t\tstyle = me._resolveDataElementOptions(meta.data[index] || {}, index);\n\t\t}\n\n\t\tif (style.fill === false || style.fill === null) {\n\t\t\tstyle.backgroundColor = style.borderColor;\n\t\t}\n\n\t\treturn style;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element, hover) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = chart.options.elements[me.datasetElementType.prototype._type] || {};\n\t\tvar elementOptions = me._datasetElementOptions;\n\t\tvar values = {};\n\t\tvar i, ilen, key, readKey;\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index,\n\t\t\thover: hover\n\t\t};\n\n\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\tkey = elementOptions[i];\n\t\t\treadKey = hover ? 'hover' + key.charAt(0).toUpperCase() + key.slice(1) : key;\n\t\t\tvalues[key] = resolve([\n\t\t\t\tcustom[readKey],\n\t\t\t\tdatasetOpts[readKey],\n\t\t\t\toptions[readKey]\n\t\t\t], context);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(element, index) {\n\t\tvar me = this;\n\t\tvar custom = element && element.custom;\n\t\tvar cached = me._cachedDataOpts;\n\t\tif (cached && !custom) {\n\t\t\treturn cached;\n\t\t}\n\t\tvar chart = me.chart;\n\t\tvar datasetOpts = me._config;\n\t\tvar options = chart.options.elements[me.dataElementType.prototype._type] || {};\n\t\tvar elementOptions = me._dataElementOptions;\n\t\tvar values = {};\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: me.getDataset(),\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// `resolve` sets cacheable to `false` if any option is indexed or scripted\n\t\tvar info = {cacheable: !custom};\n\n\t\tvar keys, i, ilen, key;\n\n\t\tcustom = custom || {};\n\n\t\tif (helpers$1.isArray(elementOptions)) {\n\t\t\tfor (i = 0, ilen = elementOptions.length; i < ilen; ++i) {\n\t\t\t\tkey = elementOptions[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t} else {\n\t\t\tkeys = Object.keys(elementOptions);\n\t\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\t\tkey = keys[i];\n\t\t\t\tvalues[key] = resolve([\n\t\t\t\t\tcustom[key],\n\t\t\t\t\tdatasetOpts[elementOptions[key]],\n\t\t\t\t\tdatasetOpts[key],\n\t\t\t\t\toptions[key]\n\t\t\t\t], context, index, info);\n\t\t\t}\n\t\t}\n\n\t\tif (info.cacheable) {\n\t\t\tme._cachedDataOpts = Object.freeze(values);\n\t\t}\n\n\t\treturn values;\n\t},\n\n\tremoveHoverStyle: function(element) {\n\t\thelpers$1.merge(element._model, element.$previousStyle || {});\n\t\tdelete element.$previousStyle;\n\t},\n\n\tsetHoverStyle: function(element) {\n\t\tvar dataset = this.chart.data.datasets[element._datasetIndex];\n\t\tvar index = element._index;\n\t\tvar custom = element.custom || {};\n\t\tvar model = element._model;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\telement.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth\n\t\t};\n\n\t\tmodel.backgroundColor = resolve([custom.hoverBackgroundColor, dataset.hoverBackgroundColor, getHoverColor(model.backgroundColor)], undefined, index);\n\t\tmodel.borderColor = resolve([custom.hoverBorderColor, dataset.hoverBorderColor, getHoverColor(model.borderColor)], undefined, index);\n\t\tmodel.borderWidth = resolve([custom.hoverBorderWidth, dataset.hoverBorderWidth, model.borderWidth], undefined, index);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_removeDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\n\t\tif (element) {\n\t\t\tthis.removeHoverStyle(element);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_setDatasetHoverStyle: function() {\n\t\tvar element = this.getMeta().dataset;\n\t\tvar prev = {};\n\t\tvar i, ilen, key, keys, hoverOptions, model;\n\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\tmodel = element._model;\n\t\thoverOptions = this._resolveDatasetElementOptions(element, true);\n\n\t\tkeys = Object.keys(hoverOptions);\n\t\tfor (i = 0, ilen = keys.length; i < ilen; ++i) {\n\t\t\tkey = keys[i];\n\t\t\tprev[key] = model[key];\n\t\t\tmodel[key] = hoverOptions[key];\n\t\t}\n\n\t\telement.$previousStyle = prev;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tresyncElements: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar data = me.getDataset().data;\n\t\tvar numMeta = meta.data.length;\n\t\tvar numData = data.length;\n\n\t\tif (numData < numMeta) {\n\t\t\tmeta.data.splice(numData, numMeta - numData);\n\t\t} else if (numData > numMeta) {\n\t\t\tme.insertElements(numMeta, numData - numMeta);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tinsertElements: function(start, count) {\n\t\tfor (var i = 0; i < count; ++i) {\n\t\t\tthis.addElementAndReset(start + i);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPush: function() {\n\t\tvar count = arguments.length;\n\t\tthis.insertElements(this.getDataset().data.length - count, count);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataPop: function() {\n\t\tthis.getMeta().data.pop();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataShift: function() {\n\t\tthis.getMeta().data.shift();\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataSplice: function(start, count) {\n\t\tthis.getMeta().data.splice(start, count);\n\t\tthis.insertElements(start, arguments.length - 2);\n\t},\n\n\t/**\n\t * @private\n\t */\n\tonDataUnshift: function() {\n\t\tthis.insertElements(0, arguments.length);\n\t}\n});\n\nDatasetController.extend = helpers$1.inherits;\n\nvar core_datasetController = DatasetController;\n\nvar TAU = Math.PI * 2;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tarc: {\n\t\t\tbackgroundColor: core_defaults.global.defaultColor,\n\t\t\tborderColor: '#fff',\n\t\t\tborderWidth: 2,\n\t\t\tborderAlign: 'center'\n\t\t}\n\t}\n});\n\nfunction clipArc(ctx, arc) {\n\tvar startAngle = arc.startAngle;\n\tvar endAngle = arc.endAngle;\n\tvar pixelMargin = arc.pixelMargin;\n\tvar angleMargin = pixelMargin / arc.outerRadius;\n\tvar x = arc.x;\n\tvar y = arc.y;\n\n\t// Draw an inner border by cliping the arc and drawing a double-width border\n\t// Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n\tctx.beginPath();\n\tctx.arc(x, y, arc.outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n\tif (arc.innerRadius > pixelMargin) {\n\t\tangleMargin = pixelMargin / arc.innerRadius;\n\t\tctx.arc(x, y, arc.innerRadius - pixelMargin, endAngle + angleMargin, startAngle - angleMargin, true);\n\t} else {\n\t\tctx.arc(x, y, pixelMargin, endAngle + Math.PI / 2, startAngle - Math.PI / 2);\n\t}\n\tctx.closePath();\n\tctx.clip();\n}\n\nfunction drawFullCircleBorders(ctx, vm, arc, inner) {\n\tvar endAngle = arc.endAngle;\n\tvar i;\n\n\tif (inner) {\n\t\tarc.endAngle = arc.startAngle + TAU;\n\t\tclipArc(ctx, arc);\n\t\tarc.endAngle = endAngle;\n\t\tif (arc.endAngle === arc.startAngle && arc.fullCircles) {\n\t\t\tarc.endAngle += TAU;\n\t\t\tarc.fullCircles--;\n\t\t}\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.startAngle + TAU, arc.startAngle, true);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.startAngle + TAU);\n\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\tctx.stroke();\n\t}\n}\n\nfunction drawBorder(ctx, vm, arc) {\n\tvar inner = vm.borderAlign === 'inner';\n\n\tif (inner) {\n\t\tctx.lineWidth = vm.borderWidth * 2;\n\t\tctx.lineJoin = 'round';\n\t} else {\n\t\tctx.lineWidth = vm.borderWidth;\n\t\tctx.lineJoin = 'bevel';\n\t}\n\n\tif (arc.fullCircles) {\n\t\tdrawFullCircleBorders(ctx, vm, arc, inner);\n\t}\n\n\tif (inner) {\n\t\tclipArc(ctx, arc);\n\t}\n\n\tctx.beginPath();\n\tctx.arc(arc.x, arc.y, vm.outerRadius, arc.startAngle, arc.endAngle);\n\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\tctx.closePath();\n\tctx.stroke();\n}\n\nvar element_arc = core_element.extend({\n\t_type: 'arc',\n\n\tinLabelRange: function(mouseX) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\treturn (Math.pow(mouseX - vm.x, 2) < Math.pow(vm.radius + vm.hoverRadius, 2));\n\t\t}\n\t\treturn false;\n\t},\n\n\tinRange: function(chartX, chartY) {\n\t\tvar vm = this._view;\n\n\t\tif (vm) {\n\t\t\tvar pointRelativePosition = helpers$1.getAngleFromPoint(vm, {x: chartX, y: chartY});\n\t\t\tvar angle = pointRelativePosition.angle;\n\t\t\tvar distance = pointRelativePosition.distance;\n\n\t\t\t// Sanitise angle range\n\t\t\tvar startAngle = vm.startAngle;\n\t\t\tvar endAngle = vm.endAngle;\n\t\t\twhile (endAngle < startAngle) {\n\t\t\t\tendAngle += TAU;\n\t\t\t}\n\t\t\twhile (angle > endAngle) {\n\t\t\t\tangle -= TAU;\n\t\t\t}\n\t\t\twhile (angle < startAngle) {\n\t\t\t\tangle += TAU;\n\t\t\t}\n\n\t\t\t// Check if within the range of the open/close angle\n\t\t\tvar betweenAngles = (angle >= startAngle && angle <= endAngle);\n\t\t\tvar withinRadius = (distance >= vm.innerRadius && distance <= vm.outerRadius);\n\n\t\t\treturn (betweenAngles && withinRadius);\n\t\t}\n\t\treturn false;\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar halfAngle = (vm.startAngle + vm.endAngle) / 2;\n\t\tvar halfRadius = (vm.innerRadius + vm.outerRadius) / 2;\n\t\treturn {\n\t\t\tx: vm.x + Math.cos(halfAngle) * halfRadius,\n\t\t\ty: vm.y + Math.sin(halfAngle) * halfRadius\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\t\treturn Math.PI * ((vm.endAngle - vm.startAngle) / (2 * Math.PI)) * (Math.pow(vm.outerRadius, 2) - Math.pow(vm.innerRadius, 2));\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\tvar centreAngle = vm.startAngle + ((vm.endAngle - vm.startAngle) / 2);\n\t\tvar rangeFromCentre = (vm.outerRadius - vm.innerRadius) / 2 + vm.innerRadius;\n\n\t\treturn {\n\t\t\tx: vm.x + (Math.cos(centreAngle) * rangeFromCentre),\n\t\t\ty: vm.y + (Math.sin(centreAngle) * rangeFromCentre)\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar pixelMargin = (vm.borderAlign === 'inner') ? 0.33 : 0;\n\t\tvar arc = {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tinnerRadius: vm.innerRadius,\n\t\t\touterRadius: Math.max(vm.outerRadius - pixelMargin, 0),\n\t\t\tpixelMargin: pixelMargin,\n\t\t\tstartAngle: vm.startAngle,\n\t\t\tendAngle: vm.endAngle,\n\t\t\tfullCircles: Math.floor(vm.circumference / TAU)\n\t\t};\n\t\tvar i;\n\n\t\tctx.save();\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.strokeStyle = vm.borderColor;\n\n\t\tif (arc.fullCircles) {\n\t\t\tarc.endAngle = arc.startAngle + TAU;\n\t\t\tctx.beginPath();\n\t\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\t\tctx.closePath();\n\t\t\tfor (i = 0; i < arc.fullCircles; ++i) {\n\t\t\t\tctx.fill();\n\t\t\t}\n\t\t\tarc.endAngle = arc.startAngle + vm.circumference % TAU;\n\t\t}\n\n\t\tctx.beginPath();\n\t\tctx.arc(arc.x, arc.y, arc.outerRadius, arc.startAngle, arc.endAngle);\n\t\tctx.arc(arc.x, arc.y, arc.innerRadius, arc.endAngle, arc.startAngle, true);\n\t\tctx.closePath();\n\t\tctx.fill();\n\n\t\tif (vm.borderWidth) {\n\t\t\tdrawBorder(ctx, vm, arc);\n\t\t}\n\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$1 = helpers$1.valueOrDefault;\n\nvar defaultColor = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tline: {\n\t\t\ttension: 0.4,\n\t\t\tbackgroundColor: defaultColor,\n\t\t\tborderWidth: 3,\n\t\t\tborderColor: defaultColor,\n\t\t\tborderCapStyle: 'butt',\n\t\t\tborderDash: [],\n\t\t\tborderDashOffset: 0.0,\n\t\t\tborderJoinStyle: 'miter',\n\t\t\tcapBezierPoints: true,\n\t\t\tfill: true, // do we fill in the area between the line and its base axis\n\t\t}\n\t}\n});\n\nvar element_line = core_element.extend({\n\t_type: 'line',\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar vm = me._view;\n\t\tvar ctx = me._chart.ctx;\n\t\tvar spanGaps = vm.spanGaps;\n\t\tvar points = me._children.slice(); // clone array\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar globalOptionLineElements = globalDefaults.elements.line;\n\t\tvar lastDrawnIndex = -1;\n\t\tvar closePath = me._loop;\n\t\tvar index, previous, currentVM;\n\n\t\tif (!points.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (me._loop) {\n\t\t\tfor (index = 0; index < points.length; ++index) {\n\t\t\t\tprevious = helpers$1.previousItem(points, index);\n\t\t\t\t// If the line has an open path, shift the point array\n\t\t\t\tif (!points[index]._view.skip && previous._view.skip) {\n\t\t\t\t\tpoints = points.slice(index).concat(points.slice(0, index));\n\t\t\t\t\tclosePath = spanGaps;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// If the line has a close path, add the first point again\n\t\t\tif (closePath) {\n\t\t\t\tpoints.push(points[0]);\n\t\t\t}\n\t\t}\n\n\t\tctx.save();\n\n\t\t// Stroke Line Options\n\t\tctx.lineCap = vm.borderCapStyle || globalOptionLineElements.borderCapStyle;\n\n\t\t// IE 9 and 10 do not support line dash\n\t\tif (ctx.setLineDash) {\n\t\t\tctx.setLineDash(vm.borderDash || globalOptionLineElements.borderDash);\n\t\t}\n\n\t\tctx.lineDashOffset = valueOrDefault$1(vm.borderDashOffset, globalOptionLineElements.borderDashOffset);\n\t\tctx.lineJoin = vm.borderJoinStyle || globalOptionLineElements.borderJoinStyle;\n\t\tctx.lineWidth = valueOrDefault$1(vm.borderWidth, globalOptionLineElements.borderWidth);\n\t\tctx.strokeStyle = vm.borderColor || globalDefaults.defaultColor;\n\n\t\t// Stroke Line\n\t\tctx.beginPath();\n\n\t\t// First point moves to it's starting position no matter what\n\t\tcurrentVM = points[0]._view;\n\t\tif (!currentVM.skip) {\n\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\tlastDrawnIndex = 0;\n\t\t}\n\n\t\tfor (index = 1; index < points.length; ++index) {\n\t\t\tcurrentVM = points[index]._view;\n\t\t\tprevious = lastDrawnIndex === -1 ? helpers$1.previousItem(points, index) : points[lastDrawnIndex];\n\n\t\t\tif (!currentVM.skip) {\n\t\t\t\tif ((lastDrawnIndex !== (index - 1) && !spanGaps) || lastDrawnIndex === -1) {\n\t\t\t\t\t// There was a gap and this is the first point after the gap\n\t\t\t\t\tctx.moveTo(currentVM.x, currentVM.y);\n\t\t\t\t} else {\n\t\t\t\t\t// Line to next point\n\t\t\t\t\thelpers$1.canvas.lineTo(ctx, previous._view, currentVM);\n\t\t\t\t}\n\t\t\t\tlastDrawnIndex = index;\n\t\t\t}\n\t\t}\n\n\t\tif (closePath) {\n\t\t\tctx.closePath();\n\t\t}\n\n\t\tctx.stroke();\n\t\tctx.restore();\n\t}\n});\n\nvar valueOrDefault$2 = helpers$1.valueOrDefault;\n\nvar defaultColor$1 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\tpoint: {\n\t\t\tradius: 3,\n\t\t\tpointStyle: 'circle',\n\t\t\tbackgroundColor: defaultColor$1,\n\t\t\tborderColor: defaultColor$1,\n\t\t\tborderWidth: 1,\n\t\t\t// Hover\n\t\t\thitRadius: 1,\n\t\t\thoverRadius: 4,\n\t\t\thoverBorderWidth: 1\n\t\t}\n\t}\n});\n\nfunction xRange(mouseX) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseX - vm.x) < vm.radius + vm.hitRadius) : false;\n}\n\nfunction yRange(mouseY) {\n\tvar vm = this._view;\n\treturn vm ? (Math.abs(mouseY - vm.y) < vm.radius + vm.hitRadius) : false;\n}\n\nvar element_point = core_element.extend({\n\t_type: 'point',\n\n\tinRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn vm ? ((Math.pow(mouseX - vm.x, 2) + Math.pow(mouseY - vm.y, 2)) < Math.pow(vm.hitRadius + vm.radius, 2)) : false;\n\t},\n\n\tinLabelRange: xRange,\n\tinXRange: xRange,\n\tinYRange: yRange,\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t},\n\n\tgetArea: function() {\n\t\treturn Math.PI * Math.pow(this._view.radius, 2);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y,\n\t\t\tpadding: vm.radius + vm.borderWidth\n\t\t};\n\t},\n\n\tdraw: function(chartArea) {\n\t\tvar vm = this._view;\n\t\tvar ctx = this._chart.ctx;\n\t\tvar pointStyle = vm.pointStyle;\n\t\tvar rotation = vm.rotation;\n\t\tvar radius = vm.radius;\n\t\tvar x = vm.x;\n\t\tvar y = vm.y;\n\t\tvar globalDefaults = core_defaults.global;\n\t\tvar defaultColor = globalDefaults.defaultColor; // eslint-disable-line no-shadow\n\n\t\tif (vm.skip) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Clipping for Points.\n\t\tif (chartArea === undefined || helpers$1.canvas._isPointInArea(vm, chartArea)) {\n\t\t\tctx.strokeStyle = vm.borderColor || defaultColor;\n\t\t\tctx.lineWidth = valueOrDefault$2(vm.borderWidth, globalDefaults.elements.point.borderWidth);\n\t\t\tctx.fillStyle = vm.backgroundColor || defaultColor;\n\t\t\thelpers$1.canvas.drawPoint(ctx, pointStyle, radius, x, y, rotation);\n\t\t}\n\t}\n});\n\nvar defaultColor$2 = core_defaults.global.defaultColor;\n\ncore_defaults._set('global', {\n\telements: {\n\t\trectangle: {\n\t\t\tbackgroundColor: defaultColor$2,\n\t\t\tborderColor: defaultColor$2,\n\t\t\tborderSkipped: 'bottom',\n\t\t\tborderWidth: 0\n\t\t}\n\t}\n});\n\nfunction isVertical(vm) {\n\treturn vm && vm.width !== undefined;\n}\n\n/**\n * Helper function to get the bounds of the bar regardless of the orientation\n * @param bar {Chart.Element.Rectangle} the bar\n * @return {Bounds} bounds of the bar\n * @private\n */\nfunction getBarBounds(vm) {\n\tvar x1, x2, y1, y2, half;\n\n\tif (isVertical(vm)) {\n\t\thalf = vm.width / 2;\n\t\tx1 = vm.x - half;\n\t\tx2 = vm.x + half;\n\t\ty1 = Math.min(vm.y, vm.base);\n\t\ty2 = Math.max(vm.y, vm.base);\n\t} else {\n\t\thalf = vm.height / 2;\n\t\tx1 = Math.min(vm.x, vm.base);\n\t\tx2 = Math.max(vm.x, vm.base);\n\t\ty1 = vm.y - half;\n\t\ty2 = vm.y + half;\n\t}\n\n\treturn {\n\t\tleft: x1,\n\t\ttop: y1,\n\t\tright: x2,\n\t\tbottom: y2\n\t};\n}\n\nfunction swap(orig, v1, v2) {\n\treturn orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\n\nfunction parseBorderSkipped(vm) {\n\tvar edge = vm.borderSkipped;\n\tvar res = {};\n\n\tif (!edge) {\n\t\treturn res;\n\t}\n\n\tif (vm.horizontal) {\n\t\tif (vm.base > vm.x) {\n\t\t\tedge = swap(edge, 'left', 'right');\n\t\t}\n\t} else if (vm.base < vm.y) {\n\t\tedge = swap(edge, 'bottom', 'top');\n\t}\n\n\tres[edge] = true;\n\treturn res;\n}\n\nfunction parseBorderWidth(vm, maxW, maxH) {\n\tvar value = vm.borderWidth;\n\tvar skip = parseBorderSkipped(vm);\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = +value.top || 0;\n\t\tr = +value.right || 0;\n\t\tb = +value.bottom || 0;\n\t\tl = +value.left || 0;\n\t} else {\n\t\tt = r = b = l = +value || 0;\n\t}\n\n\treturn {\n\t\tt: skip.top || (t < 0) ? 0 : t > maxH ? maxH : t,\n\t\tr: skip.right || (r < 0) ? 0 : r > maxW ? maxW : r,\n\t\tb: skip.bottom || (b < 0) ? 0 : b > maxH ? maxH : b,\n\t\tl: skip.left || (l < 0) ? 0 : l > maxW ? maxW : l\n\t};\n}\n\nfunction boundingRects(vm) {\n\tvar bounds = getBarBounds(vm);\n\tvar width = bounds.right - bounds.left;\n\tvar height = bounds.bottom - bounds.top;\n\tvar border = parseBorderWidth(vm, width / 2, height / 2);\n\n\treturn {\n\t\touter: {\n\t\t\tx: bounds.left,\n\t\t\ty: bounds.top,\n\t\t\tw: width,\n\t\t\th: height\n\t\t},\n\t\tinner: {\n\t\t\tx: bounds.left + border.l,\n\t\t\ty: bounds.top + border.t,\n\t\t\tw: width - border.l - border.r,\n\t\t\th: height - border.t - border.b\n\t\t}\n\t};\n}\n\nfunction inRange(vm, x, y) {\n\tvar skipX = x === null;\n\tvar skipY = y === null;\n\tvar bounds = !vm || (skipX && skipY) ? false : getBarBounds(vm);\n\n\treturn bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\n\nvar element_rectangle = core_element.extend({\n\t_type: 'rectangle',\n\n\tdraw: function() {\n\t\tvar ctx = this._chart.ctx;\n\t\tvar vm = this._view;\n\t\tvar rects = boundingRects(vm);\n\t\tvar outer = rects.outer;\n\t\tvar inner = rects.inner;\n\n\t\tctx.fillStyle = vm.backgroundColor;\n\t\tctx.fillRect(outer.x, outer.y, outer.w, outer.h);\n\n\t\tif (outer.w === inner.w && outer.h === inner.h) {\n\t\t\treturn;\n\t\t}\n\n\t\tctx.save();\n\t\tctx.beginPath();\n\t\tctx.rect(outer.x, outer.y, outer.w, outer.h);\n\t\tctx.clip();\n\t\tctx.fillStyle = vm.borderColor;\n\t\tctx.rect(inner.x, inner.y, inner.w, inner.h);\n\t\tctx.fill('evenodd');\n\t\tctx.restore();\n\t},\n\n\theight: function() {\n\t\tvar vm = this._view;\n\t\treturn vm.base - vm.y;\n\t},\n\n\tinRange: function(mouseX, mouseY) {\n\t\treturn inRange(this._view, mouseX, mouseY);\n\t},\n\n\tinLabelRange: function(mouseX, mouseY) {\n\t\tvar vm = this._view;\n\t\treturn isVertical(vm)\n\t\t\t? inRange(vm, mouseX, null)\n\t\t\t: inRange(vm, null, mouseY);\n\t},\n\n\tinXRange: function(mouseX) {\n\t\treturn inRange(this._view, mouseX, null);\n\t},\n\n\tinYRange: function(mouseY) {\n\t\treturn inRange(this._view, null, mouseY);\n\t},\n\n\tgetCenterPoint: function() {\n\t\tvar vm = this._view;\n\t\tvar x, y;\n\t\tif (isVertical(vm)) {\n\t\t\tx = vm.x;\n\t\t\ty = (vm.y + vm.base) / 2;\n\t\t} else {\n\t\t\tx = (vm.x + vm.base) / 2;\n\t\t\ty = vm.y;\n\t\t}\n\n\t\treturn {x: x, y: y};\n\t},\n\n\tgetArea: function() {\n\t\tvar vm = this._view;\n\n\t\treturn isVertical(vm)\n\t\t\t? vm.width * Math.abs(vm.y - vm.base)\n\t\t\t: vm.height * Math.abs(vm.x - vm.base);\n\t},\n\n\ttooltipPosition: function() {\n\t\tvar vm = this._view;\n\t\treturn {\n\t\t\tx: vm.x,\n\t\t\ty: vm.y\n\t\t};\n\t}\n});\n\nvar elements = {};\nvar Arc = element_arc;\nvar Line = element_line;\nvar Point = element_point;\nvar Rectangle = element_rectangle;\nelements.Arc = Arc;\nelements.Line = Line;\nelements.Point = Point;\nelements.Rectangle = Rectangle;\n\nvar deprecated = helpers$1._deprecated;\nvar valueOrDefault$3 = helpers$1.valueOrDefault;\n\ncore_defaults._set('bar', {\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'linear'\n\t\t}]\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tbar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\n/**\n * Computes the \"optimal\" sample size to maintain bars equally sized while preventing overlap.\n * @private\n */\nfunction computeMinSampleSize(scale, pixels) {\n\tvar min = scale._length;\n\tvar prev, curr, i, ilen;\n\n\tfor (i = 1, ilen = pixels.length; i < ilen; ++i) {\n\t\tmin = Math.min(min, Math.abs(pixels[i] - pixels[i - 1]));\n\t}\n\n\tfor (i = 0, ilen = scale.getTicks().length; i < ilen; ++i) {\n\t\tcurr = scale.getPixelForTick(i);\n\t\tmin = i > 0 ? Math.min(min, Math.abs(curr - prev)) : min;\n\t\tprev = curr;\n\t}\n\n\treturn min;\n}\n\n/**\n * Computes an \"ideal\" category based on the absolute bar thickness or, if undefined or null,\n * uses the smallest interval (see computeMinSampleSize) that prevents bar overlapping. This\n * mode currently always generates bars equally sized (until we introduce scriptable options?).\n * @private\n */\nfunction computeFitCategoryTraits(index, ruler, options) {\n\tvar thickness = options.barThickness;\n\tvar count = ruler.stackCount;\n\tvar curr = ruler.pixels[index];\n\tvar min = helpers$1.isNullOrUndef(thickness)\n\t\t? computeMinSampleSize(ruler.scale, ruler.pixels)\n\t\t: -1;\n\tvar size, ratio;\n\n\tif (helpers$1.isNullOrUndef(thickness)) {\n\t\tsize = min * options.categoryPercentage;\n\t\tratio = options.barPercentage;\n\t} else {\n\t\t// When bar thickness is enforced, category and bar percentages are ignored.\n\t\t// Note(SB): we could add support for relative bar thickness (e.g. barThickness: '50%')\n\t\t// and deprecate barPercentage since this value is ignored when thickness is absolute.\n\t\tsize = thickness * count;\n\t\tratio = 1;\n\t}\n\n\treturn {\n\t\tchunk: size / count,\n\t\tratio: ratio,\n\t\tstart: curr - (size / 2)\n\t};\n}\n\n/**\n * Computes an \"optimal\" category that globally arranges bars side by side (no gap when\n * percentage options are 1), based on the previous and following categories. This mode\n * generates bars with different widths when data are not evenly spaced.\n * @private\n */\nfunction computeFlexCategoryTraits(index, ruler, options) {\n\tvar pixels = ruler.pixels;\n\tvar curr = pixels[index];\n\tvar prev = index > 0 ? pixels[index - 1] : null;\n\tvar next = index < pixels.length - 1 ? pixels[index + 1] : null;\n\tvar percent = options.categoryPercentage;\n\tvar start, size;\n\n\tif (prev === null) {\n\t\t// first data: its size is double based on the next point or,\n\t\t// if it's also the last data, we use the scale size.\n\t\tprev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n\t}\n\n\tif (next === null) {\n\t\t// last data: its size is also double based on the previous point.\n\t\tnext = curr + curr - prev;\n\t}\n\n\tstart = curr - (curr - Math.min(prev, next)) / 2 * percent;\n\tsize = Math.abs(next - prev) / 2 * percent;\n\n\treturn {\n\t\tchunk: size / ruler.stackCount,\n\t\tratio: options.barPercentage,\n\t\tstart: start\n\t};\n}\n\nvar controller_bar = core_datasetController.extend({\n\n\tdataElementType: elements.Rectangle,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderSkipped',\n\t\t'borderWidth',\n\t\t'barPercentage',\n\t\t'barThickness',\n\t\t'categoryPercentage',\n\t\t'maxBarThickness',\n\t\t'minBarLength'\n\t],\n\n\tinitialize: function() {\n\t\tvar me = this;\n\t\tvar meta, scaleOpts;\n\n\t\tcore_datasetController.prototype.initialize.apply(me, arguments);\n\n\t\tmeta = me.getMeta();\n\t\tmeta.stack = me.getDataset().stack;\n\t\tmeta.bar = true;\n\n\t\tscaleOpts = me._getIndexScale().options;\n\t\tdeprecated('bar chart', scaleOpts.barPercentage, 'scales.[x/y]Axes.barPercentage', 'dataset.barPercentage');\n\t\tdeprecated('bar chart', scaleOpts.barThickness, 'scales.[x/y]Axes.barThickness', 'dataset.barThickness');\n\t\tdeprecated('bar chart', scaleOpts.categoryPercentage, 'scales.[x/y]Axes.categoryPercentage', 'dataset.categoryPercentage');\n\t\tdeprecated('bar chart', me._getValueScale().options.minBarLength, 'scales.[x/y]Axes.minBarLength', 'dataset.minBarLength');\n\t\tdeprecated('bar chart', scaleOpts.maxBarThickness, 'scales.[x/y]Axes.maxBarThickness', 'dataset.maxBarThickness');\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar rects = me.getMeta().data;\n\t\tvar i, ilen;\n\n\t\tme._ruler = me.getRuler();\n\n\t\tfor (i = 0, ilen = rects.length; i < ilen; ++i) {\n\t\t\tme.updateElement(rects[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(rectangle, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar dataset = me.getDataset();\n\t\tvar options = me._resolveDataElementOptions(rectangle, index);\n\n\t\trectangle._xScale = me.getScaleForId(meta.xAxisID);\n\t\trectangle._yScale = me.getScaleForId(meta.yAxisID);\n\t\trectangle._datasetIndex = me.index;\n\t\trectangle._index = index;\n\t\trectangle._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderSkipped: options.borderSkipped,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\tdatasetLabel: dataset.label,\n\t\t\tlabel: me.chart.data.labels[index]\n\t\t};\n\n\t\tif (helpers$1.isArray(dataset.data[index])) {\n\t\t\trectangle._model.borderSkipped = null;\n\t\t}\n\n\t\tme._updateElementGeometry(rectangle, index, reset, options);\n\n\t\trectangle.pivot();\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateElementGeometry: function(rectangle, index, reset, options) {\n\t\tvar me = this;\n\t\tvar model = rectangle._model;\n\t\tvar vscale = me._getValueScale();\n\t\tvar base = vscale.getBasePixel();\n\t\tvar horizontal = vscale.isHorizontal();\n\t\tvar ruler = me._ruler || me.getRuler();\n\t\tvar vpixels = me.calculateBarValuePixels(me.index, index, options);\n\t\tvar ipixels = me.calculateBarIndexPixels(me.index, index, ruler, options);\n\n\t\tmodel.horizontal = horizontal;\n\t\tmodel.base = reset ? base : vpixels.base;\n\t\tmodel.x = horizontal ? reset ? base : vpixels.head : ipixels.center;\n\t\tmodel.y = horizontal ? ipixels.center : reset ? base : vpixels.head;\n\t\tmodel.height = horizontal ? ipixels.size : undefined;\n\t\tmodel.width = horizontal ? undefined : ipixels.size;\n\t},\n\n\t/**\n\t * Returns the stacks based on groups and bar visibility.\n\t * @param {number} [last] - The dataset index\n\t * @returns {string[]} The list of stack IDs\n\t * @private\n\t */\n\t_getStacks: function(last) {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar stacked = scale.options.stacked;\n\t\tvar ilen = metasets.length;\n\t\tvar stacks = [];\n\t\tvar i, meta;\n\n\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\tmeta = metasets[i];\n\t\t\t// stacked | meta.stack\n\t\t\t// | found | not found | undefined\n\t\t\t// false | x | x | x\n\t\t\t// true | | x |\n\t\t\t// undefined | | x | x\n\t\t\tif (stacked === false || stacks.indexOf(meta.stack) === -1 ||\n\t\t\t\t(stacked === undefined && meta.stack === undefined)) {\n\t\t\t\tstacks.push(meta.stack);\n\t\t\t}\n\t\t\tif (meta.index === last) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn stacks;\n\t},\n\n\t/**\n\t * Returns the effective number of stacks based on groups and bar visibility.\n\t * @private\n\t */\n\tgetStackCount: function() {\n\t\treturn this._getStacks().length;\n\t},\n\n\t/**\n\t * Returns the stack index for the given dataset based on groups and bar visibility.\n\t * @param {number} [datasetIndex] - The dataset index\n\t * @param {string} [name] - The stack name to find\n\t * @returns {number} The stack index\n\t * @private\n\t */\n\tgetStackIndex: function(datasetIndex, name) {\n\t\tvar stacks = this._getStacks(datasetIndex);\n\t\tvar index = (name !== undefined)\n\t\t\t? stacks.indexOf(name)\n\t\t\t: -1; // indexOf returns -1 if element is not present\n\n\t\treturn (index === -1)\n\t\t\t? stacks.length - 1\n\t\t\t: index;\n\t},\n\n\t/**\n\t * @private\n\t */\n\tgetRuler: function() {\n\t\tvar me = this;\n\t\tvar scale = me._getIndexScale();\n\t\tvar pixels = [];\n\t\tvar i, ilen;\n\n\t\tfor (i = 0, ilen = me.getMeta().data.length; i < ilen; ++i) {\n\t\t\tpixels.push(scale.getPixelForValue(null, i, me.index));\n\t\t}\n\n\t\treturn {\n\t\t\tpixels: pixels,\n\t\t\tstart: scale._startPixel,\n\t\t\tend: scale._endPixel,\n\t\t\tstackCount: me.getStackCount(),\n\t\t\tscale: scale\n\t\t};\n\t},\n\n\t/**\n\t * Note: pixel values are not clamped to the scale area.\n\t * @private\n\t */\n\tcalculateBarValuePixels: function(datasetIndex, index, options) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar isHorizontal = scale.isHorizontal();\n\t\tvar datasets = chart.data.datasets;\n\t\tvar metasets = scale._getMatchingVisibleMetas(me._type);\n\t\tvar value = scale._parseValue(datasets[datasetIndex].data[index]);\n\t\tvar minBarLength = options.minBarLength;\n\t\tvar stacked = scale.options.stacked;\n\t\tvar stack = me.getMeta().stack;\n\t\tvar start = value.start === undefined ? 0 : value.max >= 0 && value.min >= 0 ? value.min : value.max;\n\t\tvar length = value.start === undefined ? value.end : value.max >= 0 && value.min >= 0 ? value.max - value.min : value.min - value.max;\n\t\tvar ilen = metasets.length;\n\t\tvar i, imeta, ivalue, base, head, size, stackLength;\n\n\t\tif (stacked || (stacked === undefined && stack !== undefined)) {\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\timeta = metasets[i];\n\n\t\t\t\tif (imeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tif (imeta.stack === stack) {\n\t\t\t\t\tstackLength = scale._parseValue(datasets[imeta.index].data[index]);\n\t\t\t\t\tivalue = stackLength.start === undefined ? stackLength.end : stackLength.min >= 0 && stackLength.max >= 0 ? stackLength.max : stackLength.min;\n\n\t\t\t\t\tif ((value.min < 0 && ivalue < 0) || (value.max >= 0 && ivalue > 0)) {\n\t\t\t\t\t\tstart += ivalue;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tbase = scale.getPixelForValue(start);\n\t\thead = scale.getPixelForValue(start + length);\n\t\tsize = head - base;\n\n\t\tif (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n\t\t\tsize = minBarLength;\n\t\t\tif (length >= 0 && !isHorizontal || length < 0 && isHorizontal) {\n\t\t\t\thead = base - minBarLength;\n\t\t\t} else {\n\t\t\t\thead = base + minBarLength;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsize: size,\n\t\t\tbase: base,\n\t\t\thead: head,\n\t\t\tcenter: head + size / 2\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\tcalculateBarIndexPixels: function(datasetIndex, index, ruler, options) {\n\t\tvar me = this;\n\t\tvar range = options.barThickness === 'flex'\n\t\t\t? computeFlexCategoryTraits(index, ruler, options)\n\t\t\t: computeFitCategoryTraits(index, ruler, options);\n\n\t\tvar stackIndex = me.getStackIndex(datasetIndex, me.getMeta().stack);\n\t\tvar center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n\t\tvar size = Math.min(\n\t\t\tvalueOrDefault$3(options.maxBarThickness, Infinity),\n\t\t\trange.chunk * range.ratio);\n\n\t\treturn {\n\t\t\tbase: center - size / 2,\n\t\t\thead: center + size / 2,\n\t\t\tcenter: center,\n\t\t\tsize: size\n\t\t};\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar scale = me._getValueScale();\n\t\tvar rects = me.getMeta().data;\n\t\tvar dataset = me.getDataset();\n\t\tvar ilen = rects.length;\n\t\tvar i = 0;\n\n\t\thelpers$1.canvas.clipArea(chart.ctx, chart.chartArea);\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tvar val = scale._parseValue(dataset.data[i]);\n\t\t\tif (!isNaN(val.min) && !isNaN(val.max)) {\n\t\t\t\trects[i].draw();\n\t\t\t}\n\t\t}\n\n\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function() {\n\t\tvar me = this;\n\t\tvar values = helpers$1.extend({}, core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments));\n\t\tvar indexOpts = me._getIndexScale().options;\n\t\tvar valueOpts = me._getValueScale().options;\n\n\t\tvalues.barPercentage = valueOrDefault$3(indexOpts.barPercentage, values.barPercentage);\n\t\tvalues.barThickness = valueOrDefault$3(indexOpts.barThickness, values.barThickness);\n\t\tvalues.categoryPercentage = valueOrDefault$3(indexOpts.categoryPercentage, values.categoryPercentage);\n\t\tvalues.maxBarThickness = valueOrDefault$3(indexOpts.maxBarThickness, values.maxBarThickness);\n\t\tvalues.minBarLength = valueOrDefault$3(valueOpts.minBarLength, values.minBarLength);\n\n\t\treturn values;\n\t}\n\n});\n\nvar valueOrDefault$4 = helpers$1.valueOrDefault;\nvar resolve$1 = helpers$1.options.resolve;\n\ncore_defaults._set('bubble', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear', // bubble should probably use a linear scale by default\n\t\t\tposition: 'bottom',\n\t\t\tid: 'x-axis-0' // need an ID so datasets can reference the scale\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\t// Title doesn't make sense for scatter since we format the data as a point\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\tvar datasetLabel = data.datasets[item.datasetIndex].label || '';\n\t\t\t\tvar dataPoint = data.datasets[item.datasetIndex].data[item.index];\n\t\t\t\treturn datasetLabel + ': (' + item.xLabel + ', ' + item.yLabel + ', ' + dataPoint.r + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_bubble = core_datasetController.extend({\n\t/**\n\t * @protected\n\t */\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t\t'hoverRadius',\n\t\t'hitRadius',\n\t\t'pointStyle',\n\t\t'rotation'\n\t],\n\n\t/**\n\t * @protected\n\t */\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data;\n\n\t\t// Update Points\n\t\thelpers$1.each(points, function(point, index) {\n\t\t\tme.updateElement(point, index, reset);\n\t\t});\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar xScale = me.getScaleForId(meta.xAxisID);\n\t\tvar yScale = me.getScaleForId(meta.yAxisID);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar data = me.getDataset().data[index];\n\t\tvar dsIndex = me.index;\n\n\t\tvar x = reset ? xScale.getPixelForDecimal(0.5) : xScale.getPixelForValue(typeof data === 'object' ? data : NaN, index, dsIndex);\n\t\tvar y = reset ? yScale.getBasePixel() : yScale.getPixelForValue(data, index, dsIndex);\n\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = dsIndex;\n\t\tpoint._index = index;\n\t\tpoint._model = {\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\thitRadius: options.hitRadius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tradius: reset ? 0 : options.radius,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t};\n\n\t\tpoint.pivot();\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$4(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$4(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$4(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = options.radius + options.hoverRadius;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDataElementOptions: function(point, index) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar custom = point.custom || {};\n\t\tvar data = dataset.data[index] || {};\n\t\tvar values = core_datasetController.prototype._resolveDataElementOptions.apply(me, arguments);\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\t// In case values were cached (and thus frozen), we need to clone the values\n\t\tif (me._cachedDataOpts === values) {\n\t\t\tvalues = helpers$1.extend({}, values);\n\t\t}\n\n\t\t// Custom radius resolution\n\t\tvalues.radius = resolve$1([\n\t\t\tcustom.radius,\n\t\t\tdata.r,\n\t\t\tme._config.radius,\n\t\t\tchart.options.elements.point.radius\n\t\t], context, index);\n\n\t\treturn values;\n\t}\n});\n\nvar valueOrDefault$5 = helpers$1.valueOrDefault;\n\nvar PI$1 = Math.PI;\nvar DOUBLE_PI$1 = PI$1 * 2;\nvar HALF_PI$1 = PI$1 / 2;\n\ncore_defaults._set('doughnut', {\n\tanimation: {\n\t\t// Boolean - Whether we animate the rotation of the Doughnut\n\t\tanimateRotate: true,\n\t\t// Boolean - Whether we animate scaling the Doughnut from the centre\n\t\tanimateScale: false\n\t},\n\thover: {\n\t\tmode: 'single'\n\t},\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t// toggle visibility of index if exists\n\t\t\t\tif (meta.data[index]) {\n\t\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// The percentage of the chart that we cut out of the middle.\n\tcutoutPercentage: 50,\n\n\t// The rotation of the chart, where the first data arc begins.\n\trotation: -HALF_PI$1,\n\n\t// The total circumference of the chart.\n\tcircumference: DOUBLE_PI$1,\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(tooltipItem, data) {\n\t\t\t\tvar dataLabel = data.labels[tooltipItem.index];\n\t\t\t\tvar value = ': ' + data.datasets[tooltipItem.datasetIndex].data[tooltipItem.index];\n\n\t\t\t\tif (helpers$1.isArray(dataLabel)) {\n\t\t\t\t\t// show value on first line of multiline label\n\t\t\t\t\t// need to clone because we are changing the value\n\t\t\t\t\tdataLabel = dataLabel.slice();\n\t\t\t\t\tdataLabel[0] += value;\n\t\t\t\t} else {\n\t\t\t\t\tdataLabel += value;\n\t\t\t\t}\n\n\t\t\t\treturn dataLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_doughnut = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t// Get index of the dataset in relation to the visible datasets. This allows determining the inner and outer radius correctly\n\tgetRingIndex: function(datasetIndex) {\n\t\tvar ringIndex = 0;\n\n\t\tfor (var j = 0; j < datasetIndex; ++j) {\n\t\t\tif (this.chart.isDatasetVisible(j)) {\n\t\t\t\t++ringIndex;\n\t\t\t}\n\t\t}\n\n\t\treturn ringIndex;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar ratioX = 1;\n\t\tvar ratioY = 1;\n\t\tvar offsetX = 0;\n\t\tvar offsetY = 0;\n\t\tvar meta = me.getMeta();\n\t\tvar arcs = meta.data;\n\t\tvar cutout = opts.cutoutPercentage / 100 || 0;\n\t\tvar circumference = opts.circumference;\n\t\tvar chartWeight = me._getRingWeight(me.index);\n\t\tvar maxWidth, maxHeight, i, ilen;\n\n\t\t// If the chart's circumference isn't a full circle, calculate size as a ratio of the width/height of the arc\n\t\tif (circumference < DOUBLE_PI$1) {\n\t\t\tvar startAngle = opts.rotation % DOUBLE_PI$1;\n\t\t\tstartAngle += startAngle >= PI$1 ? -DOUBLE_PI$1 : startAngle < -PI$1 ? DOUBLE_PI$1 : 0;\n\t\t\tvar endAngle = startAngle + circumference;\n\t\t\tvar startX = Math.cos(startAngle);\n\t\t\tvar startY = Math.sin(startAngle);\n\t\t\tvar endX = Math.cos(endAngle);\n\t\t\tvar endY = Math.sin(endAngle);\n\t\t\tvar contains0 = (startAngle <= 0 && endAngle >= 0) || endAngle >= DOUBLE_PI$1;\n\t\t\tvar contains90 = (startAngle <= HALF_PI$1 && endAngle >= HALF_PI$1) || endAngle >= DOUBLE_PI$1 + HALF_PI$1;\n\t\t\tvar contains180 = startAngle === -PI$1 || endAngle >= PI$1;\n\t\t\tvar contains270 = (startAngle <= -HALF_PI$1 && endAngle >= -HALF_PI$1) || endAngle >= PI$1 + HALF_PI$1;\n\t\t\tvar minX = contains180 ? -1 : Math.min(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar minY = contains270 ? -1 : Math.min(startY, startY * cutout, endY, endY * cutout);\n\t\t\tvar maxX = contains0 ? 1 : Math.max(startX, startX * cutout, endX, endX * cutout);\n\t\t\tvar maxY = contains90 ? 1 : Math.max(startY, startY * cutout, endY, endY * cutout);\n\t\t\tratioX = (maxX - minX) / 2;\n\t\t\tratioY = (maxY - minY) / 2;\n\t\t\toffsetX = -(maxX + minX) / 2;\n\t\t\toffsetY = -(maxY + minY) / 2;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t}\n\n\t\tchart.borderWidth = me.getMaxBorderWidth();\n\t\tmaxWidth = (chartArea.right - chartArea.left - chart.borderWidth) / ratioX;\n\t\tmaxHeight = (chartArea.bottom - chartArea.top - chart.borderWidth) / ratioY;\n\t\tchart.outerRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n\t\tchart.innerRadius = Math.max(chart.outerRadius * cutout, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / (me._getVisibleDatasetWeightTotal() || 1);\n\t\tchart.offsetX = offsetX * chart.outerRadius;\n\t\tchart.offsetY = offsetY * chart.outerRadius;\n\n\t\tmeta.total = me.calculateTotal();\n\n\t\tme.outerRadius = chart.outerRadius - chart.radiusLength * me._getRingWeightOffset(me.index);\n\t\tme.innerRadius = Math.max(me.outerRadius - chart.radiusLength * chartWeight, 0);\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar centerX = (chartArea.left + chartArea.right) / 2;\n\t\tvar centerY = (chartArea.top + chartArea.bottom) / 2;\n\t\tvar startAngle = opts.rotation; // non reset case handled later\n\t\tvar endAngle = opts.rotation; // non reset case handled later\n\t\tvar dataset = me.getDataset();\n\t\tvar circumference = reset && animationOpts.animateRotate ? 0 : arc.hidden ? 0 : me.calculateCircumference(dataset.data[index]) * (opts.circumference / DOUBLE_PI$1);\n\t\tvar innerRadius = reset && animationOpts.animateScale ? 0 : me.innerRadius;\n\t\tvar outerRadius = reset && animationOpts.animateScale ? 0 : me.outerRadius;\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX + chart.offsetX,\n\t\t\t\ty: centerY + chart.offsetY,\n\t\t\t\tstartAngle: startAngle,\n\t\t\t\tendAngle: endAngle,\n\t\t\t\tcircumference: circumference,\n\t\t\t\touterRadius: outerRadius,\n\t\t\t\tinnerRadius: innerRadius,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(dataset.label, index, chart.data.labels[index])\n\t\t\t}\n\t\t});\n\n\t\tvar model = arc._model;\n\n\t\t// Set correct angles if not resetting\n\t\tif (!reset || !animationOpts.animateRotate) {\n\t\t\tif (index === 0) {\n\t\t\t\tmodel.startAngle = opts.rotation;\n\t\t\t} else {\n\t\t\t\tmodel.startAngle = me.getMeta().data[index - 1]._model.endAngle;\n\t\t\t}\n\n\t\t\tmodel.endAngle = model.startAngle + model.circumference;\n\t\t}\n\n\t\tarc.pivot();\n\t},\n\n\tcalculateTotal: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar total = 0;\n\t\tvar value;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tvalue = dataset.data[index];\n\t\t\tif (!isNaN(value) && !element.hidden) {\n\t\t\t\ttotal += Math.abs(value);\n\t\t\t}\n\t\t});\n\n\t\t/* if (total === 0) {\n\t\t\ttotal = NaN;\n\t\t}*/\n\n\t\treturn total;\n\t},\n\n\tcalculateCircumference: function(value) {\n\t\tvar total = this.getMeta().total;\n\t\tif (total > 0 && !isNaN(value)) {\n\t\t\treturn DOUBLE_PI$1 * (Math.abs(value) / total);\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// gets the max border or hover width to properly scale pie charts\n\tgetMaxBorderWidth: function(arcs) {\n\t\tvar me = this;\n\t\tvar max = 0;\n\t\tvar chart = me.chart;\n\t\tvar i, ilen, meta, arc, controller, options, borderWidth, hoverWidth;\n\n\t\tif (!arcs) {\n\t\t\t// Find the outmost visible dataset\n\t\t\tfor (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n\t\t\t\tif (chart.isDatasetVisible(i)) {\n\t\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\t\tarcs = meta.data;\n\t\t\t\t\tif (i !== me.index) {\n\t\t\t\t\t\tcontroller = meta.controller;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (!arcs) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarc = arcs[i];\n\t\t\tif (controller) {\n\t\t\t\tcontroller._configure();\n\t\t\t\toptions = controller._resolveDataElementOptions(arc, i);\n\t\t\t} else {\n\t\t\t\toptions = arc._options;\n\t\t\t}\n\t\t\tif (options.borderAlign !== 'inner') {\n\t\t\t\tborderWidth = options.borderWidth;\n\t\t\t\thoverWidth = options.hoverBorderWidth;\n\n\t\t\t\tmax = borderWidth > max ? borderWidth : max;\n\t\t\t\tmax = hoverWidth > max ? hoverWidth : max;\n\t\t\t}\n\t\t}\n\t\treturn max;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$5(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$5(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$5(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * Get radius length offset of the dataset in relation to the visible datasets weights. This allows determining the inner and outer radius correctly\n\t * @private\n\t */\n\t_getRingWeightOffset: function(datasetIndex) {\n\t\tvar ringWeightOffset = 0;\n\n\t\tfor (var i = 0; i < datasetIndex; ++i) {\n\t\t\tif (this.chart.isDatasetVisible(i)) {\n\t\t\t\tringWeightOffset += this._getRingWeight(i);\n\t\t\t}\n\t\t}\n\n\t\treturn ringWeightOffset;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getRingWeight: function(dataSetIndex) {\n\t\treturn Math.max(valueOrDefault$5(this.chart.data.datasets[dataSetIndex].weight, 1), 0);\n\t},\n\n\t/**\n\t * Returns the sum of all visibile data set weights. This value can be 0.\n\t * @private\n\t */\n\t_getVisibleDatasetWeightTotal: function() {\n\t\treturn this._getRingWeightOffset(this.chart.data.datasets.length);\n\t}\n});\n\ncore_defaults._set('horizontalBar', {\n\thover: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tposition: 'bottom'\n\t\t}],\n\n\t\tyAxes: [{\n\t\t\ttype: 'category',\n\t\t\tposition: 'left',\n\t\t\toffset: true,\n\t\t\tgridLines: {\n\t\t\t\toffsetGridLines: true\n\t\t\t}\n\t\t}]\n\t},\n\n\telements: {\n\t\trectangle: {\n\t\t\tborderSkipped: 'left'\n\t\t}\n\t},\n\n\ttooltips: {\n\t\tmode: 'index',\n\t\taxis: 'y'\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\thorizontalBar: {\n\t\t\tcategoryPercentage: 0.8,\n\t\t\tbarPercentage: 0.9\n\t\t}\n\t}\n});\n\nvar controller_horizontalBar = controller_bar.extend({\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.getMeta().xAxisID;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.getMeta().yAxisID;\n\t}\n});\n\nvar valueOrDefault$6 = helpers$1.valueOrDefault;\nvar resolve$2 = helpers$1.options.resolve;\nvar isPointInArea = helpers$1.canvas._isPointInArea;\n\ncore_defaults._set('line', {\n\tshowLines: true,\n\tspanGaps: false,\n\n\thover: {\n\t\tmode: 'label'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\ttype: 'category',\n\t\t\tid: 'x-axis-0'\n\t\t}],\n\t\tyAxes: [{\n\t\t\ttype: 'linear',\n\t\t\tid: 'y-axis-0'\n\t\t}]\n\t}\n});\n\nfunction scaleClip(scale, halfBorderWidth) {\n\tvar tickOpts = scale && scale.options.ticks || {};\n\tvar reverse = tickOpts.reverse;\n\tvar min = tickOpts.min === undefined ? halfBorderWidth : 0;\n\tvar max = tickOpts.max === undefined ? halfBorderWidth : 0;\n\treturn {\n\t\tstart: reverse ? max : min,\n\t\tend: reverse ? min : max\n\t};\n}\n\nfunction defaultClip(xScale, yScale, borderWidth) {\n\tvar halfBorderWidth = borderWidth / 2;\n\tvar x = scaleClip(xScale, halfBorderWidth);\n\tvar y = scaleClip(yScale, halfBorderWidth);\n\n\treturn {\n\t\ttop: y.end,\n\t\tright: x.end,\n\t\tbottom: y.start,\n\t\tleft: x.start\n\t};\n}\n\nfunction toClip(value) {\n\tvar t, r, b, l;\n\n\tif (helpers$1.isObject(value)) {\n\t\tt = value.top;\n\t\tr = value.right;\n\t\tb = value.bottom;\n\t\tl = value.left;\n\t} else {\n\t\tt = r = b = l = value;\n\t}\n\n\treturn {\n\t\ttop: t,\n\t\tright: r,\n\t\tbottom: b,\n\t\tleft: l\n\t};\n}\n\n\nvar controller_line = core_datasetController.extend({\n\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderCapStyle',\n\t\t'borderColor',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'borderWidth',\n\t\t'cubicInterpolationMode',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar options = me.chart.options;\n\t\tvar config = me._config;\n\t\tvar showLine = me._showLine = valueOrDefault$6(config.showLine, options.showLines);\n\t\tvar i, ilen;\n\n\t\tme._xScale = me.getScaleForId(meta.xAxisID);\n\t\tme._yScale = me.getScaleForId(meta.yAxisID);\n\n\t\t// Update Line\n\t\tif (showLine) {\n\t\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\t\tconfig.lineTension = config.tension;\n\t\t\t}\n\n\t\t\t// Utility\n\t\t\tline._scale = me._yScale;\n\t\t\tline._datasetIndex = me.index;\n\t\t\t// Data\n\t\t\tline._children = points;\n\t\t\t// Model\n\t\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\t\tline.pivot();\n\t\t}\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\tif (showLine && line._model.tension !== 0) {\n\t\t\tme.updateBezierControlPoints();\n\t\t}\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar datasetIndex = me.index;\n\t\tvar value = dataset.data[index];\n\t\tvar xScale = me._xScale;\n\t\tvar yScale = me._yScale;\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar x, y;\n\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\n\t\tx = xScale.getPixelForValue(typeof value === 'object' ? value : NaN, index, datasetIndex);\n\t\ty = reset ? yScale.getBasePixel() : me.calculatePointY(value, index, datasetIndex);\n\n\t\t// Utility\n\t\tpoint._xScale = xScale;\n\t\tpoint._yScale = yScale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = datasetIndex;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x,\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$6(custom.tension, lineModel ? lineModel.tension : 0),\n\t\t\tsteppedLine: lineModel ? lineModel.steppedLine : false,\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function(element) {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar custom = element.custom || {};\n\t\tvar options = me.chart.options;\n\t\tvar lineOptions = options.elements.line;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\t// The default behavior of lines is to break at null values, according\n\t\t// to https://github.com/chartjs/Chart.js/issues/2435#issuecomment-216718158\n\t\t// This option gives lines the ability to span gaps\n\t\tvalues.spanGaps = valueOrDefault$6(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$6(config.lineTension, lineOptions.tension);\n\t\tvalues.steppedLine = resolve$2([custom.steppedLine, config.steppedLine, lineOptions.stepped]);\n\t\tvalues.clip = toClip(valueOrDefault$6(config.clip, defaultClip(me._xScale, me._yScale, values.borderWidth)));\n\n\t\treturn values;\n\t},\n\n\tcalculatePointY: function(value, index, datasetIndex) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar yScale = me._yScale;\n\t\tvar sumPos = 0;\n\t\tvar sumNeg = 0;\n\t\tvar i, ds, dsMeta, stackedRightValue, rightValue, metasets, ilen;\n\n\t\tif (yScale.options.stacked) {\n\t\t\trightValue = +yScale.getRightValue(value);\n\t\t\tmetasets = chart._getSortedVisibleDatasetMetas();\n\t\t\tilen = metasets.length;\n\n\t\t\tfor (i = 0; i < ilen; ++i) {\n\t\t\t\tdsMeta = metasets[i];\n\t\t\t\tif (dsMeta.index === datasetIndex) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tds = chart.data.datasets[dsMeta.index];\n\t\t\t\tif (dsMeta.type === 'line' && dsMeta.yAxisID === yScale.id) {\n\t\t\t\t\tstackedRightValue = +yScale.getRightValue(ds.data[index]);\n\t\t\t\t\tif (stackedRightValue < 0) {\n\t\t\t\t\t\tsumNeg += stackedRightValue || 0;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tsumPos += stackedRightValue || 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (rightValue < 0) {\n\t\t\t\treturn yScale.getPixelForValue(sumNeg + rightValue);\n\t\t\t}\n\t\t\treturn yScale.getPixelForValue(sumPos + rightValue);\n\t\t}\n\t\treturn yScale.getPixelForValue(value);\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar lineModel = meta.dataset._model;\n\t\tvar area = chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (lineModel.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tif (lineModel.cubicInterpolationMode === 'monotone') {\n\t\t\thelpers$1.splineCurveMonotone(points);\n\t\t} else {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\t\thelpers$1.previousItem(points, i)._model,\n\t\t\t\t\tmodel,\n\t\t\t\t\thelpers$1.nextItem(points, i)._model,\n\t\t\t\t\tlineModel.tension\n\t\t\t\t);\n\t\t\t\tmodel.controlPointPreviousX = controlPoints.previous.x;\n\t\t\t\tmodel.controlPointPreviousY = controlPoints.previous.y;\n\t\t\t\tmodel.controlPointNextX = controlPoints.next.x;\n\t\t\t\tmodel.controlPointNextY = controlPoints.next.y;\n\t\t\t}\n\t\t}\n\n\t\tif (chart.options.elements.line.capBezierPoints) {\n\t\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\t\tmodel = points[i]._model;\n\t\t\t\tif (isPointInArea(model, area)) {\n\t\t\t\t\tif (i > 0 && isPointInArea(points[i - 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointPreviousX = capControlPoint(model.controlPointPreviousX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointPreviousY = capControlPoint(model.controlPointPreviousY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t\tif (i < points.length - 1 && isPointInArea(points[i + 1]._model, area)) {\n\t\t\t\t\t\tmodel.controlPointNextX = capControlPoint(model.controlPointNextX, area.left, area.right);\n\t\t\t\t\t\tmodel.controlPointNextY = capControlPoint(model.controlPointNextY, area.top, area.bottom);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tdraw: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar meta = me.getMeta();\n\t\tvar points = meta.data || [];\n\t\tvar area = chart.chartArea;\n\t\tvar canvas = chart.canvas;\n\t\tvar i = 0;\n\t\tvar ilen = points.length;\n\t\tvar clip;\n\n\t\tif (me._showLine) {\n\t\t\tclip = meta.dataset._model.clip;\n\n\t\t\thelpers$1.canvas.clipArea(chart.ctx, {\n\t\t\t\tleft: clip.left === false ? 0 : area.left - clip.left,\n\t\t\t\tright: clip.right === false ? canvas.width : area.right + clip.right,\n\t\t\t\ttop: clip.top === false ? 0 : area.top - clip.top,\n\t\t\t\tbottom: clip.bottom === false ? canvas.height : area.bottom + clip.bottom\n\t\t\t});\n\n\t\t\tmeta.dataset.draw();\n\n\t\t\thelpers$1.canvas.unclipArea(chart.ctx);\n\t\t}\n\n\t\t// Draw the points\n\t\tfor (; i < ilen; ++i) {\n\t\t\tpoints[i].draw(area);\n\t\t}\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$6(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$6(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$6(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$6(options.hoverRadius, options.radius);\n\t},\n});\n\nvar resolve$3 = helpers$1.options.resolve;\n\ncore_defaults._set('polarArea', {\n\tscale: {\n\t\ttype: 'radialLinear',\n\t\tangleLines: {\n\t\t\tdisplay: false\n\t\t},\n\t\tgridLines: {\n\t\t\tcircular: true\n\t\t},\n\t\tpointLabels: {\n\t\t\tdisplay: false\n\t\t},\n\t\tticks: {\n\t\t\tbeginAtZero: true\n\t\t}\n\t},\n\n\t// Boolean - Whether to animate the rotation of the chart\n\tanimation: {\n\t\tanimateRotate: true,\n\t\tanimateScale: true\n\t},\n\n\tstartAngle: -0.5 * Math.PI,\n\tlegendCallback: function(chart) {\n\t\tvar list = document.createElement('ul');\n\t\tvar data = chart.data;\n\t\tvar datasets = data.datasets;\n\t\tvar labels = data.labels;\n\t\tvar i, ilen, listItem, listItemSpan;\n\n\t\tlist.setAttribute('class', chart.id + '-legend');\n\t\tif (datasets.length) {\n\t\t\tfor (i = 0, ilen = datasets[0].data.length; i < ilen; ++i) {\n\t\t\t\tlistItem = list.appendChild(document.createElement('li'));\n\t\t\t\tlistItemSpan = listItem.appendChild(document.createElement('span'));\n\t\t\t\tlistItemSpan.style.backgroundColor = datasets[0].backgroundColor[i];\n\t\t\t\tif (labels[i]) {\n\t\t\t\t\tlistItem.appendChild(document.createTextNode(labels[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn list.outerHTML;\n\t},\n\tlegend: {\n\t\tlabels: {\n\t\t\tgenerateLabels: function(chart) {\n\t\t\t\tvar data = chart.data;\n\t\t\t\tif (data.labels.length && data.datasets.length) {\n\t\t\t\t\treturn data.labels.map(function(label, i) {\n\t\t\t\t\t\tvar meta = chart.getDatasetMeta(0);\n\t\t\t\t\t\tvar style = meta.controller.getStyle(i);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\ttext: label,\n\t\t\t\t\t\t\tfillStyle: style.backgroundColor,\n\t\t\t\t\t\t\tstrokeStyle: style.borderColor,\n\t\t\t\t\t\t\tlineWidth: style.borderWidth,\n\t\t\t\t\t\t\thidden: isNaN(data.datasets[0].data[i]) || meta.data[i].hidden,\n\n\t\t\t\t\t\t\t// Extra data used for toggling the correct item\n\t\t\t\t\t\t\tindex: i\n\t\t\t\t\t\t};\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn [];\n\t\t\t}\n\t\t},\n\n\t\tonClick: function(e, legendItem) {\n\t\t\tvar index = legendItem.index;\n\t\t\tvar chart = this.chart;\n\t\t\tvar i, ilen, meta;\n\n\t\t\tfor (i = 0, ilen = (chart.data.datasets || []).length; i < ilen; ++i) {\n\t\t\t\tmeta = chart.getDatasetMeta(i);\n\t\t\t\tmeta.data[index].hidden = !meta.data[index].hidden;\n\t\t\t}\n\n\t\t\tchart.update();\n\t\t}\n\t},\n\n\t// Need to override these to give a nice default\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn '';\n\t\t\t},\n\t\t\tlabel: function(item, data) {\n\t\t\t\treturn data.labels[item.index] + ': ' + item.yLabel;\n\t\t\t}\n\t\t}\n\t}\n});\n\nvar controller_polarArea = core_datasetController.extend({\n\n\tdataElementType: elements.Arc,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderColor',\n\t\t'borderWidth',\n\t\t'borderAlign',\n\t\t'hoverBackgroundColor',\n\t\t'hoverBorderColor',\n\t\t'hoverBorderWidth',\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\t\tvar start = me.chart.options.startAngle || 0;\n\t\tvar starts = me._starts = [];\n\t\tvar angles = me._angles = [];\n\t\tvar arcs = meta.data;\n\t\tvar i, ilen, angle;\n\n\t\tme._updateRadius();\n\n\t\tmeta.count = me.countVisibleElements();\n\n\t\tfor (i = 0, ilen = dataset.data.length; i < ilen; i++) {\n\t\t\tstarts[i] = start;\n\t\t\tangle = me._computeAngle(i);\n\t\t\tangles[i] = angle;\n\t\t\tstart += angle;\n\t\t}\n\n\t\tfor (i = 0, ilen = arcs.length; i < ilen; ++i) {\n\t\t\tarcs[i]._options = me._resolveDataElementOptions(arcs[i], i);\n\t\t\tme.updateElement(arcs[i], i, reset);\n\t\t}\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_updateRadius: function() {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar chartArea = chart.chartArea;\n\t\tvar opts = chart.options;\n\t\tvar minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n\n\t\tchart.outerRadius = Math.max(minSize / 2, 0);\n\t\tchart.innerRadius = Math.max(opts.cutoutPercentage ? (chart.outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n\t\tchart.radiusLength = (chart.outerRadius - chart.innerRadius) / chart.getVisibleDatasetCount();\n\n\t\tme.outerRadius = chart.outerRadius - (chart.radiusLength * me.index);\n\t\tme.innerRadius = me.outerRadius - chart.radiusLength;\n\t},\n\n\tupdateElement: function(arc, index, reset) {\n\t\tvar me = this;\n\t\tvar chart = me.chart;\n\t\tvar dataset = me.getDataset();\n\t\tvar opts = chart.options;\n\t\tvar animationOpts = opts.animation;\n\t\tvar scale = chart.scale;\n\t\tvar labels = chart.data.labels;\n\n\t\tvar centerX = scale.xCenter;\n\t\tvar centerY = scale.yCenter;\n\n\t\t// var negHalfPI = -0.5 * Math.PI;\n\t\tvar datasetStartAngle = opts.startAngle;\n\t\tvar distance = arc.hidden ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar startAngle = me._starts[index];\n\t\tvar endAngle = startAngle + (arc.hidden ? 0 : me._angles[index]);\n\n\t\tvar resetRadius = animationOpts.animateScale ? 0 : scale.getDistanceFromCenterForValue(dataset.data[index]);\n\t\tvar options = arc._options || {};\n\n\t\thelpers$1.extend(arc, {\n\t\t\t// Utility\n\t\t\t_datasetIndex: me.index,\n\t\t\t_index: index,\n\t\t\t_scale: scale,\n\n\t\t\t// Desired view properties\n\t\t\t_model: {\n\t\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\t\tborderColor: options.borderColor,\n\t\t\t\tborderWidth: options.borderWidth,\n\t\t\t\tborderAlign: options.borderAlign,\n\t\t\t\tx: centerX,\n\t\t\t\ty: centerY,\n\t\t\t\tinnerRadius: 0,\n\t\t\t\touterRadius: reset ? resetRadius : distance,\n\t\t\t\tstartAngle: reset && animationOpts.animateRotate ? datasetStartAngle : startAngle,\n\t\t\t\tendAngle: reset && animationOpts.animateRotate ? datasetStartAngle : endAngle,\n\t\t\t\tlabel: helpers$1.valueAtIndexOrDefault(labels, index, labels[index])\n\t\t\t}\n\t\t});\n\n\t\tarc.pivot();\n\t},\n\n\tcountVisibleElements: function() {\n\t\tvar dataset = this.getDataset();\n\t\tvar meta = this.getMeta();\n\t\tvar count = 0;\n\n\t\thelpers$1.each(meta.data, function(element, index) {\n\t\t\tif (!isNaN(dataset.data[index]) && !element.hidden) {\n\t\t\t\tcount++;\n\t\t\t}\n\t\t});\n\n\t\treturn count;\n\t},\n\n\t/**\n\t * @protected\n\t */\n\tsetHoverStyle: function(arc) {\n\t\tvar model = arc._model;\n\t\tvar options = arc._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\t\tvar valueOrDefault = helpers$1.valueOrDefault;\n\n\t\tarc.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault(options.hoverBorderWidth, options.borderWidth);\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_computeAngle: function(index) {\n\t\tvar me = this;\n\t\tvar count = this.getMeta().count;\n\t\tvar dataset = me.getDataset();\n\t\tvar meta = me.getMeta();\n\n\t\tif (isNaN(dataset.data[index]) || meta.data[index].hidden) {\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Scriptable options\n\t\tvar context = {\n\t\t\tchart: me.chart,\n\t\t\tdataIndex: index,\n\t\t\tdataset: dataset,\n\t\t\tdatasetIndex: me.index\n\t\t};\n\n\t\treturn resolve$3([\n\t\t\tme.chart.options.elements.arc.angle,\n\t\t\t(2 * Math.PI) / count\n\t\t], context, index);\n\t}\n});\n\ncore_defaults._set('pie', helpers$1.clone(core_defaults.doughnut));\ncore_defaults._set('pie', {\n\tcutoutPercentage: 0\n});\n\n// Pie charts are Doughnut chart with different defaults\nvar controller_pie = controller_doughnut;\n\nvar valueOrDefault$7 = helpers$1.valueOrDefault;\n\ncore_defaults._set('radar', {\n\tspanGaps: false,\n\tscale: {\n\t\ttype: 'radialLinear'\n\t},\n\telements: {\n\t\tline: {\n\t\t\tfill: 'start',\n\t\t\ttension: 0 // no bezier in radar\n\t\t}\n\t}\n});\n\nvar controller_radar = core_datasetController.extend({\n\tdatasetElementType: elements.Line,\n\n\tdataElementType: elements.Point,\n\n\tlinkScales: helpers$1.noop,\n\n\t/**\n\t * @private\n\t */\n\t_datasetElementOptions: [\n\t\t'backgroundColor',\n\t\t'borderWidth',\n\t\t'borderColor',\n\t\t'borderCapStyle',\n\t\t'borderDash',\n\t\t'borderDashOffset',\n\t\t'borderJoinStyle',\n\t\t'fill'\n\t],\n\n\t/**\n\t * @private\n\t */\n\t_dataElementOptions: {\n\t\tbackgroundColor: 'pointBackgroundColor',\n\t\tborderColor: 'pointBorderColor',\n\t\tborderWidth: 'pointBorderWidth',\n\t\thitRadius: 'pointHitRadius',\n\t\thoverBackgroundColor: 'pointHoverBackgroundColor',\n\t\thoverBorderColor: 'pointHoverBorderColor',\n\t\thoverBorderWidth: 'pointHoverBorderWidth',\n\t\thoverRadius: 'pointHoverRadius',\n\t\tpointStyle: 'pointStyle',\n\t\tradius: 'pointRadius',\n\t\trotation: 'pointRotation'\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getIndexScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_getValueScaleId: function() {\n\t\treturn this.chart.scale.id;\n\t},\n\n\tupdate: function(reset) {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar line = meta.dataset;\n\t\tvar points = meta.data || [];\n\t\tvar scale = me.chart.scale;\n\t\tvar config = me._config;\n\t\tvar i, ilen;\n\n\t\t// Compatibility: If the properties are defined with only the old name, use those values\n\t\tif (config.tension !== undefined && config.lineTension === undefined) {\n\t\t\tconfig.lineTension = config.tension;\n\t\t}\n\n\t\t// Utility\n\t\tline._scale = scale;\n\t\tline._datasetIndex = me.index;\n\t\t// Data\n\t\tline._children = points;\n\t\tline._loop = true;\n\t\t// Model\n\t\tline._model = me._resolveDatasetElementOptions(line);\n\n\t\tline.pivot();\n\n\t\t// Update Points\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tme.updateElement(points[i], i, reset);\n\t\t}\n\n\t\t// Update bezier control points\n\t\tme.updateBezierControlPoints();\n\n\t\t// Now pivot the point for animation\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tpoints[i].pivot();\n\t\t}\n\t},\n\n\tupdateElement: function(point, index, reset) {\n\t\tvar me = this;\n\t\tvar custom = point.custom || {};\n\t\tvar dataset = me.getDataset();\n\t\tvar scale = me.chart.scale;\n\t\tvar pointPosition = scale.getPointPositionForValue(index, dataset.data[index]);\n\t\tvar options = me._resolveDataElementOptions(point, index);\n\t\tvar lineModel = me.getMeta().dataset._model;\n\t\tvar x = reset ? scale.xCenter : pointPosition.x;\n\t\tvar y = reset ? scale.yCenter : pointPosition.y;\n\n\t\t// Utility\n\t\tpoint._scale = scale;\n\t\tpoint._options = options;\n\t\tpoint._datasetIndex = me.index;\n\t\tpoint._index = index;\n\n\t\t// Desired view properties\n\t\tpoint._model = {\n\t\t\tx: x, // value not used in dataset scale, but we want a consistent API between scales\n\t\t\ty: y,\n\t\t\tskip: custom.skip || isNaN(x) || isNaN(y),\n\t\t\t// Appearance\n\t\t\tradius: options.radius,\n\t\t\tpointStyle: options.pointStyle,\n\t\t\trotation: options.rotation,\n\t\t\tbackgroundColor: options.backgroundColor,\n\t\t\tborderColor: options.borderColor,\n\t\t\tborderWidth: options.borderWidth,\n\t\t\ttension: valueOrDefault$7(custom.tension, lineModel ? lineModel.tension : 0),\n\n\t\t\t// Tooltip\n\t\t\thitRadius: options.hitRadius\n\t\t};\n\t},\n\n\t/**\n\t * @private\n\t */\n\t_resolveDatasetElementOptions: function() {\n\t\tvar me = this;\n\t\tvar config = me._config;\n\t\tvar options = me.chart.options;\n\t\tvar values = core_datasetController.prototype._resolveDatasetElementOptions.apply(me, arguments);\n\n\t\tvalues.spanGaps = valueOrDefault$7(config.spanGaps, options.spanGaps);\n\t\tvalues.tension = valueOrDefault$7(config.lineTension, options.elements.line.tension);\n\n\t\treturn values;\n\t},\n\n\tupdateBezierControlPoints: function() {\n\t\tvar me = this;\n\t\tvar meta = me.getMeta();\n\t\tvar area = me.chart.chartArea;\n\t\tvar points = meta.data || [];\n\t\tvar i, ilen, model, controlPoints;\n\n\t\t// Only consider points that are drawn in case the spanGaps option is used\n\t\tif (meta.dataset._model.spanGaps) {\n\t\t\tpoints = points.filter(function(pt) {\n\t\t\t\treturn !pt._model.skip;\n\t\t\t});\n\t\t}\n\n\t\tfunction capControlPoint(pt, min, max) {\n\t\t\treturn Math.max(Math.min(pt, max), min);\n\t\t}\n\n\t\tfor (i = 0, ilen = points.length; i < ilen; ++i) {\n\t\t\tmodel = points[i]._model;\n\t\t\tcontrolPoints = helpers$1.splineCurve(\n\t\t\t\thelpers$1.previousItem(points, i, true)._model,\n\t\t\t\tmodel,\n\t\t\t\thelpers$1.nextItem(points, i, true)._model,\n\t\t\t\tmodel.tension\n\t\t\t);\n\n\t\t\t// Prevent the bezier going outside of the bounds of the graph\n\t\t\tmodel.controlPointPreviousX = capControlPoint(controlPoints.previous.x, area.left, area.right);\n\t\t\tmodel.controlPointPreviousY = capControlPoint(controlPoints.previous.y, area.top, area.bottom);\n\t\t\tmodel.controlPointNextX = capControlPoint(controlPoints.next.x, area.left, area.right);\n\t\t\tmodel.controlPointNextY = capControlPoint(controlPoints.next.y, area.top, area.bottom);\n\t\t}\n\t},\n\n\tsetHoverStyle: function(point) {\n\t\tvar model = point._model;\n\t\tvar options = point._options;\n\t\tvar getHoverColor = helpers$1.getHoverColor;\n\n\t\tpoint.$previousStyle = {\n\t\t\tbackgroundColor: model.backgroundColor,\n\t\t\tborderColor: model.borderColor,\n\t\t\tborderWidth: model.borderWidth,\n\t\t\tradius: model.radius\n\t\t};\n\n\t\tmodel.backgroundColor = valueOrDefault$7(options.hoverBackgroundColor, getHoverColor(options.backgroundColor));\n\t\tmodel.borderColor = valueOrDefault$7(options.hoverBorderColor, getHoverColor(options.borderColor));\n\t\tmodel.borderWidth = valueOrDefault$7(options.hoverBorderWidth, options.borderWidth);\n\t\tmodel.radius = valueOrDefault$7(options.hoverRadius, options.radius);\n\t}\n});\n\ncore_defaults._set('scatter', {\n\thover: {\n\t\tmode: 'single'\n\t},\n\n\tscales: {\n\t\txAxes: [{\n\t\t\tid: 'x-axis-1', // need an ID so datasets can reference the scale\n\t\t\ttype: 'linear', // scatter should not use a category axis\n\t\t\tposition: 'bottom'\n\t\t}],\n\t\tyAxes: [{\n\t\t\tid: 'y-axis-1',\n\t\t\ttype: 'linear',\n\t\t\tposition: 'left'\n\t\t}]\n\t},\n\n\ttooltips: {\n\t\tcallbacks: {\n\t\t\ttitle: function() {\n\t\t\t\treturn ''; // doesn't make sense for scatter since data are formatted as a point\n\t\t\t},\n\t\t\tlabel: function(item) {\n\t\t\t\treturn '(' + item.xLabel + ', ' + item.yLabel + ')';\n\t\t\t}\n\t\t}\n\t}\n});\n\ncore_defaults._set('global', {\n\tdatasets: {\n\t\tscatter: {\n\t\t\tshowLine: false\n\t\t}\n\t}\n});\n\n// Scatter charts use line controllers\nvar controller_scatter = controller_line;\n\n// NOTE export a map in which the key represents the controller type, not\n// the class, and so must be CamelCase in order to be correctly retrieved\n// by the controller in core.controller.js (`controllers[meta.type]`).\n\nvar controllers = {\n\tbar: controller_bar,\n\tbubble: controller_bubble,\n\tdoughnut: controller_doughnut,\n\thorizontalBar: controller_horizontalBar,\n\tline: controller_line,\n\tpolarArea: controller_polarArea,\n\tpie: controller_pie,\n\tradar: controller_radar,\n\tscatter: controller_scatter\n};\n\n/**\n * Helper function to get relative position for an event\n * @param {Event|IEvent} event - The event to get the position for\n * @param {Chart} chart - The chart\n * @returns {object} the event position\n */\nfunction getRelativePosition(e, chart) {\n\tif (e.native) {\n\t\treturn {\n\t\t\tx: e.x,\n\t\t\ty: e.y\n\t\t};\n\t}\n\n\treturn helpers$1.getRelativePosition(e, chart);\n}\n\n/**\n * Helper function to traverse all of the visible elements in the chart\n * @param {Chart} chart - the chart\n * @param {function} handler - the callback to execute for each visible item\n */\nfunction parseVisibleItems(chart, handler) {\n\tvar metasets = chart._getSortedVisibleDatasetMetas();\n\tvar metadata, i, j, ilen, jlen, element;\n\n\tfor (i = 0, ilen = metasets.length; i < ilen; ++i) {\n\t\tmetadata = metasets[i].data;\n\t\tfor (j = 0, jlen = metadata.length; j < jlen; ++j) {\n\t\t\telement = metadata[j];\n\t\t\tif (!element._view.skip) {\n\t\t\t\thandler(element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Helper function to get the items that intersect the event position\n * @param {ChartElement[]} items - elements to filter\n * @param {object} position - the point to be nearest to\n * @return {ChartElement[]} the nearest items\n */\nfunction getIntersectItems(chart, position) {\n\tvar elements = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (element.inRange(position.x, position.y)) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * Helper function to get the items nearest to the event position considering all visible items in teh chart\n * @param {Chart} chart - the chart to look at elements from\n * @param {object} position - the point to be nearest to\n * @param {boolean} intersect - if true, only consider items that intersect the position\n * @param {function} distanceMetric - function to provide the distance between points\n * @return {ChartElement[]} the nearest items\n */\nfunction getNearestItems(chart, position, intersect, distanceMetric) {\n\tvar minDistance = Number.POSITIVE_INFINITY;\n\tvar nearestItems = [];\n\n\tparseVisibleItems(chart, function(element) {\n\t\tif (intersect && !element.inRange(position.x, position.y)) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar center = element.getCenterPoint();\n\t\tvar distance = distanceMetric(position, center);\n\t\tif (distance < minDistance) {\n\t\t\tnearestItems = [element];\n\t\t\tminDistance = distance;\n\t\t} else if (distance === minDistance) {\n\t\t\t// Can have multiple items at the same distance in which case we sort by size\n\t\t\tnearestItems.push(element);\n\t\t}\n\t});\n\n\treturn nearestItems;\n}\n\n/**\n * Get a distance metric function for two points based on the\n * axis mode setting\n * @param {string} axis - the axis mode. x|y|xy\n */\nfunction getDistanceMetricForAxis(axis) {\n\tvar useX = axis.indexOf('x') !== -1;\n\tvar useY = axis.indexOf('y') !== -1;\n\n\treturn function(pt1, pt2) {\n\t\tvar deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n\t\tvar deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n\t\treturn Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n\t};\n}\n\nfunction indexMode(chart, e, options) {\n\tvar position = getRelativePosition(e, chart);\n\t// Default axis for index mode is 'x' to match old behaviour\n\toptions.axis = options.axis || 'x';\n\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\tvar elements = [];\n\n\tif (!items.length) {\n\t\treturn [];\n\t}\n\n\tchart._getSortedVisibleDatasetMetas().forEach(function(meta) {\n\t\tvar element = meta.data[items[0]._index];\n\n\t\t// don't count items that are skipped (null data)\n\t\tif (element && !element._view.skip) {\n\t\t\telements.push(element);\n\t\t}\n\t});\n\n\treturn elements;\n}\n\n/**\n * @interface IInteractionOptions\n */\n/**\n * If true, only consider items that intersect the point\n * @name IInterfaceOptions#boolean\n * @type Boolean\n */\n\n/**\n * Contains interaction related functions\n * @namespace Chart.Interaction\n */\nvar core_interaction = {\n\t// Helper function for different modes\n\tmodes: {\n\t\tsingle: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar elements = [];\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\telements.push(element);\n\t\t\t\t\treturn elements;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn elements.slice(0, 1);\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.label\n\t\t * @deprecated since version 2.4.0\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\tlabel: indexMode,\n\n\t\t/**\n\t\t * Returns items at the same index. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect mode is false, we find the nearest item and return the items at the same index as that item\n\t\t * @function Chart.Interaction.modes.index\n\t\t * @since v2.4.0\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tindex: indexMode,\n\n\t\t/**\n\t\t * Returns items in the same dataset. If the options.intersect parameter is true, we only return items if we intersect something\n\t\t * If the options.intersect is false, we find the nearest item and return the items in that dataset\n\t\t * @function Chart.Interaction.modes.dataset\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use during interaction\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tdataset: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\tvar items = options.intersect ? getIntersectItems(chart, position) : getNearestItems(chart, position, false, distanceMetric);\n\n\t\t\tif (items.length > 0) {\n\t\t\t\titems = chart.getDatasetMeta(items[0]._datasetIndex).data;\n\t\t\t}\n\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * @function Chart.Interaction.modes.x-axis\n\t\t * @deprecated since version 2.4.0. Use index mode and intersect == true\n\t\t * @todo remove at version 3\n\t\t * @private\n\t\t */\n\t\t'x-axis': function(chart, e) {\n\t\t\treturn indexMode(chart, e, {intersect: false});\n\t\t},\n\n\t\t/**\n\t\t * Point mode returns all elements that hit test based on the event position\n\t\t * of the event\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tpoint: function(chart, e) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\treturn getIntersectItems(chart, position);\n\t\t},\n\n\t\t/**\n\t\t * nearest mode returns the element closest to the point\n\t\t * @function Chart.Interaction.modes.intersect\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tnearest: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\toptions.axis = options.axis || 'xy';\n\t\t\tvar distanceMetric = getDistanceMetricForAxis(options.axis);\n\t\t\treturn getNearestItems(chart, position, options.intersect, distanceMetric);\n\t\t},\n\n\t\t/**\n\t\t * x mode returns the elements that hit-test at the current x coordinate\n\t\t * @function Chart.Interaction.modes.x\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\tx: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inXRange(position.x)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t},\n\n\t\t/**\n\t\t * y mode returns the elements that hit-test at the current y coordinate\n\t\t * @function Chart.Interaction.modes.y\n\t\t * @param {Chart} chart - the chart we are returning items from\n\t\t * @param {Event} e - the event we are find things at\n\t\t * @param {IInteractionOptions} options - options to use\n\t\t * @return {Chart.Element[]} Array of elements that are under the point. If none are found, an empty array is returned\n\t\t */\n\t\ty: function(chart, e, options) {\n\t\t\tvar position = getRelativePosition(e, chart);\n\t\t\tvar items = [];\n\t\t\tvar intersectsItem = false;\n\n\t\t\tparseVisibleItems(chart, function(element) {\n\t\t\t\tif (element.inYRange(position.y)) {\n\t\t\t\t\titems.push(element);\n\t\t\t\t}\n\n\t\t\t\tif (element.inRange(position.x, position.y)) {\n\t\t\t\t\tintersectsItem = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// If we want to trigger on an intersect and we don't have any items\n\t\t\t// that intersect the position, return nothing\n\t\t\tif (options.intersect && !intersectsItem) {\n\t\t\t\titems = [];\n\t\t\t}\n\t\t\treturn items;\n\t\t}\n\t}\n};\n\nvar extend = helpers$1.extend;\n\nfunction filterByPosition(array, position) {\n\treturn helpers$1.where(array, function(v) {\n\t\treturn v.pos === position;\n\t});\n}\n\nfunction sortByWeight(array, reverse) {\n\treturn array.sort(function(a, b) {\n\t\tvar v0 = reverse ? b : a;\n\t\tvar v1 = reverse ? a : b;\n\t\treturn v0.weight === v1.weight ?\n\t\t\tv0.index - v1.index :\n\t\t\tv0.weight - v1.weight;\n\t});\n}\n\nfunction wrapBoxes(boxes) {\n\tvar layoutBoxes = [];\n\tvar i, ilen, box;\n\n\tfor (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n\t\tbox = boxes[i];\n\t\tlayoutBoxes.push({\n\t\t\tindex: i,\n\t\t\tbox: box,\n\t\t\tpos: box.position,\n\t\t\thorizontal: box.isHorizontal(),\n\t\t\tweight: box.weight\n\t\t});\n\t}\n\treturn layoutBoxes;\n}\n\nfunction setLayoutDims(layouts, params) {\n\tvar i, ilen, layout;\n\tfor (i = 0, ilen = layouts.length; i < ilen; ++i) {\n\t\tlayout = layouts[i];\n\t\t// store width used instead of chartArea.w in fitBoxes\n\t\tlayout.width = layout.horizontal\n\t\t\t? layout.box.fullWidth && params.availableWidth\n\t\t\t: params.vBoxMaxWidth;\n\t\t// store height used instead of chartArea.h in fitBoxes\n\t\tlayout.height = layout.horizontal && params.hBoxMaxHeight;\n\t}\n}\n\nfunction buildLayoutBoxes(boxes) {\n\tvar layoutBoxes = wrapBoxes(boxes);\n\tvar left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n\tvar right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n\tvar top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n\tvar bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n\n\treturn {\n\t\tleftAndTop: left.concat(top),\n\t\trightAndBottom: right.concat(bottom),\n\t\tchartArea: filterByPosition(layoutBoxes, 'chartArea'),\n\t\tvertical: left.concat(right),\n\t\thorizontal: top.concat(bottom)\n\t};\n}\n\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n\treturn Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\n\nfunction updateDims(chartArea, params, layout) {\n\tvar box = layout.box;\n\tvar maxPadding = chartArea.maxPadding;\n\tvar newWidth, newHeight;\n\n\tif (layout.size) {\n\t\t// this layout was already counted for, lets first reduce old size\n\t\tchartArea[layout.pos] -= layout.size;\n\t}\n\tlayout.size = layout.horizontal ? box.height : box.width;\n\tchartArea[layout.pos] += layout.size;\n\n\tif (box.getPadding) {\n\t\tvar boxPadding = box.getPadding();\n\t\tmaxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n\t\tmaxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n\t\tmaxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n\t\tmaxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n\t}\n\n\tnewWidth = params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right');\n\tnewHeight = params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom');\n\n\tif (newWidth !== chartArea.w || newHeight !== chartArea.h) {\n\t\tchartArea.w = newWidth;\n\t\tchartArea.h = newHeight;\n\n\t\t// return true if chart area changed in layout's direction\n\t\treturn layout.horizontal ? newWidth !== chartArea.w : newHeight !== chartArea.h;\n\t}\n}\n\nfunction handleMaxPadding(chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction updatePos(pos) {\n\t\tvar change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n\t\tchartArea[pos] += change;\n\t\treturn change;\n\t}\n\tchartArea.y += updatePos('top');\n\tchartArea.x += updatePos('left');\n\tupdatePos('right');\n\tupdatePos('bottom');\n}\n\nfunction getMargins(horizontal, chartArea) {\n\tvar maxPadding = chartArea.maxPadding;\n\n\tfunction marginForPositions(positions) {\n\t\tvar margin = {left: 0, top: 0, right: 0, bottom: 0};\n\t\tpositions.forEach(function(pos) {\n\t\t\tmargin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n\t\t});\n\t\treturn margin;\n\t}\n\n\treturn horizontal\n\t\t? marginForPositions(['left', 'right'])\n\t\t: marginForPositions(['top', 'bottom']);\n}\n\nfunction fitBoxes(boxes, chartArea, params) {\n\tvar refitBoxes = [];\n\tvar i, ilen, layout, box, refit, changed;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\n\t\tbox.update(\n\t\t\tlayout.width || chartArea.w,\n\t\t\tlayout.height || chartArea.h,\n\t\t\tgetMargins(layout.horizontal, chartArea)\n\t\t);\n\t\tif (updateDims(chartArea, params, layout)) {\n\t\t\tchanged = true;\n\t\t\tif (refitBoxes.length) {\n\t\t\t\t// Dimensions changed and there were non full width boxes before this\n\t\t\t\t// -> we have to refit those\n\t\t\t\trefit = true;\n\t\t\t}\n\t\t}\n\t\tif (!box.fullWidth) { // fullWidth boxes don't need to be re-fitted in any case\n\t\t\trefitBoxes.push(layout);\n\t\t}\n\t}\n\n\treturn refit ? fitBoxes(refitBoxes, chartArea, params) || changed : changed;\n}\n\nfunction placeBoxes(boxes, chartArea, params) {\n\tvar userPadding = params.padding;\n\tvar x = chartArea.x;\n\tvar y = chartArea.y;\n\tvar i, ilen, layout, box;\n\n\tfor (i = 0, ilen = boxes.length; i < ilen; ++i) {\n\t\tlayout = boxes[i];\n\t\tbox = layout.box;\n\t\tif (layout.horizontal) {\n\t\t\tbox.left = box.fullWidth ? userPadding.left : chartArea.left;\n\t\t\tbox.right = box.fullWidth ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\n\t\t\tbox.top = y;\n\t\t\tbox.bottom = y + box.height;\n\t\t\tbox.width = box.right - box.left;\n\t\t\ty = box.bottom;\n\t\t} else {\n\t\t\tbox.left = x;\n\t\t\tbox.right = x + box.width;\n\t\t\tbox.top = chartArea.top;\n\t\t\tbox.bottom = chartArea.top + chartArea.h;\n\t\t\tbox.height = box.bottom - box.top;\n\t\t\tx = box.right;\n\t\t}\n\t}\n\n\tchartArea.x = x;\n\tchartArea.y = y;\n}\n\ncore_defaults._set('global', {\n\tlayout: {\n\t\tpadding: {\n\t\t\ttop: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\tleft: 0\n\t\t}\n\t}\n});\n\n/**\n * @interface ILayoutItem\n * @prop {string} position - The position of the item in the chart layout. Possible values are\n * 'left', 'top', 'right', 'bottom', and 'chartArea'\n * @prop {number} weight - The weight used to sort the item. Higher weights are further away from the chart area\n * @prop {boolean} fullWidth - if true, and the item is horizontal, then push vertical boxes down\n * @prop {function} isHorizontal - returns true if the layout item is horizontal (ie. top or bottom)\n * @prop {function} update - Takes two parameters: width and height. Returns size of item\n * @prop {function} getPadding - Returns an object with padding on the edges\n * @prop {number} width - Width of item. Must be valid after update()\n * @prop {number} height - Height of item. Must be valid after update()\n * @prop {number} left - Left edge of the item. Set by layout system and cannot be used in update\n * @prop {number} top - Top edge of the item. Set by layout system and cannot be used in update\n * @prop {number} right - Right edge of the item. Set by layout system and cannot be used in update\n * @prop {number} bottom - Bottom edge of the item. Set by layout system and cannot be used in update\n */\n\n// The layout service is very self explanatory. It's responsible for the layout within a chart.\n// Scales, Legends and Plugins all rely on the layout service and can easily register to be placed anywhere they need\n// It is this service's responsibility of carrying out that layout.\nvar core_layouts = {\n\tdefaults: {},\n\n\t/**\n\t * Register a box to a chart.\n\t * A box is simply a reference to an object that requires layout. eg. Scales, Legend, Title.\n\t * @param {Chart} chart - the chart to use\n\t * @param {ILayoutItem} item - the item to add to be layed out\n\t */\n\taddBox: function(chart, item) {\n\t\tif (!chart.boxes) {\n\t\t\tchart.boxes = [];\n\t\t}\n\n\t\t// initialize item with default values\n\t\titem.fullWidth = item.fullWidth || false;\n\t\titem.position = item.position || 'top';\n\t\titem.weight = item.weight || 0;\n\t\titem._layers = item._layers || function() {\n\t\t\treturn [{\n\t\t\t\tz: 0,\n\t\t\t\tdraw: function() {\n\t\t\t\t\titem.draw.apply(item, arguments);\n\t\t\t\t}\n\t\t\t}];\n\t\t};\n\n\t\tchart.boxes.push(item);\n\t},\n\n\t/**\n\t * Remove a layoutItem from a chart\n\t * @param {Chart} chart - the chart to remove the box from\n\t * @param {ILayoutItem} layoutItem - the item to remove from the layout\n\t */\n\tremoveBox: function(chart, layoutItem) {\n\t\tvar index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n\t\tif (index !== -1) {\n\t\t\tchart.boxes.splice(index, 1);\n\t\t}\n\t},\n\n\t/**\n\t * Sets (or updates) options on the given `item`.\n\t * @param {Chart} chart - the chart in which the item lives (or will be added to)\n\t * @param {ILayoutItem} item - the item to configure with the given options\n\t * @param {object} options - the new item options.\n\t */\n\tconfigure: function(chart, item, options) {\n\t\tvar props = ['fullWidth', 'position', 'weight'];\n\t\tvar ilen = props.length;\n\t\tvar i = 0;\n\t\tvar prop;\n\n\t\tfor (; i < ilen; ++i) {\n\t\t\tprop = props[i];\n\t\t\tif (options.hasOwnProperty(prop)) {\n\t\t\t\titem[prop] = options[prop];\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Fits boxes of the given chart into the given size by having each box measure itself\n\t * then running a fitting algorithm\n\t * @param {Chart} chart - the chart\n\t * @param {number} width - the width to fit into\n\t * @param {number} height - the height to fit into\n\t */\n\tupdate: function(chart, width, height) {\n\t\tif (!chart) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar layoutOptions = chart.options.layout || {};\n\t\tvar padding = helpers$1.options.toPadding(layoutOptions.padding);\n\n\t\tvar availableWidth = width - padding.width;\n\t\tvar availableHeight = height - padding.height;\n\t\tvar boxes = buildLayoutBoxes(chart.boxes);\n\t\tvar verticalBoxes = boxes.vertical;\n\t\tvar horizontalBoxes = boxes.horizontal;\n\n\t\t// Essentially we now have any number of boxes on each of the 4 sides.\n\t\t// Our canvas looks like the following.\n\t\t// The areas L1 and L2 are the left axes. R1 is the right axis, T1 is the top axis and\n\t\t// B1 is the bottom axis\n\t\t// There are also 4 quadrant-like locations (left to right instead of clockwise) reserved for chart overlays\n\t\t// These locations are single-box locations only, when trying to register a chartArea location that is already taken,\n\t\t// an error will be thrown.\n\t\t//\n\t\t// |----------------------------------------------------|\n\t\t// | T1 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t// | | | T2 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | C1 | | C2 | |\n\t\t// | | |----| |----| |\n\t\t// | | | | |\n\t\t// | L1 | L2 | ChartArea (C0) | R1 |\n\t\t// | | | | |\n\t\t// | | |----| |----| |\n\t\t// | | | C3 | | C4 | |\n\t\t// | |----|-------------------------------------|----|\n\t\t// | | | B1 | |\n\t\t// |----------------------------------------------------|\n\t\t// | B2 (Full Width) |\n\t\t// |----------------------------------------------------|\n\t\t//\n\n\t\tvar params = Object.freeze({\n\t\t\touterWidth: width,\n\t\t\touterHeight: height,\n\t\t\tpadding: padding,\n\t\t\tavailableWidth: availableWidth,\n\t\t\tvBoxMaxWidth: availableWidth / 2 / verticalBoxes.length,\n\t\t\thBoxMaxHeight: availableHeight / 2\n\t\t});\n\t\tvar chartArea = extend({\n\t\t\tmaxPadding: extend({}, padding),\n\t\t\tw: availableWidth,\n\t\t\th: availableHeight,\n\t\t\tx: padding.left,\n\t\t\ty: padding.top\n\t\t}, padding);\n\n\t\tsetLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n\n\t\t// First fit vertical boxes\n\t\tfitBoxes(verticalBoxes, chartArea, params);\n\n\t\t// Then fit horizontal boxes\n\t\tif (fitBoxes(horizontalBoxes, chartArea, params)) {\n\t\t\t// if the area changed, re-fit vertical boxes\n\t\t\tfitBoxes(verticalBoxes, chartArea, params);\n\t\t}\n\n\t\thandleMaxPadding(chartArea);\n\n\t\t// Finally place the boxes to correct coordinates\n\t\tplaceBoxes(boxes.leftAndTop, chartArea, params);\n\n\t\t// Move to opposite side of chart\n\t\tchartArea.x += chartArea.w;\n\t\tchartArea.y += chartArea.h;\n\n\t\tplaceBoxes(boxes.rightAndBottom, chartArea, params);\n\n\t\tchart.chartArea = {\n\t\t\tleft: chartArea.left,\n\t\t\ttop: chartArea.top,\n\t\t\tright: chartArea.left + chartArea.w,\n\t\t\tbottom: chartArea.top + chartArea.h\n\t\t};\n\n\t\t// Finally update boxes in chartArea (radial scale for example)\n\t\thelpers$1.each(boxes.chartArea, function(layout) {\n\t\t\tvar box = layout.box;\n\t\t\textend(box, chart.chartArea);\n\t\t\tbox.update(chartArea.w, chartArea.h);\n\t\t});\n\t}\n};\n\n/**\n * Platform fallback implementation (minimal).\n * @see https://github.com/chartjs/Chart.js/pull/4591#issuecomment-319575939\n */\n\nvar platform_basic = {\n\tacquireContext: function(item) {\n\t\tif (item && item.canvas) {\n\t\t\t// Support for any object associated to a canvas (including a context2d)\n\t\t\titem = item.canvas;\n\t\t}\n\n\t\treturn item && item.getContext('2d') || null;\n\t}\n};\n\nvar platform_dom = \"/*\\n * DOM element rendering detection\\n * https://davidwalsh.name/detect-node-insertion\\n */\\n@keyframes chartjs-render-animation {\\n\\tfrom { opacity: 0.99; }\\n\\tto { opacity: 1; }\\n}\\n\\n.chartjs-render-monitor {\\n\\tanimation: chartjs-render-animation 0.001s;\\n}\\n\\n/*\\n * DOM element resizing detection\\n * https://github.com/marcj/css-element-queries\\n */\\n.chartjs-size-monitor,\\n.chartjs-size-monitor-expand,\\n.chartjs-size-monitor-shrink {\\n\\tposition: absolute;\\n\\tdirection: ltr;\\n\\tleft: 0;\\n\\ttop: 0;\\n\\tright: 0;\\n\\tbottom: 0;\\n\\toverflow: hidden;\\n\\tpointer-events: none;\\n\\tvisibility: hidden;\\n\\tz-index: -1;\\n}\\n\\n.chartjs-size-monitor-expand > div {\\n\\tposition: absolute;\\n\\twidth: 1000000px;\\n\\theight: 1000000px;\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\\n.chartjs-size-monitor-shrink > div {\\n\\tposition: absolute;\\n\\twidth: 200%;\\n\\theight: 200%;\\n\\tleft: 0;\\n\\ttop: 0;\\n}\\n\";\n\nvar platform_dom$1 = /*#__PURE__*/Object.freeze({\n__proto__: null,\n'default': platform_dom\n});\n\nvar stylesheet = getCjsExportFromNamespace(platform_dom$1);\n\nvar EXPANDO_KEY = '$chartjs';\nvar CSS_PREFIX = 'chartjs-';\nvar CSS_SIZE_MONITOR = CSS_PREFIX + 'size-monitor';\nvar CSS_RENDER_MONITOR = CSS_PREFIX + 'render-monitor';\nvar CSS_RENDER_ANIMATION = CSS_PREFIX + 'render-animation';\nvar ANIMATION_START_EVENTS = ['animationstart', 'webkitAnimationStart'];\n\n/**\n * DOM event types -> Chart.js event types.\n * Note: only events with different types are mapped.\n * @see https://developer.mozilla.org/en-US/docs/Web/Events\n */\nvar EVENT_TYPES = {\n\ttouchstart: 'mousedown',\n\ttouchmove: 'mousemove',\n\ttouchend: 'mouseup',\n\tpointerenter: 'mouseenter',\n\tpointerdown: 'mousedown',\n\tpointermove: 'mousemove',\n\tpointerup: 'mouseup',\n\tpointerleave: 'mouseout',\n\tpointerout: 'mouseout'\n};\n\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns {number} Size in pixels or undefined if unknown.\n */\nfunction readUsedSize(element, property) {\n\tvar value = helpers$1.getStyle(element, property);\n\tvar matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n\treturn matches ? Number(matches[1]) : undefined;\n}\n\n/**\n * Initializes the canvas style and render size without modifying the canvas display size,\n * since responsiveness is handled by the controller.resize() method. The config is used\n * to determine the aspect ratio to apply in case no explicit height has been specified.\n */\nfunction initCanvas(canvas, config) {\n\tvar style = canvas.style;\n\n\t// NOTE(SB) canvas.getAttribute('width') !== canvas.width: in the first case it\n\t// returns null or '' if no explicit value has been set to the canvas attribute.\n\tvar renderHeight = canvas.getAttribute('height');\n\tvar renderWidth = canvas.getAttribute('width');\n\n\t// Chart.js modifies some canvas values that we want to restore on destroy\n\tcanvas[EXPANDO_KEY] = {\n\t\tinitial: {\n\t\t\theight: renderHeight,\n\t\t\twidth: renderWidth,\n\t\t\tstyle: {\n\t\t\t\tdisplay: style.display,\n\t\t\t\theight: style.height,\n\t\t\t\twidth: style.width\n\t\t\t}\n\t\t}\n\t};\n\n\t// Force canvas to display as block to avoid extra space caused by inline\n\t// elements, which would interfere with the responsive resize process.\n\t// https://github.com/chartjs/Chart.js/issues/2538\n\tstyle.display = style.display || 'block';\n\n\tif (renderWidth === null || renderWidth === '') {\n\t\tvar displayWidth = readUsedSize(canvas, 'width');\n\t\tif (displayWidth !== undefined) {\n\t\t\tcanvas.width = displayWidth;\n\t\t}\n\t}\n\n\tif (renderHeight === null || renderHeight === '') {\n\t\tif (canvas.style.height === '') {\n\t\t\t// If no explicit render height and style height, let's apply the aspect ratio,\n\t\t\t// which one can be specified by the user but also by charts as default option\n\t\t\t// (i.e. options.aspectRatio). If not specified, use canvas aspect ratio of 2.\n\t\t\tcanvas.height = canvas.width / (config.options.aspectRatio || 2);\n\t\t} else {\n\t\t\tvar displayHeight = readUsedSize(canvas, 'height');\n\t\t\tif (displayWidth !== undefined) {\n\t\t\t\tcanvas.height = displayHeight;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn canvas;\n}\n\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */\nvar supportsEventListenerOptions = (function() {\n\tvar supports = false;\n\ttry {\n\t\tvar options = Object.defineProperty({}, 'passive', {\n\t\t\t// eslint-disable-next-line getter-return\n\t\t\tget: function() {\n\t\t\t\tsupports = true;\n\t\t\t}\n\t\t});\n\t\twindow.addEventListener('e', null, options);\n\t} catch (e) {\n\t\t// continue regardless of error\n\t}\n\treturn supports;\n}());\n\n// Default passive to true as expected by Chrome for 'touchstart' and 'touchend' events.\n// https://github.com/chartjs/Chart.js/issues/4287\nvar eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\n\nfunction addListener(node, type, listener) {\n\tnode.addEventListener(type, listener, eventListenerOptions);\n}\n\nfunction removeListener(node, type, listener) {\n\tnode.removeEventListener(type, listener, eventListenerOptions);\n}\n\nfunction createEvent(type, chart, x, y, nativeEvent) {\n\treturn {\n\t\ttype: type,\n\t\tchart: chart,\n\t\tnative: nativeEvent || null,\n\t\tx: x !== undefined ? x : null,\n\t\ty: y !== undefined ? y : null,\n\t};\n}\n\nfunction fromNativeEvent(event, chart) {\n\tvar type = EVENT_TYPES[event.type] || event.type;\n\tvar pos = helpers$1.getRelativePosition(event, chart);\n\treturn createEvent(type, chart, pos.x, pos.y, event);\n}\n\nfunction throttled(fn, thisArg) {\n\tvar ticking = false;\n\tvar args = [];\n\n\treturn function() {\n\t\targs = Array.prototype.slice.call(arguments);\n\t\tthisArg = thisArg || this;\n\n\t\tif (!ticking) {\n\t\t\tticking = true;\n\t\t\thelpers$1.requestAnimFrame.call(window, function() {\n\t\t\t\tticking = false;\n\t\t\t\tfn.apply(thisArg, args);\n\t\t\t});\n\t\t}\n\t};\n}\n\nfunction createDiv(cls) {\n\tvar el = document.createElement('div');\n\tel.className = cls || '';\n\treturn el;\n}\n\n// Implementation based on https://github.com/marcj/css-element-queries\nfunction createResizer(handler) {\n\tvar maxSize = 1000000;\n\n\t// NOTE(SB) Don't use innerHTML because it could be considered unsafe.\n\t// https://github.com/chartjs/Chart.js/issues/5902\n\tvar resizer = createDiv(CSS_SIZE_MONITOR);\n\tvar expand = createDiv(CSS_SIZE_MONITOR + '-expand');\n\tvar shrink = createDiv(CSS_SIZE_MONITOR + '-shrink');\n\n\texpand.appendChild(createDiv());\n\tshrink.appendChild(createDiv());\n\n\tresizer.appendChild(expand);\n\tresizer.appendChild(shrink);\n\tresizer._reset = function() {\n\t\texpand.scrollLeft = maxSize;\n\t\texpand.scrollTop = maxSize;\n\t\tshrink.scrollLeft = maxSize;\n\t\tshrink.scrollTop = maxSize;\n\t};\n\n\tvar onScroll = function() {\n\t\tresizer._reset();\n\t\thandler();\n\t};\n\n\taddListener(expand, 'scroll', onScroll.bind(expand, 'expand'));\n\taddListener(shrink, 'scroll', onScroll.bind(shrink, 'shrink'));\n\n\treturn resizer;\n}\n\n// https://davidwalsh.name/detect-node-insertion\nfunction watchForRender(node, handler) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\tvar proxy = expando.renderProxy = function(e) {\n\t\tif (e.animationName === CSS_RENDER_ANIMATION) {\n\t\t\thandler();\n\t\t}\n\t};\n\n\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\taddListener(node, type, proxy);\n\t});\n\n\t// #4737: Chrome might skip the CSS animation when the CSS_RENDER_MONITOR class\n\t// is removed then added back immediately (same animation frame?). Accessing the\n\t// `offsetParent` property will force a reflow and re-evaluate the CSS animation.\n\t// https://gist.github.com/paulirish/5d52fb081b3570c81e3a#box-metrics\n\t// https://github.com/chartjs/Chart.js/issues/4737\n\texpando.reflow = !!node.offsetParent;\n\n\tnode.classList.add(CSS_RENDER_MONITOR);\n}\n\nfunction unwatchForRender(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar proxy = expando.renderProxy;\n\n\tif (proxy) {\n\t\thelpers$1.each(ANIMATION_START_EVENTS, function(type) {\n\t\t\tremoveListener(node, type, proxy);\n\t\t});\n\n\t\tdelete expando.renderProxy;\n\t}\n\n\tnode.classList.remove(CSS_RENDER_MONITOR);\n}\n\nfunction addResizeListener(node, listener, chart) {\n\tvar expando = node[EXPANDO_KEY] || (node[EXPANDO_KEY] = {});\n\n\t// Let's keep track of this added resizer and thus avoid DOM query when removing it.\n\tvar resizer = expando.resizer = createResizer(throttled(function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = chart.options.maintainAspectRatio && node.parentNode;\n\t\t\tvar w = container ? container.clientWidth : 0;\n\t\t\tlistener(createEvent('resize', chart));\n\t\t\tif (container && container.clientWidth < w && chart.canvas) {\n\t\t\t\t// If the container size shrank during chart resize, let's assume\n\t\t\t\t// scrollbar appeared. So we resize again with the scrollbar visible -\n\t\t\t\t// effectively making chart smaller and the scrollbar hidden again.\n\t\t\t\t// Because we are inside `throttled`, and currently `ticking`, scroll\n\t\t\t\t// events are ignored during this whole 2 resize process.\n\t\t\t\t// If we assumed wrong and something else happened, we are resizing\n\t\t\t\t// twice in a frame (potential performance issue)\n\t\t\t\tlistener(createEvent('resize', chart));\n\t\t\t}\n\t\t}\n\t}));\n\n\t// The resizer needs to be attached to the node parent, so we first need to be\n\t// sure that `node` is attached to the DOM before injecting the resizer element.\n\twatchForRender(node, function() {\n\t\tif (expando.resizer) {\n\t\t\tvar container = node.parentNode;\n\t\t\tif (container && container !== resizer.parentNode) {\n\t\t\t\tcontainer.insertBefore(resizer, container.firstChild);\n\t\t\t}\n\n\t\t\t// The container size might have changed, let's reset the resizer state.\n\t\t\tresizer._reset();\n\t\t}\n\t});\n}\n\nfunction removeResizeListener(node) {\n\tvar expando = node[EXPANDO_KEY] || {};\n\tvar resizer = expando.resizer;\n\n\tdelete expando.resizer;\n\tunwatchForRender(node);\n\n\tif (resizer && resizer.parentNode) {\n\t\tresizer.parentNode.removeChild(resizer);\n\t}\n}\n\n/**\n * Injects CSS styles inline if the styles are not already present.\n * @param {HTMLDocument|ShadowRoot} rootNode - the node to contain the \", \"
    \" ],\n\tcol: [ 2, \"\", \"
    \" ],\n\ttr: [ 2, \"\", \"
    \" ],\n\ttd: [ 3, \"\", \"
    \" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n// Support: IE <=9 only\nif ( !support.option ) {\n\twrapMap.optgroup = wrapMap.option = [ 1, \"\" ];\n}\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (trac-15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, attached, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (trac-12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tattached = isAttached( elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( attached ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\nvar rtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Only attach events to objects that accept data\n\t\tif ( !acceptData( elem ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = Object.create( null );\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\n\t\t\t// Make a writable jQuery.Event from the native event object\n\t\t\tevent = jQuery.event.fix( nativeEvent ),\n\n\t\t\thandlers = (\n\t\t\t\tdataPriv.get( this, \"events\" ) || Object.create( null )\n\t\t\t)[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// If the event is namespaced, then each handler is only invoked if it is\n\t\t\t\t// specially universal or its namespaces are a superset of the event's.\n\t\t\t\tif ( !event.rnamespace || handleObj.namespace === false ||\n\t\t\t\t\tevent.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (trac-13208)\n\t\t\t\t// Don't process clicks on disabled elements (trac-6911, trac-8165, trac-11382, trac-11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (trac-13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tclick: {\n\n\t\t\t// Utilize native event to ensure correct state for checkable inputs\n\t\t\tsetup: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Claim the first handler\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\t// dataPriv.set( el, \"click\", ... )\n\t\t\t\t\tleverageNative( el, \"click\", true );\n\t\t\t\t}\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\ttrigger: function( data ) {\n\n\t\t\t\t// For mutual compressibility with _default, replace `this` access with a local var.\n\t\t\t\t// `|| data` is dead code meant only to preserve the variable through minification.\n\t\t\t\tvar el = this || data;\n\n\t\t\t\t// Force setup before triggering a click\n\t\t\t\tif ( rcheckableType.test( el.type ) &&\n\t\t\t\t\tel.click && nodeName( el, \"input\" ) ) {\n\n\t\t\t\t\tleverageNative( el, \"click\" );\n\t\t\t\t}\n\n\t\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, suppress native .click() on links\n\t\t\t// Also prevent it if we're currently inside a leveraged native-event stack\n\t\t\t_default: function( event ) {\n\t\t\t\tvar target = event.target;\n\t\t\t\treturn rcheckableType.test( target.type ) &&\n\t\t\t\t\ttarget.click && nodeName( target, \"input\" ) &&\n\t\t\t\t\tdataPriv.get( target, \"click\" ) ||\n\t\t\t\t\tnodeName( target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Ensure the presence of an event listener that handles manually-triggered\n// synthetic events by interrupting progress until reinvoked in response to\n// *native* events that it fires directly, ensuring that state changes have\n// already occurred before other listeners are invoked.\nfunction leverageNative( el, type, isSetup ) {\n\n\t// Missing `isSetup` indicates a trigger call, which must force setup through jQuery.event.add\n\tif ( !isSetup ) {\n\t\tif ( dataPriv.get( el, type ) === undefined ) {\n\t\t\tjQuery.event.add( el, type, returnTrue );\n\t\t}\n\t\treturn;\n\t}\n\n\t// Register the controller as a special universal handler for all event namespaces\n\tdataPriv.set( el, type, false );\n\tjQuery.event.add( el, type, {\n\t\tnamespace: false,\n\t\thandler: function( event ) {\n\t\t\tvar result,\n\t\t\t\tsaved = dataPriv.get( this, type );\n\n\t\t\tif ( ( event.isTrigger & 1 ) && this[ type ] ) {\n\n\t\t\t\t// Interrupt processing of the outer synthetic .trigger()ed event\n\t\t\t\tif ( !saved ) {\n\n\t\t\t\t\t// Store arguments for use when handling the inner native event\n\t\t\t\t\t// There will always be at least one argument (an event object), so this array\n\t\t\t\t\t// will not be confused with a leftover capture object.\n\t\t\t\t\tsaved = slice.call( arguments );\n\t\t\t\t\tdataPriv.set( this, type, saved );\n\n\t\t\t\t\t// Trigger the native event and capture its result\n\t\t\t\t\tthis[ type ]();\n\t\t\t\t\tresult = dataPriv.get( this, type );\n\t\t\t\t\tdataPriv.set( this, type, false );\n\n\t\t\t\t\tif ( saved !== result ) {\n\n\t\t\t\t\t\t// Cancel the outer synthetic event\n\t\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\n\t\t\t\t// If this is an inner synthetic event for an event with a bubbling surrogate\n\t\t\t\t// (focus or blur), assume that the surrogate already propagated from triggering\n\t\t\t\t// the native event and prevent that from happening again here.\n\t\t\t\t// This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the\n\t\t\t\t// bubbling surrogate propagates *after* the non-bubbling base), but that seems\n\t\t\t\t// less bad than duplication.\n\t\t\t\t} else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) {\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t}\n\n\t\t\t// If this is a native event triggered above, everything is now in order\n\t\t\t// Fire an inner synthetic event with the original arguments\n\t\t\t} else if ( saved ) {\n\n\t\t\t\t// ...and capture the result\n\t\t\t\tdataPriv.set( this, type, jQuery.event.trigger(\n\t\t\t\t\tsaved[ 0 ],\n\t\t\t\t\tsaved.slice( 1 ),\n\t\t\t\t\tthis\n\t\t\t\t) );\n\n\t\t\t\t// Abort handling of the native event by all jQuery handlers while allowing\n\t\t\t\t// native handlers on the same element to run. On target, this is achieved\n\t\t\t\t// by stopping immediate propagation just on the jQuery event. However,\n\t\t\t\t// the native event is re-wrapped by a jQuery one on each level of the\n\t\t\t\t// propagation so the only way to stop it for jQuery is to stop it for\n\t\t\t\t// everyone via native `stopPropagation()`. This is not a problem for\n\t\t\t\t// focus/blur which don't bubble, but it does also stop click on checkboxes\n\t\t\t\t// and radios. We accept this limitation.\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.isImmediatePropagationStopped = returnTrue;\n\t\t\t}\n\t\t}\n\t} );\n}\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (trac-504, trac-13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcode: true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\twhich: true\n}, jQuery.event.addProp );\n\njQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( type, delegateType ) {\n\n\tfunction focusMappedHandler( nativeEvent ) {\n\t\tif ( document.documentMode ) {\n\n\t\t\t// Support: IE 11+\n\t\t\t// Attach a single focusin/focusout handler on the document while someone wants\n\t\t\t// focus/blur. This is because the former are synchronous in IE while the latter\n\t\t\t// are async. In other browsers, all those handlers are invoked synchronously.\n\n\t\t\t// `handle` from private data would already wrap the event, but we need\n\t\t\t// to change the `type` here.\n\t\t\tvar handle = dataPriv.get( this, \"handle\" ),\n\t\t\t\tevent = jQuery.event.fix( nativeEvent );\n\t\t\tevent.type = nativeEvent.type === \"focusin\" ? \"focus\" : \"blur\";\n\t\t\tevent.isSimulated = true;\n\n\t\t\t// First, handle focusin/focusout\n\t\t\thandle( nativeEvent );\n\n\t\t\t// ...then, handle focus/blur\n\t\t\t//\n\t\t\t// focus/blur don't bubble while focusin/focusout do; simulate the former by only\n\t\t\t// invoking the handler at the lower level.\n\t\t\tif ( event.target === event.currentTarget ) {\n\n\t\t\t\t// The setup part calls `leverageNative`, which, in turn, calls\n\t\t\t\t// `jQuery.event.add`, so event handle will already have been set\n\t\t\t\t// by this point.\n\t\t\t\thandle( event );\n\t\t\t}\n\t\t} else {\n\n\t\t\t// For non-IE browsers, attach a single capturing handler on the document\n\t\t\t// while someone wants focusin/focusout.\n\t\t\tjQuery.event.simulate( delegateType, nativeEvent.target,\n\t\t\t\tjQuery.event.fix( nativeEvent ) );\n\t\t}\n\t}\n\n\tjQuery.event.special[ type ] = {\n\n\t\t// Utilize native event if possible so blur/focus sequence is correct\n\t\tsetup: function() {\n\n\t\t\tvar attaches;\n\n\t\t\t// Claim the first handler\n\t\t\t// dataPriv.set( this, \"focus\", ... )\n\t\t\t// dataPriv.set( this, \"blur\", ... )\n\t\t\tleverageNative( this, type, true );\n\n\t\t\tif ( document.documentMode ) {\n\n\t\t\t\t// Support: IE 9 - 11+\n\t\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\t\tattaches = dataPriv.get( this, delegateType );\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t}\n\t\t\t\tdataPriv.set( this, delegateType, ( attaches || 0 ) + 1 );\n\t\t\t} else {\n\n\t\t\t\t// Return false to allow normal processing in the caller\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\t\ttrigger: function() {\n\n\t\t\t// Force setup before trigger\n\t\t\tleverageNative( this, type );\n\n\t\t\t// Return non-false to allow normal event-path propagation\n\t\t\treturn true;\n\t\t},\n\n\t\tteardown: function() {\n\t\t\tvar attaches;\n\n\t\t\tif ( document.documentMode ) {\n\t\t\t\tattaches = dataPriv.get( this, delegateType ) - 1;\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t\tdataPriv.remove( this, delegateType );\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.set( this, delegateType, attaches );\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Return false to indicate standard teardown should be applied\n\t\t\t\treturn false;\n\t\t\t}\n\t\t},\n\n\t\t// Suppress native focus or blur if we're currently inside\n\t\t// a leveraged native-event stack\n\t\t_default: function( event ) {\n\t\t\treturn dataPriv.get( event.target, type );\n\t\t},\n\n\t\tdelegateType: delegateType\n\t};\n\n\t// Support: Firefox <=44\n\t// Firefox doesn't have focus(in | out) events\n\t// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n\t//\n\t// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n\t// focus(in | out) events fire after focus & blur events,\n\t// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n\t// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\n\t//\n\t// Support: IE 9 - 11+\n\t// To preserve relative focusin/focus & focusout/blur event order guaranteed on the 3.x branch,\n\t// attach a single handler for both events in IE.\n\tjQuery.event.special[ delegateType ] = {\n\t\tsetup: function() {\n\n\t\t\t// Handle: regular nodes (via `this.ownerDocument`), window\n\t\t\t// (via `this.document`) & document (via `this`).\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType );\n\n\t\t\t// Support: IE 9 - 11+\n\t\t\t// We use the same native handler for focusin & focus (and focusout & blur)\n\t\t\t// so we need to coordinate setup & teardown parts between those events.\n\t\t\t// Use `delegateType` as the key as `type` is already used by `leverageNative`.\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.addEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.addEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t}\n\t\t\tdataPriv.set( dataHolder, delegateType, ( attaches || 0 ) + 1 );\n\t\t},\n\t\tteardown: function() {\n\t\t\tvar doc = this.ownerDocument || this.document || this,\n\t\t\t\tdataHolder = document.documentMode ? this : doc,\n\t\t\t\tattaches = dataPriv.get( dataHolder, delegateType ) - 1;\n\n\t\t\tif ( !attaches ) {\n\t\t\t\tif ( document.documentMode ) {\n\t\t\t\t\tthis.removeEventListener( delegateType, focusMappedHandler );\n\t\t\t\t} else {\n\t\t\t\t\tdoc.removeEventListener( type, focusMappedHandler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( dataHolder, delegateType );\n\t\t\t} else {\n\t\t\t\tdataPriv.set( dataHolder, delegateType, attaches );\n\t\t\t}\n\t\t}\n\t};\n} );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.get( src );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdataPriv.remove( dest, \"handle events\" );\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = flat( args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (trac-8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl && !node.noModule ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src, {\n\t\t\t\t\t\t\t\t\tnonce: node.nonce || node.getAttribute( \"nonce\" )\n\t\t\t\t\t\t\t\t}, doc );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Unwrap a CDATA section containing script contents. This shouldn't be\n\t\t\t\t\t\t\t// needed as in XML documents they're already not visible when\n\t\t\t\t\t\t\t// inspecting element contents and in HTML documents they have no\n\t\t\t\t\t\t\t// meaning but we're preserving that logic for backwards compatibility.\n\t\t\t\t\t\t\t// This will be removed completely in 4.0. See gh-4904.\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), node, doc );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && isAttached( node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html;\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = isAttached( elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew jQuery#find here for performance reasons:\n\t\t\t// https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar rcustomProp = /^--/;\n\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (trac-15098, trac-14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar swap = function( elem, options, callback ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.call( elem );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\t// Support: Chrome <=64\n\t\t// Don't get tricked when zoom affects offsetWidth (gh-4029)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12;\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableTrDimensionsVal, reliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (trac-8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t},\n\n\t\t// Support: IE 9 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Behavior in IE 9 is more subtle than in newer versions & it passes\n\t\t// some versions of this test; make sure not to make it pass there!\n\t\t//\n\t\t// Support: Firefox 70+\n\t\t// Only Firefox includes border widths\n\t\t// in computed dimensions. (gh-4529)\n\t\treliableTrDimensions: function() {\n\t\t\tvar table, tr, trChild, trStyle;\n\t\t\tif ( reliableTrDimensionsVal == null ) {\n\t\t\t\ttable = document.createElement( \"table\" );\n\t\t\t\ttr = document.createElement( \"tr\" );\n\t\t\t\ttrChild = document.createElement( \"div\" );\n\n\t\t\t\ttable.style.cssText = \"position:absolute;left:-11111px;border-collapse:separate\";\n\t\t\t\ttr.style.cssText = \"border:1px solid\";\n\n\t\t\t\t// Support: Chrome 86+\n\t\t\t\t// Height set through cssText does not get applied.\n\t\t\t\t// Computed height then comes back as 0.\n\t\t\t\ttr.style.height = \"1px\";\n\t\t\t\ttrChild.style.height = \"9px\";\n\n\t\t\t\t// Support: Android 8 Chrome 86+\n\t\t\t\t// In our bodyBackground.html iframe,\n\t\t\t\t// display for all div elements is set to \"inline\",\n\t\t\t\t// which causes a problem only in Android 8 Chrome 86.\n\t\t\t\t// Ensuring the div is display: block\n\t\t\t\t// gets around this issue.\n\t\t\t\ttrChild.style.display = \"block\";\n\n\t\t\t\tdocumentElement\n\t\t\t\t\t.appendChild( table )\n\t\t\t\t\t.appendChild( tr )\n\t\t\t\t\t.appendChild( trChild );\n\n\t\t\t\ttrStyle = window.getComputedStyle( tr );\n\t\t\t\treliableTrDimensionsVal = ( parseInt( trStyle.height, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderTopWidth, 10 ) +\n\t\t\t\t\tparseInt( trStyle.borderBottomWidth, 10 ) ) === tr.offsetHeight;\n\n\t\t\t\tdocumentElement.removeChild( table );\n\t\t\t}\n\t\t\treturn reliableTrDimensionsVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\t\tisCustomProp = rcustomProp.test( name ),\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, trac-12537)\n\t// .css('--customProperty) (gh-3144)\n\tif ( computed ) {\n\n\t\t// Support: IE <=9 - 11+\n\t\t// IE only supports `\"float\"` in `getPropertyValue`; in computed styles\n\t\t// it's only available as `\"cssFloat\"`. We no longer modify properties\n\t\t// sent to `.css()` apart from camelCasing, so we need to check both.\n\t\t// Normally, this would create difference in behavior: if\n\t\t// `getPropertyValue` returns an empty string, the value returned\n\t\t// by `.css()` would be `undefined`. This is usually the case for\n\t\t// disconnected elements. However, in IE even disconnected elements\n\t\t// with no styles return `\"none\"` for `getPropertyValue( \"float\" )`\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( isCustomProp && ret ) {\n\n\t\t\t// Support: Firefox 105+, Chrome <=105+\n\t\t\t// Spec requires trimming whitespace for custom properties (gh-4926).\n\t\t\t// Firefox only trims leading whitespace. Chrome just collapses\n\t\t\t// both leading & trailing whitespace to a single space.\n\t\t\t//\n\t\t\t// Fall back to `undefined` if empty string returned.\n\t\t\t// This collapses a missing definition with property defined\n\t\t\t// and set to an empty string but there's no standard API\n\t\t\t// allowing us to differentiate them without a performance penalty\n\t\t\t// and returning `undefined` aligns with older jQuery.\n\t\t\t//\n\t\t\t// rtrimCSS treats U+000D CARRIAGE RETURN and U+000C FORM FEED\n\t\t\t// as whitespace while CSS does not, but this is not a problem\n\t\t\t// because CSS preprocessing replaces them with U+000A LINE FEED\n\t\t\t// (which *is* CSS whitespace)\n\t\t\t// https://www.w3.org/TR/css-syntax-3/#input-preprocessing\n\t\t\tret = ret.replace( rtrimCSS, \"$1\" ) || undefined;\n\t\t}\n\n\t\tif ( ret === \"\" && !isAttached( elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar cssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style,\n\tvendorProps = {};\n\n// Return a vendor-prefixed property or undefined\nfunction vendorPropName( name ) {\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a potentially-mapped jQuery.cssProps or vendor prefixed property\nfunction finalPropName( name ) {\n\tvar final = jQuery.cssProps[ name ] || vendorProps[ name ];\n\n\tif ( final ) {\n\t\treturn final;\n\t}\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\treturn vendorProps[ name ] = vendorPropName( name ) || name;\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t};\n\nfunction setPositiveNumber( _elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0,\n\t\tmarginDelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\t// Count margin delta separately to only add it after scroll gutter adjustment.\n\t\t// This is needed to make negative margins work with `outerHeight( true )` (gh-3982).\n\t\tif ( box === \"margin\" ) {\n\t\t\tmarginDelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\n\t\t// If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter\n\t\t// Use an explicit zero to avoid NaN (gh-3964)\n\t\t) ) || 0;\n\t}\n\n\treturn delta + marginDelta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\n\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322).\n\t\t// Fake content-box until we know it's needed to know the true value.\n\t\tboxSizingNeeded = !support.boxSizingReliable() || extra,\n\t\tisBorderBox = boxSizingNeeded &&\n\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox,\n\n\t\tval = curCSS( elem, dimension, styles ),\n\t\toffsetProp = \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\n\t// Support: IE 9 - 11 only\n\t// Use offsetWidth/offsetHeight for when box sizing is unreliable.\n\t// In those cases, the computed value can be trusted to be border-box.\n\tif ( ( !support.boxSizingReliable() && isBorderBox ||\n\n\t\t// Support: IE 10 - 11+, Edge 15 - 18+\n\t\t// IE/Edge misreport `getComputedStyle` of table rows with width/height\n\t\t// set in CSS while `offset*` properties report correct values.\n\t\t// Interestingly, in some cases IE 9 doesn't suffer from this issue.\n\t\t!support.reliableTrDimensions() && nodeName( elem, \"tr\" ) ||\n\n\t\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t\t// This happens for inline elements with no explicit setting (gh-3571)\n\t\tval === \"auto\" ||\n\n\t\t// Support: Android <=4.1 - 4.3 only\n\t\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) &&\n\n\t\t// Make sure the element is visible & connected\n\t\telem.getClientRects().length ) {\n\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\";\n\n\t\t// Where available, offsetWidth/offsetHeight approximate border box dimensions.\n\t\t// Where not available (e.g., SVG), assume unreliable box-sizing and interpret the\n\t\t// retrieved value as a content box dimension.\n\t\tvalueIsBorderBox = offsetProp in elem;\n\t\tif ( valueIsBorderBox ) {\n\t\t\tval = elem[ offsetProp ];\n\t\t}\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\tanimationIterationCount: true,\n\t\taspectRatio: true,\n\t\tborderImageSlice: true,\n\t\tcolumnCount: true,\n\t\tflexGrow: true,\n\t\tflexShrink: true,\n\t\tfontWeight: true,\n\t\tgridArea: true,\n\t\tgridColumn: true,\n\t\tgridColumnEnd: true,\n\t\tgridColumnStart: true,\n\t\tgridRow: true,\n\t\tgridRowEnd: true,\n\t\tgridRowStart: true,\n\t\tlineHeight: true,\n\t\topacity: true,\n\t\torder: true,\n\t\torphans: true,\n\t\tscale: true,\n\t\twidows: true,\n\t\tzIndex: true,\n\t\tzoom: true,\n\n\t\t// SVG-related\n\t\tfillOpacity: true,\n\t\tfloodOpacity: true,\n\t\tstopOpacity: true,\n\t\tstrokeMiterlimit: true,\n\t\tstrokeOpacity: true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (trac-7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug trac-9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (trac-7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\t// The isCustomProp check can be removed in jQuery 4.0 when we only auto-append\n\t\t\t// \"px\" to a few hardcoded values.\n\t\t\tif ( type === \"number\" && !isCustomProp ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( _i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t} ) :\n\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\n\t\t\t\t// Only read styles.position if the test has a chance to fail\n\t\t\t\t// to avoid forcing a reflow.\n\t\t\t\tscrollboxSizeBuggy = !support.scrollboxSize() &&\n\t\t\t\t\tstyles.position === \"absolute\",\n\n\t\t\t\t// To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991)\n\t\t\t\tboxSizingNeeded = scrollboxSizeBuggy || extra,\n\t\t\t\tisBorderBox = boxSizingNeeded &&\n\t\t\t\t\tjQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra ?\n\t\t\t\t\tboxModelAdjustment(\n\t\t\t\t\t\telem,\n\t\t\t\t\t\tdimension,\n\t\t\t\t\t\textra,\n\t\t\t\t\t\tisBorderBox,\n\t\t\t\t\t\tstyles\n\t\t\t\t\t) :\n\t\t\t\t\t0;\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && scrollboxSizeBuggy ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 && (\n\t\t\t\tjQuery.cssHooks[ tween.prop ] ||\n\t\t\t\t\ttween.elem.style[ finalPropName( tween.prop ) ] != null ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (trac-12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\n\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( _i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( _i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// Use proper attribute retrieval (trac-12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + className + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += className + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classNames, cur, curValue, className, i, finalValue;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\tif ( classNames.length ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tcurValue = getClass( this );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = this.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + className + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + className + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\tthis.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar classNames, className, i, self,\n\t\t\ttype = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tclassNames = classesToArray( value );\n\n\t\treturn this.each( function() {\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\tself = jQuery( this );\n\n\t\t\t\tfor ( i = 0; i < classNames.length; i++ ) {\n\t\t\t\t\tclassName = classNames[ i ];\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (trac-14686, trac-14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (trac-2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\nvar location = window.location;\n\nvar nonce = { guid: Date.now() };\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml, parserErrorElem;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {}\n\n\tparserErrorElem = xml && xml.getElementsByTagName( \"parsererror\" )[ 0 ];\n\tif ( !xml || parserErrorElem ) {\n\t\tjQuery.error( \"Invalid XML: \" + (\n\t\t\tparserErrorElem ?\n\t\t\t\tjQuery.map( parserErrorElem.childNodes, function( el ) {\n\t\t\t\t\treturn el.textContent;\n\t\t\t\t} ).join( \"\\n\" ) :\n\t\t\t\tdata\n\t\t) );\n\t}\n\treturn xml;\n};\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (trac-9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (trac-9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || Object.create( null ) )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (trac-6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\tif ( a == null ) {\n\t\treturn \"\";\n\t}\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} ).filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} ).map( function( _i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// trac-7653, trac-8125, trac-8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (trac-10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\noriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes trac-9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() + \" \" ] =\n\t\t\t\t\t\t\t\t\t( responseHeaders[ match[ 1 ].toLowerCase() + \" \" ] || [] )\n\t\t\t\t\t\t\t\t\t\t.concat( match[ 2 ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() + \" \" ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match.join( \", \" );\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (trac-10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket trac-12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (trac-15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// trac-9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce.guid++ ) +\n\t\t\t\t\tuncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Use a noop converter for missing script but not if jsonp\n\t\t\tif ( !isSuccess &&\n\t\t\t\tjQuery.inArray( \"script\", s.dataTypes ) > -1 &&\n\t\t\t\tjQuery.inArray( \"json\", s.dataTypes ) < 0 ) {\n\t\t\t\ts.converters[ \"text script\" ] = function() {};\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( _i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\njQuery.ajaxPrefilter( function( s ) {\n\tvar i;\n\tfor ( i in s.headers ) {\n\t\tif ( i.toLowerCase() === \"content-type\" ) {\n\t\t\ts.contentType = s.headers[ i ] || \"\";\n\t\t}\n\t}\n} );\n\n\njQuery._evalUrl = function( url, options, doc ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (trac-11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\n\t\t// Only evaluate the response if it is successful (gh-4126)\n\t\t// dataFilter is not invoked for failure responses, so using it instead\n\t\t// of the default converter is kludgy but it works.\n\t\tconverters: {\n\t\t\t\"text script\": function() {}\n\t\t},\n\t\tdataFilter: function( response ) {\n\t\t\tjQuery.globalEval( response, options, doc );\n\t\t}\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// trac-1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see trac-8605, trac-14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// trac-14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain or forced-by-attrs requests\n\tif ( s.crossDomain || s.scriptAttrs ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"